diff options
361 files changed, 30084 insertions, 9997 deletions
diff --git a/Makefile.am b/Makefile.am index bcd403bd..9515dc80 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,7 +16,8 @@ SUBDIRS = \ po \ man \ docs \ - examples + examples \ + vapi EXTRA_DIST = \ CONTRIBUTING \ diff --git a/Makefile.in b/Makefile.in index b87cf8aa..ad781673 100644 --- a/Makefile.in +++ b/Makefile.in @@ -54,7 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -217,6 +217,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -312,6 +316,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -350,6 +357,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -386,7 +395,8 @@ SUBDIRS = \ po \ man \ docs \ - examples + examples \ + vapi EXTRA_DIST = \ CONTRIBUTING \ diff --git a/NEWS b/NEWS index 096869b4..192541db 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,24 @@ ============================================== +NetworkManager-0.9.6 +Overview of changes since NetworkManager-0.9.4 +============================================== + +This is a new stable release of NetworkManager. Notable changes include: + +* Many libnm-glib fixes, including crashes when NetworkManager restarts +* Enhanced IPv6 stability and compatibility +* Fix regression in carrier handling for devices that don't support carrier detect +* Add ability to connect to new WiFi networks from nmcli +* Add native support for ADSL modems using PPPoE or PPPoATM +* Reduce number of changes made to DNS information during connection setup +* Add support for IPv6-enabled VPN connections +* Add device driver version, firmware version, and autoconnect properties to D-Bus API +* Add on-demand WiFi scan support +* Fix IPv6 default gateway handling for DHCPv6 +* Add Vala language bindings + + +============================================== NetworkManager-0.9.4 Overview of changes since NetworkManager-0.9.2 ============================================== diff --git a/TODO b/TODO index 2348b3c6..f08da718 100644 --- a/TODO +++ b/TODO @@ -34,23 +34,6 @@ NM_STATE_CONNECTED_LOCAL, NM_STATE_CONNECTED_SITE, or NM_STATE_CONNECTED_GLOBAL based on it and the device's state. -* ADSL support - -NetworkManager should natively support ADSL modems using one of the 3 main -connection methods, PPP over ATM (pppoa), PPP over Ethernet (pppoe), or -IP over ATM (ipoatm). Initial support could be targeted at just pppoa and -pppoe, and there is some code in NetworkManager already for pppoe. More info -about ADSL configuration on Linux in general is here: - -http://atm.eagle-usb.org/wakka.php?wiki=UeagleAtmDoc - -Big thanks to Pantelis Koukousoulas for getting ADSL working for PPPoA and PPPoE -methods in the 'adsl' branch in NetworkManager git. We need more testing, IPv6 -PPP support, and also support for multiple ADSL devices (by reading the "atmindex" -attribute from the sysfs directory for the ATM interface on 2.6.38.8 and later -kernels). - - * Real Access Point mode support Now that NetworkManager requires wpa_supplicant 0.7.x or later, we can add @@ -70,44 +53,6 @@ provide Ad-Hoc connection sharing support for those devices and switch between Ad-Hoc and AP mode depending on device capabilities. -* On-Demand WiFi Scan support - -Single-user and embedded devices often use a continuous wifi scan when the -networking configuration interface is open to quickly allow users to find their -wifi network. NM periodically scans, but this could take as long as 2 mintues -to update the list. Note that WiFi scans require 2 - 10 seconds to complete, -and during this time normal traffic (video, VOIP, streaming music, downloads, -etc) is not transmitted, so a WiFi scan is a disruptive operation to the user. - -A D-Bus method should be added to the NMDeviceWifi device to allow user -applications to request a scan. This request should be rate-limited to no -more than once every 10 seconds to give time for traffic to resume when the -scan is done, and to lessen the effect of any DDoS by malicious user -applications. This request should also be restricted by one or more PolicyKit -permissions like org.freedesktop.NetworkManager.network-control. - -To begin, a new method definition should be added to the -introspection/nm-device-wifi.xml for a method called "RequestScan" which takes -an argument called "options" of type of "a{sv}". This argument will be used -later. An annotation (like the other functions have) should be added so that -the method will be called "impl_device_request_scan". - -Next, the corresponding method implementation should be added to -src/nm-device-wifi.c by adding the prototype for impl_device_request_scan -near the top of the file, and implementing it below. The implementation will -recieve a GHashTable corresponding to the "a{sv}" argument list from the XML -file, but we can ignore that for now. - -The incoming request should be authenticated using nm_auth_get_caller_uid() -and additionally starting a PolicyKit authentication check with -with nm_auth_chain_new(). See the function manager_device_disconnect_request() -in src/nm-manager.c for an example of this. - -Only after the caller is authorized to scan should the request be checked -against the last scan timestamp, and if the last scan was 10 seconds or more -ago, a new scan should be requested. - - * Reconnect to WiFi Networks Only If They Succeeded Once Currently, NetworkManager will attempt to connect to a previously attempted diff --git a/aclocal.m4 b/aclocal.m4 index ededf4ea..c3221edb 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1245,3 +1245,4 @@ m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) +m4_include([m4/vapigen.m4]) diff --git a/callouts/Makefile.in b/callouts/Makefile.in index 4b46ce2a..015aa792 100644 --- a/callouts/Makefile.in +++ b/callouts/Makefile.in @@ -51,7 +51,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -261,6 +261,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -356,6 +360,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -394,6 +401,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/callouts/nm-dispatcher-action.c b/callouts/nm-dispatcher-action.c index 54186a98..a4ccde10 100644 --- a/callouts/nm-dispatcher-action.c +++ b/callouts/nm-dispatcher-action.c @@ -545,14 +545,14 @@ main (int argc, char **argv) loop = g_main_loop_new (NULL, FALSE); if (!dbus_init (d)) - return -1; + return 1; if (!start_dbus_service (d)) - return -1; + return 1; d->persist = persist; d->handler = g_object_new (HANDLER_TYPE, NULL); if (!d->handler) - return -1; + return 1; g_object_set_data (G_OBJECT (d->handler), "dispatcher", d); dbus_g_object_type_install_info (HANDLER_TYPE, &dbus_glib_nm_dispatcher_object_info); diff --git a/callouts/tests/Makefile.in b/callouts/tests/Makefile.in index 1d71988d..4c076413 100644 --- a/callouts/tests/Makefile.in +++ b/callouts/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -170,6 +170,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -265,6 +269,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -303,6 +310,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/cli/Makefile.in b/cli/Makefile.in index 46ab6733..38ef6a53 100644 --- a/cli/Makefile.in +++ b/cli/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -174,6 +174,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -269,6 +273,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -307,6 +314,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/cli/src/Makefile.in b/cli/src/Makefile.in index ea5214e5..854628c2 100644 --- a/cli/src/Makefile.in +++ b/cli/src/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -172,6 +172,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -267,6 +271,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -305,6 +312,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/cli/src/common.c b/cli/src/common.c index e9a5d760..193ea33f 100644 --- a/cli/src/common.c +++ b/cli/src/common.c @@ -358,3 +358,201 @@ print_dhcp6_config (NMDHCP6Config *dhcp6, NmCli *nmc, const char *group_prefix) return FALSE; } +const char * +nmc_device_state_to_string (NMDeviceState state) +{ + switch (state) { + case NM_DEVICE_STATE_UNMANAGED: + return _("unmanaged"); + case NM_DEVICE_STATE_UNAVAILABLE: + return _("unavailable"); + case NM_DEVICE_STATE_DISCONNECTED: + return _("disconnected"); + case NM_DEVICE_STATE_PREPARE: + return _("connecting (prepare)"); + case NM_DEVICE_STATE_CONFIG: + return _("connecting (configuring)"); + case NM_DEVICE_STATE_NEED_AUTH: + return _("connecting (need authentication)"); + case NM_DEVICE_STATE_IP_CONFIG: + return _("connecting (getting IP configuration)"); + case NM_DEVICE_STATE_IP_CHECK: + return _("connecting (checking IP connectivity)"); + case NM_DEVICE_STATE_SECONDARIES: + return _("connecting (starting secondary connections)"); + case NM_DEVICE_STATE_ACTIVATED: + return _("connected"); + case NM_DEVICE_STATE_DEACTIVATING: + return _("deactivating"); + case NM_DEVICE_STATE_FAILED: + return _("connection failed"); + default: + return _("unknown"); + } +} + +const char * +nmc_device_reason_to_string (NMDeviceStateReason reason) +{ + switch (reason) { + case NM_DEVICE_STATE_REASON_NONE: + return _("No reason given"); + + case NM_DEVICE_STATE_REASON_UNKNOWN: + return _("Unknown error"); + + case NM_DEVICE_STATE_REASON_NOW_MANAGED: + return _("Device is now managed"); + + case NM_DEVICE_STATE_REASON_NOW_UNMANAGED: + return _("Device is now unmanaged"); + + case NM_DEVICE_STATE_REASON_CONFIG_FAILED: + return _("The device could not be readied for configuration"); + + case NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE: + return _("IP configuration could not be reserved (no available address, timeout, etc)"); + + case NM_DEVICE_STATE_REASON_IP_CONFIG_EXPIRED: + return _("The IP configuration is no longer valid"); + + case NM_DEVICE_STATE_REASON_NO_SECRETS: + return _("Secrets were required, but not provided"); + + case NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT: + return _("802.1X supplicant disconnected"); + + case NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED: + return _("802.1X supplicant configuration failed"); + + case NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED: + return _("802.1X supplicant failed"); + + case NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT: + return _("802.1X supplicant took too long to authenticate"); + + case NM_DEVICE_STATE_REASON_PPP_START_FAILED: + return _("PPP service failed to start"); + + case NM_DEVICE_STATE_REASON_PPP_DISCONNECT: + return _("PPP service disconnected"); + + case NM_DEVICE_STATE_REASON_PPP_FAILED: + return _("PPP failed"); + + case NM_DEVICE_STATE_REASON_DHCP_START_FAILED: + return _("DHCP client failed to start"); + + case NM_DEVICE_STATE_REASON_DHCP_ERROR: + return _("DHCP client error"); + + case NM_DEVICE_STATE_REASON_DHCP_FAILED: + return _("DHCP client failed"); + + case NM_DEVICE_STATE_REASON_SHARED_START_FAILED: + return _("Shared connection service failed to start"); + + case NM_DEVICE_STATE_REASON_SHARED_FAILED: + return _("Shared connection service failed"); + + case NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED: + return _("AutoIP service failed to start"); + + case NM_DEVICE_STATE_REASON_AUTOIP_ERROR: + return _("AutoIP service error"); + + case NM_DEVICE_STATE_REASON_AUTOIP_FAILED: + return _("AutoIP service failed"); + + case NM_DEVICE_STATE_REASON_MODEM_BUSY: + return _("The line is busy"); + + case NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE: + return _("No dial tone"); + + case NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER: + return _("No carrier could be established"); + + case NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT: + return _("The dialing request timed out"); + + case NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED: + return _("The dialing attempt failed"); + + case NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED: + return _("Modem initialization failed"); + + case NM_DEVICE_STATE_REASON_GSM_APN_FAILED: + return _("Failed to select the specified APN"); + + case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING: + return _("Not searching for networks"); + + case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED: + return _("Network registration denied"); + + case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT: + return _("Network registration timed out"); + + case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED: + return _("Failed to register with the requested network"); + + case NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED: + return _("PIN check failed"); + + case NM_DEVICE_STATE_REASON_FIRMWARE_MISSING: + return _("Necessary firmware for the device may be missing"); + + case NM_DEVICE_STATE_REASON_REMOVED: + return _("The device was removed"); + + case NM_DEVICE_STATE_REASON_SLEEPING: + return _("NetworkManager went to sleep"); + + case NM_DEVICE_STATE_REASON_CONNECTION_REMOVED: + return _("The device's active connection disappeared"); + + case NM_DEVICE_STATE_REASON_USER_REQUESTED: + return _("Device disconnected by user or client"); + + case NM_DEVICE_STATE_REASON_CARRIER: + return _("Carrier/link changed"); + + case NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED: + return _("The device's existing connection was assumed"); + + case NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE: + return _("The supplicant is now available"); + + case NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND: + return _("The modem could not be found"); + + case NM_DEVICE_STATE_REASON_BT_FAILED: + return _("The Bluetooth connection failed or timed out"); + + case NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED: + return _("GSM Modem's SIM card not inserted"); + + case NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED: + return _("GSM Modem's SIM PIN required"); + + case NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED: + return _("GSM Modem's SIM PUK required"); + + case NM_DEVICE_STATE_REASON_GSM_SIM_WRONG: + return _("GSM Modem's SIM wrong"); + + case NM_DEVICE_STATE_REASON_INFINIBAND_MODE: + return _("InfiniBand device does not support connected mode"); + + case NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED: + return _("A dependency of the connection failed"); + + case NM_DEVICE_STATE_REASON_BR2684_FAILED: + return _("A problem with the RFC 2684 Ethernet over ADSL bridge"); + + default: + return _("Unknown"); + } +} + diff --git a/cli/src/common.h b/cli/src/common.h index 85015a9f..89412d28 100644 --- a/cli/src/common.h +++ b/cli/src/common.h @@ -28,6 +28,7 @@ #include <nm-ip6-config.h> #include <nm-dhcp4-config.h> #include <nm-dhcp6-config.h> +#include <nm-device.h> #include "nmcli.h" @@ -36,4 +37,7 @@ gboolean print_ip6_config (NMIP6Config *cfg6, NmCli *nmc, const char *group_pref gboolean print_dhcp4_config (NMDHCP4Config *dhcp4, NmCli *nmc, const char *group_prefix); gboolean print_dhcp6_config (NMDHCP6Config *dhcp6, NmCli *nmc, const char *group_prefix); +const char * nmc_device_state_to_string (NMDeviceState state); +const char * nmc_device_reason_to_string (NMDeviceStateReason reason); + #endif /* NMC_COMMON_H */ diff --git a/cli/src/connections.c b/cli/src/connections.c index ea5211f5..8e654864 100644 --- a/cli/src/connections.c +++ b/cli/src/connections.c @@ -33,6 +33,7 @@ #include <nm-client.h> #include <nm-device-ethernet.h> +#include <nm-device-adsl.h> #include <nm-device-wifi.h> #if WITH_WIMAX #include <nm-device-wimax.h> @@ -92,6 +93,7 @@ static NmcOutputField nmc_fields_settings_names[] = { SETTING_FIELD (NM_SETTING_INFINIBAND_SETTING_NAME, 0), /* 16 */ SETTING_FIELD (NM_SETTING_BOND_SETTING_NAME, 0), /* 17 */ SETTING_FIELD (NM_SETTING_VLAN_SETTING_NAME, 0), /* 18 */ + SETTING_FIELD (NM_SETTING_ADSL_SETTING_NAME, 0), /* 19 */ {NULL, NULL, 0, NULL, 0} }; #define NMC_FIELDS_SETTINGS_NAMES_ALL_X NM_SETTING_CONNECTION_SETTING_NAME","\ @@ -104,6 +106,7 @@ static NmcOutputField nmc_fields_settings_names[] = { NM_SETTING_SERIAL_SETTING_NAME","\ NM_SETTING_PPP_SETTING_NAME","\ NM_SETTING_PPPOE_SETTING_NAME","\ + NM_SETTING_ADSL_SETTING_NAME","\ NM_SETTING_GSM_SETTING_NAME","\ NM_SETTING_CDMA_SETTING_NAME","\ NM_SETTING_BLUETOOTH_SETTING_NAME","\ @@ -178,6 +181,7 @@ typedef struct { extern GMainLoop *loop; static ArgsInfo args_info; +static guint progress_id = 0; /* ID of event source for displaying progress */ static void usage (void) @@ -210,6 +214,11 @@ static const char *real_con_commands[] = { static void quit (void) { + if (progress_id) { + g_source_remove (progress_id); + nmc_terminal_erase_line (); + } + g_main_loop_quit (loop); /* quit main loop */ } @@ -432,6 +441,15 @@ nmc_connection_detail (NMConnection *connection, NmCli *nmc) continue; } } + + if (!strcasecmp (nmc_fields_settings_names[section_idx].name, nmc_fields_settings_names[19].name)) { + NMSettingAdsl *s_adsl = nm_connection_get_setting_adsl (connection); + if (s_adsl) { + setting_adsl_details (s_adsl, nmc); + was_output = TRUE; + continue; + } + } } if (print_settings_array) @@ -687,6 +705,21 @@ fill_in_fields_con_status (NMActiveConnection *active, GSList *con_list) if (dev_str->len > 0) g_string_truncate (dev_str, dev_str->len - 1); /* Cut off last ',' */ + /* Fill field values */ + nmc_fields_con_status[0].value = nmc_fields_status_details_groups[0].name; + nmc_fields_con_status[1].value = _("N/A"); + nmc_fields_con_status[2].value = nm_active_connection_get_uuid (active); + nmc_fields_con_status[3].value = dev_str->str; + nmc_fields_con_status[4].value = active_connection_state_to_string (state); + nmc_fields_con_status[5].value = nm_active_connection_get_default (active) ? _("yes") : _("no"); + nmc_fields_con_status[6].value = nm_active_connection_get_default6 (active) ? _("yes") : _("no"); + nmc_fields_con_status[7].value = nm_active_connection_get_specific_object (active); + nmc_fields_con_status[8].value = NM_IS_VPN_CONNECTION (active) ? _("yes") : _("no"); + nmc_fields_con_status[9].value = nm_object_get_path (NM_OBJECT (active)); + nmc_fields_con_status[10].value = nm_active_connection_get_connection (active); + nmc_fields_con_status[11].value = _("N/A"); + nmc_fields_con_status[12].value = nm_active_connection_get_master (active); + for (iter = con_list; iter; iter = g_slist_next (iter)) { NMConnection *connection = (NMConnection *) iter->data; const char *con_path = nm_connection_get_path (connection); @@ -696,20 +729,9 @@ fill_in_fields_con_status (NMActiveConnection *active, GSList *con_list) s_con = nm_connection_get_setting_connection (connection); g_assert (s_con != NULL); - /* Fill field values */ - nmc_fields_con_status[0].value = nmc_fields_status_details_groups[0].name; + /* Fill field values that depend on NMConnection */ nmc_fields_con_status[1].value = nm_setting_connection_get_id (s_con); - nmc_fields_con_status[2].value = nm_setting_connection_get_uuid (s_con); - nmc_fields_con_status[3].value = dev_str->str; - nmc_fields_con_status[4].value = active_connection_state_to_string (state); - nmc_fields_con_status[5].value = nm_active_connection_get_default (active) ? _("yes") : _("no"); - nmc_fields_con_status[6].value = nm_active_connection_get_default6 (active) ? _("yes") : _("no"); - nmc_fields_con_status[7].value = nm_active_connection_get_specific_object (active); - nmc_fields_con_status[8].value = NM_IS_VPN_CONNECTION (active) ? _("yes") : _("no"); - nmc_fields_con_status[9].value = nm_object_get_path (NM_OBJECT (active)); - nmc_fields_con_status[10].value = nm_active_connection_get_connection (active); nmc_fields_con_status[11].value = nm_setting_connection_get_zone (s_con); - nmc_fields_con_status[12].value = nm_active_connection_get_master (active); success = TRUE; break; @@ -1336,10 +1358,12 @@ active_connection_state_cb (NMActiveConnection *active, GParamSpec *pspec, gpoin state = nm_active_connection_get_state (active); - printf (_("state: %s\n"), active_connection_state_to_string (state)); - if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { - printf (_("Connection activated\n")); + if (nmc->print_output == NMC_PRINT_PRETTY) { + nmc_terminal_erase_line (); + printf (_("Connection successfully activated (D-Bus active path: %s)\n"), + nm_object_get_path (NM_OBJECT (active))); + } quit (); } else if (state == NM_ACTIVE_CONNECTION_STATE_UNKNOWN) { g_string_printf (nmc->return_text, _("Error: Connection activation failed.")); @@ -1361,17 +1385,22 @@ vpn_connection_state_cb (NMVPNConnection *vpn, case NM_VPN_CONNECTION_STATE_NEED_AUTH: case NM_VPN_CONNECTION_STATE_CONNECT: case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: - printf (_("state: %s (%d)\n"), vpn_connection_state_to_string (state), state); + /* no operation */ break; case NM_VPN_CONNECTION_STATE_ACTIVATED: - printf (_("Connection activated\n")); + if (nmc->print_output == NMC_PRINT_PRETTY) { + nmc_terminal_erase_line (); + printf (_("VPN connection successfully activated (D-Bus active path: %s)\n"), + nm_object_get_path (NM_OBJECT (vpn))); + } quit (); break; case NM_VPN_CONNECTION_STATE_FAILED: case NM_VPN_CONNECTION_STATE_DISCONNECTED: - g_string_printf (nmc->return_text, _("Error: Connection activation failed: %s."), vpn_connection_state_reason_to_string (reason)); + g_string_printf (nmc->return_text, _("Error: Connection activation failed: %s."), + vpn_connection_state_reason_to_string (reason)); nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; quit (); break; @@ -1381,6 +1410,85 @@ vpn_connection_state_cb (NMVPNConnection *vpn, } } +/* --- VPN state workaround BEGIN --- */ +static NMVPNConnectionState +dbus_get_vpn_state (const char *path) +{ + DBusGConnection *connection; + DBusGProxy *proxy; + GError *error = NULL; + GValue value = {0,}; + NMVPNConnectionState state = NM_VPN_CONNECTION_STATE_UNKNOWN; + + connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL); + proxy = dbus_g_proxy_new_for_name (connection, + NM_DBUS_SERVICE, + path, + "org.freedesktop.DBus.Properties"); + if (!proxy) { + g_warning ("%s: couldn't create D-Bus object proxy.", __func__); + dbus_g_connection_unref (connection); + return NM_VPN_CONNECTION_STATE_UNKNOWN; + } + + /* Get VpnState property for object 'path' through D-Bus Get() call. */ + if (dbus_g_proxy_call (proxy, + "Get", &error, + G_TYPE_STRING, NM_DBUS_INTERFACE_VPN_CONNECTION, + G_TYPE_STRING, "VpnState", + G_TYPE_INVALID, + G_TYPE_VALUE, &value, G_TYPE_INVALID)) { + + state = g_value_get_uint (&value); + } else { + g_warning ("Error in getting active connection 'Vpn' property: (%d) %s", + error->code, error->message); + g_error_free (error); + } + + g_object_unref (proxy); + dbus_g_connection_unref (connection); + + return state; +} + +typedef struct { + NmCli *nmc; + NMVPNConnection *vpn; +} VpnGetStateInfo; + +static gboolean +get_vpn_state_cb (gpointer user_data) +{ + VpnGetStateInfo *info = (VpnGetStateInfo *) user_data; + NmCli *nmc = info->nmc; + NMVPNConnection *vpn = info->vpn; + NMVPNConnectionState state; + + if (!NM_IS_OBJECT (vpn)) { + /* Active connection failed and dissapeared, quit. */ + g_string_printf (nmc->return_text, _("Error: Connection activation failed.")); + nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; + quit (); + g_free (info); + return FALSE; + } + + state = dbus_get_vpn_state (nm_object_get_path (NM_OBJECT (vpn))); + + vpn_connection_state_cb (vpn, state, NM_VPN_CONNECTION_STATE_REASON_UNKNOWN, nmc); + + if ( state == NM_VPN_CONNECTION_STATE_ACTIVATED + || state == NM_VPN_CONNECTION_STATE_FAILED + || state == NM_VPN_CONNECTION_STATE_DISCONNECTED) { + + g_free (info); + return FALSE; + } else + return TRUE; +} +/* --- VPN state workaround END --- */ + static gboolean timeout_cb (gpointer user_data) { @@ -1394,10 +1502,58 @@ timeout_cb (gpointer user_data) return FALSE; } +static gboolean +progress_cb (gpointer user_data) +{ + const char *str = (const char *) user_data; + + nmc_terminal_show_progress (str); + + return TRUE; +} + +static gboolean +progress_device_cb (gpointer user_data) +{ + NMDevice *device = (NMDevice *) user_data; + + nmc_terminal_show_progress (device ? nmc_device_state_to_string (nm_device_get_state (device)) : ""); + + return TRUE; +} + +static gboolean +progress_vpn_cb (gpointer user_data) +{ + NMVPNConnection *vpn = (NMVPNConnection *) user_data; + const char *str; + + /* VPN state workaround */ +#if 0 + str = NM_IS_VPN_CONNECTION (vpn) ? + vpn_connection_state_to_string (nm_vpn_connection_get_vpn_state (vpn)) : + ""; +#endif + str = NM_IS_OBJECT (vpn) ? + vpn_connection_state_to_string (dbus_get_vpn_state (nm_object_get_path (NM_OBJECT (vpn)))) : + ""; + + nmc_terminal_show_progress (str); + + return TRUE; +} + +typedef struct { + NmCli *nmc; + NMDevice *device; +} ActivateConnectionInfo; + static void activate_connection_cb (NMClient *client, NMActiveConnection *active, GError *error, gpointer user_data) { - NmCli *nmc = (NmCli *) user_data; + ActivateConnectionInfo *info = (ActivateConnectionInfo *) user_data; + NmCli *nmc = info->nmc; + NMDevice *device = info->device; NMActiveConnectionState state; if (error) { @@ -1407,27 +1563,61 @@ activate_connection_cb (NMClient *client, NMActiveConnection *active, GError *er } else { state = nm_active_connection_get_state (active); - printf (_("Active connection state: %s\n"), active_connection_state_to_string (state)); - printf (_("Active connection path: %s\n"), nm_object_get_path (NM_OBJECT (active))); - if (nmc->nowait_flag || state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { - /* don't want to wait or already activated */ + /* User doesn't want to wait or already activated */ + if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED && nmc->print_output == NMC_PRINT_PRETTY) { + printf (_("Connection successfully activated (D-Bus active path: %s)\n"), + nm_object_get_path (NM_OBJECT (active))); + } quit (); } else { - if (NM_IS_VPN_CONNECTION (active)) - g_signal_connect (NM_VPN_CONNECTION (active), "vpn-state-changed", G_CALLBACK (vpn_connection_state_cb), nmc); - else + if (NM_IS_VPN_CONNECTION (active)) { + VpnGetStateInfo *vpn_info; + + /* Monitor VPN state */ + g_signal_connect (G_OBJECT (active), "vpn-state-changed", G_CALLBACK (vpn_connection_state_cb), nmc); + + /* Start progress indication showing VPN states */ + if (nmc->print_output == NMC_PRINT_PRETTY) { + if (progress_id) + g_source_remove (progress_id); + progress_id = g_timeout_add (120, progress_vpn_cb, NM_VPN_CONNECTION (active)); + } + + /* --- workaround BEGIN --- */ + /* There is a bug in libnm-glib or dbus-glib - 'vpn-state-changed' signal + * is never issued. After inspection it appears that PropertiesChanged and + * VpnStateChanged D-Bus signals are not processed, even if they are seen + * on D-Bus (checked via dbus-monitor). Until the bug is identified and + * fixed, we check the VPN state every second. + */ + vpn_info = g_malloc0 (sizeof (VpnGetStateInfo)); + vpn_info->nmc = nmc; + vpn_info->vpn = NM_VPN_CONNECTION (active); + g_timeout_add_seconds (1, get_vpn_state_cb, vpn_info); + /* --- workaround END --- */ + } else { g_signal_connect (active, "notify::state", G_CALLBACK (active_connection_state_cb), nmc); + /* Start progress indication showing device states */ + if (nmc->print_output == NMC_PRINT_PRETTY) { + if (progress_id) + g_source_remove (progress_id); + progress_id = g_timeout_add (120, progress_device_cb, device); + } + } + /* Start timer not to loop forever when signals are not emitted */ g_timeout_add_seconds (nmc->timeout, timeout_cb, nmc); } } + g_free (info); } static NMCResultCode do_connection_up (NmCli *nmc, int argc, char **argv) { + ActivateConnectionInfo *info; NMDevice *device = NULL; const char *spec_object = NULL; gboolean device_found; @@ -1566,12 +1756,21 @@ do_connection_up (NmCli *nmc, int argc, char **argv) */ nmc->nowait_flag = !wait; nmc->should_wait = TRUE; + + info = g_malloc0 (sizeof (ActivateConnectionInfo)); + info->nmc = nmc; + info->device = device; + nm_client_activate_connection (nmc->client, connection, device, spec_object, activate_connection_cb, - nmc); + info); + + /* Start progress indication */ + if (nmc->print_output == NMC_PRINT_PRETTY) + progress_id = g_timeout_add (120, progress_cb, "preparing"); return nmc->return_value; error: @@ -1769,7 +1968,7 @@ parse_cmd (NmCli *nmc, int argc, char **argv) nmc->return_value = do_connections_list (nmc, argc, argv); } else { - if (matches (*argv, "list") == 0) { + if (matches (*argv, "list") == 0) { nmc->return_value = do_connections_list (nmc, argc-1, argv+1); } else if (matches(*argv, "status") == 0) { @@ -1836,7 +2035,7 @@ do_connections (NmCli *nmc, int argc, char **argv) else { while (real_con_commands[i] && matches (*argv, real_con_commands[i]) != 0) i++; - if (real_con_commands[i] != NULL) + if (real_con_commands[i] != NULL) real_cmd = TRUE; } @@ -1847,6 +2046,9 @@ do_connections (NmCli *nmc, int argc, char **argv) if (!nmc_versions_match (nmc)) return nmc->return_value; + /* Get NMClient object early */ + nmc->get_client (nmc); + nmc->should_wait = TRUE; args_info.nmc = nmc; diff --git a/cli/src/devices.c b/cli/src/devices.c index 0b1b6d6e..6b9367b4 100644 --- a/cli/src/devices.c +++ b/cli/src/devices.c @@ -23,6 +23,7 @@ #include <string.h> #include <stdlib.h> #include <errno.h> +#include <netinet/ether.h> #include <glib.h> #include <glib/gi18n.h> @@ -30,6 +31,7 @@ #include <nm-client.h> #include <nm-device.h> #include <nm-device-ethernet.h> +#include <nm-device-adsl.h> #include <nm-device-wifi.h> #include <nm-device-modem.h> #include <nm-device-bt.h> @@ -46,6 +48,7 @@ #include <nm-vpn-connection.h> #include <nm-setting-connection.h> #include <nm-setting-wired.h> +#include <nm-setting-adsl.h> #include <nm-setting-pppoe.h> #include <nm-setting-wireless.h> #include <nm-setting-gsm.h> @@ -105,17 +108,20 @@ static NmcOutputField nmc_fields_dev_list_general[] = { {"VENDOR", N_("VENDOR"), 20, NULL, 0}, /* 3 */ {"PRODUCT", N_("PRODUCT"), 50, NULL, 0}, /* 4 */ {"DRIVER", N_("DRIVER"), 9, NULL, 0}, /* 5 */ - {"HWADDR", N_("HWADDR"), 19, NULL, 0}, /* 6 */ - {"STATE", N_("STATE"), 14, NULL, 0}, /* 7 */ - {"REASON", N_("REASON"), 25, NULL, 0}, /* 8 */ - {"UDI", N_("UDI"), 64, NULL, 0}, /* 9 */ - {"IP-IFACE", N_("IP-IFACE"), 10, NULL, 0}, /* 10 */ - {"NM-MANAGED", N_("NM-MANAGED"), 15, NULL, 0}, /* 11 */ - {"FIRMWARE-MISSING", N_("FIRMWARE-MISSING"), 18, NULL, 0}, /* 12 */ - {"CONNECTION", N_("CONNECTION"), 51, NULL, 0}, /* 13 */ + {"DRIVER-VERSION", N_("DRIVER-VERSION"), 18, NULL, 0}, /* 6 */ + {"FIRMWARE-VERSION", N_("FIRMWARE-VERSION"), 18, NULL, 0}, /* 7 */ + {"HWADDR", N_("HWADDR"), 19, NULL, 0}, /* 8 */ + {"STATE", N_("STATE"), 14, NULL, 0}, /* 9 */ + {"REASON", N_("REASON"), 25, NULL, 0}, /* 10 */ + {"UDI", N_("UDI"), 64, NULL, 0}, /* 11 */ + {"IP-IFACE", N_("IP-IFACE"), 10, NULL, 0}, /* 12 */ + {"NM-MANAGED", N_("NM-MANAGED"), 15, NULL, 0}, /* 13 */ + {"AUTOCONNECT", N_("AUTOCONNECT"), 15, NULL, 0}, /* 14 */ + {"FIRMWARE-MISSING", N_("FIRMWARE-MISSING"), 18, NULL, 0}, /* 15 */ + {"CONNECTION", N_("CONNECTION"), 51, NULL, 0}, /* 16 */ {NULL, NULL, 0, NULL, 0} }; -#define NMC_FIELDS_DEV_LIST_GENERAL_ALL "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,HWADDR,STATE,REASON,UDI,IP-IFACE,NM-MANAGED,FIRMWARE-MISSING,CONNECTION" +#define NMC_FIELDS_DEV_LIST_GENERAL_ALL "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,DRIVER-VERSION,FIRMWARE-VERSION,HWADDR,STATE,REASON,UDI,IP-IFACE,NM-MANAGED,AUTOCONNECT,FIRMWARE-MISSING,CONNECTION" #define NMC_FIELDS_DEV_LIST_GENERAL_COMMON "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,HWADDR,STATE" /* Available fields for 'dev list' - CAPABILITIES part */ @@ -208,6 +214,8 @@ static NmcOutputField nmc_fields_dev_wimax_list[] = { /* glib main loop variable - defined in nmcli.c */ extern GMainLoop *loop; +static guint progress_id = 0; /* ID of event source for displaying progress */ + static void usage (void) { @@ -222,6 +230,8 @@ usage (void) " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" " wifi [list [iface <iface>] [bssid <BSSID>]]\n" + " wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [iface <iface>] [bssid <BSSID>] [name <name>]\n" + " [--private] [--nowait] [--timeout <timeout>]\n" #if WITH_WIMAX " wimax [list [iface <iface>] [nsp <name>]]\n\n" #endif @@ -232,201 +242,12 @@ usage (void) static void quit (void) { - g_main_loop_quit (loop); /* quit main loop */ -} - -static const char * -device_state_to_string (NMDeviceState state) -{ - switch (state) { - case NM_DEVICE_STATE_UNMANAGED: - return _("unmanaged"); - case NM_DEVICE_STATE_UNAVAILABLE: - return _("unavailable"); - case NM_DEVICE_STATE_DISCONNECTED: - return _("disconnected"); - case NM_DEVICE_STATE_PREPARE: - return _("connecting (prepare)"); - case NM_DEVICE_STATE_CONFIG: - return _("connecting (configuring)"); - case NM_DEVICE_STATE_NEED_AUTH: - return _("connecting (need authentication)"); - case NM_DEVICE_STATE_IP_CONFIG: - return _("connecting (getting IP configuration)"); - case NM_DEVICE_STATE_IP_CHECK: - return _("connecting (checking IP connectivity)"); - case NM_DEVICE_STATE_SECONDARIES: - return _("connecting (starting secondary connections)"); - case NM_DEVICE_STATE_ACTIVATED: - return _("connected"); - case NM_DEVICE_STATE_DEACTIVATING: - return _("deactivating"); - case NM_DEVICE_STATE_FAILED: - return _("connection failed"); - default: - return _("unknown"); + if (progress_id) { + g_source_remove (progress_id); + nmc_terminal_erase_line (); } -} - -static const char * -device_reason_to_string (NMDeviceStateReason reason) -{ - switch (reason) { - case NM_DEVICE_STATE_REASON_NONE: - return _("No reason given"); - - case NM_DEVICE_STATE_REASON_UNKNOWN: - return _("Unknown error"); - - case NM_DEVICE_STATE_REASON_NOW_MANAGED: - return _("Device is now managed"); - - case NM_DEVICE_STATE_REASON_NOW_UNMANAGED: - return _("Device is now unmanaged"); - - case NM_DEVICE_STATE_REASON_CONFIG_FAILED: - return _("The device could not be readied for configuration"); - - case NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE: - return _("IP configuration could not be reserved (no available address, timeout, etc)"); - - case NM_DEVICE_STATE_REASON_IP_CONFIG_EXPIRED: - return _("The IP configuration is no longer valid"); - - case NM_DEVICE_STATE_REASON_NO_SECRETS: - return _("Secrets were required, but not provided"); - - case NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT: - return _("802.1X supplicant disconnected"); - - case NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED: - return _("802.1X supplicant configuration failed"); - - case NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED: - return _("802.1X supplicant failed"); - - case NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT: - return _("802.1X supplicant took too long to authenticate"); - - case NM_DEVICE_STATE_REASON_PPP_START_FAILED: - return _("PPP service failed to start"); - - case NM_DEVICE_STATE_REASON_PPP_DISCONNECT: - return _("PPP service disconnected"); - - case NM_DEVICE_STATE_REASON_PPP_FAILED: - return _("PPP failed"); - - case NM_DEVICE_STATE_REASON_DHCP_START_FAILED: - return _("DHCP client failed to start"); - - case NM_DEVICE_STATE_REASON_DHCP_ERROR: - return _("DHCP client error"); - - case NM_DEVICE_STATE_REASON_DHCP_FAILED: - return _("DHCP client failed"); - - case NM_DEVICE_STATE_REASON_SHARED_START_FAILED: - return _("Shared connection service failed to start"); - - case NM_DEVICE_STATE_REASON_SHARED_FAILED: - return _("Shared connection service failed"); - - case NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED: - return _("AutoIP service failed to start"); - - case NM_DEVICE_STATE_REASON_AUTOIP_ERROR: - return _("AutoIP service error"); - - case NM_DEVICE_STATE_REASON_AUTOIP_FAILED: - return _("AutoIP service failed"); - - case NM_DEVICE_STATE_REASON_MODEM_BUSY: - return _("The line is busy"); - - case NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE: - return _("No dial tone"); - - case NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER: - return _("No carrier could be established"); - case NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT: - return _("The dialing request timed out"); - - case NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED: - return _("The dialing attempt failed"); - - case NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED: - return _("Modem initialization failed"); - - case NM_DEVICE_STATE_REASON_GSM_APN_FAILED: - return _("Failed to select the specified APN"); - - case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING: - return _("Not searching for networks"); - - case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED: - return _("Network registration denied"); - - case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT: - return _("Network registration timed out"); - - case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED: - return _("Failed to register with the requested network"); - - case NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED: - return _("PIN check failed"); - - case NM_DEVICE_STATE_REASON_FIRMWARE_MISSING: - return _("Necessary firmware for the device may be missing"); - - case NM_DEVICE_STATE_REASON_REMOVED: - return _("The device was removed"); - - case NM_DEVICE_STATE_REASON_SLEEPING: - return _("NetworkManager went to sleep"); - - case NM_DEVICE_STATE_REASON_CONNECTION_REMOVED: - return _("The device's active connection disappeared"); - - case NM_DEVICE_STATE_REASON_USER_REQUESTED: - return _("Device disconnected by user or client"); - - case NM_DEVICE_STATE_REASON_CARRIER: - return _("Carrier/link changed"); - - case NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED: - return _("The device's existing connection was assumed"); - - case NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE: - return _("The supplicant is now available"); - - case NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND: - return _("The modem could not be found"); - - case NM_DEVICE_STATE_REASON_BT_FAILED: - return _("The Bluetooth connection failed or timed out"); - - case NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED: - return _("GSM Modem's SIM card not inserted"); - - case NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED: - return _("GSM Modem's SIM PIN required"); - - case NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED: - return _("GSM Modem's SIM PUK required"); - - case NM_DEVICE_STATE_REASON_GSM_SIM_WRONG: - return _("GSM Modem's SIM wrong"); - - case NM_DEVICE_STATE_REASON_INFINIBAND_MODE: - return _("InfiniBand device does not support connected mode"); - - case NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED: - return _("A dependency of the connection failed"); - default: - return _("Unknown"); - } + g_main_loop_quit (loop); /* quit main loop */ } /* Convert device type to string. Use setting names strings to match with @@ -440,6 +261,8 @@ device_type_to_string (NMDevice *device) switch (nm_device_get_device_type (device)) { case NM_DEVICE_TYPE_ETHERNET: return NM_SETTING_WIRED_SETTING_NAME; + case NM_DEVICE_TYPE_ADSL: + return NM_SETTING_ADSL_SETTING_NAME; case NM_DEVICE_TYPE_WIFI: return NM_SETTING_WIRELESS_SETTING_NAME; case NM_DEVICE_TYPE_MODEM: @@ -505,7 +328,7 @@ ap_wpa_rsn_flags_to_string (NM80211ApSecurityFlags flags) i = 0; while (flags_str[i]) - g_free (flags_str[i++]); + g_free (flags_str[i++]); return ret_str; } @@ -745,8 +568,8 @@ show_device_info (gpointer data, gpointer user_data) else if (NM_IS_DEVICE_VLAN (device)) hwaddr = nm_device_vlan_get_hw_address (NM_DEVICE_VLAN (device)); - state_str = g_strdup_printf ("%d (%s)", state, device_state_to_string (state)); - reason_str = g_strdup_printf ("%d (%s)", reason, device_reason_to_string (reason)); + state_str = g_strdup_printf ("%d (%s)", state, nmc_device_state_to_string (state)); + reason_str = g_strdup_printf ("%d (%s)", reason, nmc_device_reason_to_string (reason)); nmc->allowed_fields[0].value = nmc_fields_dev_list_sections[0].name; /* "GENERAL"*/ nmc->allowed_fields[1].value = nm_device_get_iface (device); @@ -754,14 +577,17 @@ show_device_info (gpointer data, gpointer user_data) nmc->allowed_fields[3].value = nm_device_get_vendor (device); nmc->allowed_fields[4].value = nm_device_get_product (device); nmc->allowed_fields[5].value = nm_device_get_driver (device) ? nm_device_get_driver (device) : _("(unknown)"); - nmc->allowed_fields[6].value = hwaddr ? hwaddr : _("(unknown)"); - nmc->allowed_fields[7].value = state_str; - nmc->allowed_fields[8].value = reason_str; - nmc->allowed_fields[9].value = nm_device_get_udi (device); - nmc->allowed_fields[10].value = nm_device_get_ip_iface (device); - nmc->allowed_fields[11].value = nm_device_get_managed (device) ? _("yes") : _("no"); - nmc->allowed_fields[12].value = nm_device_get_firmware_missing (device) ? _("yes") : _("no"); - nmc->allowed_fields[13].value = (acon = nm_device_get_active_connection (device)) ? + nmc->allowed_fields[6].value = nm_device_get_driver_version (device); + nmc->allowed_fields[7].value = nm_device_get_firmware_version (device); + nmc->allowed_fields[8].value = hwaddr ? hwaddr : _("(unknown)"); + nmc->allowed_fields[9].value = state_str; + nmc->allowed_fields[10].value = reason_str; + nmc->allowed_fields[11].value = nm_device_get_udi (device); + nmc->allowed_fields[12].value = nm_device_get_ip_iface (device); + nmc->allowed_fields[13].value = nm_device_get_managed (device) ? _("yes") : _("no"); + nmc->allowed_fields[14].value = nm_device_get_autoconnect (device) ? _("yes") : _("no"); + nmc->allowed_fields[15].value = nm_device_get_firmware_missing (device) ? _("yes") : _("no"); + nmc->allowed_fields[16].value = (acon = nm_device_get_active_connection (device)) ? nm_object_get_path (NM_OBJECT (acon)) : _("not connected"); nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_SECTION_PREFIX; @@ -975,7 +801,7 @@ show_device_status (NMDevice *device, NmCli *nmc) { nmc->allowed_fields[0].value = nm_device_get_iface (device); nmc->allowed_fields[1].value = device_type_to_string (device); - nmc->allowed_fields[2].value = device_state_to_string (nm_device_get_state (device)); + nmc->allowed_fields[2].value = nmc_device_state_to_string (nm_device_get_state (device)); nmc->allowed_fields[3].value = nm_object_get_path (NM_OBJECT (device)); nmc->print_fields.flags &= ~NMC_PF_FLAG_MAIN_HEADER_ADD & ~NMC_PF_FLAG_MAIN_HEADER_ONLY & ~NMC_PF_FLAG_FIELD_NAMES; /* Clear header flags */ @@ -1110,7 +936,7 @@ do_devices_list (NmCli *nmc, int argc, char **argv) device = candidate; } if (!device) { - g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), iface); + g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), iface); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1151,6 +977,16 @@ timeout_cb (gpointer user_data) return FALSE; } +static gboolean +progress_cb (gpointer user_data) +{ + NMDevice *device = (NMDevice *) user_data; + + nmc_terminal_show_progress (device ? nmc_device_state_to_string (nm_device_get_state (device)) : ""); + + return TRUE; +} + static void disconnect_device_cb (NMDevice *device, GError *error, gpointer user_data) { @@ -1166,10 +1002,13 @@ disconnect_device_cb (NMDevice *device, GError *error, gpointer user_data) quit (); } else { state = nm_device_get_state (device); - printf (_("Device state: %d (%s)\n"), state, device_state_to_string (state)); if (nmc->nowait_flag || state == NM_DEVICE_STATE_DISCONNECTED) { /* Don't want to wait or device already disconnected */ + if (state == NM_DEVICE_STATE_DISCONNECTED && nmc->print_output == NMC_PRINT_PRETTY) { + nmc_terminal_erase_line (); + printf (_("Device '%s' has been disconnected.\n"), nm_device_get_iface (device)); + } quit (); } else { g_signal_connect (device, "notify::state", G_CALLBACK (device_state_cb), nmc); @@ -1273,6 +1112,10 @@ do_device_disconnect (NmCli *nmc, int argc, char **argv) nmc->should_wait = TRUE; nm_device_disconnect (device, disconnect_device_cb, nmc); + /* Start progress indication */ + if (nmc->print_output == NMC_PRINT_PRETTY) + progress_id = g_timeout_add (120, progress_cb, device); + error: return nmc->return_value; } @@ -1399,7 +1242,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) } if (!device) { - g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), iface); + g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), iface); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1419,7 +1262,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) g_free (bssid_up); } if (!ap) { - g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."), bssid_user); + g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."), bssid_user); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1436,7 +1279,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) show_acces_point_info (device, nmc); } } else { - g_string_printf (nmc->return_text, _("Error: Device '%s' is not a WiFi device."), iface); + g_string_printf (nmc->return_text, _("Error: Device '%s' is not a WiFi device."), iface); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1473,7 +1316,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) } } if (!ap) { - g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."), bssid_user); + g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."), bssid_user); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1490,6 +1333,433 @@ error: return nmc->return_value; } +static void +monitor_device_state_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data) +{ + NmCli *nmc = (NmCli *) user_data; + NMDeviceState state; + NMDeviceStateReason reason; + + state = nm_device_get_state_reason (device, &reason); + + if (state == NM_DEVICE_STATE_ACTIVATED) { + if (nmc->print_output == NMC_PRINT_PRETTY) { + NMActiveConnection *active = nm_device_get_active_connection (device); + + nmc_terminal_erase_line (); + printf (_("Connection with UUID '%s' created and activated on device '%s'\n"), + nm_active_connection_get_uuid (active), nm_device_get_iface (device)); + } + quit (); + } else if (state == NM_DEVICE_STATE_FAILED) { + g_string_printf (nmc->return_text, _("Error: Connection activation failed: (%d) %s."), + reason, nmc_device_reason_to_string (reason)); + nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; + quit (); + } +} + +typedef struct { + NmCli *nmc; + NMDevice *device; +} AddAndActivateInfo; + +static void +add_and_activate_cb (NMClient *client, + NMActiveConnection *active, + const char *connection_path, + GError *error, + gpointer user_data) +{ + AddAndActivateInfo *info = (AddAndActivateInfo *) user_data; + NmCli *nmc = info->nmc; + NMDevice *device = info->device; + NMActiveConnectionState state; + + if (error) { + g_string_printf (nmc->return_text, _("Error: Failed to add/activate new connection: (%d) %s"), + error->code, error->message); + nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; + quit (); + } else { + state = nm_active_connection_get_state (active); + + if (state == NM_ACTIVE_CONNECTION_STATE_UNKNOWN) { + g_string_printf (nmc->return_text, _("Error: Failed to add/activate new connection: Unknown error")); + nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION; + quit (); + } + + if (nmc->nowait_flag || state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { + /* User doesn't want to wait or already activated */ + if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED && nmc->print_output == NMC_PRINT_PRETTY) { + printf (_("Connection with UUID '%s' created and activated on device '%s'\n"), + nm_active_connection_get_uuid (active), nm_device_get_iface (device)); + } + quit (); + } else { + g_signal_connect (device, "notify::state", G_CALLBACK (monitor_device_state_cb), nmc); + g_timeout_add_seconds (nmc->timeout, timeout_cb, nmc); /* Exit if timeout expires */ + + if (nmc->print_output == NMC_PRINT_PRETTY) + progress_id = g_timeout_add (120, progress_cb, device); + } + } + + g_free (info); +} + +/* + * Find a Wi-Fi device with 'iface' in 'devices' array. If 'iface' is NULL, + * the first Wi-Fi device is returned. 'idx' parameter is updated to the point + * where the function finished so that the function can be called repeatedly + * to get next matching device. + * Returns: found device or NULL + */ +static NMDevice * +find_wifi_device_by_iface (const GPtrArray *devices, const char *iface, int *idx) +{ + NMDevice *device = NULL; + int i; + + for (i = *idx; devices && (i < devices->len); i++) { + NMDevice *candidate = g_ptr_array_index (devices, i); + const char *dev_iface = nm_device_get_iface (candidate); + + if (!NM_IS_DEVICE_WIFI (candidate)) + continue; + + if (iface) { + /* If a iface was specified then use it. */ + if (strcmp (dev_iface, iface) == 0) { + device = candidate; + break; + } + } else { + /* Else return the first Wi-Fi device. */ + device = candidate; + break; + } + } + + *idx = i + 1; + return device; +} + +/* + * Find AP on 'device' according to 'bssid' or 'ssid' parameter. + * Returns: found AP or NULL + */ +static NMAccessPoint * +find_ap_on_device (NMDevice *device, GByteArray *bssid, const char *ssid) +{ + const GPtrArray *aps; + NMAccessPoint *ap = NULL; + int i; + + g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL); + g_return_val_if_fail ((bssid && !ssid) || (!bssid && ssid), NULL); + + aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (device)); + for (i = 0; aps && (i < aps->len); i++) { + NMAccessPoint *candidate_ap = g_ptr_array_index (aps, i); + + if (ssid) { + /* Parameter is SSID */ + const GByteArray *candidate_ssid = nm_access_point_get_ssid (candidate_ap); + char *ssid_tmp = nm_utils_ssid_to_utf8 (candidate_ssid); + + /* Compare SSIDs */ + if (strcmp (ssid, ssid_tmp) == 0) { + ap = candidate_ap; + g_free (ssid_tmp); + break; + } + g_free (ssid_tmp); + } else if (bssid) { + /* Parameter is BSSID */ + const char *candidate_bssid = nm_access_point_get_bssid (candidate_ap); + char *bssid_up = nm_utils_hwaddr_ntoa (bssid->data, ARPHRD_ETHER); + + /* Compare BSSIDs */ + if (strcmp (bssid_up, candidate_bssid) == 0) { + ap = candidate_ap; + g_free (bssid_up); + break; + } + g_free (bssid_up); + } + } + + return ap; +} + +static NMCResultCode +do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) +{ + NMDevice *device = NULL; + NMAccessPoint *ap = NULL; + NMConnection *connection = NULL; + NMSettingConnection *s_con; + NMSettingWireless *s_wifi; + NMSettingWirelessSecurity *s_wsec; + AddAndActivateInfo *info; + const char *param_user = NULL; + const char *iface = NULL; + const char *bssid = NULL; + const char *password = NULL; + const char *con_name = NULL; + gboolean private = FALSE; + gboolean wait = TRUE; + gboolean wep_passphrase = FALSE; + GByteArray *bssid1_arr = NULL; + GByteArray *bssid2_arr = NULL; + const GPtrArray *devices; + int devices_idx; + GError *error = NULL; + + /* Default timeout for waiting for operation completion */ + nmc->timeout = 90; + + /* Get the first compulsory argument (SSID or BSSID) */ + if (argc > 0) { + param_user = *argv; + bssid1_arr = nm_utils_hwaddr_atoba (param_user, ARPHRD_ETHER); + + argc--; + argv++; + } else { + g_string_printf (nmc->return_text, _("Error: SSID or BSSID are missing.")); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + + /* Get the rest of the parameters */ + while (argc > 0) { + if (strcmp (*argv, "iface") == 0) { + if (next_arg (&argc, &argv) != 0) { + g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + iface = *argv; + } else if (strcmp (*argv, "bssid") == 0) { + if (next_arg (&argc, &argv) != 0) { + g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + bssid = *argv; + bssid2_arr = nm_utils_hwaddr_atoba (bssid, ARPHRD_ETHER); + if (!bssid2_arr) { + g_string_printf (nmc->return_text, _("Error: bssid argument value '%s' is not a valid BSSID."), + bssid); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + } else if (strcmp (*argv, "password") == 0) { + if (next_arg (&argc, &argv) != 0) { + g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + password = *argv; + } else if (strcmp (*argv, "wep-key-type") == 0) { + if (next_arg (&argc, &argv) != 0) { + g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + if (strcmp (*argv, "key") == 0) + wep_passphrase = FALSE; + else if (strcmp (*argv, "phrase") == 0) + wep_passphrase = TRUE; + else { + g_string_printf (nmc->return_text, + _("Error: wep-key-type argument value '%s' is invalid, use 'key' or 'phrase'."), + *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + } else if (strcmp (*argv, "name") == 0) { + if (next_arg (&argc, &argv) != 0) { + g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + con_name = *argv; + } else if (strcmp (*argv, "--private") == 0) { + private = TRUE; + } else if (strcmp (*argv, "--nowait") == 0) { + wait = FALSE; + } else if (strcmp (*argv, "--timeout") == 0) { + if (next_arg (&argc, &argv) != 0) { + g_string_printf (nmc->return_text, _("Error: %s argument is missing."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + + errno = 0; + nmc->timeout = strtol (*argv, NULL, 10); + if (errno || nmc->timeout < 0) { + g_string_printf (nmc->return_text, _("Error: timeout value '%s' is not valid."), *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + } else { + fprintf (stderr, _("Unknown parameter: %s\n"), *argv); + } + + argc--; + argv++; + } + + /* Verify SSID/BSSID parameters */ + if (bssid1_arr && bssid2_arr && memcmp (bssid1_arr->data, bssid2_arr->data, ETH_ALEN)) { + g_string_printf (nmc->return_text, _("Error: BSSID to connect to (%s) differs from bssid argument (%s)."), + param_user, bssid); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } + if (!bssid1_arr && strlen (param_user) > 32) { + g_string_printf (nmc->return_text, _("Error: Parameter '%s' is neither SSID nor BSSID."), param_user); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + 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; + } + + if (!nmc_versions_match (nmc)) + goto error; + + nmc->get_client (nmc); + devices = nm_client_get_devices (nmc->client); + + /* Find a device to activate the connection on */ + devices_idx = 0; + device = find_wifi_device_by_iface (devices, iface, &devices_idx); + + if (!device) { + if (iface) + g_string_printf (nmc->return_text, _("Error: Device '%s' is not a Wi-Fi device."), iface); + else + g_string_printf (nmc->return_text, _("Error: No Wi-Fi device found.")); + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + goto error; + } + + /* Find an AP to connect to */ + ap = find_ap_on_device (device, bssid1_arr, bssid1_arr ? NULL : param_user); + if (!ap && !iface) { + /* AP not found. iface was not specified, so try finding the AP on another device. */ + while ((device = find_wifi_device_by_iface (devices, NULL, &devices_idx)) != NULL) { + ap = find_ap_on_device (device, bssid1_arr, bssid1_arr ? NULL : param_user); + if (ap) + break; + } + } + + if (!ap) { + if (!bssid1_arr) + g_string_printf (nmc->return_text, _("Error: No network with SSID '%s' found."), param_user); + else + g_string_printf (nmc->return_text, _("Error: No access point with BSSID '%s' found."), param_user); + nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; + goto error; + } + + /* If there are some connection data from user, create a connection and + * fill them into proper settings. */ + if (con_name || private || bssid2_arr || password) + connection = nm_connection_new (); + + if (con_name || private) { + s_con = (NMSettingConnection *) nm_setting_connection_new (); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + + /* Set user provided connection name */ + if (con_name) + g_object_set (s_con, NM_SETTING_CONNECTION_ID, con_name, NULL); + + /* Connection will only be visible to this user when '--private' is specified */ + if (private) + nm_setting_connection_add_permission (s_con, "user", g_get_user_name (), NULL); + } + if (bssid2_arr) { + s_wifi = (NMSettingWireless *) nm_setting_wireless_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wifi)); + + /* 'bssid' parameter is used to restrict the conenction only to the BSSID */ + g_object_set (s_wifi, NM_SETTING_WIRELESS_BSSID, bssid2_arr, NULL); + } + if (password) { + NM80211ApFlags flags = nm_access_point_get_flags (ap); + NM80211ApSecurityFlags wpa_flags = nm_access_point_get_wpa_flags (ap); + NM80211ApSecurityFlags rsn_flags = nm_access_point_get_rsn_flags (ap); + + s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new (); + nm_connection_add_setting (connection, NM_SETTING (s_wsec)); + + /* Set password for WEP or WPA-PSK. */ + if (flags & NM_802_11_AP_FLAGS_PRIVACY) { + if (wpa_flags == NM_802_11_AP_SEC_NONE && rsn_flags == NM_802_11_AP_SEC_NONE) { + /* WEP */ + nm_setting_wireless_security_set_wep_key (s_wsec, 0, password); + g_object_set (G_OBJECT (s_wsec), + NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, + wep_passphrase ? NM_WEP_KEY_TYPE_PASSPHRASE: NM_WEP_KEY_TYPE_KEY, + NULL); + } else if ( !(wpa_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X) + && !(rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_802_1X)) { + /* WPA PSK */ + g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_PSK, password, NULL); + } + } + // FIXME: WPA-Enterprise is not supported yet. + // We are not able to determine and fill all the parameters for + // 802.1X authentication automatically without user providing + // the data. Adding nmcli options for the 8021x setting would + // clutter the command. However, that could be solved later by + // implementing add/edit connections support for nmcli. + } + + /* nowait_flag indicates user input. should_wait says whether quit in start(). + * We have to delay exit after add_and_activate_cb() is called, even if + * the user doesn't want to wait, in order to give NM time to check our + * permissions. */ + nmc->nowait_flag = !wait; + nmc->should_wait = TRUE; + + info = g_malloc0 (sizeof (AddAndActivateInfo)); + info->nmc = nmc; + info->device = device; + + nm_client_add_and_activate_connection (nmc->client, + connection, + device, + nm_object_get_path (NM_OBJECT (ap)), + add_and_activate_cb, + info); + +error: + if (bssid1_arr) + g_byte_array_free (bssid1_arr, TRUE); + if (bssid2_arr) + g_byte_array_free (bssid2_arr, TRUE); + + return nmc->return_value; +} + static NMCResultCode do_device_wifi (NmCli *nmc, int argc, char **argv) { @@ -1498,8 +1768,9 @@ do_device_wifi (NmCli *nmc, int argc, char **argv) else if (argc > 0) { if (matches (*argv, "list") == 0) { nmc->return_value = do_device_wifi_list (nmc, argc-1, argv+1); - } - else { + } else if (matches (*argv, "connect") == 0) { + nmc->return_value = do_device_wifi_connect_network (nmc, argc-1, argv+1); + } else { g_string_printf (nmc->return_text, _("Error: 'dev wifi' command '%s' is not valid."), *argv); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; } @@ -1618,7 +1889,7 @@ do_device_wimax_list (NmCli *nmc, int argc, char **argv) } if (!device) { - g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), iface); + g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), iface); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1638,7 +1909,7 @@ do_device_wimax_list (NmCli *nmc, int argc, char **argv) g_free (nsp_up); } if (!nsp) { - g_string_printf (nmc->return_text, _("Error: NSP with name '%s' not found."), nsp_user); + g_string_printf (nmc->return_text, _("Error: NSP with name '%s' not found."), nsp_user); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1649,7 +1920,7 @@ do_device_wimax_list (NmCli *nmc, int argc, char **argv) show_nsp_info (device, nmc); } } else { - g_string_printf (nmc->return_text, _("Error: Device '%s' is not a WiMAX device."), iface); + g_string_printf (nmc->return_text, _("Error: Device '%s' is not a WiMAX device."), iface); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -1680,7 +1951,7 @@ do_device_wimax_list (NmCli *nmc, int argc, char **argv) } } if (!nsp) { - g_string_printf (nmc->return_text, _("Error: Access point with nsp '%s' not found."), nsp_user); + g_string_printf (nmc->return_text, _("Error: Access point with nsp '%s' not found."), nsp_user); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } diff --git a/cli/src/network-manager.c b/cli/src/network-manager.c index c23c9fae..927eadd1 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 - 2011 Red Hat, Inc. + * (C) Copyright 2010 - 2012 Red Hat, Inc. */ #include "config.h" @@ -57,6 +57,16 @@ static NmcOutputField nmc_fields_nm_status[] = { #define NMC_FIELDS_NM_WWAN "WWAN" #define NMC_FIELDS_NM_WIMAX "WIMAX" +/* Available fields for 'nm permissions' */ +static NmcOutputField nmc_fields_nm_permissions[] = { + {"PERMISSION", N_("PERMISSION"), 57, NULL, 0}, /* 0 */ + {"VALUE", N_("VALUE"), 10, NULL, 0}, /* 1 */ + {NULL, NULL, 0, NULL, 0} +}; +#define NMC_FIELDS_NM_PERMISSIONS_ALL "PERMISSION,VALUE" +#define NMC_FIELDS_NM_PERMISSIONS_COMMON "PERMISSION,VALUE" + + /* glib main loop variable - defined in nmcli.c */ extern GMainLoop *loop; @@ -66,18 +76,20 @@ usage (void) fprintf (stderr, _("Usage: nmcli nm { COMMAND | help }\n\n" #if WITH_WIMAX - " COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n\n" + " COMMAND := { status | permissions | enable | sleep | wifi | wwan | wimax }\n\n" #else - " COMMAND := { status | enable | sleep | wifi | wwan }\n\n" + " COMMAND := { status | permissions | enable | sleep | wifi | wwan }\n\n" #endif " status\n" + " permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" " wwan [on|off]\n" #if WITH_WIMAX - " wimax [on|off]\n\n" + " wimax [on|off]\n" #endif + "\n" )); } @@ -135,7 +147,7 @@ show_nm_status (NmCli *nmc) fields_str = fields_common; else if (!nmc->required_fields || strcasecmp (nmc->required_fields, "all") == 0) fields_str = fields_all; - else + else fields_str = nmc->required_fields; nmc->allowed_fields = nmc_fields_nm_status; @@ -203,6 +215,129 @@ error: return nmc->return_value; } +#define NM_AUTH_PERMISSION_ENABLE_DISABLE_NETWORK "org.freedesktop.NetworkManager.enable-disable-network" +#define NM_AUTH_PERMISSION_ENABLE_DISABLE_WIFI "org.freedesktop.NetworkManager.enable-disable-wifi" +#define NM_AUTH_PERMISSION_ENABLE_DISABLE_WWAN "org.freedesktop.NetworkManager.enable-disable-wwan" +#define NM_AUTH_PERMISSION_ENABLE_DISABLE_WIMAX "org.freedesktop.NetworkManager.enable-disable-wimax" +#define NM_AUTH_PERMISSION_SLEEP_WAKE "org.freedesktop.NetworkManager.sleep-wake" +#define NM_AUTH_PERMISSION_NETWORK_CONTROL "org.freedesktop.NetworkManager.network-control" +#define NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED "org.freedesktop.NetworkManager.wifi.share.protected" +#define NM_AUTH_PERMISSION_WIFI_SHARE_OPEN "org.freedesktop.NetworkManager.wifi.share.open" +#define NM_AUTH_PERMISSION_SETTINGS_MODIFY_SYSTEM "org.freedesktop.NetworkManager.settings.modify.system" +#define NM_AUTH_PERMISSION_SETTINGS_MODIFY_OWN "org.freedesktop.NetworkManager.settings.modify.own" +#define NM_AUTH_PERMISSION_SETTINGS_MODIFY_HOSTNAME "org.freedesktop.NetworkManager.settings.modify.hostname" + +static const char * +permission_to_string (NMClientPermission perm) +{ + switch (perm) { + case NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK: + return NM_AUTH_PERMISSION_ENABLE_DISABLE_NETWORK; + case NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI: + return NM_AUTH_PERMISSION_ENABLE_DISABLE_WIFI; + case NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN: + return NM_AUTH_PERMISSION_ENABLE_DISABLE_WWAN; + case NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX: + return NM_AUTH_PERMISSION_ENABLE_DISABLE_WIMAX; + case NM_CLIENT_PERMISSION_SLEEP_WAKE: + return NM_AUTH_PERMISSION_SLEEP_WAKE; + case NM_CLIENT_PERMISSION_NETWORK_CONTROL: + return NM_AUTH_PERMISSION_NETWORK_CONTROL; + case NM_CLIENT_PERMISSION_WIFI_SHARE_PROTECTED: + return NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED; + case NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN: + return NM_AUTH_PERMISSION_WIFI_SHARE_OPEN; + case NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM: + return NM_AUTH_PERMISSION_SETTINGS_MODIFY_SYSTEM; + case NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN: + return NM_AUTH_PERMISSION_SETTINGS_MODIFY_OWN; + case NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME: + return NM_AUTH_PERMISSION_SETTINGS_MODIFY_HOSTNAME; + default: + return _("unknown"); + } +} + +static const char * +permission_result_to_string (NMClientPermissionResult perm_result) +{ + + switch (perm_result) { + case NM_CLIENT_PERMISSION_RESULT_YES: + return _("yes"); + case NM_CLIENT_PERMISSION_RESULT_NO: + return _("no"); + case NM_CLIENT_PERMISSION_RESULT_AUTH: + return _("auth"); + default: + return _("unknown"); + } +} + +static NMCResultCode +show_nm_permissions (NmCli *nmc) +{ + NMClientPermission perm; + GError *error = NULL; + const char *fields_str; + const char *fields_all = NMC_FIELDS_NM_PERMISSIONS_ALL; + const char *fields_common = NMC_FIELDS_NM_PERMISSIONS_COMMON; + guint32 mode_flag = (nmc->print_output == NMC_PRINT_PRETTY) ? NMC_PF_FLAG_PRETTY : (nmc->print_output == NMC_PRINT_TERSE) ? NMC_PF_FLAG_TERSE : 0; + guint32 multiline_flag = nmc->multiline_output ? NMC_PF_FLAG_MULTILINE : 0; + guint32 escape_flag = nmc->escape_values ? NMC_PF_FLAG_ESCAPE : 0; + + 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) + fields_str = fields_all; + else + fields_str = nmc->required_fields; + + nmc->allowed_fields = nmc_fields_nm_permissions; + nmc->print_fields.indices = parse_output_fields (fields_str, nmc->allowed_fields, &error); + + if (error) { + if (error->code == 0) + g_string_printf (nmc->return_text, _("Error: 'nm permissions': %s"), error->message); + else + g_string_printf (nmc->return_text, _("Error: 'nm permissions': %s; allowed fields: %s"), error->message, NMC_FIELDS_NM_PERMISSIONS_ALL); + g_error_free (error); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + return nmc->return_value; + } + + 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); /* create NMClient */ + + 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 = _("NetworkManager permissions"); + print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */ + + for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { + NMClientPermissionResult perm_result = nm_client_get_permission_result (nmc->client, perm); + + set_val_str (nmc->allowed_fields, 0, permission_to_string (perm)); + set_val_str (nmc->allowed_fields, 1, permission_result_to_string (perm_result)); + nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag; + print_fields (nmc->print_fields, nmc->allowed_fields); /* Print values */ + } + return NMC_RESULT_SUCCESS; + +error: + return nmc->return_value; +} + /* libnm-glib doesn't provide API fro Sleep method - implement D-Bus call ourselves */ static void networking_set_sleep (NmCli *nmc, gboolean in_sleep) { @@ -214,8 +349,8 @@ static void networking_set_sleep (NmCli *nmc, gboolean in_sleep) 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_error_free (err); - goto gone; + g_error_free (err); + goto gone; } proxy = dbus_g_proxy_new_for_name (connection, @@ -226,8 +361,8 @@ static void networking_set_sleep (NmCli *nmc, gboolean in_sleep) g_string_printf (nmc->return_text, _("Error: Couldn't create D-Bus object proxy.")); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto gone; - } - + } + if (!dbus_g_proxy_call (proxy, "Sleep", &err, G_TYPE_BOOLEAN, in_sleep, G_TYPE_INVALID, G_TYPE_INVALID)) { g_string_printf (nmc->return_text, _("Error in sleep: %s"), err->message); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; @@ -267,6 +402,11 @@ do_network_manager (NmCli *nmc, int argc, char **argv) goto opt_error; nmc->return_value = show_nm_status (nmc); } + else if (matches (*argv, "permissions") == 0) { + if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error)) + goto opt_error; + nmc->return_value = show_nm_permissions (nmc); + } else if (matches (*argv, "enable") == 0) { if (next_arg (&argc, &argv) != 0) { /* no argument, show current state of networking */ diff --git a/cli/src/settings.c b/cli/src/settings.c index bf422920..e67bd8f0 100644 --- a/cli/src/settings.c +++ b/cli/src/settings.c @@ -348,6 +348,26 @@ static NmcOutputField nmc_fields_setting_pppoe[] = { NM_SETTING_PPPOE_PASSWORD #define NMC_FIELDS_SETTING_PPPOE_COMMON NMC_FIELDS_SETTING_PPP_ALL +/* Available fields for NM_SETTING_ADSL_SETTING_NAME */ +static NmcOutputField nmc_fields_setting_adsl[] = { + SETTING_FIELD ("name", 10), /* 0 */ + SETTING_FIELD (NM_SETTING_ADSL_USERNAME, 15), /* 1 */ + SETTING_FIELD (NM_SETTING_ADSL_PASSWORD, 15), /* 2 */ + SETTING_FIELD (NM_SETTING_ADSL_VPI, 10), /* 3 */ + SETTING_FIELD (NM_SETTING_ADSL_VCI, 10), /* 4 */ + SETTING_FIELD (NM_SETTING_ADSL_ENCAPSULATION, 10), /* 5 */ + SETTING_FIELD (NM_SETTING_ADSL_PROTOCOL, 10), /* 6 */ + {NULL, NULL, 0, NULL, 0} +}; +#define NMC_FIELDS_SETTING_ADSL_ALL "name"","\ + NM_SETTING_ADSL_USERNAME","\ + NM_SETTING_ADSL_PASSWORD","\ + NM_SETTING_ADSL_VPI","\ + NM_SETTING_ADSL_VCI","\ + NM_SETTING_ADSL_ENCAPSULATION","\ + NM_SETTING_ADSL_PROTOCOL +#define NMC_FIELDS_SETTING_ADSL_COMMON NMC_FIELDS_SETTING_ADSL_ALL + /* Available fields for NM_SETTING_GSM_SETTING_NAME */ static NmcOutputField nmc_fields_setting_gsm[] = { SETTING_FIELD ("name", 10), /* 0 */ @@ -607,10 +627,11 @@ vlan_priorities_to_string (NMSettingVlan *s_vlan, NMVlanPriorityMap map) for (i = 0; i < nm_setting_vlan_get_num_priorities (s_vlan, map); i++) { guint32 from, to; - nm_setting_vlan_get_priority (s_vlan, map, i, &from, &to); - g_string_append_printf (priorities, "%d:%d,", from, to); + if (nm_setting_vlan_get_priority (s_vlan, map, i, &from, &to)) + g_string_append_printf (priorities, "%d:%d,", from, to); } - g_string_truncate (priorities, priorities->len-1); /* chop off trailing ',' */ + if (priorities->len) + g_string_truncate (priorities, priorities->len-1); /* chop off trailing ',' */ return g_string_free (priorities, FALSE); } @@ -917,11 +938,11 @@ setting_wireless_details (NMSettingWireless *s_wireless, NmCli *nmc) nmc->allowed_fields[2].value = nm_setting_wireless_get_mode (s_wireless); nmc->allowed_fields[3].value = nm_setting_wireless_get_band (s_wireless); nmc->allowed_fields[4].value = channel_str; - nmc->allowed_fields[5].value = bssid_str ? bssid_str : _("not set"); + nmc->allowed_fields[5].value = bssid_str; nmc->allowed_fields[6].value = rate_str; nmc->allowed_fields[7].value = tx_power_str; - nmc->allowed_fields[8].value = device_mac_str ? device_mac_str : _("not set"); - nmc->allowed_fields[9].value = cloned_mac_str ? cloned_mac_str : _("not set"); + nmc->allowed_fields[8].value = device_mac_str; + nmc->allowed_fields[9].value = cloned_mac_str; nmc->allowed_fields[10].value = mac_blacklist->str; nmc->allowed_fields[11].value = strcmp (mtu_str, "0") ? mtu_str : _("auto"); nmc->allowed_fields[12].value = seen_bssids->str; @@ -1715,3 +1736,34 @@ setting_vlan_details (NMSettingVlan *s_vlan, NmCli *nmc) return TRUE; } +gboolean +setting_adsl_details (NMSettingAdsl *s_adsl, NmCli *nmc) +{ + guint32 mode_flag = (nmc->print_output == NMC_PRINT_PRETTY) ? NMC_PF_FLAG_PRETTY : (nmc->print_output == NMC_PRINT_TERSE) ? NMC_PF_FLAG_TERSE : 0; + 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 (NM_IS_SETTING_ADSL (s_adsl), FALSE); + + nmc->allowed_fields = nmc_fields_setting_adsl; + nmc->print_fields.indices = parse_output_fields (NMC_FIELDS_SETTING_ADSL_ALL, nmc->allowed_fields, NULL); + nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_FIELD_NAMES; + print_fields (nmc->print_fields, nmc->allowed_fields); /* Print field names */ + + nmc->allowed_fields[0].value = NM_SETTING_ADSL_SETTING_NAME; + nmc->allowed_fields[1].value = nm_setting_adsl_get_username (s_adsl); + nmc->allowed_fields[2].value = nm_setting_adsl_get_password (s_adsl); + nmc->allowed_fields[3].value = g_strdup_printf ("%d", nm_setting_adsl_get_vpi (s_adsl)); + nmc->allowed_fields[4].value = g_strdup_printf ("%d", nm_setting_adsl_get_vci (s_adsl)); + nmc->allowed_fields[5].value = nm_setting_adsl_get_encapsulation (s_adsl); + nmc->allowed_fields[6].value = nm_setting_adsl_get_protocol (s_adsl); + + nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_SECTION_PREFIX; + print_fields (nmc->print_fields, nmc->allowed_fields); /* Print values */ + + g_free ((char*) nmc->allowed_fields[3].value); + g_free ((char*) nmc->allowed_fields[4].value); + + return TRUE; +} + diff --git a/cli/src/settings.h b/cli/src/settings.h index 964d6648..3309bd0a 100644 --- a/cli/src/settings.h +++ b/cli/src/settings.h @@ -22,6 +22,7 @@ #include <nm-setting-connection.h> #include <nm-setting-wired.h> +#include <nm-setting-adsl.h> #include <nm-setting-8021x.h> #include <nm-setting-wireless.h> #include <nm-setting-wireless-security.h> @@ -63,5 +64,6 @@ gboolean setting_wimax_details (NMSettingWimax *s_wimax, NmCli *nmc); gboolean setting_infiniband_details (NMSettingInfiniband *s_infiniband, NmCli *nmc); gboolean setting_bond_details (NMSettingBond *s_bond, NmCli *nmc); gboolean setting_vlan_details (NMSettingVlan *s_vlan, NmCli *nmc); +gboolean setting_adsl_details (NMSettingAdsl *s_adsl, NmCli *nmc); #endif /* NMC_SETTINGS_H */ diff --git a/cli/src/utils.c b/cli/src/utils.c index 24bc998c..8030d5e1 100644 --- a/cli/src/utils.c +++ b/cli/src/utils.c @@ -69,7 +69,7 @@ ssid_to_printable (const char *str, gsize len) int i; if (str == NULL || len == 0) - return NULL; + return NULL; if (g_utf8_validate (str, len, NULL)) return g_strdup_printf ("'%.*s'", (int) len, str); @@ -137,6 +137,38 @@ nmc_ip6_address_as_string (const struct in6_addr *ip, GError **error) } /* + * Erase terminal line using ANSI escape sequences. + * It prints <ESC>[2K sequence to erase the line and then \r to return back + * to the beginning of the line. + * + * http://www.termsys.demon.co.uk/vtansi.htm + */ +void +nmc_terminal_erase_line (void) +{ + printf ("\33[2K\r"); + fflush (stdout); +} + +/* + * Print animated progress for an operation. + * Repeated calls of the function will show rotating slash in terminal followed + * by the string passed in 'str' argument. + */ +void +nmc_terminal_show_progress (const char *str) +{ + static int idx = 0; + const char slashes[4] = {'|', '/', '-', '\\'}; + + nmc_terminal_erase_line (); + printf ("%c %s", slashes[idx++], str ? str : ""); + fflush (stdout); + if (idx == 4) + idx = 0; +} + +/* * Find out how many columns an UTF-8 string occupies on the screen */ int @@ -244,7 +276,7 @@ print_fields (const NmcPrintFields fields, const NmcOutputField field_values[]) int table_width = 0; char *line = NULL; char *indent_str; - const char *not_set_str = _("not set"); + const char *not_set_str = "--"; int i; gboolean multiline = fields.flags & NMC_PF_FLAG_MULTILINE; gboolean terse = fields.flags & NMC_PF_FLAG_TERSE; @@ -439,7 +471,7 @@ nmc_is_nm_running (NmCli *nmc, GError **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)")); diff --git a/cli/src/utils.h b/cli/src/utils.h index a22ae144..81ce1633 100644 --- a/cli/src/utils.h +++ b/cli/src/utils.h @@ -30,6 +30,8 @@ int next_arg (int *argc, char ***argv); char *ssid_to_printable (const char *str, gsize len); char *nmc_ip4_address_as_string (guint32 ip, GError **error); char *nmc_ip6_address_as_string (const struct in6_addr *ip, GError **error); +void nmc_terminal_erase_line (void); +void nmc_terminal_show_progress (const char *str); int nmc_string_screen_width (const char *start, const char *end); void set_val_str (NmcOutputField fields_array[], guint32 index, const char *value); void set_val_arr (NmcOutputField fields_array[], guint32 index, const char **value); diff --git a/configure b/configure index 3663c681..0dfc12ba 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for NetworkManager 0.9.4.0. +# Generated by GNU Autoconf 2.68 for NetworkManager 0.9.5.95. # # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>. # @@ -571,8 +571,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='NetworkManager' PACKAGE_TARNAME='NetworkManager' -PACKAGE_VERSION='0.9.4.0' -PACKAGE_STRING='NetworkManager 0.9.4.0' +PACKAGE_VERSION='0.9.5.95' +PACKAGE_STRING='NetworkManager 0.9.5.95' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' PACKAGE_URL='' @@ -618,6 +618,11 @@ am__EXEEXT_TRUE LTLIBOBJS WITH_TESTS_FALSE WITH_TESTS_TRUE +ENABLE_VAPIGEN_FALSE +ENABLE_VAPIGEN_TRUE +VAPIGEN_MAKEFILE +VAPIGEN_VAPIDIR +VAPIGEN GTK_DOC_USE_REBASE_FALSE GTK_DOC_USE_REBASE_TRUE GTK_DOC_USE_LIBTOOL_FALSE @@ -795,6 +800,12 @@ INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE +intltool__v_merge_options_0 +intltool__v_merge_options_ +INTLTOOL_V_MERGE_OPTIONS +INTLTOOL__v_MERGE_0 +INTLTOOL__v_MERGE_ +INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE @@ -969,6 +980,7 @@ with_html_dir enable_gtk_doc enable_gtk_doc_html enable_gtk_doc_pdf +enable_vala with_tests ' ac_precious_vars='build_alias @@ -1567,7 +1579,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.9.4.0 to adapt to many kinds of systems. +\`configure' configures NetworkManager 0.9.5.95 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1637,7 +1649,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of NetworkManager 0.9.4.0:";; + short | recursive ) echo "Configuration of NetworkManager 0.9.5.95:";; esac cat <<\_ACEOF @@ -1670,6 +1682,8 @@ Optional Features: --enable-gtk-doc use gtk-doc to build documentation [[default=no]] --enable-gtk-doc-html build documentation in html format [[default=yes]] --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] + --enable-vala=[no/auto/yes] + build Vala bindings [[default=auto]] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1861,7 +1875,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -NetworkManager configure 0.9.4.0 +NetworkManager configure 0.9.5.95 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2405,7 +2419,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.9.4.0, which was +It was created by NetworkManager $as_me 0.9.5.95, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3226,7 +3240,7 @@ fi # Define the identity of the package. PACKAGE='NetworkManager' - VERSION='0.9.4.0' + VERSION='0.9.5.95' cat >>confdefs.h <<_ACEOF @@ -16353,8 +16367,8 @@ fi NM_MAJOR_VERSION=0 NM_MINOR_VERSION=9 -NM_MICRO_VERSION=4 -NM_VERSION=0.9.4.0 +NM_MICRO_VERSION=5 +NM_VERSION=0.9.5.95 @@ -16685,14 +16699,12 @@ case "$am__api_version" in ;; esac +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "0.40.0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.40.0" >&5 $as_echo_n "checking for intltool >= 0.40.0... " >&6; } - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.40.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || @@ -16823,25 +16835,48 @@ if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi + + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' + + + + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' + + + + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' @@ -17160,7 +17195,7 @@ $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi @@ -20382,6 +20417,11 @@ fi +# dbus-glib uses GValueArray, which is deprecated as of GLib 2.32. +# Set GLIB_VERSION_MIN_REQUIRED to something less than that to avoid +# getting warnings. (GLIB_VERSION_2_26 is the oldest defined version.) +DBUS_CFLAGS="$DBUS_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26" + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 @@ -22669,7 +22709,7 @@ else fi if (test "${enable_concheck}" = "yes"); then - if test x"$have_concheck" = x"no"; then + if test x"$have_libsoup" = x"no"; then as_fn_error $? "Connectivity checking requires libsoup development headers" "$LINENO" 5 fi @@ -23072,6 +23112,247 @@ fi + + + + + + # Check whether --enable-vala was given. +if test "${enable_vala+set}" = set; then : + enableval=$enable_vala; +else + enable_vala=auto +fi + + + case $enable_vala in #( + no) : + ;; #( + yes) : + + if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then : + + as_fn_error $? "Vala bindings require GObject Introspection" "$LINENO" 5 + +fi + ;; #( + auto) : + + if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then : + + enable_vala=no + +fi + ;; #( + *) : + + as_fn_error $? "Invalid argument passed to --enable-vala, should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + + if test "x" = "x"; then : + + vapigen_pkg_name=vapigen + +else + + vapigen_pkg_name=vapigen- + +fi + if test "x0.17.1.24" = "x"; then : + + vapigen_pkg="$vapigen_pkg_name" + +else + + vapigen_pkg="$vapigen_pkg_name >= 0.17.1.24" + +fi + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}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 ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # 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_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # 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 ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # 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_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$vapigen_pkg\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$vapigen_pkg") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + if test "$enable_vala" = "auto"; then : + + enable_vala=yes + +fi + +else + + case $enable_vala in #( + yes) : + + as_fn_error $? "$vapigen_pkg not found" "$LINENO" 5 + ;; #( + auto) : + + enable_vala=no + ;; #( + *) : + ;; +esac + +fi + + case $enable_vala in #( + yes) : + + VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen + if test "x" = "x"; then : + + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen` + +else + + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen` + +fi + ;; #( + *) : + ;; +esac + + + + + + if test "x$enable_vala" = "xyes"; then + ENABLE_VAPIGEN_TRUE= + ENABLE_VAPIGEN_FALSE='#' +else + ENABLE_VAPIGEN_TRUE='#' + ENABLE_VAPIGEN_FALSE= +fi + + + + # Check whether --with-tests was given. if test "${with_tests+set}" = set; then : withval=$with_tests; @@ -23095,7 +23376,7 @@ case $with_tests in esac -ac_config_files="$ac_config_files Makefile include/Makefile include/nm-version.h src/Makefile src/tests/Makefile src/generated/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/wifi/Makefile src/firewall-manager/Makefile src/settings/Makefile src/settings/plugins/Makefile src/settings/plugins/ifupdown/Makefile src/settings/plugins/ifupdown/tests/Makefile src/settings/plugins/ifnet/Makefile src/settings/plugins/ifnet/tests/Makefile src/settings/plugins/ifcfg-rh/Makefile src/settings/plugins/ifcfg-rh/tests/Makefile src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile src/settings/plugins/ifcfg-suse/Makefile src/settings/plugins/keyfile/Makefile src/settings/plugins/keyfile/tests/Makefile src/settings/plugins/keyfile/tests/keyfiles/Makefile src/settings/tests/Makefile src/wimax/Makefile src/backends/Makefile libnm-util/libnm-util.pc libnm-util/Makefile libnm-util/tests/Makefile libnm-util/tests/certs/Makefile libnm-glib/libnm-glib.pc libnm-glib/libnm-glib-vpn.pc libnm-glib/Makefile libnm-glib/tests/Makefile callouts/Makefile callouts/tests/Makefile tools/Makefile cli/Makefile cli/src/Makefile test/Makefile initscript/Makefile initscript/RedHat/Makefile initscript/RedHat/NetworkManager initscript/Gentoo/Makefile initscript/Gentoo/NetworkManager initscript/Debian/Makefile initscript/Debian/NetworkManager initscript/Slackware/Makefile initscript/Slackware/rc.networkmanager initscript/SUSE/Makefile initscript/SUSE/networkmanager initscript/Arch/Makefile initscript/Arch/networkmanager initscript/paldo/Makefile initscript/paldo/NetworkManager initscript/Mandriva/Makefile initscript/Mandriva/networkmanager initscript/linexa/Makefile initscript/linexa/networkmanager introspection/Makefile introspection/all.xml man/Makefile man/NetworkManager.8 man/NetworkManager.conf.5 man/nm-system-settings.conf.5 man/nm-tool.1 man/nm-online.1 man/nmcli.1 po/Makefile.in policy/Makefile data/Makefile docs/Makefile docs/api/Makefile docs/api/version.xml docs/libnm-glib/Makefile docs/libnm-util/Makefile NetworkManager.pc examples/Makefile examples/shell/Makefile examples/python/Makefile examples/ruby/Makefile examples/C/Makefile examples/C/glib/Makefile examples/C/qt/Makefile" +ac_config_files="$ac_config_files Makefile include/Makefile include/nm-version.h src/Makefile src/tests/Makefile src/generated/Makefile src/logging/Makefile src/posix-signals/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/wifi/Makefile src/firewall-manager/Makefile src/settings/Makefile src/settings/plugins/Makefile src/settings/plugins/ifupdown/Makefile src/settings/plugins/ifupdown/tests/Makefile src/settings/plugins/ifnet/Makefile src/settings/plugins/ifnet/tests/Makefile src/settings/plugins/ifcfg-rh/Makefile src/settings/plugins/ifcfg-rh/tests/Makefile src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile src/settings/plugins/ifcfg-suse/Makefile src/settings/plugins/keyfile/Makefile src/settings/plugins/keyfile/tests/Makefile src/settings/plugins/keyfile/tests/keyfiles/Makefile src/settings/plugins/example/Makefile src/settings/tests/Makefile src/wimax/Makefile src/backends/Makefile libnm-util/libnm-util.pc libnm-util/Makefile libnm-util/tests/Makefile libnm-util/tests/certs/Makefile libnm-glib/libnm-glib.pc libnm-glib/libnm-glib-vpn.pc libnm-glib/Makefile libnm-glib/tests/Makefile callouts/Makefile callouts/tests/Makefile tools/Makefile cli/Makefile cli/src/Makefile test/Makefile initscript/Makefile initscript/RedHat/Makefile initscript/RedHat/NetworkManager initscript/Gentoo/Makefile initscript/Gentoo/NetworkManager initscript/Debian/Makefile initscript/Debian/NetworkManager initscript/Slackware/Makefile initscript/Slackware/rc.networkmanager initscript/SUSE/Makefile initscript/SUSE/networkmanager initscript/Arch/Makefile initscript/Arch/networkmanager initscript/paldo/Makefile initscript/paldo/NetworkManager initscript/Mandriva/Makefile initscript/Mandriva/networkmanager initscript/linexa/Makefile initscript/linexa/networkmanager introspection/Makefile introspection/all.xml man/Makefile man/NetworkManager.8 man/NetworkManager.conf.5 man/nm-system-settings.conf.5 man/nm-tool.1 man/nm-online.1 man/nmcli.1 po/Makefile.in policy/Makefile data/Makefile docs/Makefile docs/api/Makefile docs/api/version.xml docs/libnm-glib/Makefile docs/libnm-util/Makefile NetworkManager.pc examples/Makefile examples/shell/Makefile examples/python/Makefile examples/ruby/Makefile examples/C/Makefile examples/C/glib/Makefile examples/C/qt/Makefile vapi/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -23363,6 +23644,10 @@ if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}" as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_VAPIGEN_TRUE}" && test -z "${ENABLE_VAPIGEN_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_VAPIGEN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${WITH_TESTS_TRUE}" && test -z "${WITH_TESTS_FALSE}"; then as_fn_error $? "conditional \"WITH_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -23776,7 +24061,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.9.4.0, which was +This file was extended by NetworkManager $as_me 0.9.5.95, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23842,7 +24127,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -NetworkManager config.status 0.9.4.0 +NetworkManager config.status 0.9.5.95 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" @@ -24366,6 +24651,7 @@ do "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; "src/generated/Makefile") CONFIG_FILES="$CONFIG_FILES src/generated/Makefile" ;; "src/logging/Makefile") CONFIG_FILES="$CONFIG_FILES src/logging/Makefile" ;; + "src/posix-signals/Makefile") CONFIG_FILES="$CONFIG_FILES src/posix-signals/Makefile" ;; "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" ;; @@ -24392,6 +24678,7 @@ do "src/settings/plugins/keyfile/Makefile") CONFIG_FILES="$CONFIG_FILES src/settings/plugins/keyfile/Makefile" ;; "src/settings/plugins/keyfile/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/settings/plugins/keyfile/tests/Makefile" ;; "src/settings/plugins/keyfile/tests/keyfiles/Makefile") CONFIG_FILES="$CONFIG_FILES src/settings/plugins/keyfile/tests/keyfiles/Makefile" ;; + "src/settings/plugins/example/Makefile") CONFIG_FILES="$CONFIG_FILES src/settings/plugins/example/Makefile" ;; "src/settings/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/settings/tests/Makefile" ;; "src/wimax/Makefile") CONFIG_FILES="$CONFIG_FILES src/wimax/Makefile" ;; "src/backends/Makefile") CONFIG_FILES="$CONFIG_FILES src/backends/Makefile" ;; @@ -24453,6 +24740,7 @@ do "examples/C/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/Makefile" ;; "examples/C/glib/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/glib/Makefile" ;; "examples/C/qt/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/qt/Makefile" ;; + "vapi/Makefile") CONFIG_FILES="$CONFIG_FILES vapi/Makefile" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; @@ -26171,6 +26459,12 @@ fi echo libnl version: ${libnl_version} +if test "${ac_with_wext}" = "yes"; then + echo WEXT support: yes +else + echo WEXT support: no +fi + echo echo Building documentation: ${with_docs} echo Building tests: ${with_tests} diff --git a/configure.ac b/configure.ac index ed66b3d8..ed491dea 100644 --- a/configure.ac +++ b/configure.ac @@ -3,8 +3,8 @@ AC_PREREQ([2.63]) dnl The NM version number m4_define([nm_major_version], [0]) m4_define([nm_minor_version], [9]) -m4_define([nm_micro_version], [4]) -m4_define([nm_nano_version], [0]) +m4_define([nm_micro_version], [5]) +m4_define([nm_nano_version], [95]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version.nm_nano_version]) @@ -304,6 +304,11 @@ PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.75) AC_SUBST(DBUS_CFLAGS) AC_SUBST(DBUS_LIBS) +# dbus-glib uses GValueArray, which is deprecated as of GLib 2.32. +# Set GLIB_VERSION_MIN_REQUIRED to something less than that to avoid +# getting warnings. (GLIB_VERSION_2_26 is the oldest defined version.) +DBUS_CFLAGS="$DBUS_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26" + PKG_CHECK_MODULES(GLIB, gthread-2.0 glib-2.0 >= 2.22 gobject-2.0) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) @@ -692,7 +697,7 @@ PKG_CHECK_MODULES(LIBSOUP, [libsoup-2.4 >= 2.26], [have_libsoup=yes],[have_libso AC_ARG_ENABLE(concheck, AS_HELP_STRING([--enable-concheck], [enable connectivity checking support]), [enable_concheck=${enableval}], [enable_concheck=${have_libsoup}]) if (test "${enable_concheck}" = "yes"); then - if test x"$have_concheck" = x"no"; then + if test x"$have_libsoup" = x"no"; then AC_MSG_ERROR(Connectivity checking requires libsoup development headers) fi AC_SUBST(LIBSOUP_CFLAGS) @@ -707,6 +712,13 @@ NM_COMPILER_WARNINGS GTK_DOC_CHECK(1.0) + +dnl ------------------------- +dnl Vala bindings +dnl ------------------------- + +VAPIGEN_CHECK(0.17.1.24) + dnl dnl Tests dnl @@ -730,6 +742,7 @@ src/Makefile src/tests/Makefile src/generated/Makefile src/logging/Makefile +src/posix-signals/Makefile src/dns-manager/Makefile src/vpn-manager/Makefile src/dhcp-manager/Makefile @@ -756,6 +769,7 @@ src/settings/plugins/ifcfg-suse/Makefile src/settings/plugins/keyfile/Makefile src/settings/plugins/keyfile/tests/Makefile src/settings/plugins/keyfile/tests/keyfiles/Makefile +src/settings/plugins/example/Makefile src/settings/tests/Makefile src/wimax/Makefile src/backends/Makefile @@ -817,6 +831,7 @@ examples/ruby/Makefile examples/C/Makefile examples/C/glib/Makefile examples/C/qt/Makefile +vapi/Makefile ]) AC_OUTPUT @@ -873,6 +888,12 @@ fi echo libnl version: ${libnl_version} +if test "${ac_with_wext}" = "yes"; then + echo WEXT support: yes +else + echo WEXT 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 44049fad..1ddfdcac 100644 --- a/data/Makefile.in +++ b/data/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/docs/Makefile.in b/docs/Makefile.in index ab5c8c88..558a1a60 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -174,6 +174,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -269,6 +273,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -307,6 +314,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/docs/api/Makefile.in b/docs/api/Makefile.in index 40f1784f..31eeeb6e 100644 --- a/docs/api/Makefile.in +++ b/docs/api/Makefile.in @@ -55,7 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -178,6 +178,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -273,6 +277,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -311,6 +318,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/docs/api/html/NetworkManager.devhelp2 b/docs/api/html/NetworkManager.devhelp2 index ba5d51b3..af8fdfaf 100644 --- a/docs/api/html/NetworkManager.devhelp2 +++ b/docs/api/html/NetworkManager.devhelp2 @@ -4,23 +4,23 @@ <chapters> <sub name="D-Bus API Reference" link="ref-dbus.html"/> <sub name="Network Configuration Setting Specification" link="ref-settings.html"> - <sub name="Configuration Settings" link="ref-settings.html#id561824"/> + <sub name="Configuration Settings" link="ref-settings.html#id372896"/> <sub name="Secret flag types" link="secrets-flags.html"/> </sub> <sub name="Migrating from NetworkManager 0.8 to NetworkManager 0.9" link="ref-migrating.html"> - <sub name="Architecture and D-Bus API Changes in 0.9" link="ref-migrating.html#id489512"> - <sub name="Elimination of the User Settings Service" link="ref-migrating.html#id564124"/> - <sub name="User Secret Agents" link="ref-migrating.html#id545754"/> - <sub name="Settings Service Interface Changes" link="ref-migrating.html#id541570"/> - <sub name="Connection Object Interface Changes" link="ref-migrating.html#id573230"/> - <sub name="Permissions Methods Consolidation" link="ref-migrating.html#id571106"/> - <sub name="AddConnection Returns Object Path of New Connection" link="ref-migrating.html#id562529"/> - <sub name="Support for WiMAX Devices" link="ref-migrating.html#id534191"/> - <sub name="New Device States" link="ref-migrating.html#id569872"/> - <sub name="New Active Connection State" link="ref-migrating.html#id529374"/> - <sub name="Consolidated Modem Devices" link="ref-migrating.html#id577250"/> - <sub name="Secret Property Flags" link="ref-migrating.html#id544444"/> - <sub name="Deprecated Methods Removed" link="ref-migrating.html#id540933"/> + <sub name="Architecture and D-Bus API Changes in 0.9" link="ref-migrating.html#id366491"> + <sub name="Elimination of the User Settings Service" link="ref-migrating.html#id366497"/> + <sub name="User Secret Agents" link="ref-migrating.html#id356823"/> + <sub name="Settings Service Interface Changes" link="ref-migrating.html#id355349"/> + <sub name="Connection Object Interface Changes" link="ref-migrating.html#id364468"/> + <sub name="Permissions Methods Consolidation" link="ref-migrating.html#id382175"/> + <sub name="AddConnection Returns Object Path of New Connection" link="ref-migrating.html#id365236"/> + <sub name="Support for WiMAX Devices" link="ref-migrating.html#id373812"/> + <sub name="New Device States" link="ref-migrating.html#id347885"/> + <sub name="New Active Connection State" link="ref-migrating.html#id375497"/> + <sub name="Consolidated Modem Devices" link="ref-migrating.html#id383339"/> + <sub name="Secret Property Flags" link="ref-migrating.html#id355516"/> + <sub name="Deprecated Methods Removed" link="ref-migrating.html#id352005"/> </sub> </sub> <sub name="Index" link="ix01.html"/> diff --git a/docs/api/html/index.html b/docs/api/html/index.html index 2c9b8d1b..0fc54781 100644 --- a/docs/api/html/index.html +++ b/docs/api/html/index.html @@ -22,11 +22,11 @@ <code class="email"><<a class="email" href="mailto:dcbw@redhat.com">dcbw@redhat.com</a>></code><br> </p></div></div> </div></div></div> -<div><p class="releaseinfo">Version 0.9.4.0 +<div><p class="releaseinfo">Version 0.9.5.95 </p></div> <div><p class="copyright">Copyright © 2011 The NetworkManager Authors</p></div> <div><div class="legalnotice"> -<a name="id490970"></a><p> +<a name="id302042"></a><p> Permission is granted to copy, distribute and/or modify this document under the terms of the <em class="citetitle">GNU Free Documentation License</em>, Version 1.1 or any later @@ -61,25 +61,25 @@ <dt><span class="chapter"><a href="ref-dbus.html">D-Bus API Reference</a></span></dt> <dt><span class="chapter"><a href="ref-settings.html">Network Configuration Setting Specification</a></span></dt> <dd><dl> -<dt><span class="section"><a href="ref-settings.html#id561824">Configuration Settings</a></span></dt> +<dt><span class="section"><a href="ref-settings.html#id372896">Configuration Settings</a></span></dt> <dt><span class="section"><a href="secrets-flags.html">Secret flag types</a></span></dt> </dl></dd> <dt><span class="chapter"><a href="ref-migrating.html">Migrating from NetworkManager 0.8 to NetworkManager 0.9</a></span></dt> <dd><dl> -<dt><span class="section"><a href="ref-migrating.html#id489512">Architecture and D-Bus API Changes in 0.9</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id366491">Architecture and D-Bus API Changes in 0.9</a></span></dt> <dd><dl> -<dt><span class="section"><a href="ref-migrating.html#id564124">Elimination of the User Settings Service</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id545754">User Secret Agents</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id541570">Settings Service Interface Changes</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id573230">Connection Object Interface Changes</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id571106">Permissions Methods Consolidation</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id562529">AddConnection Returns Object Path of New Connection</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id534191">Support for WiMAX Devices</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id569872">New Device States</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id529374">New Active Connection State</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id577250">Consolidated Modem Devices</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id544444">Secret Property Flags</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id540933">Deprecated Methods Removed</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id366497">Elimination of the User Settings Service</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id356823">User Secret Agents</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id355349">Settings Service Interface Changes</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id364468">Connection Object Interface Changes</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id382175">Permissions Methods Consolidation</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id365236">AddConnection Returns Object Path of New Connection</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id373812">Support for WiMAX Devices</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id347885">New Device States</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id375497">New Active Connection State</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id383339">Consolidated Modem Devices</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id355516">Secret Property Flags</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id352005">Deprecated Methods Removed</a></span></dt> </dl></dd> </dl></dd> <dt><span class="index"><a href="ix01.html">Index</a></span></dt> diff --git a/docs/api/html/ix01.html b/docs/api/html/ix01.html index 5affd5c8..d2ae0ae2 100644 --- a/docs/api/html/ix01.html +++ b/docs/api/html/ix01.html @@ -21,7 +21,7 @@ </tr></table> <div class="index"> <div class="titlepage"><div><div><h2 class="title"> -<a name="id489941"></a>Index</h2></div></div></div> +<a name="id301013"></a>Index</h2></div></div></div> <div class="index"></div> </div> <div class="footer"> diff --git a/docs/api/html/ref-migrating.html b/docs/api/html/ref-migrating.html index 56c6f912..b18b7aa6 100644 --- a/docs/api/html/ref-migrating.html +++ b/docs/api/html/ref-migrating.html @@ -23,20 +23,20 @@ <div class="titlepage"><div><div><h2 class="title"> <a name="ref-migrating"></a>Migrating from NetworkManager 0.8 to NetworkManager 0.9</h2></div></div></div> <div class="toc"><dl> -<dt><span class="section"><a href="ref-migrating.html#id489512">Architecture and D-Bus API Changes in 0.9</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id366491">Architecture and D-Bus API Changes in 0.9</a></span></dt> <dd><dl> -<dt><span class="section"><a href="ref-migrating.html#id564124">Elimination of the User Settings Service</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id545754">User Secret Agents</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id541570">Settings Service Interface Changes</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id573230">Connection Object Interface Changes</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id571106">Permissions Methods Consolidation</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id562529">AddConnection Returns Object Path of New Connection</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id534191">Support for WiMAX Devices</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id569872">New Device States</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id529374">New Active Connection State</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id577250">Consolidated Modem Devices</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id544444">Secret Property Flags</a></span></dt> -<dt><span class="section"><a href="ref-migrating.html#id540933">Deprecated Methods Removed</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id366497">Elimination of the User Settings Service</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id356823">User Secret Agents</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id355349">Settings Service Interface Changes</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id364468">Connection Object Interface Changes</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id382175">Permissions Methods Consolidation</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id365236">AddConnection Returns Object Path of New Connection</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id373812">Support for WiMAX Devices</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id347885">New Device States</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id375497">New Active Connection State</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id383339">Consolidated Modem Devices</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id355516">Secret Property Flags</a></span></dt> +<dt><span class="section"><a href="ref-migrating.html#id352005">Deprecated Methods Removed</a></span></dt> </dl></dd> </dl></div> <p> @@ -50,14 +50,14 @@ </p> <div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id489512"></a>Architecture and D-Bus API Changes in 0.9</h2></div></div></div> +<a name="id366491"></a>Architecture and D-Bus API Changes in 0.9</h2></div></div></div> <p> This section details the architectural and D-Bus API changes in NetworkManager 0.9. </p> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id564124"></a>Elimination of the User Settings Service</h3></div></div></div> +<a name="id366497"></a>Elimination of the User Settings Service</h3></div></div></div> <p> Previously there were two "settings services", or D-Bus services that provided and saved network configuration information. NetworkManager @@ -103,7 +103,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id545754"></a>User Secret Agents</h3></div></div></div> +<a name="id356823"></a>User Secret Agents</h3></div></div></div> <p> Even with the elimination of the user settings service, in some cases it is still desirable to store secrets in the user's session and not in @@ -152,7 +152,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id541570"></a>Settings Service Interface Changes</h3></div></div></div> +<a name="id355349"></a>Settings Service Interface Changes</h3></div></div></div> <p> With the elimination of the user settings service, the old <code class="literal">org.freedesktop.NetworkManagerUserSettings</code> and @@ -190,7 +190,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id573230"></a>Connection Object Interface Changes</h3></div></div></div> +<a name="id364468"></a>Connection Object Interface Changes</h3></div></div></div> <p> Consistent with the interface changes to the Settings object, the Connection object's D-Bus interface has changed to @@ -224,7 +224,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id571106"></a>Permissions Methods Consolidation</h3></div></div></div> +<a name="id382175"></a>Permissions Methods Consolidation</h3></div></div></div> <p> Previously there were two D-Bus method calls to retrieve the list of operations that a user client could perform, and two signals notifying @@ -256,7 +256,7 @@ are now string-based permissions. The mapping is as follows: </p> <div class="table"> -<a name="id559061"></a><p class="title"><b>Table 20. </b></p> +<a name="id370129"></a><p class="title"><b>Table 20. </b></p> <div class="table-contents"><table border="1"> <colgroup> <col> @@ -307,7 +307,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id562529"></a>AddConnection Returns Object Path of New Connection</h3></div></div></div> +<a name="id365236"></a>AddConnection Returns Object Path of New Connection</h3></div></div></div> <p> The <a class="ulink" href="spec.html#org.freedesktop.NetworkManager.Settings" target="_top"> <code class="literal">org.freedesktop.NetworkManager.Settings.AddConnection</code> @@ -325,7 +325,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id534191"></a>Support for WiMAX Devices</h3></div></div></div> +<a name="id373812"></a>Support for WiMAX Devices</h3></div></div></div> <p> NetworkManager now supports Intel WiMAX mobile broadband devices. A corresponding device type (<code class="literal">NM_DEVICE_TYPE_WIMAX</code>) and @@ -348,7 +348,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id569872"></a>New Device States</h3></div></div></div> +<a name="id347885"></a>New Device States</h3></div></div></div> <p> A few <a class="ulink" href="spec.html#type-NM_DEVICE_STATE" target="_top">new device states</a> have been added, and all device states have been renumbered for flexibility. @@ -363,7 +363,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id529374"></a>New Active Connection State</h3></div></div></div> +<a name="id375497"></a>New Active Connection State</h3></div></div></div> <p> Along with the new device states, an <a class="ulink" href="spec.html#type-NM_ACTIVE_CONNECTION_STATE" target="_top">additional @@ -379,7 +379,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id577250"></a>Consolidated Modem Devices</h3></div></div></div> +<a name="id383339"></a>Consolidated Modem Devices</h3></div></div></div> <p> Many new mobile broadband devices support multiple access families, like Qualcomm Gobi cards (CDMA/EVDO and GSM/UMTS), or multi-mode EVDO/LTE @@ -415,7 +415,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id544444"></a>Secret Property Flags</h3></div></div></div> +<a name="id355516"></a>Secret Property Flags</h3></div></div></div> <p> In the Connection object's configuration properties, each setting's secret properties (like WiFi passphrases, or public key passwords, etc) now has @@ -424,7 +424,7 @@ following values: </p> <div class="table"> -<a name="id544453"></a><p class="title"><b>Table 21. </b></p> +<a name="id355525"></a><p class="title"><b>Table 21. </b></p> <div class="table-contents"><table border="1"> <colgroup> <col> @@ -486,7 +486,7 @@ </div> <div class="section"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id540933"></a>Deprecated Methods Removed</h3></div></div></div> +<a name="id352005"></a>Deprecated Methods Removed</h3></div></div></div> <p> A few methods and signals of the <code class="literal">org.freedesktop.NetworkManager</code> interface deprecated in version 0.7 have been removed. All the @@ -496,7 +496,7 @@ their replacements: </p> <div class="table"> -<a name="id540947"></a><p class="title"><b>Table 22. </b></p> +<a name="id352019"></a><p class="title"><b>Table 22. </b></p> <div class="table-contents"><table border="1"> <colgroup> <col> diff --git a/docs/api/html/ref-settings.html b/docs/api/html/ref-settings.html index 7278b958..faff8ce8 100644 --- a/docs/api/html/ref-settings.html +++ b/docs/api/html/ref-settings.html @@ -23,7 +23,7 @@ <div class="titlepage"><div><div><h2 class="title"> <a name="ref-settings"></a>Network Configuration Setting Specification</h2></div></div></div> <div class="toc"><dl> -<dt><span class="section"><a href="ref-settings.html#id561824">Configuration Settings</a></span></dt> +<dt><span class="section"><a href="ref-settings.html#id372896">Configuration Settings</a></span></dt> <dt><span class="section"><a href="secrets-flags.html">Secret flag types</a></span></dt> </dl></div> <p> @@ -35,11 +35,11 @@ </p> <div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id561824"></a>Configuration Settings</h2></div></div></div> +<a name="id372896"></a>Configuration Settings</h2></div></div></div> <p> </p> <div class="table"> -<a name="id543615"></a><p class="title"><b>Table 1. 802-1x setting</b></p> +<a name="id354687"></a><p class="title"><b>Table 1. 802-1x setting</b></p> <div class="table-contents"><table summary="802-1x setting" border="1"> <colgroup> <col> @@ -246,7 +246,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id547978"></a><p class="title"><b>Table 2. bluetooth setting</b></p> +<a name="id359051"></a><p class="title"><b>Table 2. bluetooth setting</b></p> <div class="table-contents"><table summary="bluetooth setting" border="1"> <colgroup> <col> @@ -285,7 +285,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id548111"></a><p class="title"><b>Table 3. bond setting</b></p> +<a name="id359183"></a><p class="title"><b>Table 3. bond setting</b></p> <div class="table-contents"><table summary="bond setting" border="1"> <colgroup> <col> @@ -324,7 +324,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id548244"></a><p class="title"><b>Table 4. cdma setting</b></p> +<a name="id359316"></a><p class="title"><b>Table 4. cdma setting</b></p> <div class="table-contents"><table summary="cdma setting" border="1"> <colgroup> <col> @@ -375,7 +375,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id548442"></a><p class="title"><b>Table 5. connection setting</b></p> +<a name="id359514"></a><p class="title"><b>Table 5. connection setting</b></p> <div class="table-contents"><table summary="connection setting" border="1"> <colgroup> <col> @@ -462,7 +462,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id548833"></a><p class="title"><b>Table 6. gsm setting</b></p> +<a name="id359906"></a><p class="title"><b>Table 6. gsm setting</b></p> <div class="table-contents"><table summary="gsm setting" border="1"> <colgroup> <col> @@ -555,7 +555,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id578510"></a><p class="title"><b>Table 7. infiniband setting</b></p> +<a name="id389611"></a><p class="title"><b>Table 7. infiniband setting</b></p> <div class="table-contents"><table summary="infiniband setting" border="1"> <colgroup> <col> @@ -600,7 +600,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id578649"></a><p class="title"><b>Table 8. ipv4 setting</b></p> +<a name="id389749"></a><p class="title"><b>Table 8. ipv4 setting</b></p> <div class="table-contents"><table summary="ipv4 setting" border="1"> <colgroup> <col> @@ -699,7 +699,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id579045"></a><p class="title"><b>Table 9. ipv6 setting</b></p> +<a name="id390145"></a><p class="title"><b>Table 9. ipv6 setting</b></p> <div class="table-contents"><table summary="ipv6 setting" border="1"> <colgroup> <col> @@ -786,7 +786,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id579392"></a><p class="title"><b>Table 10. 802-11-olpc-mesh setting</b></p> +<a name="id390492"></a><p class="title"><b>Table 10. 802-11-olpc-mesh setting</b></p> <div class="table-contents"><table summary="802-11-olpc-mesh setting" border="1"> <colgroup> <col> @@ -831,7 +831,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id579530"></a><p class="title"><b>Table 11. ppp setting</b></p> +<a name="id390631"></a><p class="title"><b>Table 11. ppp setting</b></p> <div class="table-contents"><table summary="ppp setting" border="1"> <colgroup> <col> @@ -966,7 +966,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id580187"></a><p class="title"><b>Table 12. pppoe setting</b></p> +<a name="id391292"></a><p class="title"><b>Table 12. pppoe setting</b></p> <div class="table-contents"><table summary="pppoe setting" border="1"> <colgroup> <col> @@ -1017,7 +1017,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id580393"></a><p class="title"><b>Table 13. serial setting</b></p> +<a name="id391498"></a><p class="title"><b>Table 13. serial setting</b></p> <div class="table-contents"><table summary="serial setting" border="1"> <colgroup> <col> @@ -1074,7 +1074,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id580632"></a><p class="title"><b>Table 14. vlan setting</b></p> +<a name="id391737"></a><p class="title"><b>Table 14. vlan setting</b></p> <div class="table-contents"><table summary="vlan setting" border="1"> <colgroup> <col> @@ -1137,7 +1137,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id580907"></a><p class="title"><b>Table 15. vpn setting</b></p> +<a name="id392012"></a><p class="title"><b>Table 15. vpn setting</b></p> <div class="table-contents"><table summary="vpn setting" border="1"> <colgroup> <col> @@ -1188,7 +1188,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id581112"></a><p class="title"><b>Table 16. wimax setting</b></p> +<a name="id392218"></a><p class="title"><b>Table 16. wimax setting</b></p> <div class="table-contents"><table summary="wimax setting" border="1"> <colgroup> <col> @@ -1227,7 +1227,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id581251"></a><p class="title"><b>Table 17. 802-3-ethernet setting</b></p> +<a name="id392356"></a><p class="title"><b>Table 17. 802-3-ethernet setting</b></p> <div class="table-contents"><table summary="802-3-ethernet setting" border="1"> <colgroup> <col> @@ -1320,7 +1320,7 @@ <p><br class="table-break"> </p> <div class="table"> -<a name="id581691"></a><p class="title"><b>Table 18. 802-11-wireless setting</b></p> +<a name="id392797"></a><p class="title"><b>Table 18. 802-11-wireless setting</b></p> <div class="table-contents"><table summary="802-11-wireless setting" border="1"> <colgroup> <col> @@ -1419,13 +1419,19 @@ <td><pre class="screen"></pre></td> <td>If the wireless connection has any security restrictions, like 802.1x, WEP, or WPA, set this property to '802-11-wireless-security' and ensure the connection contains a valid 802-11-wireless-security setting.</td> </tr> +<tr> +<td><pre class="screen">hidden</pre></td> +<td><pre class="screen">boolean</pre></td> +<td><pre class="screen">FALSE</pre></td> +<td>If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution.</td> +</tr> </tbody> </table></div> </div> <p><br class="table-break"> </p> <div class="table"> -<a name="id582200"></a><p class="title"><b>Table 19. 802-11-wireless-security setting</b></p> +<a name="id393341"></a><p class="title"><b>Table 19. 802-11-wireless-security setting</b></p> <div class="table-contents"><table summary="802-11-wireless-security setting" border="1"> <colgroup> <col> diff --git a/docs/api/html/spec.html b/docs/api/html/spec.html index a75799e7..80c10325 100644 --- a/docs/api/html/spec.html +++ b/docs/api/html/spec.html @@ -1,5 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9.4.0</title><style type="text/css"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9.5.95</title><style type="text/css"> body { font-family: sans-serif; @@ -98,7 +98,7 @@ margin-right: 4em; } - </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9.4.0</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license"> + </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9.5.95</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license"> <p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Adsl">org.freedesktop.NetworkManager.Device.Adsl</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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> ( ) → @@ -461,6 +461,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <code>s</code> - <code>(read)</code></dt><dd> The driver handling the device. + </dd><dt><code>DriverVersion</code> - + <code>s</code> - + <code>(read)</code></dt><dd> + The version of the driver handling the device. + </dd><dt><code>FirmwareVersion</code> - + <code>s</code> - + <code>(read)</code></dt><dd> + The firmware version for the device. </dd><dt><code>Capabilities</code> - <code>u</code> - <code>(read)</code> @@ -512,6 +520,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <code>b</code> - <code>(read)</code></dt><dd> Whether or not this device is managed by NetworkManager. + </dd><dt><code>Autoconnect</code> - + <code>b</code> - + <code>(readwrite)</code></dt><dd> + If TRUE, indicates the device is allowed to autoconnect. If FALSE, + manual intervention is required before the device will automatically + connect to a known network, such as activating a connection using the + device, or setting this property to TRUE. </dd><dt><code>FirmwareMissing</code> - <code>b</code> - <code>(read)</code></dt><dd> @@ -673,6 +688,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ InfiniBand device does not support connected mode. </dd><dt><code>NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED = 50</code></dt><dd> A dependency of the connection failed. + </dd><dt><code>NM_DEVICE_STATE_REASON_BR2684_FAILED = 50</code></dt><dd> + Problem with the RFC 2684 Ethernet over ADSL bridge. </dd></dl><h2>Sets of flags:</h2><h3 xmlns=""><a name="type-NM_DEVICE_CAP" id="type-NM_DEVICE_CAP">NM_DEVICE_CAP</a></h3><dl><dt><code>NM_DEVICE_CAP_NONE = 0x0</code></dt><dd>Null capability.</dd><dt><code>NM_DEVICE_CAP_NM_SUPPORTED = 0x1</code></dt><dd>The device is supported by NetworkManager.</dd><dt><code>NM_DEVICE_CAP_CARRIER_DETECT = 0x2</code></dt><dd>The device supports carrier detection.</dd></dl><h2>Structure types:</h2><div class="struct"><h3><a name="type-NM_DEVICE_STATE_REASON_STRUCT" id="type-NM_DEVICE_STATE_REASON_STRUCT">NM_DEVICE_STATE_REASON_STRUCT</a> - ( u: state, u: reason ) @@ -722,6 +739,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ </div><div><h4>Returns</h4><dl><dt><code>access_points</code> - <code>ao</code></dt><dd> List of access point object paths + </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.Device.Wireless.RequestScan" id="org.freedesktop.NetworkManager.Device.Wireless.RequestScan">RequestScan</a> ( + a{sv}: options + ) → + nothing</h3><div class="docstring"> + Request the device to scan + </div><div><h4>Parameters</h4><dl><dt><code>options</code> - + <code>a{sv}</code></dt><dd> + Options of scan </dd></dl></div></div><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.Device.Wireless.PropertiesChanged" id="org.freedesktop.NetworkManager.Device.Wireless.PropertiesChanged">PropertiesChanged</a> ( a{sv}: properties )</h3><div class="docstring"> @@ -990,6 +1015,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ The VLAN ID of this VLAN interface. </dd></dl> + <h1><a name="org.freedesktop.NetworkManager.Device.Adsl" id="org.freedesktop.NetworkManager.Device.Adsl"></a>org.freedesktop.NetworkManager.Device.Adsl</h1><p>Interface has no methods.</p><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.Device.Adsl.PropertiesChanged" id="org.freedesktop.NetworkManager.Device.Adsl.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>Carrier</code> - + <code>b</code> - + <code>(read)</code></dt><dd> + Indicates whether the physical carrier is found. + </dd></dl> + <h1><a name="org.freedesktop.NetworkManager.WiMax.Nsp" id="org.freedesktop.NetworkManager.WiMax.Nsp"></a>org.freedesktop.NetworkManager.WiMax.Nsp</h1><p>Interface has no methods.</p><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.WiMax.Nsp.PropertiesChanged" id="org.freedesktop.NetworkManager.WiMax.Nsp.PropertiesChanged">PropertiesChanged</a> ( a{sv}: properties )</h3><div class="docstring"></div><div><h4>Parameters</h4><dl><dt><code>properties</code> - @@ -1384,6 +1422,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ Explicitly prompt for new secrets from the user. This flag signals that NetworkManager thinks any existing secrets are invalid or wrong. This flag implies that interaction is allowed. + </dd><dt><code>NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED = 0x4</code></dt><dd> + Set if the request was initiated by user-requested action via the + D-Bus interface, as opposed to automatically initiated by + NetworkManager in response to (for example) scan results or + carrier changes. </dd></dl> @@ -1488,7 +1531,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ ) → nothing</h3><div class="docstring"> Disconnect the plugin. - </div><div><h4>Possible errors</h4><dl><dt><code>org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress</code></dt><dd>The request could not be processed because the VPN connection is already being stopped.<em>(generic description)</em></dd><dt><code>org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped</code></dt><dd>The request could not be processed because the VPN connection was already stopped.<em>(generic description)</em></dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config" id="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config">SetIp4Config</a> ( + </div><div><h4>Possible errors</h4><dl><dt><code>org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress</code></dt><dd>The request could not be processed because the VPN connection is already being stopped.<em>(generic description)</em></dd><dt><code>org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped</code></dt><dd>The request could not be processed because the VPN connection was already stopped.<em>(generic description)</em></dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetConfig" id="org.freedesktop.NetworkManager.VPN.Plugin.SetConfig">SetConfig</a> ( + a{sv}: config + ) → + nothing</h3><div class="docstring"> + Set generic connection details on the connection. + </div><div><h4>Parameters</h4><dl><dt><code>config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + Generic configuration details for the connection. + </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config" id="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config">SetIp4Config</a> ( a{sv}: config ) → nothing</h3><div class="docstring"> @@ -1497,7 +1550,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <code>a{sv}</code> (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) </dt><dd> - Ip4Config details for the conneciton. + Ip4Config details for the connection. You must call + SetConfig() before calling this. + </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config" id="org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config">SetIp6Config</a> ( + a{sv}: config + ) → + nothing</h3><div class="docstring"> + Set IPv6 details on the connection. + </div><div><h4>Parameters</h4><dl><dt><code>config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + Ip6Config details for the connection. You must call + SetConfig() before calling this. </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetFailure" id="org.freedesktop.NetworkManager.VPN.Plugin.SetFailure">SetFailure</a> ( s: reason ) → @@ -1515,6 +1580,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ (<a xmlns="" href="#type-NM_VPN_CONNECTION_STATE">NM_VPN_CONNECTION_STATE</a>) </dt><dd> The new state of the plugin. + </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.Config" id="org.freedesktop.NetworkManager.VPN.Plugin.Config">Config</a> ( + a{sv}: config + )</h3><div class="docstring"> + The plugin obtained generic configuration information. + </div><div><h4>Parameters</h4><dl><dt><code>config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + The configuration information. </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.Ip4Config" id="org.freedesktop.NetworkManager.VPN.Plugin.Ip4Config">Ip4Config</a> ( a{sv}: ip4config )</h3><div class="docstring"> @@ -1524,6 +1598,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) </dt><dd> The IPv4 configuration. + </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.Ip6Config" id="org.freedesktop.NetworkManager.VPN.Plugin.Ip6Config">Ip6Config</a> ( + a{sv}: ip6config + )</h3><div class="docstring"> + The plugin obtained an IPv6 configuration. + </div><div><h4>Parameters</h4><dl><dt><code>ip6config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + The IPv6 configuration. </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.LoginBanner" id="org.freedesktop.NetworkManager.VPN.Plugin.LoginBanner">LoginBanner</a> ( s: banner )</h3><div class="docstring"> @@ -1597,7 +1680,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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Adsl">org.freedesktop.NetworkManager.Device.Adsl</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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> diff --git a/docs/api/settings-spec.xml b/docs/api/settings-spec.xml index 8d2757d9..d90814d7 100644 --- a/docs/api/settings-spec.xml +++ b/docs/api/settings-spec.xml @@ -1279,6 +1279,12 @@ <entry><screen></screen></entry> <entry>If the wireless connection has any security restrictions, like 802.1x, WEP, or WPA, set this property to '802-11-wireless-security' and ensure the connection contains a valid 802-11-wireless-security setting.</entry> </row> + <row> + <entry><screen>hidden</screen></entry> + <entry><screen>boolean</screen></entry> + <entry><screen>FALSE</screen></entry> + <entry>If TRUE, indicates this network is a non-broadcasting network that hides its SSID. In this case various workarounds may take place, such as probe-scanning the SSID for more reliable network discovery. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution.</entry> + </row> </tbody> </tgroup> </table> diff --git a/docs/api/spec.html b/docs/api/spec.html index a75799e7..80c10325 100644 --- a/docs/api/spec.html +++ b/docs/api/spec.html @@ -1,5 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9.4.0</title><style type="text/css"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9.5.95</title><style type="text/css"> body { font-family: sans-serif; @@ -98,7 +98,7 @@ margin-right: 4em; } - </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9.4.0</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license"> + </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9.5.95</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license"> <p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Adsl">org.freedesktop.NetworkManager.Device.Adsl</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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> ( ) → @@ -461,6 +461,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <code>s</code> - <code>(read)</code></dt><dd> The driver handling the device. + </dd><dt><code>DriverVersion</code> - + <code>s</code> - + <code>(read)</code></dt><dd> + The version of the driver handling the device. + </dd><dt><code>FirmwareVersion</code> - + <code>s</code> - + <code>(read)</code></dt><dd> + The firmware version for the device. </dd><dt><code>Capabilities</code> - <code>u</code> - <code>(read)</code> @@ -512,6 +520,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <code>b</code> - <code>(read)</code></dt><dd> Whether or not this device is managed by NetworkManager. + </dd><dt><code>Autoconnect</code> - + <code>b</code> - + <code>(readwrite)</code></dt><dd> + If TRUE, indicates the device is allowed to autoconnect. If FALSE, + manual intervention is required before the device will automatically + connect to a known network, such as activating a connection using the + device, or setting this property to TRUE. </dd><dt><code>FirmwareMissing</code> - <code>b</code> - <code>(read)</code></dt><dd> @@ -673,6 +688,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ InfiniBand device does not support connected mode. </dd><dt><code>NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED = 50</code></dt><dd> A dependency of the connection failed. + </dd><dt><code>NM_DEVICE_STATE_REASON_BR2684_FAILED = 50</code></dt><dd> + Problem with the RFC 2684 Ethernet over ADSL bridge. </dd></dl><h2>Sets of flags:</h2><h3 xmlns=""><a name="type-NM_DEVICE_CAP" id="type-NM_DEVICE_CAP">NM_DEVICE_CAP</a></h3><dl><dt><code>NM_DEVICE_CAP_NONE = 0x0</code></dt><dd>Null capability.</dd><dt><code>NM_DEVICE_CAP_NM_SUPPORTED = 0x1</code></dt><dd>The device is supported by NetworkManager.</dd><dt><code>NM_DEVICE_CAP_CARRIER_DETECT = 0x2</code></dt><dd>The device supports carrier detection.</dd></dl><h2>Structure types:</h2><div class="struct"><h3><a name="type-NM_DEVICE_STATE_REASON_STRUCT" id="type-NM_DEVICE_STATE_REASON_STRUCT">NM_DEVICE_STATE_REASON_STRUCT</a> - ( u: state, u: reason ) @@ -722,6 +739,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ </div><div><h4>Returns</h4><dl><dt><code>access_points</code> - <code>ao</code></dt><dd> List of access point object paths + </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.Device.Wireless.RequestScan" id="org.freedesktop.NetworkManager.Device.Wireless.RequestScan">RequestScan</a> ( + a{sv}: options + ) → + nothing</h3><div class="docstring"> + Request the device to scan + </div><div><h4>Parameters</h4><dl><dt><code>options</code> - + <code>a{sv}</code></dt><dd> + Options of scan </dd></dl></div></div><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.Device.Wireless.PropertiesChanged" id="org.freedesktop.NetworkManager.Device.Wireless.PropertiesChanged">PropertiesChanged</a> ( a{sv}: properties )</h3><div class="docstring"> @@ -990,6 +1015,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ The VLAN ID of this VLAN interface. </dd></dl> + <h1><a name="org.freedesktop.NetworkManager.Device.Adsl" id="org.freedesktop.NetworkManager.Device.Adsl"></a>org.freedesktop.NetworkManager.Device.Adsl</h1><p>Interface has no methods.</p><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.Device.Adsl.PropertiesChanged" id="org.freedesktop.NetworkManager.Device.Adsl.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>Carrier</code> - + <code>b</code> - + <code>(read)</code></dt><dd> + Indicates whether the physical carrier is found. + </dd></dl> + <h1><a name="org.freedesktop.NetworkManager.WiMax.Nsp" id="org.freedesktop.NetworkManager.WiMax.Nsp"></a>org.freedesktop.NetworkManager.WiMax.Nsp</h1><p>Interface has no methods.</p><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.WiMax.Nsp.PropertiesChanged" id="org.freedesktop.NetworkManager.WiMax.Nsp.PropertiesChanged">PropertiesChanged</a> ( a{sv}: properties )</h3><div class="docstring"></div><div><h4>Parameters</h4><dl><dt><code>properties</code> - @@ -1384,6 +1422,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ Explicitly prompt for new secrets from the user. This flag signals that NetworkManager thinks any existing secrets are invalid or wrong. This flag implies that interaction is allowed. + </dd><dt><code>NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED = 0x4</code></dt><dd> + Set if the request was initiated by user-requested action via the + D-Bus interface, as opposed to automatically initiated by + NetworkManager in response to (for example) scan results or + carrier changes. </dd></dl> @@ -1488,7 +1531,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ ) → nothing</h3><div class="docstring"> Disconnect the plugin. - </div><div><h4>Possible errors</h4><dl><dt><code>org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress</code></dt><dd>The request could not be processed because the VPN connection is already being stopped.<em>(generic description)</em></dd><dt><code>org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped</code></dt><dd>The request could not be processed because the VPN connection was already stopped.<em>(generic description)</em></dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config" id="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config">SetIp4Config</a> ( + </div><div><h4>Possible errors</h4><dl><dt><code>org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress</code></dt><dd>The request could not be processed because the VPN connection is already being stopped.<em>(generic description)</em></dd><dt><code>org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped</code></dt><dd>The request could not be processed because the VPN connection was already stopped.<em>(generic description)</em></dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetConfig" id="org.freedesktop.NetworkManager.VPN.Plugin.SetConfig">SetConfig</a> ( + a{sv}: config + ) → + nothing</h3><div class="docstring"> + Set generic connection details on the connection. + </div><div><h4>Parameters</h4><dl><dt><code>config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + Generic configuration details for the connection. + </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config" id="org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config">SetIp4Config</a> ( a{sv}: config ) → nothing</h3><div class="docstring"> @@ -1497,7 +1550,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <code>a{sv}</code> (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) </dt><dd> - Ip4Config details for the conneciton. + Ip4Config details for the connection. You must call + SetConfig() before calling this. + </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config" id="org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config">SetIp6Config</a> ( + a{sv}: config + ) → + nothing</h3><div class="docstring"> + Set IPv6 details on the connection. + </div><div><h4>Parameters</h4><dl><dt><code>config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + Ip6Config details for the connection. You must call + SetConfig() before calling this. </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.SetFailure" id="org.freedesktop.NetworkManager.VPN.Plugin.SetFailure">SetFailure</a> ( s: reason ) → @@ -1515,6 +1580,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ (<a xmlns="" href="#type-NM_VPN_CONNECTION_STATE">NM_VPN_CONNECTION_STATE</a>) </dt><dd> The new state of the plugin. + </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.Config" id="org.freedesktop.NetworkManager.VPN.Plugin.Config">Config</a> ( + a{sv}: config + )</h3><div class="docstring"> + The plugin obtained generic configuration information. + </div><div><h4>Parameters</h4><dl><dt><code>config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + The configuration information. </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.Ip4Config" id="org.freedesktop.NetworkManager.VPN.Plugin.Ip4Config">Ip4Config</a> ( a{sv}: ip4config )</h3><div class="docstring"> @@ -1524,6 +1598,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) </dt><dd> The IPv4 configuration. + </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.Ip6Config" id="org.freedesktop.NetworkManager.VPN.Plugin.Ip6Config">Ip6Config</a> ( + a{sv}: ip6config + )</h3><div class="docstring"> + The plugin obtained an IPv6 configuration. + </div><div><h4>Parameters</h4><dl><dt><code>ip6config</code> - + <code>a{sv}</code> + (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>) + </dt><dd> + The IPv6 configuration. </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Plugin.LoginBanner" id="org.freedesktop.NetworkManager.VPN.Plugin.LoginBanner">LoginBanner</a> ( s: banner )</h3><div class="docstring"> @@ -1597,7 +1680,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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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.Modem">org.freedesktop.NetworkManager.Device.Modem</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.Device.WiMax">org.freedesktop.NetworkManager.Device.WiMax</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Infiniband">org.freedesktop.NetworkManager.Device.Infiniband</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bond">org.freedesktop.NetworkManager.Device.Bond</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Vlan">org.freedesktop.NetworkManager.Device.Vlan</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Adsl">org.freedesktop.NetworkManager.Device.Adsl</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.WiMax.Nsp">org.freedesktop.NetworkManager.WiMax.Nsp</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.NetworkManager.Settings">org.freedesktop.NetworkManager.Settings</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Settings.Connection">org.freedesktop.NetworkManager.Settings.Connection</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.AgentManager">org.freedesktop.NetworkManager.AgentManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.SecretAgent">org.freedesktop.NetworkManager.SecretAgent</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> diff --git a/docs/api/version.xml b/docs/api/version.xml index 3544d2f0..3bf70835 100644 --- a/docs/api/version.xml +++ b/docs/api/version.xml @@ -1 +1 @@ -0.9.4.0 +0.9.5.95 diff --git a/docs/libnm-glib/Makefile.am b/docs/libnm-glib/Makefile.am index 2057e3e9..cd96c046 100644 --- a/docs/libnm-glib/Makefile.am +++ b/docs/libnm-glib/Makefile.am @@ -54,6 +54,7 @@ IGNORE_HFILES= \ nm-settings-connection-bindings.h \ nm-secret-agent-bindings.h \ nm-vpn-connection-bindings.h \ + nm-secret-agent-glue.h \ nm-vpn-plugin-glue.h # Images to copy into HTML directory. diff --git a/docs/libnm-glib/Makefile.in b/docs/libnm-glib/Makefile.in index 828f7823..bd50f0ca 100644 --- a/docs/libnm-glib/Makefile.in +++ b/docs/libnm-glib/Makefile.in @@ -53,7 +53,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -141,6 +141,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -236,6 +240,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -274,6 +281,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -349,6 +358,7 @@ IGNORE_HFILES = \ nm-settings-connection-bindings.h \ nm-secret-agent-bindings.h \ nm-vpn-connection-bindings.h \ + nm-secret-agent-glue.h \ nm-vpn-plugin-glue.h diff --git a/docs/libnm-glib/html/NMDevice.html b/docs/libnm-glib/html/NMDevice.html index e507f9e0..5c6e7152 100644 --- a/docs/libnm-glib/html/NMDevice.html +++ b/docs/libnm-glib/html/NMDevice.html @@ -51,12 +51,15 @@ <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>); #define <a class="link" href="NMDevice.html#NM-DEVICE-ACTIVE-CONNECTION:CAPS" title="NM_DEVICE_ACTIVE_CONNECTION">NM_DEVICE_ACTIVE_CONNECTION</a> +#define <a class="link" href="NMDevice.html#NM-DEVICE-AUTOCONNECT:CAPS" title="NM_DEVICE_AUTOCONNECT">NM_DEVICE_AUTOCONNECT</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-CAPABILITIES:CAPS" title="NM_DEVICE_CAPABILITIES">NM_DEVICE_CAPABILITIES</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-DEVICE-TYPE:CAPS" title="NM_DEVICE_DEVICE_TYPE">NM_DEVICE_DEVICE_TYPE</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-DHCP4-CONFIG:CAPS" title="NM_DEVICE_DHCP4_CONFIG">NM_DEVICE_DHCP4_CONFIG</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-DHCP6-CONFIG:CAPS" title="NM_DEVICE_DHCP6_CONFIG">NM_DEVICE_DHCP6_CONFIG</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-DRIVER:CAPS" title="NM_DEVICE_DRIVER">NM_DEVICE_DRIVER</a> +#define <a class="link" href="NMDevice.html#NM-DEVICE-DRIVER-VERSION:CAPS" title="NM_DEVICE_DRIVER_VERSION">NM_DEVICE_DRIVER_VERSION</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-FIRMWARE-MISSING:CAPS" title="NM_DEVICE_FIRMWARE_MISSING">NM_DEVICE_FIRMWARE_MISSING</a> +#define <a class="link" href="NMDevice.html#NM-DEVICE-FIRMWARE-VERSION:CAPS" title="NM_DEVICE_FIRMWARE_VERSION">NM_DEVICE_FIRMWARE_VERSION</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-INTERFACE:CAPS" title="NM_DEVICE_INTERFACE">NM_DEVICE_INTERFACE</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-IP4-CONFIG:CAPS" title="NM_DEVICE_IP4_CONFIG">NM_DEVICE_IP4_CONFIG</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-IP6-CONFIG:CAPS" title="NM_DEVICE_IP6_CONFIG">NM_DEVICE_IP6_CONFIG</a> @@ -67,6 +70,9 @@ #define <a class="link" href="NMDevice.html#NM-DEVICE-STATE-REASON:CAPS" title="NM_DEVICE_STATE_REASON">NM_DEVICE_STATE_REASON</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-UDI:CAPS" title="NM_DEVICE_UDI">NM_DEVICE_UDI</a> #define <a class="link" href="NMDevice.html#NM-DEVICE-VENDOR:CAPS" title="NM_DEVICE_VENDOR">NM_DEVICE_VENDOR</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="NMDevice.html#nm-device-connection-compatible" title="nm_device_connection_compatible ()">nm_device_connection_compatible</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>, + <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/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="NMDevice.html#nm-device-connection-valid" title="nm_device_connection_valid ()">nm_device_connection_valid</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>, <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>); <span class="returnvalue">void</span> <a class="link" href="NMDevice.html#nm-device-disconnect" title="nm_device_disconnect ()">nm_device_disconnect</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>, @@ -75,12 +81,15 @@ <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="NMDevice.html#nm-device-filter-connections" title="nm_device_filter_connections ()">nm_device_filter_connections</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>, <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *connections</code></em>); <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="returnvalue">NMActiveConnection</span></a> * <a class="link" href="NMDevice.html#nm-device-get-active-connection" title="nm_device_get_active_connection ()">nm_device_get_active_connection</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</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="NMDevice.html#nm-device-get-autoconnect" title="nm_device_get_autoconnect ()">nm_device_get_autoconnect</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); <span class="returnvalue">NMDeviceCapabilities</span> <a class="link" href="NMDevice.html#nm-device-get-capabilities" title="nm_device_get_capabilities ()">nm_device_get_capabilities</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); <span class="returnvalue">NMDeviceType</span> <a class="link" href="NMDevice.html#nm-device-get-device-type" title="nm_device_get_device_type ()">nm_device_get_device_type</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); <a class="link" href="NMDHCP4Config.html" title="NMDHCP4Config"><span class="returnvalue">NMDHCP4Config</span></a> * <a class="link" href="NMDevice.html#nm-device-get-dhcp4-config" title="nm_device_get_dhcp4_config ()">nm_device_get_dhcp4_config</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); <a class="link" href="NMDHCP6Config.html" title="NMDHCP6Config"><span class="returnvalue">NMDHCP6Config</span></a> * <a class="link" href="NMDevice.html#nm-device-get-dhcp6-config" title="nm_device_get_dhcp6_config ()">nm_device_get_dhcp6_config</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); const <span class="returnvalue">char</span> * <a class="link" href="NMDevice.html#nm-device-get-driver" title="nm_device_get_driver ()">nm_device_get_driver</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMDevice.html#nm-device-get-driver-version" title="nm_device_get_driver_version ()">nm_device_get_driver_version</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</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="NMDevice.html#nm-device-get-firmware-missing" title="nm_device_get_firmware_missing ()">nm_device_get_firmware_missing</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMDevice.html#nm-device-get-firmware-version" title="nm_device_get_firmware_version ()">nm_device_get_firmware_version</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); const <span class="returnvalue">char</span> * <a class="link" href="NMDevice.html#nm-device-get-iface" title="nm_device_get_iface ()">nm_device_get_iface</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); <a class="link" href="NMIP4Config.html" title="NMIP4Config"><span class="returnvalue">NMIP4Config</span></a> * <a class="link" href="NMDevice.html#nm-device-get-ip4-config" title="nm_device_get_ip4_config ()">nm_device_get_ip4_config</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); <a class="link" href="NMIP6Config.html" title="NMIP6Config"><span class="returnvalue">NMIP6Config</span></a> * <a class="link" href="NMDevice.html#nm-device-get-ip6-config" title="nm_device_get_ip6_config ()">nm_device_get_ip6_config</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); @@ -94,6 +103,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMDev const <span class="returnvalue">char</span> * <a class="link" href="NMDevice.html#nm-device-get-vendor" title="nm_device_get_vendor ()">nm_device_get_vendor</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>); <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="NMDevice.html#nm-device-new" title="nm_device_new ()">nm_device_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>); +<span class="returnvalue">void</span> <a class="link" href="NMDevice.html#nm-device-set-autoconnect" title="nm_device_set_autoconnect ()">nm_device_set_autoconnect</a> (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</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> autoconnect</code></em>); </pre> </div> <div class="refsect1"> @@ -107,10 +118,10 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMDev +----<a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> +----<a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +----<a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax">NMDeviceWimax</a> - +----NMDeviceOlpcMesh - +----NMDeviceInfiniband - +----NMDeviceBond - +----NMDeviceVlan + +----<a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> + +----<a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> + +----<a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> + +----<a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </pre> </div> <div class="refsect1"> @@ -123,12 +134,15 @@ NMDevice implements <a name="NMDevice.properties"></a><h2>Properties</h2> <pre class="synopsis"> "<a class="link" href="NMDevice.html#NMDevice--active-connection" title='The "active-connection" property'>active-connection</a>" <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>* : Read + "<a class="link" href="NMDevice.html#NMDevice--autoconnect" title='The "autoconnect" property'>autoconnect</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="NMDevice.html#NMDevice--capabilities" title='The "capabilities" property'>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="NMDevice.html#NMDevice--device-type" title='The "device-type" property'>device-type</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="NMDevice.html#NMDevice--dhcp4-config" title='The "dhcp4-config" property'>dhcp4-config</a>" <a class="link" href="NMDHCP4Config.html" title="NMDHCP4Config"><span class="type">NMDHCP4Config</span></a>* : Read "<a class="link" href="NMDevice.html#NMDevice--dhcp6-config" title='The "dhcp6-config" property'>dhcp6-config</a>" <a class="link" href="NMDHCP6Config.html" title="NMDHCP6Config"><span class="type">NMDHCP6Config</span></a>* : Read "<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--driver-version" title='The "driver-version" property'>driver-version</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--firmware-version" title='The "firmware-version" property'>firmware-version</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--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 @@ -207,6 +221,14 @@ NMDevice implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-AUTOCONNECT:CAPS"></a><h3>NM_DEVICE_AUTOCONNECT</h3> +<pre class="programlisting">#define NM_DEVICE_AUTOCONNECT "autoconnect" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-CAPABILITIES:CAPS"></a><h3>NM_DEVICE_CAPABILITIES</h3> <pre class="programlisting">#define NM_DEVICE_CAPABILITIES "capabilities" </pre> @@ -247,6 +269,14 @@ NMDevice implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-DRIVER-VERSION:CAPS"></a><h3>NM_DEVICE_DRIVER_VERSION</h3> +<pre class="programlisting">#define NM_DEVICE_DRIVER_VERSION "driver-version" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-FIRMWARE-MISSING:CAPS"></a><h3>NM_DEVICE_FIRMWARE_MISSING</h3> <pre class="programlisting">#define NM_DEVICE_FIRMWARE_MISSING "firmware-missing" </pre> @@ -255,6 +285,14 @@ NMDevice implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-FIRMWARE-VERSION:CAPS"></a><h3>NM_DEVICE_FIRMWARE_VERSION</h3> +<pre class="programlisting">#define NM_DEVICE_FIRMWARE_VERSION "firmware-version" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-INTERFACE:CAPS"></a><h3>NM_DEVICE_INTERFACE</h3> <pre class="programlisting">#define NM_DEVICE_INTERFACE "interface" </pre> @@ -335,6 +373,52 @@ NMDevice implements </div> <hr> <div class="refsect2"> +<a name="nm-device-connection-compatible"></a><h3>nm_device_connection_compatible ()</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_device_connection_compatible (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>, + <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/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> +Validates a given connection for a given <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> object and returns +whether the connection may be activated with the device. For example if +<em class="parameter"><code>device</code></em> is a WiFi device that supports only WEP encryption, the connection +will only be valid if it is a WiFi connection which describes a WEP or open +network, and will not be valid if it describes a WPA network, or if it is +an Ethernet, Bluetooth, WWAN, etc connection that is incompatible with the +device. +</p> +<p> +This function does the same as <a class="link" href="NMDevice.html#nm-device-connection-valid" title="nm_device_connection_valid ()"><code class="function">nm_device_connection_valid()</code></a>, i.e. checking +compatibility of the given device and connection. But, in addition, it sets +GError when FALSE is returned. +</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>an <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> to validate <em class="parameter"><code>connection</code></em> against</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td> +<td>an <a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMConnection.html"><span class="type">NMConnection</span></a> to validate against <em class="parameter"><code>device</code></em> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> +<td>return location for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> +</td> +</tr> +<tr> +<td><p><span class="term"><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 connection may be activated with this device, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> +if is incompatible with the device's capabilities and characteristics.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-connection-valid"></a><h3>nm_device_connection_valid ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_device_connection_valid (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>, <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> @@ -466,6 +550,29 @@ not part of an active connection. <span class="annotation">[<acronym title="Don' </div> <hr> <div class="refsect2"> +<a name="nm-device-get-autoconnect"></a><h3>nm_device_get_autoconnect ()</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_device_get_autoconnect (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre> +<p> +Whether the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> can be autoconnected. +</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="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device is allowed to be autoconnected</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-get-capabilities"></a><h3>nm_device_get_capabilities ()</h3> <pre class="programlisting"><span class="returnvalue">NMDeviceCapabilities</span> nm_device_get_capabilities (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre> <p> @@ -581,6 +688,29 @@ device, and must not be modified.</td> </div> <hr> <div class="refsect2"> +<a name="nm-device-get-driver-version"></a><h3>nm_device_get_driver_version ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_get_driver_version (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre> +<p> +Gets the driver version of the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</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="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the version of the device driver. This is the internal string used by the +device, and must not be modified.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-get-firmware-missing"></a><h3>nm_device_get_firmware_missing ()</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_device_get_firmware_missing (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre> <p> @@ -606,6 +736,29 @@ to be missing.</td> </div> <hr> <div class="refsect2"> +<a name="nm-device-get-firmware-version"></a><h3>nm_device_get_firmware_version ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_get_firmware_version (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre> +<p> +Gets the firmware version of the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</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="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the firmware version of the device. This is the internal string used by the +device, and must not be modified.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-get-iface"></a><h3>nm_device_get_iface ()</h3> <pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_get_iface (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre> <p> @@ -869,6 +1022,30 @@ Creates a new <a class="link" href="NMDevice.html" title="NMDevice"><span class= </tbody> </table></div> </div> +<hr> +<div class="refsect2"> +<a name="nm-device-set-autoconnect"></a><h3>nm_device_set_autoconnect ()</h3> +<pre class="programlisting"><span class="returnvalue">void</span> nm_device_set_autoconnect (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</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> autoconnect</code></em>);</pre> +<p> +Enables or disables automatic activation of the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</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="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>autoconnect</code></em> :</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> to enable autoconnecting</td> +</tr> +</tbody> +</table></div> +</div> </div> <div class="refsect1"> <a name="NMDevice.property-details"></a><h2>Property Details</h2> @@ -881,6 +1058,15 @@ The <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><s </div> <hr> <div class="refsect2"> +<a name="NMDevice--autoconnect"></a><h3>The <code class="literal">"autoconnect"</code> property</h3> +<pre class="programlisting"> "autoconnect" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<p> +Whether the device can auto-activate a connection. +</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> <a name="NMDevice--capabilities"></a><h3>The <code class="literal">"capabilities"</code> property</h3> <pre class="programlisting"> "capabilities" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> <p> @@ -924,6 +1110,15 @@ The driver of the device. </div> <hr> <div class="refsect2"> +<a name="NMDevice--driver-version"></a><h3>The <code class="literal">"driver-version"</code> property</h3> +<pre class="programlisting"> "driver-version" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<p> +The version of the device driver. +</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> <a name="NMDevice--firmware-missing"></a><h3>The <code class="literal">"firmware-missing"</code> property</h3> <pre class="programlisting"> "firmware-missing" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre> <p> @@ -934,6 +1129,15 @@ for its operation. </div> <hr> <div class="refsect2"> +<a name="NMDevice--firmware-version"></a><h3>The <code class="literal">"firmware-version"</code> property</h3> +<pre class="programlisting"> "firmware-version" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<p> +The firmware version of the device. +</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> <a name="NMDevice--interface"></a><h3>The <code class="literal">"interface"</code> property</h3> <pre class="programlisting"> "interface" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> <p> diff --git a/docs/libnm-glib/html/NMDeviceBond.html b/docs/libnm-glib/html/NMDeviceBond.html new file mode 100644 index 00000000..0fb8a415 --- /dev/null +++ b/docs/libnm-glib/html/NMDeviceBond.html @@ -0,0 +1,287 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>NMDeviceBond</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="index.html" title="libnm-glib Reference Manual"> +<link rel="up" href="ch02.html" title="libnm-glib API Reference"> +<link rel="prev" href="NMDeviceWimax.html" title="NMDeviceWimax"> +<link rel="next" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"> +<meta name="generator" content="GTK-Doc V1.18 (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="NMDeviceWimax.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">libnm-glib Reference Manual</th> +<td><a accesskey="n" href="NMDeviceInfiniband.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#NMDeviceBond.synopsis" class="shortcut">Top</a> + | + <a href="#NMDeviceBond.description" class="shortcut">Description</a> + | + <a href="#NMDeviceBond.object-hierarchy" class="shortcut">Object Hierarchy</a> + | + <a href="#NMDeviceBond.implemented-interfaces" class="shortcut">Implemented Interfaces</a> + | + <a href="#NMDeviceBond.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="NMDeviceBond"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="NMDeviceBond.top_of_page"></a>NMDeviceBond</span></h2> +<p>NMDeviceBond</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="NMDeviceBond.synopsis"></a><h2>Synopsis</h2> +<pre class="synopsis"> <a class="link" href="NMDeviceBond.html#NMDeviceBond-struct" title="NMDeviceBond">NMDeviceBond</a>; + <a class="link" href="NMDeviceBond.html#NMDeviceBondClass" title="NMDeviceBondClass">NMDeviceBondClass</a>; +enum <a class="link" href="NMDeviceBond.html#NMDeviceBondError" title="enum NMDeviceBondError">NMDeviceBondError</a>; +#define <a class="link" href="NMDeviceBond.html#NM-DEVICE-BOND-CARRIER:CAPS" title="NM_DEVICE_BOND_CARRIER">NM_DEVICE_BOND_CARRIER</a> +#define <a class="link" href="NMDeviceBond.html#NM-DEVICE-BOND-ERROR:CAPS" title="NM_DEVICE_BOND_ERROR">NM_DEVICE_BOND_ERROR</a> +#define <a class="link" href="NMDeviceBond.html#NM-DEVICE-BOND-HW-ADDRESS:CAPS" title="NM_DEVICE_BOND_HW_ADDRESS">NM_DEVICE_BOND_HW_ADDRESS</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceBond.html#nm-device-bond-error-quark" title="nm_device_bond_error_quark ()">nm_device_bond_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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="NMDeviceBond.html#nm-device-bond-get-carrier" title="nm_device_bond_get_carrier ()">nm_device_bond_get_carrier</a> (<em class="parameter"><code><a class="link" href="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> *device</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceBond.html#nm-device-bond-get-hw-address" title="nm_device_bond_get_hw_address ()">nm_device_bond_get_hw_address</a> (<em class="parameter"><code><a class="link" href="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> *device</code></em>); +<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="NMDeviceBond.html#nm-device-bond-new" title="nm_device_bond_new ()">nm_device_bond_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>); +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceBond.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> + +----NMDeviceBond +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceBond.implemented-interfaces"></a><h2>Implemented Interfaces</h2> +<p> +NMDeviceBond implements + <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a> and <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a>.</p> +</div> +<div class="refsect1"> +<a name="NMDeviceBond.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="NMDeviceBond.html#NMDeviceBond--carrier" title='The "carrier" property'>carrier</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="NMDeviceBond.html#NMDeviceBond--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 +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceBond.description"></a><h2>Description</h2> +<p> +</p> +</div> +<div class="refsect1"> +<a name="NMDeviceBond.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="NMDeviceBond-struct"></a><h3>NMDeviceBond</h3> +<pre class="programlisting">typedef struct _NMDeviceBond NMDeviceBond;</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceBondClass"></a><h3>NMDeviceBondClass</h3> +<pre class="programlisting">typedef struct { + NMDeviceClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); + void (*_reserved5) (void); + void (*_reserved6) (void); +} NMDeviceBondClass; +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceBondError"></a><h3>enum NMDeviceBondError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_BOND_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_BOND_ERROR_NOT_BOND_CONNECTION, /*< nick=NotBondConnection >*/ + NM_DEVICE_BOND_ERROR_INVALID_BOND_CONNECTION, /*< nick=InvalidBondConnection >*/ + NM_DEVICE_BOND_ERROR_INTERFACE_MISMATCH, /*< nick=InterfaceMismatch >*/ +} NMDeviceBondError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-BOND-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BOND_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BOND-ERROR-NOT-BOND-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BOND_ERROR_NOT_BOND_CONNECTION</code></span></p></td> +<td>the connection was not of bond type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BOND-ERROR-INVALID-BOND-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BOND_ERROR_INVALID_BOND_CONNECTION</code></span></p></td> +<td>the bond connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BOND-ERROR-INTERFACE-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BOND_ERROR_INTERFACE_MISMATCH</code></span></p></td> +<td>the interfaces of the connection and the device mismatched +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-BOND-CARRIER:CAPS"></a><h3>NM_DEVICE_BOND_CARRIER</h3> +<pre class="programlisting">#define NM_DEVICE_BOND_CARRIER "carrier" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-BOND-ERROR:CAPS"></a><h3>NM_DEVICE_BOND_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_BOND_ERROR nm_device_bond_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-BOND-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_BOND_HW_ADDRESS</h3> +<pre class="programlisting">#define NM_DEVICE_BOND_HW_ADDRESS "hw-address" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-bond-error-quark"></a><h3>nm_device_bond_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_bond_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-bond-get-carrier"></a><h3>nm_device_bond_get_carrier ()</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_device_bond_get_carrier (<em class="parameter"><code><a class="link" href="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> *device</code></em>);</pre> +<p> +Whether the device has carrier. +</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="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device has carrier</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-bond-get-hw-address"></a><h3>nm_device_bond_get_hw_address ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_bond_get_hw_address (<em class="parameter"><code><a class="link" href="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> *device</code></em>);</pre> +<p> +Gets the hardware (MAC) address of the <a class="link" href="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</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="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the hardware address. This is the internal string used by the +device, and must not be modified.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-bond-new"></a><h3>nm_device_bond_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_device_bond_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="NMDeviceBond.html" title="NMDeviceBond"><span class="type">NMDeviceBond</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>connection</code></em> :</span></p></td> +<td>the <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td> +<td>the DBus object path of the device</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>a new device. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> +</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="NMDeviceBond.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="NMDeviceBond--carrier"></a><h3>The <code class="literal">"carrier"</code> property</h3> +<pre class="programlisting"> "carrier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre> +<p> +Whether the device has carrier. +</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceBond--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> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/libnm-glib/html/NMDeviceBt.html b/docs/libnm-glib/html/NMDeviceBt.html index b41291a5..bc766453 100644 --- a/docs/libnm-glib/html/NMDeviceBt.html +++ b/docs/libnm-glib/html/NMDeviceBt.html @@ -45,9 +45,12 @@ <a name="NMDeviceBt.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis"> <a class="link" href="NMDeviceBt.html#NMDeviceBt-struct" title="NMDeviceBt">NMDeviceBt</a>; <a class="link" href="NMDeviceBt.html#NMDeviceBtClass" title="NMDeviceBtClass">NMDeviceBtClass</a>; +enum <a class="link" href="NMDeviceBt.html#NMDeviceBtError" title="enum NMDeviceBtError">NMDeviceBtError</a>; #define <a class="link" href="NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS" title="NM_DEVICE_BT_CAPABILITIES">NM_DEVICE_BT_CAPABILITIES</a> +#define <a class="link" href="NMDeviceBt.html#NM-DEVICE-BT-ERROR:CAPS" title="NM_DEVICE_BT_ERROR">NM_DEVICE_BT_ERROR</a> #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> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceBt.html#nm-device-bt-error-quark" title="nm_device_bt_error_quark ()">nm_device_bt_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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>); 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>); @@ -111,6 +114,54 @@ NMDeviceBt implements </div> <hr> <div class="refsect2"> +<a name="NMDeviceBtError"></a><h3>enum NMDeviceBtError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_BT_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_BT_ERROR_NOT_BT_CONNECTION, /*< nick=NotBtConnection >*/ + NM_DEVICE_BT_ERROR_INVALID_BT_CONNECTION, /*< nick=InvalidBtConnection >*/ + NM_DEVICE_BT_ERROR_INVALID_DEVICE_MAC, /*< nick=InvalidDeviceMac >*/ + NM_DEVICE_BT_ERROR_MAC_MISMATCH, /*< nick=MacMismatch >*/ + NM_DEVICE_BT_ERROR_MISSING_DEVICE_CAPS, /*< nick=MissingDeviceCaps >*/ +} NMDeviceBtError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-BT-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BT_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BT-ERROR-NOT-BT-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BT_ERROR_NOT_BT_CONNECTION</code></span></p></td> +<td>the connection was not of bluetooth type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BT-ERROR-INVALID-BT-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BT_ERROR_INVALID_BT_CONNECTION</code></span></p></td> +<td>the bluetooth connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BT-ERROR-INVALID-DEVICE-MAC:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BT_ERROR_INVALID_DEVICE_MAC</code></span></p></td> +<td>the device's MAC was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BT-ERROR-MAC-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BT_ERROR_MAC_MISMATCH</code></span></p></td> +<td>the MACs of the connection and the device mismatched +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-BT-ERROR-MISSING-DEVICE-CAPS"></a><span class="term"><code class="literal">NM_DEVICE_BT_ERROR_MISSING_DEVICE_CAPS</code></span></p></td> +<td>the device missed required capabilities +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-BT-CAPABILITIES:CAPS"></a><h3>NM_DEVICE_BT_CAPABILITIES</h3> <pre class="programlisting">#define NM_DEVICE_BT_CAPABILITIES "bt-capabilities" </pre> @@ -119,6 +170,14 @@ NMDeviceBt implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-BT-ERROR:CAPS"></a><h3>NM_DEVICE_BT_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_BT_ERROR nm_device_bt_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <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" </pre> @@ -135,6 +194,21 @@ NMDeviceBt implements </div> <hr> <div class="refsect2"> +<a name="nm-device-bt-error-quark"></a><h3>nm_device_bt_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_bt_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <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="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre> <p> diff --git a/docs/libnm-glib/html/NMDeviceEthernet.html b/docs/libnm-glib/html/NMDeviceEthernet.html index 786a5842..94d959b6 100644 --- a/docs/libnm-glib/html/NMDeviceEthernet.html +++ b/docs/libnm-glib/html/NMDeviceEthernet.html @@ -45,10 +45,13 @@ <a name="NMDeviceEthernet.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis"> <a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet-struct" title="NMDeviceEthernet">NMDeviceEthernet</a>; <a class="link" href="NMDeviceEthernet.html#NMDeviceEthernetClass" title="NMDeviceEthernetClass">NMDeviceEthernetClass</a>; +enum <a class="link" href="NMDeviceEthernet.html#NMDeviceEthernetError" title="enum NMDeviceEthernetError">NMDeviceEthernetError</a>; #define <a class="link" href="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-CARRIER:CAPS" title="NM_DEVICE_ETHERNET_CARRIER">NM_DEVICE_ETHERNET_CARRIER</a> +#define <a class="link" href="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR:CAPS" title="NM_DEVICE_ETHERNET_ERROR">NM_DEVICE_ETHERNET_ERROR</a> #define <a class="link" href="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-HW-ADDRESS:CAPS" title="NM_DEVICE_ETHERNET_HW_ADDRESS">NM_DEVICE_ETHERNET_HW_ADDRESS</a> #define <a class="link" href="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-PERMANENT-HW-ADDRESS:CAPS" title="NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS">NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS</a> #define <a class="link" href="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-SPEED:CAPS" title="NM_DEVICE_ETHERNET_SPEED">NM_DEVICE_ETHERNET_SPEED</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceEthernet.html#nm-device-ethernet-error-quark" title="nm_device_ethernet_error_quark ()">nm_device_ethernet_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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="NMDeviceEthernet.html#nm-device-ethernet-get-carrier" title="nm_device_ethernet_get_carrier ()">nm_device_ethernet_get_carrier</a> (<em class="parameter"><code><a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet"><span class="type">NMDeviceEthernet</span></a> *device</code></em>); const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceEthernet.html#nm-device-ethernet-get-hw-address" title="nm_device_ethernet_get_hw_address ()">nm_device_ethernet_get_hw_address</a> (<em class="parameter"><code><a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet"><span class="type">NMDeviceEthernet</span></a> *device</code></em>); const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceEthernet.html#nm-device-ethernet-get-permanent-hw-address" title="nm_device_ethernet_get_permanent_hw_address ()">nm_device_ethernet_get_permanent_hw_address</a> @@ -115,6 +118,48 @@ NMDeviceEthernet implements </div> <hr> <div class="refsect2"> +<a name="NMDeviceEthernetError"></a><h3>enum NMDeviceEthernetError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_ETHERNET_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_ETHERNET_ERROR_NOT_ETHERNET_CONNECTION, /*< nick=NotEthernetConnection >*/ + NM_DEVICE_ETHERNET_ERROR_INVALID_ETHERNET_CONNECTION, /*< nick=InvalidEthernetConnection >*/ + NM_DEVICE_ETHERNET_ERROR_INVALID_DEVICE_MAC, /*< nick=InvalidDeviceMac >*/ + NM_DEVICE_ETHERNET_ERROR_MAC_MISMATCH, /*< nick=MacMismatch >*/ +} NMDeviceEthernetError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-ETHERNET-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_ETHERNET_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-ETHERNET-ERROR-NOT-ETHERNET-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_ETHERNET_ERROR_NOT_ETHERNET_CONNECTION</code></span></p></td> +<td>the connection was not of ethernet or PPPoE type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-ETHERNET-ERROR-INVALID-ETHERNET-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_ETHERNET_ERROR_INVALID_ETHERNET_CONNECTION</code></span></p></td> +<td>the ethernet connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-ETHERNET-ERROR-INVALID-DEVICE-MAC:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_ETHERNET_ERROR_INVALID_DEVICE_MAC</code></span></p></td> +<td>the device's MAC was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-ETHERNET-ERROR-MAC-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_ETHERNET_ERROR_MAC_MISMATCH</code></span></p></td> +<td>the MACs of the connection and the device mismatched +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-ETHERNET-CARRIER:CAPS"></a><h3>NM_DEVICE_ETHERNET_CARRIER</h3> <pre class="programlisting">#define NM_DEVICE_ETHERNET_CARRIER "carrier" </pre> @@ -123,6 +168,14 @@ NMDeviceEthernet implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-ETHERNET-ERROR:CAPS"></a><h3>NM_DEVICE_ETHERNET_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_ETHERNET_ERROR nm_device_ethernet_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-ETHERNET-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_ETHERNET_HW_ADDRESS</h3> <pre class="programlisting">#define NM_DEVICE_ETHERNET_HW_ADDRESS "hw-address" </pre> @@ -147,6 +200,21 @@ NMDeviceEthernet implements </div> <hr> <div class="refsect2"> +<a name="nm-device-ethernet-error-quark"></a><h3>nm_device_ethernet_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_ethernet_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet"><span class="type">NMDeviceEthernet</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet"><span class="type">NMDeviceEthernet</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-ethernet-get-carrier"></a><h3>nm_device_ethernet_get_carrier ()</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_device_ethernet_get_carrier (<em class="parameter"><code><a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet"><span class="type">NMDeviceEthernet</span></a> *device</code></em>);</pre> <p> diff --git a/docs/libnm-glib/html/NMDeviceInfiniband.html b/docs/libnm-glib/html/NMDeviceInfiniband.html new file mode 100644 index 00000000..c4253e5d --- /dev/null +++ b/docs/libnm-glib/html/NMDeviceInfiniband.html @@ -0,0 +1,293 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>NMDeviceInfiniband</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="index.html" title="libnm-glib Reference Manual"> +<link rel="up" href="ch02.html" title="libnm-glib API Reference"> +<link rel="prev" href="NMDeviceBond.html" title="NMDeviceBond"> +<link rel="next" href="NMDeviceVlan.html" title="NMDeviceVlan"> +<meta name="generator" content="GTK-Doc V1.18 (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="NMDeviceBond.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">libnm-glib Reference Manual</th> +<td><a accesskey="n" href="NMDeviceVlan.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#NMDeviceInfiniband.synopsis" class="shortcut">Top</a> + | + <a href="#NMDeviceInfiniband.description" class="shortcut">Description</a> + | + <a href="#NMDeviceInfiniband.object-hierarchy" class="shortcut">Object Hierarchy</a> + | + <a href="#NMDeviceInfiniband.implemented-interfaces" class="shortcut">Implemented Interfaces</a> + | + <a href="#NMDeviceInfiniband.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="NMDeviceInfiniband"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="NMDeviceInfiniband.top_of_page"></a>NMDeviceInfiniband</span></h2> +<p>NMDeviceInfiniband</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="NMDeviceInfiniband.synopsis"></a><h2>Synopsis</h2> +<pre class="synopsis"> <a class="link" href="NMDeviceInfiniband.html#NMDeviceInfiniband-struct" title="NMDeviceInfiniband">NMDeviceInfiniband</a>; + <a class="link" href="NMDeviceInfiniband.html#NMDeviceInfinibandClass" title="NMDeviceInfinibandClass">NMDeviceInfinibandClass</a>; +enum <a class="link" href="NMDeviceInfiniband.html#NMDeviceInfinibandError" title="enum NMDeviceInfinibandError">NMDeviceInfinibandError</a>; +#define <a class="link" href="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-CARRIER:CAPS" title="NM_DEVICE_INFINIBAND_CARRIER">NM_DEVICE_INFINIBAND_CARRIER</a> +#define <a class="link" href="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR:CAPS" title="NM_DEVICE_INFINIBAND_ERROR">NM_DEVICE_INFINIBAND_ERROR</a> +#define <a class="link" href="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-HW-ADDRESS:CAPS" title="NM_DEVICE_INFINIBAND_HW_ADDRESS">NM_DEVICE_INFINIBAND_HW_ADDRESS</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceInfiniband.html#nm-device-infiniband-error-quark" title="nm_device_infiniband_error_quark ()">nm_device_infiniband_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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="NMDeviceInfiniband.html#nm-device-infiniband-get-carrier" title="nm_device_infiniband_get_carrier ()">nm_device_infiniband_get_carrier</a> (<em class="parameter"><code><a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> *device</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceInfiniband.html#nm-device-infiniband-get-hw-address" title="nm_device_infiniband_get_hw_address ()">nm_device_infiniband_get_hw_address</a> (<em class="parameter"><code><a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> *device</code></em>); +<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="NMDeviceInfiniband.html#nm-device-infiniband-new" title="nm_device_infiniband_new ()">nm_device_infiniband_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>); +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceInfiniband.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> + +----NMDeviceInfiniband +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceInfiniband.implemented-interfaces"></a><h2>Implemented Interfaces</h2> +<p> +NMDeviceInfiniband implements + <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a> and <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a>.</p> +</div> +<div class="refsect1"> +<a name="NMDeviceInfiniband.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="NMDeviceInfiniband.html#NMDeviceInfiniband--carrier" title='The "carrier" property'>carrier</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="NMDeviceInfiniband.html#NMDeviceInfiniband--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 +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceInfiniband.description"></a><h2>Description</h2> +<p> +</p> +</div> +<div class="refsect1"> +<a name="NMDeviceInfiniband.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="NMDeviceInfiniband-struct"></a><h3>NMDeviceInfiniband</h3> +<pre class="programlisting">typedef struct _NMDeviceInfiniband NMDeviceInfiniband;</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceInfinibandClass"></a><h3>NMDeviceInfinibandClass</h3> +<pre class="programlisting">typedef struct { + NMDeviceClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); + void (*_reserved5) (void); + void (*_reserved6) (void); +} NMDeviceInfinibandClass; +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceInfinibandError"></a><h3>enum NMDeviceInfinibandError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_INFINIBAND_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_INFINIBAND_ERROR_NOT_INFINIBAND_CONNECTION, /*< nick=NotInfinibandConnection >*/ + NM_DEVICE_INFINIBAND_ERROR_INVALID_INFINIBAND_CONNECTION, /*< nick=InvalidInfinibandConnection >*/ + NM_DEVICE_INFINIBAND_ERROR_INVALID_DEVICE_MAC, /*< nick=InvalidDeviceMac >*/ + NM_DEVICE_INFINIBAND_ERROR_MAC_MISMATCH, /*< nick=MacMismatch >*/ +} NMDeviceInfinibandError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-INFINIBAND-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_INFINIBAND_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-INFINIBAND-ERROR-NOT-INFINIBAND-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_INFINIBAND_ERROR_NOT_INFINIBAND_CONNECTION</code></span></p></td> +<td>the connection was not of InfiniBand type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-INFINIBAND-ERROR-INVALID-INFINIBAND-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_INFINIBAND_ERROR_INVALID_INFINIBAND_CONNECTION</code></span></p></td> +<td>the InfiniBand connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-INFINIBAND-ERROR-INVALID-DEVICE-MAC:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_INFINIBAND_ERROR_INVALID_DEVICE_MAC</code></span></p></td> +<td>the device's MAC was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-INFINIBAND-ERROR-MAC-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_INFINIBAND_ERROR_MAC_MISMATCH</code></span></p></td> +<td>the MACs of the connection and the device mismatched +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-INFINIBAND-CARRIER:CAPS"></a><h3>NM_DEVICE_INFINIBAND_CARRIER</h3> +<pre class="programlisting">#define NM_DEVICE_INFINIBAND_CARRIER "carrier" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-INFINIBAND-ERROR:CAPS"></a><h3>NM_DEVICE_INFINIBAND_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_INFINIBAND_ERROR nm_device_infiniband_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-INFINIBAND-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_INFINIBAND_HW_ADDRESS</h3> +<pre class="programlisting">#define NM_DEVICE_INFINIBAND_HW_ADDRESS "hw-address" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-infiniband-error-quark"></a><h3>nm_device_infiniband_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_infiniband_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-infiniband-get-carrier"></a><h3>nm_device_infiniband_get_carrier ()</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_device_infiniband_get_carrier (<em class="parameter"><code><a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> *device</code></em>);</pre> +<p> +Whether the device has carrier. +</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="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device has carrier</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-infiniband-get-hw-address"></a><h3>nm_device_infiniband_get_hw_address ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_infiniband_get_hw_address (<em class="parameter"><code><a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> *device</code></em>);</pre> +<p> +Gets the hardware (MAC) address of the <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</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="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the hardware address. This is the internal string used by the +device, and must not be modified.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-infiniband-new"></a><h3>nm_device_infiniband_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_device_infiniband_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="NMDeviceInfiniband.html" title="NMDeviceInfiniband"><span class="type">NMDeviceInfiniband</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>connection</code></em> :</span></p></td> +<td>the <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td> +<td>the DBus object path of the device</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>a new device. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> +</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="NMDeviceInfiniband.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="NMDeviceInfiniband--carrier"></a><h3>The <code class="literal">"carrier"</code> property</h3> +<pre class="programlisting"> "carrier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre> +<p> +Whether the device has carrier. +</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceInfiniband--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> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/libnm-glib/html/NMDeviceModem.html b/docs/libnm-glib/html/NMDeviceModem.html index 751da6e3..6dec6b03 100644 --- a/docs/libnm-glib/html/NMDeviceModem.html +++ b/docs/libnm-glib/html/NMDeviceModem.html @@ -45,8 +45,11 @@ <a name="NMDeviceModem.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis"> <a class="link" href="NMDeviceModem.html#NMDeviceModem-struct" title="NMDeviceModem">NMDeviceModem</a>; <a class="link" href="NMDeviceModem.html#NMDeviceModemClass" title="NMDeviceModemClass">NMDeviceModemClass</a>; +enum <a class="link" href="NMDeviceModem.html#NMDeviceModemError" title="enum NMDeviceModemError">NMDeviceModemError</a>; #define <a class="link" href="NMDeviceModem.html#NM-DEVICE-MODEM-CURRENT-CAPABILITIES:CAPS" title="NM_DEVICE_MODEM_CURRENT_CAPABILITIES">NM_DEVICE_MODEM_CURRENT_CAPABILITIES</a> +#define <a class="link" href="NMDeviceModem.html#NM-DEVICE-MODEM-ERROR:CAPS" title="NM_DEVICE_MODEM_ERROR">NM_DEVICE_MODEM_ERROR</a> #define <a class="link" href="NMDeviceModem.html#NM-DEVICE-MODEM-MODEM-CAPABILITIES:CAPS" title="NM_DEVICE_MODEM_MODEM_CAPABILITIES">NM_DEVICE_MODEM_MODEM_CAPABILITIES</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceModem.html#nm-device-modem-error-quark" title="nm_device_modem_error_quark ()">nm_device_modem_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>); <span class="returnvalue">NMDeviceModemCapabilities</span> <a class="link" href="NMDeviceModem.html#nm-device-modem-get-current-capabilities" title="nm_device_modem_get_current_capabilities ()">nm_device_modem_get_current_capabilities</a> (<em class="parameter"><code><a class="link" href="NMDeviceModem.html" title="NMDeviceModem"><span class="type">NMDeviceModem</span></a> *self</code></em>); <span class="returnvalue">NMDeviceModemCapabilities</span> <a class="link" href="NMDeviceModem.html#nm-device-modem-get-modem-capabilities" title="nm_device_modem_get_modem_capabilities ()">nm_device_modem_get_modem_capabilities</a> @@ -108,6 +111,42 @@ NMDeviceModem implements </div> <hr> <div class="refsect2"> +<a name="NMDeviceModemError"></a><h3>enum NMDeviceModemError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_MODEM_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_MODEM_ERROR_NOT_MODEM_CONNECTION, /*< nick=NotModemConnection >*/ + NM_DEVICE_MODEM_ERROR_INVALID_MODEM_CONNECTION, /*< nick=InvalidModemConnection >*/ + NM_DEVICE_MODEM_ERROR_MISSING_DEVICE_CAPS, /*< nick=MissingDeviceCaps >*/ +} NMDeviceModemError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-MODEM-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_MODEM_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-MODEM-ERROR-NOT-MODEM-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_MODEM_ERROR_NOT_MODEM_CONNECTION</code></span></p></td> +<td>the connection was not of modem type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-MODEM-ERROR-INVALID-MODEM-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_MODEM_ERROR_INVALID_MODEM_CONNECTION</code></span></p></td> +<td>the modem connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-MODEM-ERROR-MISSING-DEVICE-CAPS"></a><span class="term"><code class="literal">NM_DEVICE_MODEM_ERROR_MISSING_DEVICE_CAPS</code></span></p></td> +<td>the device missed required capabilities +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-MODEM-CURRENT-CAPABILITIES:CAPS"></a><h3>NM_DEVICE_MODEM_CURRENT_CAPABILITIES</h3> <pre class="programlisting">#define NM_DEVICE_MODEM_CURRENT_CAPABILITIES "current-capabilities" </pre> @@ -116,6 +155,14 @@ NMDeviceModem implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-MODEM-ERROR:CAPS"></a><h3>NM_DEVICE_MODEM_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_MODEM_ERROR nm_device_modem_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-MODEM-MODEM-CAPABILITIES:CAPS"></a><h3>NM_DEVICE_MODEM_MODEM_CAPABILITIES</h3> <pre class="programlisting">#define NM_DEVICE_MODEM_MODEM_CAPABILITIES "modem-capabilities" </pre> @@ -124,6 +171,21 @@ NMDeviceModem implements </div> <hr> <div class="refsect2"> +<a name="nm-device-modem-error-quark"></a><h3>nm_device_modem_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_modem_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceModem.html" title="NMDeviceModem"><span class="type">NMDeviceModem</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceModem.html" title="NMDeviceModem"><span class="type">NMDeviceModem</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-modem-get-current-capabilities"></a><h3>nm_device_modem_get_current_capabilities ()</h3> <pre class="programlisting"><span class="returnvalue">NMDeviceModemCapabilities</span> nm_device_modem_get_current_capabilities (<em class="parameter"><code><a class="link" href="NMDeviceModem.html" title="NMDeviceModem"><span class="type">NMDeviceModem</span></a> *self</code></em>);</pre> diff --git a/docs/libnm-glib/html/NMDeviceOlpcMesh.html b/docs/libnm-glib/html/NMDeviceOlpcMesh.html new file mode 100644 index 00000000..2af9c04b --- /dev/null +++ b/docs/libnm-glib/html/NMDeviceOlpcMesh.html @@ -0,0 +1,324 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>NMDeviceOlpcMesh</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="index.html" title="libnm-glib Reference Manual"> +<link rel="up" href="ch02.html" title="libnm-glib API Reference"> +<link rel="prev" href="NMDeviceVlan.html" title="NMDeviceVlan"> +<link rel="next" href="NMWimaxNsp.html" title="NMWimaxNsp"> +<meta name="generator" content="GTK-Doc V1.18 (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="NMDeviceVlan.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">libnm-glib Reference Manual</th> +<td><a accesskey="n" href="NMWimaxNsp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#NMDeviceOlpcMesh.synopsis" class="shortcut">Top</a> + | + <a href="#NMDeviceOlpcMesh.description" class="shortcut">Description</a> + | + <a href="#NMDeviceOlpcMesh.object-hierarchy" class="shortcut">Object Hierarchy</a> + | + <a href="#NMDeviceOlpcMesh.implemented-interfaces" class="shortcut">Implemented Interfaces</a> + | + <a href="#NMDeviceOlpcMesh.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="NMDeviceOlpcMesh"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="NMDeviceOlpcMesh.top_of_page"></a>NMDeviceOlpcMesh</span></h2> +<p>NMDeviceOlpcMesh</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="NMDeviceOlpcMesh.synopsis"></a><h2>Synopsis</h2> +<pre class="synopsis"> <a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh-struct" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a>; + <a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMeshClass" title="NMDeviceOlpcMeshClass">NMDeviceOlpcMeshClass</a>; +enum <a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMeshError" title="enum NMDeviceOlpcMeshError">NMDeviceOlpcMeshError</a>; +#define <a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ACTIVE-CHANNEL:CAPS" title="NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL">NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL</a> +#define <a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-COMPANION:CAPS" title="NM_DEVICE_OLPC_MESH_COMPANION">NM_DEVICE_OLPC_MESH_COMPANION</a> +#define <a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR:CAPS" title="NM_DEVICE_OLPC_MESH_ERROR">NM_DEVICE_OLPC_MESH_ERROR</a> +#define <a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-HW-ADDRESS:CAPS" title="NM_DEVICE_OLPC_MESH_HW_ADDRESS">NM_DEVICE_OLPC_MESH_HW_ADDRESS</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-error-quark" title="nm_device_olpc_mesh_error_quark ()">nm_device_olpc_mesh_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-active-channel" title="nm_device_olpc_mesh_get_active_channel ()">nm_device_olpc_mesh_get_active_channel</a> + (<em class="parameter"><code><a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> *device</code></em>); +<a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="returnvalue">NMDeviceWifi</span></a> * <a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-companion" title="nm_device_olpc_mesh_get_companion ()">nm_device_olpc_mesh_get_companion</a> (<em class="parameter"><code><a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> *device</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-hw-address" title="nm_device_olpc_mesh_get_hw_address ()">nm_device_olpc_mesh_get_hw_address</a> (<em class="parameter"><code><a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> *device</code></em>); +<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="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-new" title="nm_device_olpc_mesh_new ()">nm_device_olpc_mesh_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>); +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceOlpcMesh.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> + +----NMDeviceOlpcMesh +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceOlpcMesh.implemented-interfaces"></a><h2>Implemented Interfaces</h2> +<p> +NMDeviceOlpcMesh implements + <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a> and <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a>.</p> +</div> +<div class="refsect1"> +<a name="NMDeviceOlpcMesh.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--active-channel" title='The "active-channel" property'>active-channel</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="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--companion" title='The "companion" property'>companion</a>" <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a>* : Read + "<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--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 +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceOlpcMesh.description"></a><h2>Description</h2> +<p> +</p> +</div> +<div class="refsect1"> +<a name="NMDeviceOlpcMesh.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="NMDeviceOlpcMesh-struct"></a><h3>NMDeviceOlpcMesh</h3> +<pre class="programlisting">typedef struct _NMDeviceOlpcMesh NMDeviceOlpcMesh;</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceOlpcMeshClass"></a><h3>NMDeviceOlpcMeshClass</h3> +<pre class="programlisting">typedef struct { + NMDeviceClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); + void (*_reserved5) (void); + void (*_reserved6) (void); +} NMDeviceOlpcMeshClass; +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceOlpcMeshError"></a><h3>enum NMDeviceOlpcMeshError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_OLPC_MESH_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_OLPC_MESH_ERROR_NOT_OLPC_MESH_CONNECTION, /*< nick=NotOlpcMeshConnection >*/ + NM_DEVICE_OLPC_MESH_ERROR_INVALID_OLPC_MESH_CONNECTION, /*< nick=InvalidOlpcMeshConnection >*/ +} NMDeviceOlpcMeshError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-OLPC-MESH-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_OLPC_MESH_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-OLPC-MESH-ERROR-NOT-OLPC-MESH-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_OLPC_MESH_ERROR_NOT_OLPC_MESH_CONNECTION</code></span></p></td> +<td>the connection was not of Olpc Mesh type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-OLPC-MESH-ERROR-INVALID-OLPC-MESH-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_OLPC_MESH_ERROR_INVALID_OLPC_MESH_CONNECTION</code></span></p></td> +<td>the Olpc Mesh connection was invalid +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-OLPC-MESH-ACTIVE-CHANNEL:CAPS"></a><h3>NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL</h3> +<pre class="programlisting">#define NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL "active-channel" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-OLPC-MESH-COMPANION:CAPS"></a><h3>NM_DEVICE_OLPC_MESH_COMPANION</h3> +<pre class="programlisting">#define NM_DEVICE_OLPC_MESH_COMPANION "companion" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-OLPC-MESH-ERROR:CAPS"></a><h3>NM_DEVICE_OLPC_MESH_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_OLPC_MESH_ERROR nm_device_olpc_mesh_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-OLPC-MESH-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_OLPC_MESH_HW_ADDRESS</h3> +<pre class="programlisting">#define NM_DEVICE_OLPC_MESH_HW_ADDRESS "hw-address" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-olpc-mesh-error-quark"></a><h3>nm_device_olpc_mesh_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_olpc_mesh_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-olpc-mesh-get-active-channel"></a><h3>nm_device_olpc_mesh_get_active_channel ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_device_olpc_mesh_get_active_channel + (<em class="parameter"><code><a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> *device</code></em>);</pre> +<p> +Returns the active channel of the <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> device. +</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="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>active channel of the device</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-olpc-mesh-get-companion"></a><h3>nm_device_olpc_mesh_get_companion ()</h3> +<pre class="programlisting"><a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="returnvalue">NMDeviceWifi</span></a> * nm_device_olpc_mesh_get_companion (<em class="parameter"><code><a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> *device</code></em>);</pre> +<p> +Gets the companion device of the <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</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="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the companion of the device of <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-olpc-mesh-get-hw-address"></a><h3>nm_device_olpc_mesh_get_hw_address ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_olpc_mesh_get_hw_address (<em class="parameter"><code><a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> *device</code></em>);</pre> +<p> +Gets the hardware (MAC) address of the <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</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="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the hardware address. This is the internal string used by the +device, and must not be modified.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-olpc-mesh-new"></a><h3>nm_device_olpc_mesh_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_device_olpc_mesh_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="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"><span class="type">NMDeviceOlpcMesh</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>connection</code></em> :</span></p></td> +<td>the <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td> +<td>the DBus object path of the device</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>a new OlpcMesh device. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> +</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="NMDeviceOlpcMesh.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="NMDeviceOlpcMesh--active-channel"></a><h3>The <code class="literal">"active-channel"</code> property</h3> +<pre class="programlisting"> "active-channel" <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 active channel. +</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceOlpcMesh--companion"></a><h3>The <code class="literal">"companion"</code> property</h3> +<pre class="programlisting"> "companion" <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a>* : Read</pre> +<p> +The companion device. +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceOlpcMesh--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> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/libnm-glib/html/NMDeviceVlan.html b/docs/libnm-glib/html/NMDeviceVlan.html new file mode 100644 index 00000000..4e7f1a70 --- /dev/null +++ b/docs/libnm-glib/html/NMDeviceVlan.html @@ -0,0 +1,333 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>NMDeviceVlan</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="index.html" title="libnm-glib Reference Manual"> +<link rel="up" href="ch02.html" title="libnm-glib API Reference"> +<link rel="prev" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband"> +<link rel="next" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"> +<meta name="generator" content="GTK-Doc V1.18 (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="NMDeviceInfiniband.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">libnm-glib Reference Manual</th> +<td><a accesskey="n" href="NMDeviceOlpcMesh.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#NMDeviceVlan.synopsis" class="shortcut">Top</a> + | + <a href="#NMDeviceVlan.description" class="shortcut">Description</a> + | + <a href="#NMDeviceVlan.object-hierarchy" class="shortcut">Object Hierarchy</a> + | + <a href="#NMDeviceVlan.implemented-interfaces" class="shortcut">Implemented Interfaces</a> + | + <a href="#NMDeviceVlan.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="NMDeviceVlan"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="NMDeviceVlan.top_of_page"></a>NMDeviceVlan</span></h2> +<p>NMDeviceVlan</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="NMDeviceVlan.synopsis"></a><h2>Synopsis</h2> +<pre class="synopsis"> <a class="link" href="NMDeviceVlan.html#NMDeviceVlan-struct" title="NMDeviceVlan">NMDeviceVlan</a>; + <a class="link" href="NMDeviceVlan.html#NMDeviceVlanClass" title="NMDeviceVlanClass">NMDeviceVlanClass</a>; +enum <a class="link" href="NMDeviceVlan.html#NMDeviceVlanError" title="enum NMDeviceVlanError">NMDeviceVlanError</a>; +#define <a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-CARRIER:CAPS" title="NM_DEVICE_VLAN_CARRIER">NM_DEVICE_VLAN_CARRIER</a> +#define <a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR:CAPS" title="NM_DEVICE_VLAN_ERROR">NM_DEVICE_VLAN_ERROR</a> +#define <a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-HW-ADDRESS:CAPS" title="NM_DEVICE_VLAN_HW_ADDRESS">NM_DEVICE_VLAN_HW_ADDRESS</a> +#define <a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-VLAN-ID:CAPS" title="NM_DEVICE_VLAN_VLAN_ID">NM_DEVICE_VLAN_VLAN_ID</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceVlan.html#nm-device-vlan-error-quark" title="nm_device_vlan_error_quark ()">nm_device_vlan_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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="NMDeviceVlan.html#nm-device-vlan-get-carrier" title="nm_device_vlan_get_carrier ()">nm_device_vlan_get_carrier</a> (<em class="parameter"><code><a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> *device</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceVlan.html#nm-device-vlan-get-hw-address" title="nm_device_vlan_get_hw_address ()">nm_device_vlan_get_hw_address</a> (<em class="parameter"><code><a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> *device</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="NMDeviceVlan.html#nm-device-vlan-get-vlan-id" title="nm_device_vlan_get_vlan_id ()">nm_device_vlan_get_vlan_id</a> (<em class="parameter"><code><a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> *device</code></em>); +<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="NMDeviceVlan.html#nm-device-vlan-new" title="nm_device_vlan_new ()">nm_device_vlan_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>); +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceVlan.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> + +----NMDeviceVlan +</pre> +</div> +<div class="refsect1"> +<a name="NMDeviceVlan.implemented-interfaces"></a><h2>Implemented Interfaces</h2> +<p> +NMDeviceVlan implements + <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a> and <a href="http://library.gnome.org/devel/gio/unstable/GAsyncInitable.html">GAsyncInitable</a>.</p> +</div> +<div class="refsect1"> +<a name="NMDeviceVlan.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="NMDeviceVlan.html#NMDeviceVlan--carrier" title='The "carrier" property'>carrier</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="NMDeviceVlan.html#NMDeviceVlan--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="NMDeviceVlan.html#NMDeviceVlan--vlan-id" title='The "vlan-id" property'>vlan-id</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"> +<a name="NMDeviceVlan.description"></a><h2>Description</h2> +<p> +</p> +</div> +<div class="refsect1"> +<a name="NMDeviceVlan.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="NMDeviceVlan-struct"></a><h3>NMDeviceVlan</h3> +<pre class="programlisting">typedef struct _NMDeviceVlan NMDeviceVlan;</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceVlanClass"></a><h3>NMDeviceVlanClass</h3> +<pre class="programlisting">typedef struct { + NMDeviceClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); + void (*_reserved5) (void); + void (*_reserved6) (void); +} NMDeviceVlanClass; +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceVlanError"></a><h3>enum NMDeviceVlanError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_VLAN_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_VLAN_ERROR_NOT_VLAN_CONNECTION, /*< nick=NotVlanConnection >*/ + NM_DEVICE_VLAN_ERROR_INVALID_VLAN_CONNECTION, /*< nick=InvalidVlanConnection >*/ + NM_DEVICE_VLAN_ERROR_ID_MISMATCH, /*< nick=IdMismatch >*/ + NM_DEVICE_VLAN_ERROR_INTERFACE_MISMATCH, /*< nick=InterfaceMismatch >*/ +} NMDeviceVlanError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-VLAN-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_VLAN_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-VLAN-ERROR-NOT-VLAN-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_VLAN_ERROR_NOT_VLAN_CONNECTION</code></span></p></td> +<td>the connection was not of VLAN type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-VLAN-ERROR-INVALID-VLAN-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_VLAN_ERROR_INVALID_VLAN_CONNECTION</code></span></p></td> +<td>the VLAN connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-VLAN-ERROR-ID-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_VLAN_ERROR_ID_MISMATCH</code></span></p></td> +<td>the VLAN identifiers of the connection and the device mismatched +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-VLAN-ERROR-INTERFACE-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_VLAN_ERROR_INTERFACE_MISMATCH</code></span></p></td> +<td>the interfaces of the connection and the device mismatched +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-VLAN-CARRIER:CAPS"></a><h3>NM_DEVICE_VLAN_CARRIER</h3> +<pre class="programlisting">#define NM_DEVICE_VLAN_CARRIER "carrier" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-VLAN-ERROR:CAPS"></a><h3>NM_DEVICE_VLAN_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_VLAN_ERROR nm_device_vlan_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-VLAN-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_VLAN_HW_ADDRESS</h3> +<pre class="programlisting">#define NM_DEVICE_VLAN_HW_ADDRESS "hw-address" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-DEVICE-VLAN-VLAN-ID:CAPS"></a><h3>NM_DEVICE_VLAN_VLAN_ID</h3> +<pre class="programlisting">#define NM_DEVICE_VLAN_VLAN_ID "vlan-id" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-vlan-error-quark"></a><h3>nm_device_vlan_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_vlan_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-vlan-get-carrier"></a><h3>nm_device_vlan_get_carrier ()</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_device_vlan_get_carrier (<em class="parameter"><code><a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> *device</code></em>);</pre> +<p> +Whether the device has carrier. +</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="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device has carrier</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-vlan-get-hw-address"></a><h3>nm_device_vlan_get_hw_address ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_vlan_get_hw_address (<em class="parameter"><code><a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> *device</code></em>);</pre> +<p> +Gets the hardware (MAC) address of the <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</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="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the hardware address. This is the internal string used by the +device, and must not be modified.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-vlan-get-vlan-id"></a><h3>nm_device_vlan_get_vlan_id ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> nm_device_vlan_get_vlan_id (<em class="parameter"><code><a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> *device</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td> +<td>a <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the device's VLAN ID</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-device-vlan-new"></a><h3>nm_device_vlan_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_device_vlan_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="NMDeviceVlan.html" title="NMDeviceVlan"><span class="type">NMDeviceVlan</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>connection</code></em> :</span></p></td> +<td>the <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td> +<td>the DBus object path of the device</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>a new device. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> +</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="NMDeviceVlan.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="NMDeviceVlan--carrier"></a><h3>The <code class="literal">"carrier"</code> property</h3> +<pre class="programlisting"> "carrier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre> +<p> +Whether the device has carrier. +</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMDeviceVlan--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"> +<a name="NMDeviceVlan--vlan-id"></a><h3>The <code class="literal">"vlan-id"</code> property</h3> +<pre class="programlisting"> "vlan-id" <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 VLAN ID. +</p> +<p>Allowed values: <= 4095</p> +<p>Default value: 0</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/libnm-glib/html/NMDeviceWifi.html b/docs/libnm-glib/html/NMDeviceWifi.html index f08d0b79..e41712f3 100644 --- a/docs/libnm-glib/html/NMDeviceWifi.html +++ b/docs/libnm-glib/html/NMDeviceWifi.html @@ -47,12 +47,15 @@ <a name="NMDeviceWifi.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis"> <a class="link" href="NMDeviceWifi.html#NMDeviceWifi-struct" title="NMDeviceWifi">NMDeviceWifi</a>; <a class="link" href="NMDeviceWifi.html#NMDeviceWifiClass" title="NMDeviceWifiClass">NMDeviceWifiClass</a>; +enum <a class="link" href="NMDeviceWifi.html#NMDeviceWifiError" title="enum NMDeviceWifiError">NMDeviceWifiError</a>; #define <a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-ACTIVE-ACCESS-POINT:CAPS" title="NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT">NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT</a> #define <a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-BITRATE:CAPS" title="NM_DEVICE_WIFI_BITRATE">NM_DEVICE_WIFI_BITRATE</a> #define <a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-CAPABILITIES:CAPS" title="NM_DEVICE_WIFI_CAPABILITIES">NM_DEVICE_WIFI_CAPABILITIES</a> +#define <a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR:CAPS" title="NM_DEVICE_WIFI_ERROR">NM_DEVICE_WIFI_ERROR</a> #define <a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-HW-ADDRESS:CAPS" title="NM_DEVICE_WIFI_HW_ADDRESS">NM_DEVICE_WIFI_HW_ADDRESS</a> #define <a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-MODE:CAPS" title="NM_DEVICE_WIFI_MODE">NM_DEVICE_WIFI_MODE</a> #define <a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-PERMANENT-HW-ADDRESS:CAPS" title="NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS">NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceWifi.html#nm-device-wifi-error-quark" title="nm_device_wifi_error_quark ()">nm_device_wifi_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>); <a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span class="returnvalue">NMAccessPoint</span></a> * <a class="link" href="NMDeviceWifi.html#nm-device-wifi-get-access-point-by-path" title="nm_device_wifi_get_access_point_by_path ()">nm_device_wifi_get_access_point_by_path</a> (<em class="parameter"><code><a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a> *device</code></em>, <em class="parameter"><code>const <span class="type">char</span> *path</code></em>); @@ -140,6 +143,62 @@ NMDeviceWifi implements </div> <hr> <div class="refsect2"> +<a name="NMDeviceWifiError"></a><h3>enum NMDeviceWifiError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_WIFI_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_WIFI_ERROR_NOT_WIFI_CONNECTION, /*< nick=NotWifiConnection >*/ + NM_DEVICE_WIFI_ERROR_INVALID_WIFI_CONNECTION, /*< nick=InvalidWifiConnection >*/ + NM_DEVICE_WIFI_ERROR_INVALID_DEVICE_MAC, /*< nick=InvalidDeviceMac >*/ + NM_DEVICE_WIFI_ERROR_MAC_MISMATCH, /*< nick=MacMismatch >*/ + NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_WPA_CAPS, /*< nick=MissingDeviceWpaCaps >*/ + NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_RSN_CAPS, /*< nick=MissingDeviceRsnCaps >*/ +} NMDeviceWifiError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-WIFI-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIFI_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIFI-ERROR-NOT-WIFI-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIFI_ERROR_NOT_WIFI_CONNECTION</code></span></p></td> +<td>the connection was not of Wi-Fi type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIFI-ERROR-INVALID-WIFI-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIFI_ERROR_INVALID_WIFI_CONNECTION</code></span></p></td> +<td>the Wi-Fi connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIFI-ERROR-INVALID-DEVICE-MAC:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIFI_ERROR_INVALID_DEVICE_MAC</code></span></p></td> +<td>the device's MAC was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIFI-ERROR-MAC-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIFI_ERROR_MAC_MISMATCH</code></span></p></td> +<td>the MACs of the connection and the device mismatched +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-WPA-CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_WPA_CAPS</code></span></p></td> +<td>the device missed WPA capabilities +required by the connection +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-RSN-CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_RSN_CAPS</code></span></p></td> +<td>the device missed RSN capabilities +required by the connection +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-WIFI-ACTIVE-ACCESS-POINT:CAPS"></a><h3>NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT</h3> <pre class="programlisting">#define NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT "active-access-point" </pre> @@ -164,6 +223,14 @@ NMDeviceWifi implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-WIFI-ERROR:CAPS"></a><h3>NM_DEVICE_WIFI_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_WIFI_ERROR nm_device_wifi_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-WIFI-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_WIFI_HW_ADDRESS</h3> <pre class="programlisting">#define NM_DEVICE_WIFI_HW_ADDRESS "hw-address" </pre> @@ -188,6 +255,21 @@ NMDeviceWifi implements </div> <hr> <div class="refsect2"> +<a name="nm-device-wifi-error-quark"></a><h3>nm_device_wifi_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_wifi_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-wifi-get-access-point-by-path"></a><h3>nm_device_wifi_get_access_point_by_path ()</h3> <pre class="programlisting"><a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span class="returnvalue">NMAccessPoint</span></a> * nm_device_wifi_get_access_point_by_path (<em class="parameter"><code><a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a> *device</code></em>, diff --git a/docs/libnm-glib/html/NMDeviceWimax.html b/docs/libnm-glib/html/NMDeviceWimax.html index 6daa921a..598f77b5 100644 --- a/docs/libnm-glib/html/NMDeviceWimax.html +++ b/docs/libnm-glib/html/NMDeviceWimax.html @@ -7,7 +7,7 @@ <link rel="home" href="index.html" title="libnm-glib Reference Manual"> <link rel="up" href="ch02.html" title="libnm-glib API Reference"> <link rel="prev" href="NMDeviceBt.html" title="NMDeviceBt"> -<link rel="next" href="NMWimaxNsp.html" title="NMWimaxNsp"> +<link rel="next" href="NMDeviceBond.html" title="NMDeviceBond"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">libnm-glib Reference Manual</th> -<td><a accesskey="n" href="NMWimaxNsp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="NMDeviceBond.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#NMDeviceWimax.synopsis" class="shortcut">Top</a> @@ -47,13 +47,16 @@ <a name="NMDeviceWimax.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis"> <a class="link" href="NMDeviceWimax.html#NMDeviceWimax-struct" title="NMDeviceWimax">NMDeviceWimax</a>; <a class="link" href="NMDeviceWimax.html#NMDeviceWimaxClass" title="NMDeviceWimaxClass">NMDeviceWimaxClass</a>; +enum <a class="link" href="NMDeviceWimax.html#NMDeviceWimaxError" title="enum NMDeviceWimaxError">NMDeviceWimaxError</a>; #define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-ACTIVE-NSP:CAPS" title="NM_DEVICE_WIMAX_ACTIVE_NSP">NM_DEVICE_WIMAX_ACTIVE_NSP</a> #define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-BSID:CAPS" title="NM_DEVICE_WIMAX_BSID">NM_DEVICE_WIMAX_BSID</a> #define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-CENTER-FREQUENCY:CAPS" title="NM_DEVICE_WIMAX_CENTER_FREQUENCY">NM_DEVICE_WIMAX_CENTER_FREQUENCY</a> #define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-CINR:CAPS" title="NM_DEVICE_WIMAX_CINR">NM_DEVICE_WIMAX_CINR</a> +#define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR:CAPS" title="NM_DEVICE_WIMAX_ERROR">NM_DEVICE_WIMAX_ERROR</a> #define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-HW-ADDRESS:CAPS" title="NM_DEVICE_WIMAX_HW_ADDRESS">NM_DEVICE_WIMAX_HW_ADDRESS</a> #define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-RSSI:CAPS" title="NM_DEVICE_WIMAX_RSSI">NM_DEVICE_WIMAX_RSSI</a> #define <a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-TX-POWER:CAPS" title="NM_DEVICE_WIMAX_TX_POWER">NM_DEVICE_WIMAX_TX_POWER</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMDeviceWimax.html#nm-device-wimax-error-quark" title="nm_device_wimax_error_quark ()">nm_device_wimax_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>); <a class="link" href="NMWimaxNsp.html" title="NMWimaxNsp"><span class="returnvalue">NMWimaxNsp</span></a> * <a class="link" href="NMDeviceWimax.html#nm-device-wimax-get-active-nsp" title="nm_device_wimax_get_active_nsp ()">nm_device_wimax_get_active_nsp</a> (<em class="parameter"><code><a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax"><span class="type">NMDeviceWimax</span></a> *wimax</code></em>); const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceWimax.html#nm-device-wimax-get-bsid" title="nm_device_wimax_get_bsid ()">nm_device_wimax_get_bsid</a> (<em class="parameter"><code><a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax"><span class="type">NMDeviceWimax</span></a> *self</code></em>); <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="NMDeviceWimax.html#nm-device-wimax-get-center-frequency" title="nm_device_wimax_get_center_frequency ()">nm_device_wimax_get_center_frequency</a> @@ -132,6 +135,48 @@ NMDeviceWimax implements </div> <hr> <div class="refsect2"> +<a name="NMDeviceWimaxError"></a><h3>enum NMDeviceWimaxError</h3> +<pre class="programlisting">typedef enum { + NM_DEVICE_WIMAX_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_WIMAX_ERROR_NOT_WIMAX_CONNECTION, /*< nick=NotWimaxConnection >*/ + NM_DEVICE_WIMAX_ERROR_INVALID_WIMAX_CONNECTION, /*< nick=InvalidWimaxConnection >*/ + NM_DEVICE_WIMAX_ERROR_INVALID_DEVICE_MAC, /*< nick=InvalidDeviceMac >*/ + NM_DEVICE_WIMAX_ERROR_MAC_MISMATCH, /*< nick=MacMismatch >*/ +} NMDeviceWimaxError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-DEVICE-WIMAX-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIMAX_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIMAX-ERROR-NOT-WIMAX-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIMAX_ERROR_NOT_WIMAX_CONNECTION</code></span></p></td> +<td>the connection was not of WiMax type +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIMAX-ERROR-INVALID-WIMAX-CONNECTION:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIMAX_ERROR_INVALID_WIMAX_CONNECTION</code></span></p></td> +<td>the WiMax connection was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIMAX-ERROR-INVALID-DEVICE-MAC:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIMAX_ERROR_INVALID_DEVICE_MAC</code></span></p></td> +<td>the device's MAC was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-DEVICE-WIMAX-ERROR-MAC-MISMATCH:CAPS"></a><span class="term"><code class="literal">NM_DEVICE_WIMAX_ERROR_MAC_MISMATCH</code></span></p></td> +<td>the MACs of the connection and the device mismatched +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-WIMAX-ACTIVE-NSP:CAPS"></a><h3>NM_DEVICE_WIMAX_ACTIVE_NSP</h3> <pre class="programlisting">#define NM_DEVICE_WIMAX_ACTIVE_NSP "active-nsp" </pre> @@ -164,6 +209,14 @@ NMDeviceWimax implements </div> <hr> <div class="refsect2"> +<a name="NM-DEVICE-WIMAX-ERROR:CAPS"></a><h3>NM_DEVICE_WIMAX_ERROR</h3> +<pre class="programlisting">#define NM_DEVICE_WIMAX_ERROR nm_device_wimax_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-DEVICE-WIMAX-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_WIMAX_HW_ADDRESS</h3> <pre class="programlisting">#define NM_DEVICE_WIMAX_HW_ADDRESS "hw-address" </pre> @@ -188,6 +241,21 @@ NMDeviceWimax implements </div> <hr> <div class="refsect2"> +<a name="nm-device-wimax-error-quark"></a><h3>nm_device_wimax_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_device_wimax_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax"><span class="type">NMDeviceWimax</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax"><span class="type">NMDeviceWimax</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-device-wimax-get-active-nsp"></a><h3>nm_device_wimax_get_active_nsp ()</h3> <pre class="programlisting"><a class="link" href="NMWimaxNsp.html" title="NMWimaxNsp"><span class="returnvalue">NMWimaxNsp</span></a> * nm_device_wimax_get_active_nsp (<em class="parameter"><code><a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax"><span class="type">NMDeviceWimax</span></a> *wimax</code></em>);</pre> <p> diff --git a/docs/libnm-glib/html/NMObject.html b/docs/libnm-glib/html/NMObject.html index 24bb4276..ea763de7 100644 --- a/docs/libnm-glib/html/NMObject.html +++ b/docs/libnm-glib/html/NMObject.html @@ -30,6 +30,8 @@ <a href="#NMObject.implemented-interfaces" class="shortcut">Implemented Interfaces</a> | <a href="#NMObject.properties" class="shortcut">Properties</a> + | + <a href="#NMObject.signals" class="shortcut">Signals</a> </td></tr> </table> <div class="refentry"> @@ -45,8 +47,11 @@ <a name="NMObject.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis"> <a class="link" href="NMObject.html#NMObject-struct" title="NMObject">NMObject</a>; <a class="link" href="NMObject.html#NMObjectClass" title="NMObjectClass">NMObjectClass</a>; +enum <a class="link" href="NMObject.html#NMObjectError" title="enum NMObjectError">NMObjectError</a>; #define <a class="link" href="NMObject.html#NM-OBJECT-DBUS-CONNECTION:CAPS" title="NM_OBJECT_DBUS_CONNECTION">NM_OBJECT_DBUS_CONNECTION</a> #define <a class="link" href="NMObject.html#NM-OBJECT-DBUS-PATH:CAPS" title="NM_OBJECT_DBUS_PATH">NM_OBJECT_DBUS_PATH</a> +#define <a class="link" href="NMObject.html#NM-OBJECT-ERROR:CAPS" title="NM_OBJECT_ERROR">NM_OBJECT_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="NMObject.html#nm-object-error-quark" title="nm_object_error_quark ()">nm_object_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>); <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="returnvalue">DBusGConnection</span></a> * <a class="link" href="NMObject.html#nm-object-get-connection" title="nm_object_get_connection ()">nm_object_get_connection</a> (<em class="parameter"><code><a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> *object</code></em>); const <span class="returnvalue">char</span> * <a class="link" href="NMObject.html#nm-object-get-path" title="nm_object_get_path ()">nm_object_get_path</a> (<em class="parameter"><code><a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> *object</code></em>); </pre> @@ -81,6 +86,12 @@ NMObject implements </pre> </div> <div class="refsect1"> +<a name="NMObject.signals"></a><h2>Signals</h2> +<pre class="synopsis"> + "<a class="link" href="NMObject.html#NMObject-object-creation-failed" title='The "object-creation-failed" signal'>object-creation-failed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a> +</pre> +</div> +<div class="refsect1"> <a name="NMObject.description"></a><h2>Description</h2> <p> </p> @@ -99,6 +110,15 @@ NMObject implements <pre class="programlisting">typedef struct { GObjectClass parent; + /* Signals */ + /* The "object-creation-failed" signal is PRIVATE for libnm-glib and + * is not meant for any external usage. It indicates that an error + * occured during creation of an object. + */ + void (*object_creation_failed) (NMObject *master_object, + GError *error, + char *failed_path); + /* Padding for future expansion */ void (*_reserved1) (void); void (*_reserved2) (void); @@ -113,6 +133,33 @@ NMObject implements </div> <hr> <div class="refsect2"> +<a name="NMObjectError"></a><h3>enum NMObjectError</h3> +<pre class="programlisting">typedef enum { + NM_OBJECT_ERROR_UNKNOWN = 0, + NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE, +} NMObjectError; +</pre> +<p> +Describes errors that may result from operations involving a <a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a>. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-OBJECT-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_OBJECT_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-OBJECT-ERROR-OBJECT-CREATION-FAILURE:CAPS"></a><span class="term"><code class="literal">NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE</code></span></p></td> +<td>an error ocured while creating an <a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="NM-OBJECT-DBUS-CONNECTION:CAPS"></a><h3>NM_OBJECT_DBUS_CONNECTION</h3> <pre class="programlisting">#define NM_OBJECT_DBUS_CONNECTION "dbus-connection" </pre> @@ -129,6 +176,29 @@ NMObject implements </div> <hr> <div class="refsect2"> +<a name="NM-OBJECT-ERROR:CAPS"></a><h3>NM_OBJECT_ERROR</h3> +<pre class="programlisting">#define NM_OBJECT_ERROR nm_object_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-object-error-quark"></a><h3>nm_object_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_object_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-object-get-connection"></a><h3>nm_object_get_connection ()</h3> <pre class="programlisting"><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="returnvalue">DBusGConnection</span></a> * nm_object_get_connection (<em class="parameter"><code><a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> *object</code></em>);</pre> <p> @@ -189,6 +259,45 @@ device, and must not be modified.</td> <p>Default value: NULL</p> </div> </div> +<div class="refsect1"> +<a name="NMObject.signal-details"></a><h2>Signal Details</h2> +<div class="refsect2"> +<a name="NMObject-object-creation-failed"></a><h3>The <code class="literal">"object-creation-failed"</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> *master_object, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> error, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> failed_path, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre> +<p> +Indicates that an error occured while creating an <a class="link" href="NMObject.html" title="NMObject"><span class="type">NMObject</span></a> object +during property handling of <em class="parameter"><code>master_object</code></em>. +</p> +<p> +Note: Be aware that the signal is private for libnm-glib's internal + use. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>master_object</code></em> :</span></p></td> +<td>the object that received the signal</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> +<td>the error that occured while creating object</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>failed_path</code></em> :</span></p></td> +<td>object path of the failed object</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> diff --git a/docs/libnm-glib/html/NMRemoteConnection.html b/docs/libnm-glib/html/NMRemoteConnection.html index 531ab09d..eefc87b4 100644 --- a/docs/libnm-glib/html/NMRemoteConnection.html +++ b/docs/libnm-glib/html/NMRemoteConnection.html @@ -145,7 +145,27 @@ NMRemoteConnection implements <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> +Called when NetworkManager has committed outstanding changes to a connection +to backing storage as a result of <a class="link" href="NMRemoteConnection.html#nm-remote-connection-commit-changes" title="nm_remote_connection_commit_changes ()"><code class="function">nm_remote_connection_commit_changes()</code></a>. </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td> +<td>the connection for which updates are to be committed</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> +<td>on failure, a descriptive error</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> +<td>user data passed to <a class="link" href="NMRemoteConnection.html#nm-remote-connection-commit-changes" title="nm_remote_connection_commit_changes ()"><code class="function">nm_remote_connection_commit_changes()</code></a> +</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> @@ -154,7 +174,27 @@ NMRemoteConnection implements <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> +Called when NetworkManager has deleted a connection as a result of +<a class="link" href="NMRemoteConnection.html#nm-remote-connection-delete" title="nm_remote_connection_delete ()"><code class="function">nm_remote_connection_delete()</code></a>. </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td> +<td>the connection to be deleted</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> +<td>on failure, a descriptive error</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> +<td>user data passed to <a class="link" href="NMRemoteConnection.html#nm-remote-connection-delete" title="nm_remote_connection_delete ()"><code class="function">nm_remote_connection_delete()</code></a> +</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> @@ -164,7 +204,34 @@ NMRemoteConnection implements <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> +Called when NetworkManager returns secrets in response to a request for +secrets via <a class="link" href="NMRemoteConnection.html#nm-remote-connection-get-secrets" title="nm_remote_connection_get_secrets ()"><code class="function">nm_remote_connection_get_secrets()</code></a>. </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td> +<td>the connection for which secrets were requested</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>secrets</code></em> :</span></p></td> +<td>on success, a hash table of +hash tables, with each inner hash mapping a setting property to a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> +containing that property's value. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GLib.HashTable]</span> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> +<td>on failure, a descriptive error</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> +<td>user data passed to <a class="link" href="NMRemoteConnection.html#nm-remote-connection-get-secrets" title="nm_remote_connection_get_secrets ()"><code class="function">nm_remote_connection_get_secrets()</code></a> +</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> diff --git a/docs/libnm-glib/html/NMSecretAgent.html b/docs/libnm-glib/html/NMSecretAgent.html index f7254c2a..1ad2b84b 100644 --- a/docs/libnm-glib/html/NMSecretAgent.html +++ b/docs/libnm-glib/html/NMSecretAgent.html @@ -63,12 +63,14 @@ enum <a class="link" href="NMSecretAgent.html#NMSecretAgentGetSec #define <a class="link" href="NMSecretAgent.html#NM-SECRET-AGENT-AUTO-REGISTER:CAPS" title="NM_SECRET_AGENT_AUTO_REGISTER">NM_SECRET_AGENT_AUTO_REGISTER</a> #define <a class="link" href="NMSecretAgent.html#NM-SECRET-AGENT-ERROR:CAPS" title="NM_SECRET_AGENT_ERROR">NM_SECRET_AGENT_ERROR</a> #define <a class="link" href="NMSecretAgent.html#NM-SECRET-AGENT-IDENTIFIER:CAPS" title="NM_SECRET_AGENT_IDENTIFIER">NM_SECRET_AGENT_IDENTIFIER</a> +#define <a class="link" href="NMSecretAgent.html#NM-SECRET-AGENT-REGISTERED:CAPS" title="NM_SECRET_AGENT_REGISTERED">NM_SECRET_AGENT_REGISTERED</a> #define <a class="link" href="NMSecretAgent.html#NM-SECRET-AGENT-REGISTRATION-RESULT:CAPS" title="NM_SECRET_AGENT_REGISTRATION_RESULT">NM_SECRET_AGENT_REGISTRATION_RESULT</a> <span class="returnvalue">void</span> <a class="link" href="NMSecretAgent.html#nm-secret-agent-delete-secrets" title="nm_secret_agent_delete_secrets ()">nm_secret_agent_delete_secrets</a> (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>, <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>, <em class="parameter"><code><a class="link" href="NMSecretAgent.html#NMSecretAgentDeleteSecretsFunc" title="NMSecretAgentDeleteSecretsFunc ()"><span class="type">NMSecretAgentDeleteSecretsFunc</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-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMSecretAgent.html#nm-secret-agent-error-quark" title="nm_secret_agent_error_quark ()">nm_secret_agent_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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="NMSecretAgent.html#nm-secret-agent-get-registered" title="nm_secret_agent_get_registered ()">nm_secret_agent_get_registered</a> (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>); <span class="returnvalue">void</span> <a class="link" href="NMSecretAgent.html#nm-secret-agent-get-secrets" title="nm_secret_agent_get_secrets ()">nm_secret_agent_get_secrets</a> (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>, <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>, <em class="parameter"><code>const <span class="type">char</span> *setting_name</code></em>, @@ -246,7 +248,8 @@ should be called. <pre class="programlisting">typedef enum { NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE = 0x0, NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION = 0x1, - NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW = 0x2 + NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW = 0x2, + NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED = 0x4 } NMSecretAgentGetSecretsFlags; </pre> <p> @@ -277,6 +280,14 @@ existing secrets are invalid or wrong. This flag implies that interaction is allowed. </td> </tr> +<tr> +<td><p><a name="NM-SECRET-AGENT-GET-SECRETS-FLAG-USER-REQUESTED:CAPS"></a><span class="term"><code class="literal">NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED</code></span></p></td> +<td>set if the request was +initiated by user-requested action via the D-Bus interface, as opposed to +automatically initiated by NetworkManager in response to (for example) scan +results or carrier changes. +</td> +</tr> </tbody> </table></div> </div> @@ -299,7 +310,7 @@ To easily create the hash table to return the WiFi PSK, you could do something like this: </p> <div class="example"> -<a name="id667964"></a><p class="title"><b>Example 1. Creating a secrets hash</b></p> +<a name="id525573"></a><p class="title"><b>Example 1. Creating a secrets hash</b></p> <div class="example-contents"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -437,6 +448,14 @@ should be called. </div> <hr> <div class="refsect2"> +<a name="NM-SECRET-AGENT-REGISTERED:CAPS"></a><h3>NM_SECRET_AGENT_REGISTERED</h3> +<pre class="programlisting">#define NM_SECRET_AGENT_REGISTERED "registered" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-SECRET-AGENT-REGISTRATION-RESULT:CAPS"></a><h3>NM_SECRET_AGENT_REGISTRATION_RESULT</h3> <pre class="programlisting">#define NM_SECRET_AGENT_REGISTRATION_RESULT "registration-result" </pre> @@ -492,6 +511,25 @@ VFunc: delete_secrets </div> <hr> <div class="refsect2"> +<a name="nm-secret-agent-get-registered"></a><h3>nm_secret_agent_get_registered ()</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_secret_agent_get_registered (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td> +<td>a <a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the agent is registered, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it is not.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-secret-agent-get-secrets"></a><h3>nm_secret_agent_get_secrets ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> nm_secret_agent_get_secrets (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>, <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>, diff --git a/docs/libnm-glib/html/NMWimaxNsp.html b/docs/libnm-glib/html/NMWimaxNsp.html index 68a80693..d6782d7f 100644 --- a/docs/libnm-glib/html/NMWimaxNsp.html +++ b/docs/libnm-glib/html/NMWimaxNsp.html @@ -6,7 +6,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> <link rel="home" href="index.html" title="libnm-glib Reference Manual"> <link rel="up" href="ch02.html" title="libnm-glib API Reference"> -<link rel="prev" href="NMDeviceWimax.html" title="NMDeviceWimax"> +<link rel="prev" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh"> <link rel="next" href="NMAccessPoint.html" title="NMAccessPoint"> <meta name="generator" content="GTK-Doc V1.18 (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="NMDeviceWimax.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="NMDeviceOlpcMesh.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">libnm-glib Reference Manual</th> diff --git a/docs/libnm-glib/html/api-index-full.html b/docs/libnm-glib/html/api-index-full.html index e07f804b..13330c48 100644 --- a/docs/libnm-glib/html/api-index-full.html +++ b/docs/libnm-glib/html/api-index-full.html @@ -27,8 +27,6 @@ | <a class="shortcut" href="#idxD">D</a> | - <a class="shortcut" href="#idxG">G</a> - | <a class="shortcut" href="#idxI">I</a> | <a class="shortcut" href="#idxO">O</a> @@ -525,299 +523,271 @@ <dd></dd> <a name="idxD"></a><h3 class="title">D</h3> <dt> -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManagerSettings_Connection, macro in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManagerSettings_Connection_Secrets, macro in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManagerSettings_System, macro in nm-settings-system-bindings -</dt> -<dd></dd> -<dt> -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Device_Infiniband, macro in nm-device-infiniband-bindings -</dt> -<dd></dd> -<dt> -dbus_glib_marshal_nm_exported_connection_BOOLEAN__POINTER_POINTER, function in nm-exported-connection-glue -</dt> -<dd></dd> -<dt> -dbus_glib_marshal_nm_exported_connection_NONE__BOXED_POINTER, macro in nm-exported-connection-glue -</dt> -<dd></dd> -<dt> -dbus_glib_marshal_nm_exported_connection_NONE__POINTER, macro in nm-exported-connection-glue -</dt> -<dd></dd> -<dt> -dbus_glib_marshal_nm_exported_connection_NONE__STRING_BOXED_BOOLEAN_POINTER, macro in nm-exported-connection-glue +<a class="link" href="NMDevice.html#NMDevice-struct" title="NMDevice">NMDevice</a>, struct in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_exported_connection_VOID__BOXED_POINTER, function in nm-exported-connection-glue +<a class="link" href="NMDevice.html#NMDevice-state-changed" title='The "state-changed" signal'>NMDevice::state-changed</a>, object signal in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_exported_connection_VOID__POINTER, macro in nm-exported-connection-glue +<a class="link" href="NMDevice.html#NMDevice--active-connection" title='The "active-connection" property'>NMDevice:active-connection</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_exported_connection_VOID__STRING_BOXED_BOOLEAN_POINTER, function in nm-exported-connection-glue +<a class="link" href="NMDevice.html#NMDevice--autoconnect" title='The "autoconnect" property'>NMDevice:autoconnect</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_secret_agent_NONE__BOXED_BOXED_POINTER, macro in nm-secret-agent-glue +<a class="link" href="NMDevice.html#NMDevice--capabilities" title='The "capabilities" property'>NMDevice:capabilities</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_secret_agent_NONE__BOXED_BOXED_STRING_BOXED_UINT_POINTER, macro in nm-secret-agent-glue +<a class="link" href="NMDevice.html#NMDevice--device-type" title='The "device-type" property'>NMDevice:device-type</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_secret_agent_NONE__BOXED_STRING_POINTER, macro in nm-secret-agent-glue +<a class="link" href="NMDevice.html#NMDevice--dhcp4-config" title='The "dhcp4-config" property'>NMDevice:dhcp4-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_secret_agent_VOID__BOXED_BOXED_POINTER, function in nm-secret-agent-glue +<a class="link" href="NMDevice.html#NMDevice--dhcp6-config" title='The "dhcp6-config" property'>NMDevice:dhcp6-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_secret_agent_VOID__BOXED_BOXED_STRING_BOXED_UINT_POINTER, function in nm-secret-agent-glue +<a class="link" href="NMDevice.html#NMDevice--driver" title='The "driver" property'>NMDevice:driver</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_marshal_nm_secret_agent_VOID__BOXED_STRING_POINTER, function in nm-secret-agent-glue +<a class="link" href="NMDevice.html#NMDevice--driver-version" title='The "driver-version" property'>NMDevice:driver-version</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_nm_exported_connection_object_info, variable in nm-exported-connection-glue +<a class="link" href="NMDevice.html#NMDevice--firmware-missing" title='The "firmware-missing" property'>NMDevice:firmware-missing</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -dbus_glib_nm_secret_agent_object_info, variable in nm-secret-agent-glue +<a class="link" href="NMDevice.html#NMDevice--firmware-version" title='The "firmware-version" property'>NMDevice:firmware-version</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGProxy.html#dbus-g-proxy-begin-call">dbus_g_proxy_begin_call</a>, function in nm-settings-system-bindings +<a class="link" href="NMDevice.html#NMDevice--interface" title='The "interface" property'>NMDevice:interface</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice-struct" title="NMDevice">NMDevice</a>, struct in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--ip-interface" title='The "ip-interface" property'>NMDevice:ip-interface</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice-state-changed" title='The "state-changed" signal'>NMDevice::state-changed</a>, object signal in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--ip4-config" title='The "ip4-config" property'>NMDevice:ip4-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--active-connection" title='The "active-connection" property'>NMDevice:active-connection</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--ip6-config" title='The "ip6-config" property'>NMDevice:ip6-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--capabilities" title='The "capabilities" property'>NMDevice:capabilities</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--managed" title='The "managed" property'>NMDevice:managed</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--device-type" title='The "device-type" property'>NMDevice:device-type</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--product" title='The "product" property'>NMDevice:product</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--dhcp4-config" title='The "dhcp4-config" property'>NMDevice:dhcp4-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--state" title='The "state" property'>NMDevice:state</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--dhcp6-config" title='The "dhcp6-config" property'>NMDevice:dhcp6-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--state-reason" title='The "state-reason" property'>NMDevice:state-reason</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--driver" title='The "driver" property'>NMDevice:driver</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--udi" title='The "udi" property'>NMDevice:udi</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--firmware-missing" title='The "firmware-missing" property'>NMDevice:firmware-missing</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDevice.html#NMDevice--vendor" title='The "vendor" property'>NMDevice:vendor</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--interface" title='The "interface" property'>NMDevice:interface</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +NMDeviceAdsl, struct in NMDeviceAdsl </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--ip-interface" title='The "ip-interface" property'>NMDevice:ip-interface</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +NMDeviceAdslClass, struct in NMDeviceAdsl </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--ip4-config" title='The "ip4-config" property'>NMDevice:ip4-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +NMDeviceAdslError, enum in NMDeviceAdsl </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--ip6-config" title='The "ip6-config" property'>NMDevice:ip6-config</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceBond.html#NMDeviceBond-struct" title="NMDeviceBond">NMDeviceBond</a>, struct in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--managed" title='The "managed" property'>NMDevice:managed</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceBond.html#NMDeviceBond--carrier" title='The "carrier" property'>NMDeviceBond:carrier</a>, object property in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--product" title='The "product" property'>NMDevice:product</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceBond.html#NMDeviceBond--hw-address" title='The "hw-address" property'>NMDeviceBond:hw-address</a>, object property in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--state" title='The "state" property'>NMDevice:state</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceBond.html#NMDeviceBondClass" title="NMDeviceBondClass">NMDeviceBondClass</a>, struct in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--state-reason" title='The "state-reason" property'>NMDevice:state-reason</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceBond.html#NMDeviceBondError" title="enum NMDeviceBondError">NMDeviceBondError</a>, enum in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--udi" title='The "udi" property'>NMDevice:udi</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceBt.html#NMDeviceBt-struct" title="NMDeviceBt">NMDeviceBt</a>, struct in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDevice--vendor" title='The "vendor" property'>NMDevice:vendor</a>, object property in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceBt.html#NMDeviceBt--bt-capabilities" title='The "bt-capabilities" property'>NMDeviceBt:bt-capabilities</a>, object property in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> </dt> <dd></dd> <dt> -NMDeviceBond, struct in NMDeviceBond +<a class="link" href="NMDeviceBt.html#NMDeviceBt--hw-address" title='The "hw-address" property'>NMDeviceBt:hw-address</a>, object property in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> </dt> <dd></dd> <dt> -NMDeviceBond:carrier, object property in NMDeviceBond +<a class="link" href="NMDeviceBt.html#NMDeviceBt--name" title='The "name" property'>NMDeviceBt:name</a>, object property in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> </dt> <dd></dd> <dt> -NMDeviceBond:hw-address, object property in NMDeviceBond +<a class="link" href="NMDeviceBt.html#NMDeviceBtClass" title="NMDeviceBtClass">NMDeviceBtClass</a>, struct in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> </dt> <dd></dd> <dt> -NMDeviceBondClass, struct in NMDeviceBond +<a class="link" href="NMDeviceBt.html#NMDeviceBtError" title="enum NMDeviceBtError">NMDeviceBtError</a>, enum in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceBt.html#NMDeviceBt-struct" title="NMDeviceBt">NMDeviceBt</a>, struct in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +<a class="link" href="NMDevice.html#NMDeviceClass" title="NMDeviceClass">NMDeviceClass</a>, struct in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceBt.html#NMDeviceBt--bt-capabilities" title='The "bt-capabilities" property'>NMDeviceBt:bt-capabilities</a>, object property in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +<a class="link" href="NMDevice.html#NMDeviceDeactivateFn" title="NMDeviceDeactivateFn ()">NMDeviceDeactivateFn</a>, user_function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceBt.html#NMDeviceBt--hw-address" title='The "hw-address" property'>NMDeviceBt:hw-address</a>, object property in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet-struct" title="NMDeviceEthernet">NMDeviceEthernet</a>, struct in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceBt.html#NMDeviceBt--name" title='The "name" property'>NMDeviceBt:name</a>, object property in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--carrier" title='The "carrier" property'>NMDeviceEthernet:carrier</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceBt.html#NMDeviceBtClass" title="NMDeviceBtClass">NMDeviceBtClass</a>, struct in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--hw-address" title='The "hw-address" property'>NMDeviceEthernet:hw-address</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDeviceClass" title="NMDeviceClass">NMDeviceClass</a>, struct in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--perm-hw-address" title='The "perm-hw-address" property'>NMDeviceEthernet:perm-hw-address</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDevice.html#NMDeviceDeactivateFn" title="NMDeviceDeactivateFn ()">NMDeviceDeactivateFn</a>, user_function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--speed" title='The "speed" property'>NMDeviceEthernet:speed</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet-struct" title="NMDeviceEthernet">NMDeviceEthernet</a>, struct in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernetClass" title="NMDeviceEthernetClass">NMDeviceEthernetClass</a>, struct in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--carrier" title='The "carrier" property'>NMDeviceEthernet:carrier</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernetError" title="enum NMDeviceEthernetError">NMDeviceEthernetError</a>, enum in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--hw-address" title='The "hw-address" property'>NMDeviceEthernet:hw-address</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +<a class="link" href="NMDeviceInfiniband.html#NMDeviceInfiniband-struct" title="NMDeviceInfiniband">NMDeviceInfiniband</a>, struct in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--perm-hw-address" title='The "perm-hw-address" property'>NMDeviceEthernet:perm-hw-address</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +<a class="link" href="NMDeviceInfiniband.html#NMDeviceInfiniband--carrier" title='The "carrier" property'>NMDeviceInfiniband:carrier</a>, object property in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernet--speed" title='The "speed" property'>NMDeviceEthernet:speed</a>, object property in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +<a class="link" href="NMDeviceInfiniband.html#NMDeviceInfiniband--hw-address" title='The "hw-address" property'>NMDeviceInfiniband:hw-address</a>, object property in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceEthernet.html#NMDeviceEthernetClass" title="NMDeviceEthernetClass">NMDeviceEthernetClass</a>, struct in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +<a class="link" href="NMDeviceInfiniband.html#NMDeviceInfinibandClass" title="NMDeviceInfinibandClass">NMDeviceInfinibandClass</a>, struct in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -NMDeviceInfiniband, struct in NMDeviceInfiniband +<a class="link" href="NMDeviceInfiniband.html#NMDeviceInfinibandError" title="enum NMDeviceInfinibandError">NMDeviceInfinibandError</a>, enum in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -NMDeviceInfiniband:carrier, object property in NMDeviceInfiniband +<a class="link" href="NMDeviceModem.html#NMDeviceModem-struct" title="NMDeviceModem">NMDeviceModem</a>, struct in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> </dt> <dd></dd> <dt> -NMDeviceInfiniband:hw-address, object property in NMDeviceInfiniband +<a class="link" href="NMDeviceModem.html#NMDeviceModem--current-capabilities" title='The "current-capabilities" property'>NMDeviceModem:current-capabilities</a>, object property in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> </dt> <dd></dd> <dt> -NMDeviceInfinibandClass, struct in NMDeviceInfiniband +<a class="link" href="NMDeviceModem.html#NMDeviceModem--modem-capabilities" title='The "modem-capabilities" property'>NMDeviceModem:modem-capabilities</a>, object property in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceModem.html#NMDeviceModem-struct" title="NMDeviceModem">NMDeviceModem</a>, struct in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> +<a class="link" href="NMDeviceModem.html#NMDeviceModemClass" title="NMDeviceModemClass">NMDeviceModemClass</a>, struct in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceModem.html#NMDeviceModem--current-capabilities" title='The "current-capabilities" property'>NMDeviceModem:current-capabilities</a>, object property in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> +<a class="link" href="NMDeviceModem.html#NMDeviceModemError" title="enum NMDeviceModemError">NMDeviceModemError</a>, enum in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceModem.html#NMDeviceModem--modem-capabilities" title='The "modem-capabilities" property'>NMDeviceModem:modem-capabilities</a>, object property in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> +<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh-struct" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a>, struct in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -<a class="link" href="NMDeviceModem.html#NMDeviceModemClass" title="NMDeviceModemClass">NMDeviceModemClass</a>, struct in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> +<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--active-channel" title='The "active-channel" property'>NMDeviceOlpcMesh:active-channel</a>, object property in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -NMDeviceOlpcMesh, struct in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--companion" title='The "companion" property'>NMDeviceOlpcMesh:companion</a>, object property in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -NMDeviceOlpcMesh:active-channel, object property in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--hw-address" title='The "hw-address" property'>NMDeviceOlpcMesh:hw-address</a>, object property in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -NMDeviceOlpcMesh:companion, object property in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMeshClass" title="NMDeviceOlpcMeshClass">NMDeviceOlpcMeshClass</a>, struct in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -NMDeviceOlpcMesh:hw-address, object property in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#NMDeviceOlpcMeshError" title="enum NMDeviceOlpcMeshError">NMDeviceOlpcMeshError</a>, enum in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -NMDeviceOlpcMeshClass, struct in NMDeviceOlpcMesh +<a class="link" href="NMDeviceVlan.html#NMDeviceVlan-struct" title="NMDeviceVlan">NMDeviceVlan</a>, struct in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -NMDeviceVlan, struct in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NMDeviceVlan--carrier" title='The "carrier" property'>NMDeviceVlan:carrier</a>, object property in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -NMDeviceVlan:carrier, object property in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NMDeviceVlan--hw-address" title='The "hw-address" property'>NMDeviceVlan:hw-address</a>, object property in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -NMDeviceVlan:hw-address, object property in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NMDeviceVlan--vlan-id" title='The "vlan-id" property'>NMDeviceVlan:vlan-id</a>, object property in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -NMDeviceVlan:vlan-id, object property in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NMDeviceVlanClass" title="NMDeviceVlanClass">NMDeviceVlanClass</a>, struct in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -NMDeviceVlanClass, struct in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NMDeviceVlanError" title="enum NMDeviceVlanError">NMDeviceVlanError</a>, enum in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> @@ -861,6 +831,10 @@ NMDeviceVlanClass, struct in NMDeviceVlan </dt> <dd></dd> <dt> +<a class="link" href="NMDeviceWifi.html#NMDeviceWifiError" title="enum NMDeviceWifiError">NMDeviceWifiError</a>, enum in <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi">NMDeviceWifi</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDeviceWimax.html#NMDeviceWimax-struct" title="NMDeviceWimax">NMDeviceWimax</a>, struct in <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax">NMDeviceWimax</a> </dt> <dd></dd> @@ -905,27 +879,63 @@ NMDeviceVlanClass, struct in NMDeviceVlan </dt> <dd></dd> <dt> +<a class="link" href="NMDeviceWimax.html#NMDeviceWimaxError" title="enum NMDeviceWimaxError">NMDeviceWimaxError</a>, enum in <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax">NMDeviceWimax</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDevice.html#NM-DEVICE-ACTIVE-CONNECTION:CAPS" title="NM_DEVICE_ACTIVE_CONNECTION">NM_DEVICE_ACTIVE_CONNECTION</a>, macro in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -NM_DEVICE_BOND_CARRIER, macro in NMDeviceBond +NM_DEVICE_ADSL_CARRIER, macro in NMDeviceAdsl +</dt> +<dd></dd> +<dt> +NM_DEVICE_ADSL_ERROR, macro in NMDeviceAdsl +</dt> +<dd></dd> +<dt> +nm_device_adsl_error_quark, function in NMDeviceAdsl +</dt> +<dd></dd> +<dt> +nm_device_adsl_get_carrier, function in NMDeviceAdsl </dt> <dd></dd> <dt> -nm_device_bond_get_carrier, function in NMDeviceBond +nm_device_adsl_new, function in NMDeviceAdsl </dt> <dd></dd> <dt> -nm_device_bond_get_hw_address, function in NMDeviceBond +<a class="link" href="NMDevice.html#NM-DEVICE-AUTOCONNECT:CAPS" title="NM_DEVICE_AUTOCONNECT">NM_DEVICE_AUTOCONNECT</a>, macro in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> -NM_DEVICE_BOND_HW_ADDRESS, macro in NMDeviceBond +<a class="link" href="NMDeviceBond.html#NM-DEVICE-BOND-CARRIER:CAPS" title="NM_DEVICE_BOND_CARRIER">NM_DEVICE_BOND_CARRIER</a>, macro in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> </dt> <dd></dd> <dt> -nm_device_bond_new, function in NMDeviceBond +<a class="link" href="NMDeviceBond.html#NM-DEVICE-BOND-ERROR:CAPS" title="NM_DEVICE_BOND_ERROR">NM_DEVICE_BOND_ERROR</a>, macro in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceBond.html#nm-device-bond-error-quark" title="nm_device_bond_error_quark ()">nm_device_bond_error_quark</a>, function in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceBond.html#nm-device-bond-get-carrier" title="nm_device_bond_get_carrier ()">nm_device_bond_get_carrier</a>, function in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceBond.html#nm-device-bond-get-hw-address" title="nm_device_bond_get_hw_address ()">nm_device_bond_get_hw_address</a>, function in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceBond.html#NM-DEVICE-BOND-HW-ADDRESS:CAPS" title="NM_DEVICE_BOND_HW_ADDRESS">NM_DEVICE_BOND_HW_ADDRESS</a>, macro in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceBond.html#nm-device-bond-new" title="nm_device_bond_new ()">nm_device_bond_new</a>, function in <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> </dt> <dd></dd> <dt> @@ -933,6 +943,14 @@ nm_device_bond_new, function in NMDeviceBond </dt> <dd></dd> <dt> +<a class="link" href="NMDeviceBt.html#NM-DEVICE-BT-ERROR:CAPS" title="NM_DEVICE_BT_ERROR">NM_DEVICE_BT_ERROR</a>, macro in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceBt.html#nm-device-bt-error-quark" title="nm_device_bt_error_quark ()">nm_device_bt_error_quark</a>, function in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDeviceBt.html#nm-device-bt-get-capabilities" title="nm_device_bt_get_capabilities ()">nm_device_bt_get_capabilities</a>, function in <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> </dt> <dd></dd> @@ -961,6 +979,10 @@ nm_device_bond_new, function in NMDeviceBond </dt> <dd></dd> <dt> +<a class="link" href="NMDevice.html#nm-device-connection-compatible" title="nm_device_connection_compatible ()">nm_device_connection_compatible</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDevice.html#nm-device-connection-valid" title="nm_device_connection_valid ()">nm_device_connection_valid</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> @@ -985,10 +1007,22 @@ nm_device_bond_new, function in NMDeviceBond </dt> <dd></dd> <dt> +<a class="link" href="NMDevice.html#NM-DEVICE-DRIVER-VERSION:CAPS" title="NM_DEVICE_DRIVER_VERSION">NM_DEVICE_DRIVER_VERSION</a>, macro in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-CARRIER:CAPS" title="NM_DEVICE_ETHERNET_CARRIER">NM_DEVICE_ETHERNET_CARRIER</a>, macro in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> <dt> +<a class="link" href="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR:CAPS" title="NM_DEVICE_ETHERNET_ERROR">NM_DEVICE_ETHERNET_ERROR</a>, macro in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceEthernet.html#nm-device-ethernet-error-quark" title="nm_device_ethernet_error_quark ()">nm_device_ethernet_error_quark</a>, function in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDeviceEthernet.html#nm-device-ethernet-get-carrier" title="nm_device_ethernet_get_carrier ()">nm_device_ethernet_get_carrier</a>, function in <a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a> </dt> <dd></dd> @@ -1029,10 +1063,18 @@ nm_device_bond_new, function in NMDeviceBond </dt> <dd></dd> <dt> +<a class="link" href="NMDevice.html#NM-DEVICE-FIRMWARE-VERSION:CAPS" title="NM_DEVICE_FIRMWARE_VERSION">NM_DEVICE_FIRMWARE_VERSION</a>, macro in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDevice.html#nm-device-get-active-connection" title="nm_device_get_active_connection ()">nm_device_get_active_connection</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> +<a class="link" href="NMDevice.html#nm-device-get-autoconnect" title="nm_device_get_autoconnect ()">nm_device_get_autoconnect</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDevice.html#nm-device-get-capabilities" title="nm_device_get_capabilities ()">nm_device_get_capabilities</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> @@ -1053,10 +1095,18 @@ nm_device_bond_new, function in NMDeviceBond </dt> <dd></dd> <dt> +<a class="link" href="NMDevice.html#nm-device-get-driver-version" title="nm_device_get_driver_version ()">nm_device_get_driver_version</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDevice.html#nm-device-get-firmware-missing" title="nm_device_get_firmware_missing ()">nm_device_get_firmware_missing</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> <dt> +<a class="link" href="NMDevice.html#nm-device-get-firmware-version" title="nm_device_get_firmware_version ()">nm_device_get_firmware_version</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDevice.html#nm-device-get-iface" title="nm_device_get_iface ()">nm_device_get_iface</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> @@ -1097,23 +1147,31 @@ nm_device_bond_new, function in NMDeviceBond </dt> <dd></dd> <dt> -NM_DEVICE_INFINIBAND_CARRIER, macro in NMDeviceInfiniband +<a class="link" href="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-CARRIER:CAPS" title="NM_DEVICE_INFINIBAND_CARRIER">NM_DEVICE_INFINIBAND_CARRIER</a>, macro in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -nm_device_infiniband_get_carrier, function in NMDeviceInfiniband +<a class="link" href="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR:CAPS" title="NM_DEVICE_INFINIBAND_ERROR">NM_DEVICE_INFINIBAND_ERROR</a>, macro in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -nm_device_infiniband_get_hw_address, function in NMDeviceInfiniband +<a class="link" href="NMDeviceInfiniband.html#nm-device-infiniband-error-quark" title="nm_device_infiniband_error_quark ()">nm_device_infiniband_error_quark</a>, function in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -NM_DEVICE_INFINIBAND_HW_ADDRESS, macro in NMDeviceInfiniband +<a class="link" href="NMDeviceInfiniband.html#nm-device-infiniband-get-carrier" title="nm_device_infiniband_get_carrier ()">nm_device_infiniband_get_carrier</a>, function in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> -nm_device_infiniband_new, function in NMDeviceInfiniband +<a class="link" href="NMDeviceInfiniband.html#nm-device-infiniband-get-hw-address" title="nm_device_infiniband_get_hw_address ()">nm_device_infiniband_get_hw_address</a>, function in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-HW-ADDRESS:CAPS" title="NM_DEVICE_INFINIBAND_HW_ADDRESS">NM_DEVICE_INFINIBAND_HW_ADDRESS</a>, macro in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceInfiniband.html#nm-device-infiniband-new" title="nm_device_infiniband_new ()">nm_device_infiniband_new</a>, function in <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> </dt> <dd></dd> <dt> @@ -1141,6 +1199,14 @@ nm_device_infiniband_new, function in NMDeviceInfiniband </dt> <dd></dd> <dt> +<a class="link" href="NMDeviceModem.html#NM-DEVICE-MODEM-ERROR:CAPS" title="NM_DEVICE_MODEM_ERROR">NM_DEVICE_MODEM_ERROR</a>, macro in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceModem.html#nm-device-modem-error-quark" title="nm_device_modem_error_quark ()">nm_device_modem_error_quark</a>, function in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDeviceModem.html#nm-device-modem-get-current-capabilities" title="nm_device_modem_get_current_capabilities ()">nm_device_modem_get_current_capabilities</a>, function in <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> </dt> <dd></dd> @@ -1157,31 +1223,39 @@ nm_device_infiniband_new, function in NMDeviceInfiniband </dt> <dd></dd> <dt> -NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, macro in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ACTIVE-CHANNEL:CAPS" title="NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL">NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL</a>, macro in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-COMPANION:CAPS" title="NM_DEVICE_OLPC_MESH_COMPANION">NM_DEVICE_OLPC_MESH_COMPANION</a>, macro in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR:CAPS" title="NM_DEVICE_OLPC_MESH_ERROR">NM_DEVICE_OLPC_MESH_ERROR</a>, macro in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -NM_DEVICE_OLPC_MESH_COMPANION, macro in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-error-quark" title="nm_device_olpc_mesh_error_quark ()">nm_device_olpc_mesh_error_quark</a>, function in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -nm_device_olpc_mesh_get_active_channel, function in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-active-channel" title="nm_device_olpc_mesh_get_active_channel ()">nm_device_olpc_mesh_get_active_channel</a>, function in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -nm_device_olpc_mesh_get_companion, function in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-companion" title="nm_device_olpc_mesh_get_companion ()">nm_device_olpc_mesh_get_companion</a>, function in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -nm_device_olpc_mesh_get_hw_address, function in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-hw-address" title="nm_device_olpc_mesh_get_hw_address ()">nm_device_olpc_mesh_get_hw_address</a>, function in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -NM_DEVICE_OLPC_MESH_HW_ADDRESS, macro in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-HW-ADDRESS:CAPS" title="NM_DEVICE_OLPC_MESH_HW_ADDRESS">NM_DEVICE_OLPC_MESH_HW_ADDRESS</a>, macro in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> -nm_device_olpc_mesh_new, function in NMDeviceOlpcMesh +<a class="link" href="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-new" title="nm_device_olpc_mesh_new ()">nm_device_olpc_mesh_new</a>, function in <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> </dt> <dd></dd> <dt> @@ -1189,6 +1263,10 @@ nm_device_olpc_mesh_new, function in NMDeviceOlpcMesh </dt> <dd></dd> <dt> +<a class="link" href="NMDevice.html#nm-device-set-autoconnect" title="nm_device_set_autoconnect ()">nm_device_set_autoconnect</a>, function in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDevice.html#NM-DEVICE-STATE:CAPS" title="NM_DEVICE_STATE">NM_DEVICE_STATE</a>, macro in <a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a> </dt> <dd></dd> @@ -1205,31 +1283,39 @@ nm_device_olpc_mesh_new, function in NMDeviceOlpcMesh </dt> <dd></dd> <dt> -NM_DEVICE_VLAN_CARRIER, macro in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-CARRIER:CAPS" title="NM_DEVICE_VLAN_CARRIER">NM_DEVICE_VLAN_CARRIER</a>, macro in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -nm_device_vlan_get_carrier, function in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR:CAPS" title="NM_DEVICE_VLAN_ERROR">NM_DEVICE_VLAN_ERROR</a>, macro in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -nm_device_vlan_get_hw_address, function in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#nm-device-vlan-error-quark" title="nm_device_vlan_error_quark ()">nm_device_vlan_error_quark</a>, function in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -nm_device_vlan_get_vlan_id, function in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#nm-device-vlan-get-carrier" title="nm_device_vlan_get_carrier ()">nm_device_vlan_get_carrier</a>, function in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -NM_DEVICE_VLAN_HW_ADDRESS, macro in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#nm-device-vlan-get-hw-address" title="nm_device_vlan_get_hw_address ()">nm_device_vlan_get_hw_address</a>, function in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -nm_device_vlan_new, function in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#nm-device-vlan-get-vlan-id" title="nm_device_vlan_get_vlan_id ()">nm_device_vlan_get_vlan_id</a>, function in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> -NM_DEVICE_VLAN_VLAN_ID, macro in NMDeviceVlan +<a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-HW-ADDRESS:CAPS" title="NM_DEVICE_VLAN_HW_ADDRESS">NM_DEVICE_VLAN_HW_ADDRESS</a>, macro in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceVlan.html#nm-device-vlan-new" title="nm_device_vlan_new ()">nm_device_vlan_new</a>, function in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceVlan.html#NM-DEVICE-VLAN-VLAN-ID:CAPS" title="NM_DEVICE_VLAN_VLAN_ID">NM_DEVICE_VLAN_VLAN_ID</a>, macro in <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> </dt> <dd></dd> <dt> @@ -1245,6 +1331,14 @@ NM_DEVICE_VLAN_VLAN_ID, macro in NMDeviceVlan </dt> <dd></dd> <dt> +<a class="link" href="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR:CAPS" title="NM_DEVICE_WIFI_ERROR">NM_DEVICE_WIFI_ERROR</a>, macro in <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi">NMDeviceWifi</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceWifi.html#nm-device-wifi-error-quark" title="nm_device_wifi_error_quark ()">nm_device_wifi_error_quark</a>, function in <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi">NMDeviceWifi</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDeviceWifi.html#nm-device-wifi-get-access-points" title="nm_device_wifi_get_access_points ()">nm_device_wifi_get_access_points</a>, function in <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi">NMDeviceWifi</a> </dt> <dd></dd> @@ -1309,6 +1403,14 @@ NM_DEVICE_VLAN_VLAN_ID, macro in NMDeviceVlan </dt> <dd></dd> <dt> +<a class="link" href="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR:CAPS" title="NM_DEVICE_WIMAX_ERROR">NM_DEVICE_WIMAX_ERROR</a>, macro in <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax">NMDeviceWimax</a> +</dt> +<dd></dd> +<dt> +<a class="link" href="NMDeviceWimax.html#nm-device-wimax-error-quark" title="nm_device_wimax_error_quark ()">nm_device_wimax_error_quark</a>, function in <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax">NMDeviceWimax</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMDeviceWimax.html#nm-device-wimax-get-active-nsp" title="nm_device_wimax_get_active_nsp ()">nm_device_wimax_get_active_nsp</a>, function in <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax">NMDeviceWimax</a> </dt> <dd></dd> @@ -1416,83 +1518,6 @@ NM_DEVICE_VLAN_VLAN_ID, macro in NMDeviceVlan <a class="link" href="NMDHCP6Config.html#NM-DHCP6-CONFIG-OPTIONS:CAPS" title="NM_DHCP6_CONFIG_OPTIONS">NM_DHCP6_CONFIG_OPTIONS</a>, macro in <a class="link" href="NMDHCP6Config.html" title="NMDHCP6Config">NMDHCP6Config</a> </dt> <dd></dd> -<a name="idxG"></a><h3 class="title">G</h3> -<dt> -g_marshal_value_peek_boolean, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_boxed, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_char, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_double, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_enum, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_flags, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_float, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_int, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_int64, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_long, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_object, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_param, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_pointer, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_string, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_uchar, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_uint, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_uint64, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_ulong, macro in nm-secret-agent-glue -</dt> -<dd></dd> -<dt> -g_marshal_value_peek_variant, macro in nm-secret-agent-glue -</dt> -<dd></dd> <a name="idxI"></a><h3 class="title">I</h3> <dt> <a class="link" href="NMIP4Config.html#NMIP4Config-struct" title="NMIP4Config">NMIP4Config</a>, struct in <a class="link" href="NMIP4Config.html" title="NMIP4Config">NMIP4Config</a> @@ -1632,127 +1657,47 @@ g_marshal_value_peek_variant, macro in nm-secret-agent-glue </dt> <dd></dd> <dt> -<a class="link" href="NMObject.html#NMObject--dbus-connection" title='The "dbus-connection" property'>NMObject:dbus-connection</a>, object property in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> -</dt> -<dd></dd> -<dt> -<a class="link" href="NMObject.html#NMObject--dbus-path" title='The "dbus-path" property'>NMObject:dbus-path</a>, object property in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> -</dt> -<dd></dd> -<dt> -<a class="link" href="NMObject.html#NMObjectClass" title="NMObjectClass">NMObjectClass</a>, struct in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> -</dt> -<dd></dd> -<dt> -<a class="link" href="NMObject.html#NM-OBJECT-DBUS-CONNECTION:CAPS" title="NM_OBJECT_DBUS_CONNECTION">NM_OBJECT_DBUS_CONNECTION</a>, macro in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> -</dt> -<dd></dd> -<dt> -<a class="link" href="NMObject.html#NM-OBJECT-DBUS-PATH:CAPS" title="NM_OBJECT_DBUS_PATH">NM_OBJECT_DBUS_PATH</a>, macro in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> -</dt> -<dd></dd> -<dt> -<a class="link" href="NMObject.html#nm-object-get-connection" title="nm_object_get_connection ()">nm_object_get_connection</a>, function in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> -</dt> -<dd></dd> -<dt> -<a class="link" href="NMObject.html#nm-object-get-path" title="nm_object_get_path ()">nm_object_get_path</a>, function in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_delete, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_delete_async, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_delete_async_callback, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_delete_reply, user_function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_get_settings, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_get_settings_async, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_get_settings_async_callback, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_get_settings_reply, user_function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_async, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_async_callback, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_reply, user_function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_update, function in nm-exported-connection-bindings -</dt> -<dd></dd> -<dt> -org_freedesktop_NetworkManagerSettings_Connection_update_async, function in nm-exported-connection-bindings +<a class="link" href="NMObject.html#NMObject-object-creation-failed" title='The "object-creation-failed" signal'>NMObject::object-creation-failed</a>, object signal in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_Connection_update_async_callback, function in nm-exported-connection-bindings +<a class="link" href="NMObject.html#NMObject--dbus-connection" title='The "dbus-connection" property'>NMObject:dbus-connection</a>, object property in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_Connection_update_reply, user_function in nm-exported-connection-bindings +<a class="link" href="NMObject.html#NMObject--dbus-path" title='The "dbus-path" property'>NMObject:dbus-path</a>, object property in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_get_permissions, function in nm-settings-system-bindings +<a class="link" href="NMObject.html#NMObjectClass" title="NMObjectClass">NMObjectClass</a>, struct in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_get_permissions_async, function in nm-settings-system-bindings +<a class="link" href="NMObject.html#NMObjectError" title="enum NMObjectError">NMObjectError</a>, enum in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_get_permissions_async_callback, function in nm-settings-system-bindings +<a class="link" href="NMObject.html#NM-OBJECT-DBUS-CONNECTION:CAPS" title="NM_OBJECT_DBUS_CONNECTION">NM_OBJECT_DBUS_CONNECTION</a>, macro in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_get_permissions_reply, user_function in nm-settings-system-bindings +<a class="link" href="NMObject.html#NM-OBJECT-DBUS-PATH:CAPS" title="NM_OBJECT_DBUS_PATH">NM_OBJECT_DBUS_PATH</a>, macro in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_save_hostname, function in nm-settings-system-bindings +<a class="link" href="NMObject.html#NM-OBJECT-ERROR:CAPS" title="NM_OBJECT_ERROR">NM_OBJECT_ERROR</a>, macro in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_save_hostname_async, function in nm-settings-system-bindings +<a class="link" href="NMObject.html#nm-object-error-quark" title="nm_object_error_quark ()">nm_object_error_quark</a>, function in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_save_hostname_async_callback, function in nm-settings-system-bindings +<a class="link" href="NMObject.html#nm-object-get-connection" title="nm_object_get_connection ()">nm_object_get_connection</a>, function in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <dt> -org_freedesktop_NetworkManagerSettings_System_save_hostname_reply, user_function in nm-settings-system-bindings +<a class="link" href="NMObject.html#nm-object-get-path" title="nm_object_get_path ()">nm_object_get_path</a>, function in <a class="link" href="NMObject.html" title="NMObject">NMObject</a> </dt> <dd></dd> <a name="idxR"></a><h3 class="title">R</h3> @@ -1986,6 +1931,10 @@ org_freedesktop_NetworkManagerSettings_System_save_hostname_reply, user_function </dt> <dd></dd> <dt> +<a class="link" href="NMSecretAgent.html#nm-secret-agent-get-registered" title="nm_secret_agent_get_registered ()">nm_secret_agent_get_registered</a>, function in <a class="link" href="NMSecretAgent.html" title="NMSecretAgent">NMSecretAgent</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSecretAgent.html#nm-secret-agent-get-secrets" title="nm_secret_agent_get_secrets ()">nm_secret_agent_get_secrets</a>, function in <a class="link" href="NMSecretAgent.html" title="NMSecretAgent">NMSecretAgent</a> </dt> <dd></dd> @@ -1998,6 +1947,10 @@ org_freedesktop_NetworkManagerSettings_System_save_hostname_reply, user_function </dt> <dd></dd> <dt> +<a class="link" href="NMSecretAgent.html#NM-SECRET-AGENT-REGISTERED:CAPS" title="NM_SECRET_AGENT_REGISTERED">NM_SECRET_AGENT_REGISTERED</a>, macro in <a class="link" href="NMSecretAgent.html" title="NMSecretAgent">NMSecretAgent</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSecretAgent.html#NM-SECRET-AGENT-REGISTRATION-RESULT:CAPS" title="NM_SECRET_AGENT_REGISTRATION_RESULT">NM_SECRET_AGENT_REGISTRATION_RESULT</a>, macro in <a class="link" href="NMSecretAgent.html" title="NMSecretAgent">NMSecretAgent</a> </dt> <dd></dd> @@ -2103,10 +2056,18 @@ org_freedesktop_NetworkManagerSettings_System_save_hostname_reply, user_function </dt> <dd></dd> <dt> +<a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-config" title="nm_vpn_plugin_set_config ()">nm_vpn_plugin_set_config</a>, function in <a class="link" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">NMVPNPlugin</a> +</dt> +<dd></dd> +<dt> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip4-config" title="nm_vpn_plugin_set_ip4_config ()">nm_vpn_plugin_set_ip4_config</a>, function in <a class="link" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">NMVPNPlugin</a> </dt> <dd></dd> <dt> +<a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip6-config" title="nm_vpn_plugin_set_ip6_config ()">nm_vpn_plugin_set_ip6_config</a>, function in <a class="link" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">NMVPNPlugin</a> +</dt> +<dd></dd> +<dt> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-login-banner" title="nm_vpn_plugin_set_login_banner ()">nm_vpn_plugin_set_login_banner</a>, function in <a class="link" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">NMVPNPlugin</a> </dt> <dd></dd> diff --git a/docs/libnm-glib/html/ch02.html b/docs/libnm-glib/html/ch02.html index 72bb7148..4ae3cc09 100644 --- a/docs/libnm-glib/html/ch02.html +++ b/docs/libnm-glib/html/ch02.html @@ -21,7 +21,7 @@ </tr></table> <div class="chapter"> <div class="titlepage"><div><div><h2 class="title"> -<a name="id582896"></a>libnm-glib API Reference</h2></div></div></div> +<a name="id431992"></a>libnm-glib API Reference</h2></div></div></div> <div class="toc"><dl> <dt> <span class="refentrytitle"><a href="NMClient.html">NMClient</a></span><span class="refpurpose"></span> @@ -48,6 +48,18 @@ <span class="refentrytitle"><a href="NMDeviceWimax.html">NMDeviceWimax</a></span><span class="refpurpose"></span> </dt> <dt> +<span class="refentrytitle"><a href="NMDeviceBond.html">NMDeviceBond</a></span><span class="refpurpose"></span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMDeviceInfiniband.html">NMDeviceInfiniband</a></span><span class="refpurpose"></span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMDeviceVlan.html">NMDeviceVlan</a></span><span class="refpurpose"></span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMDeviceOlpcMesh.html">NMDeviceOlpcMesh</a></span><span class="refpurpose"></span> +</dt> +<dt> <span class="refentrytitle"><a href="NMWimaxNsp.html">NMWimaxNsp</a></span><span class="refpurpose"></span> </dt> <dt> diff --git a/docs/libnm-glib/html/index.html b/docs/libnm-glib/html/index.html index e81d55c8..86ef3641 100644 --- a/docs/libnm-glib/html/index.html +++ b/docs/libnm-glib/html/index.html @@ -29,7 +29,7 @@ </p></div> <div><p class="copyright">Copyright © 2011 The NetworkManager Authors</p></div> <div><div class="legalnotice"> -<a name="id553298"></a><p> +<a name="id402394"></a><p> Permission is granted to copy, distribute and/or modify this document under the terms of the <em class="citetitle">GNU Free Documentation License</em>, Version 1.1 or any later @@ -89,6 +89,18 @@ <span class="refentrytitle"><a href="NMDeviceWimax.html">NMDeviceWimax</a></span><span class="refpurpose"></span> </dt> <dt> +<span class="refentrytitle"><a href="NMDeviceBond.html">NMDeviceBond</a></span><span class="refpurpose"></span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMDeviceInfiniband.html">NMDeviceInfiniband</a></span><span class="refpurpose"></span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMDeviceVlan.html">NMDeviceVlan</a></span><span class="refpurpose"></span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMDeviceOlpcMesh.html">NMDeviceOlpcMesh</a></span><span class="refpurpose"></span> +</dt> +<dt> <span class="refentrytitle"><a href="NMWimaxNsp.html">NMWimaxNsp</a></span><span class="refpurpose"></span> </dt> <dt> diff --git a/docs/libnm-glib/html/index.sgml b/docs/libnm-glib/html/index.sgml index 5f5404f7..2251b67f 100644 --- a/docs/libnm-glib/html/index.sgml +++ b/docs/libnm-glib/html/index.sgml @@ -113,12 +113,15 @@ <ANCHOR id="NMDeviceClass" href="libnm-glib/NMDevice.html#NMDeviceClass"> <ANCHOR id="NMDeviceDeactivateFn" href="libnm-glib/NMDevice.html#NMDeviceDeactivateFn"> <ANCHOR id="NM-DEVICE-ACTIVE-CONNECTION:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-ACTIVE-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-AUTOCONNECT:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-AUTOCONNECT:CAPS"> <ANCHOR id="NM-DEVICE-CAPABILITIES:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-CAPABILITIES:CAPS"> <ANCHOR id="NM-DEVICE-DEVICE-TYPE:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-DEVICE-TYPE:CAPS"> <ANCHOR id="NM-DEVICE-DHCP4-CONFIG:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-DHCP4-CONFIG:CAPS"> <ANCHOR id="NM-DEVICE-DHCP6-CONFIG:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-DHCP6-CONFIG:CAPS"> <ANCHOR id="NM-DEVICE-DRIVER:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-DRIVER:CAPS"> +<ANCHOR id="NM-DEVICE-DRIVER-VERSION:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-DRIVER-VERSION:CAPS"> <ANCHOR id="NM-DEVICE-FIRMWARE-MISSING:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-FIRMWARE-MISSING:CAPS"> +<ANCHOR id="NM-DEVICE-FIRMWARE-VERSION:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-FIRMWARE-VERSION:CAPS"> <ANCHOR id="NM-DEVICE-INTERFACE:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-INTERFACE:CAPS"> <ANCHOR id="NM-DEVICE-IP4-CONFIG:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-IP4-CONFIG:CAPS"> <ANCHOR id="NM-DEVICE-IP6-CONFIG:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-IP6-CONFIG:CAPS"> @@ -129,16 +132,20 @@ <ANCHOR id="NM-DEVICE-STATE-REASON:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-STATE-REASON:CAPS"> <ANCHOR id="NM-DEVICE-UDI:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-UDI:CAPS"> <ANCHOR id="NM-DEVICE-VENDOR:CAPS" href="libnm-glib/NMDevice.html#NM-DEVICE-VENDOR:CAPS"> +<ANCHOR id="nm-device-connection-compatible" href="libnm-glib/NMDevice.html#nm-device-connection-compatible"> <ANCHOR id="nm-device-connection-valid" href="libnm-glib/NMDevice.html#nm-device-connection-valid"> <ANCHOR id="nm-device-disconnect" href="libnm-glib/NMDevice.html#nm-device-disconnect"> <ANCHOR id="nm-device-filter-connections" href="libnm-glib/NMDevice.html#nm-device-filter-connections"> <ANCHOR id="nm-device-get-active-connection" href="libnm-glib/NMDevice.html#nm-device-get-active-connection"> +<ANCHOR id="nm-device-get-autoconnect" href="libnm-glib/NMDevice.html#nm-device-get-autoconnect"> <ANCHOR id="nm-device-get-capabilities" href="libnm-glib/NMDevice.html#nm-device-get-capabilities"> <ANCHOR id="nm-device-get-device-type" href="libnm-glib/NMDevice.html#nm-device-get-device-type"> <ANCHOR id="nm-device-get-dhcp4-config" href="libnm-glib/NMDevice.html#nm-device-get-dhcp4-config"> <ANCHOR id="nm-device-get-dhcp6-config" href="libnm-glib/NMDevice.html#nm-device-get-dhcp6-config"> <ANCHOR id="nm-device-get-driver" href="libnm-glib/NMDevice.html#nm-device-get-driver"> +<ANCHOR id="nm-device-get-driver-version" href="libnm-glib/NMDevice.html#nm-device-get-driver-version"> <ANCHOR id="nm-device-get-firmware-missing" href="libnm-glib/NMDevice.html#nm-device-get-firmware-missing"> +<ANCHOR id="nm-device-get-firmware-version" href="libnm-glib/NMDevice.html#nm-device-get-firmware-version"> <ANCHOR id="nm-device-get-iface" href="libnm-glib/NMDevice.html#nm-device-get-iface"> <ANCHOR id="nm-device-get-ip4-config" href="libnm-glib/NMDevice.html#nm-device-get-ip4-config"> <ANCHOR id="nm-device-get-ip6-config" href="libnm-glib/NMDevice.html#nm-device-get-ip6-config"> @@ -150,14 +157,18 @@ <ANCHOR id="nm-device-get-udi" href="libnm-glib/NMDevice.html#nm-device-get-udi"> <ANCHOR id="nm-device-get-vendor" href="libnm-glib/NMDevice.html#nm-device-get-vendor"> <ANCHOR id="nm-device-new" href="libnm-glib/NMDevice.html#nm-device-new"> +<ANCHOR id="nm-device-set-autoconnect" href="libnm-glib/NMDevice.html#nm-device-set-autoconnect"> <ANCHOR id="NMDevice.property-details" href="libnm-glib/NMDevice.html#NMDevice.property-details"> <ANCHOR id="NMDevice--active-connection" href="libnm-glib/NMDevice.html#NMDevice--active-connection"> +<ANCHOR id="NMDevice--autoconnect" href="libnm-glib/NMDevice.html#NMDevice--autoconnect"> <ANCHOR id="NMDevice--capabilities" href="libnm-glib/NMDevice.html#NMDevice--capabilities"> <ANCHOR id="NMDevice--device-type" href="libnm-glib/NMDevice.html#NMDevice--device-type"> <ANCHOR id="NMDevice--dhcp4-config" href="libnm-glib/NMDevice.html#NMDevice--dhcp4-config"> <ANCHOR id="NMDevice--dhcp6-config" href="libnm-glib/NMDevice.html#NMDevice--dhcp6-config"> <ANCHOR id="NMDevice--driver" href="libnm-glib/NMDevice.html#NMDevice--driver"> +<ANCHOR id="NMDevice--driver-version" href="libnm-glib/NMDevice.html#NMDevice--driver-version"> <ANCHOR id="NMDevice--firmware-missing" href="libnm-glib/NMDevice.html#NMDevice--firmware-missing"> +<ANCHOR id="NMDevice--firmware-version" href="libnm-glib/NMDevice.html#NMDevice--firmware-version"> <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"> @@ -179,10 +190,18 @@ <ANCHOR id="NMDeviceEthernet.details" href="libnm-glib/NMDeviceEthernet.html#NMDeviceEthernet.details"> <ANCHOR id="NMDeviceEthernet-struct" href="libnm-glib/NMDeviceEthernet.html#NMDeviceEthernet-struct"> <ANCHOR id="NMDeviceEthernetClass" href="libnm-glib/NMDeviceEthernet.html#NMDeviceEthernetClass"> +<ANCHOR id="NMDeviceEthernetError" href="libnm-glib/NMDeviceEthernet.html#NMDeviceEthernetError"> +<ANCHOR id="NM-DEVICE-ETHERNET-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-ETHERNET-ERROR-NOT-ETHERNET-CONNECTION:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-NOT-ETHERNET-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-ETHERNET-ERROR-INVALID-ETHERNET-CONNECTION:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-INVALID-ETHERNET-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-ETHERNET-ERROR-INVALID-DEVICE-MAC:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-INVALID-DEVICE-MAC:CAPS"> +<ANCHOR id="NM-DEVICE-ETHERNET-ERROR-MAC-MISMATCH:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-MAC-MISMATCH:CAPS"> <ANCHOR id="NM-DEVICE-ETHERNET-CARRIER:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-CARRIER:CAPS"> +<ANCHOR id="NM-DEVICE-ETHERNET-ERROR:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR:CAPS"> <ANCHOR id="NM-DEVICE-ETHERNET-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-HW-ADDRESS:CAPS"> <ANCHOR id="NM-DEVICE-ETHERNET-PERMANENT-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-PERMANENT-HW-ADDRESS:CAPS"> <ANCHOR id="NM-DEVICE-ETHERNET-SPEED:CAPS" href="libnm-glib/NMDeviceEthernet.html#NM-DEVICE-ETHERNET-SPEED:CAPS"> +<ANCHOR id="nm-device-ethernet-error-quark" href="libnm-glib/NMDeviceEthernet.html#nm-device-ethernet-error-quark"> <ANCHOR id="nm-device-ethernet-get-carrier" href="libnm-glib/NMDeviceEthernet.html#nm-device-ethernet-get-carrier"> <ANCHOR id="nm-device-ethernet-get-hw-address" href="libnm-glib/NMDeviceEthernet.html#nm-device-ethernet-get-hw-address"> <ANCHOR id="nm-device-ethernet-get-permanent-hw-address" href="libnm-glib/NMDeviceEthernet.html#nm-device-ethernet-get-permanent-hw-address"> @@ -203,12 +222,22 @@ <ANCHOR id="NMDeviceWifi.details" href="libnm-glib/NMDeviceWifi.html#NMDeviceWifi.details"> <ANCHOR id="NMDeviceWifi-struct" href="libnm-glib/NMDeviceWifi.html#NMDeviceWifi-struct"> <ANCHOR id="NMDeviceWifiClass" href="libnm-glib/NMDeviceWifi.html#NMDeviceWifiClass"> +<ANCHOR id="NMDeviceWifiError" href="libnm-glib/NMDeviceWifi.html#NMDeviceWifiError"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR-NOT-WIFI-CONNECTION:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-NOT-WIFI-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR-INVALID-WIFI-CONNECTION:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-INVALID-WIFI-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR-INVALID-DEVICE-MAC:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-INVALID-DEVICE-MAC:CAPS"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR-MAC-MISMATCH:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-MAC-MISMATCH:CAPS"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-WPA-CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-WPA-CAPS"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-RSN-CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-RSN-CAPS"> <ANCHOR id="NM-DEVICE-WIFI-ACTIVE-ACCESS-POINT:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ACTIVE-ACCESS-POINT:CAPS"> <ANCHOR id="NM-DEVICE-WIFI-BITRATE:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-BITRATE:CAPS"> <ANCHOR id="NM-DEVICE-WIFI-CAPABILITIES:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-CAPABILITIES:CAPS"> +<ANCHOR id="NM-DEVICE-WIFI-ERROR:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR:CAPS"> <ANCHOR id="NM-DEVICE-WIFI-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-HW-ADDRESS:CAPS"> <ANCHOR id="NM-DEVICE-WIFI-MODE:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-MODE:CAPS"> <ANCHOR id="NM-DEVICE-WIFI-PERMANENT-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceWifi.html#NM-DEVICE-WIFI-PERMANENT-HW-ADDRESS:CAPS"> +<ANCHOR id="nm-device-wifi-error-quark" href="libnm-glib/NMDeviceWifi.html#nm-device-wifi-error-quark"> <ANCHOR id="nm-device-wifi-get-access-point-by-path" href="libnm-glib/NMDeviceWifi.html#nm-device-wifi-get-access-point-by-path"> <ANCHOR id="nm-device-wifi-get-access-points" href="libnm-glib/NMDeviceWifi.html#nm-device-wifi-get-access-points"> <ANCHOR id="nm-device-wifi-get-active-access-point" href="libnm-glib/NMDeviceWifi.html#nm-device-wifi-get-active-access-point"> @@ -237,8 +266,15 @@ <ANCHOR id="NMDeviceModem.details" href="libnm-glib/NMDeviceModem.html#NMDeviceModem.details"> <ANCHOR id="NMDeviceModem-struct" href="libnm-glib/NMDeviceModem.html#NMDeviceModem-struct"> <ANCHOR id="NMDeviceModemClass" href="libnm-glib/NMDeviceModem.html#NMDeviceModemClass"> +<ANCHOR id="NMDeviceModemError" href="libnm-glib/NMDeviceModem.html#NMDeviceModemError"> +<ANCHOR id="NM-DEVICE-MODEM-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-MODEM-ERROR-NOT-MODEM-CONNECTION:CAPS" href="libnm-glib/NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-NOT-MODEM-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-MODEM-ERROR-INVALID-MODEM-CONNECTION:CAPS" href="libnm-glib/NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-INVALID-MODEM-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-MODEM-ERROR-MISSING-DEVICE-CAPS" href="libnm-glib/NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-MISSING-DEVICE-CAPS"> <ANCHOR id="NM-DEVICE-MODEM-CURRENT-CAPABILITIES:CAPS" href="libnm-glib/NMDeviceModem.html#NM-DEVICE-MODEM-CURRENT-CAPABILITIES:CAPS"> +<ANCHOR id="NM-DEVICE-MODEM-ERROR:CAPS" href="libnm-glib/NMDeviceModem.html#NM-DEVICE-MODEM-ERROR:CAPS"> <ANCHOR id="NM-DEVICE-MODEM-MODEM-CAPABILITIES:CAPS" href="libnm-glib/NMDeviceModem.html#NM-DEVICE-MODEM-MODEM-CAPABILITIES:CAPS"> +<ANCHOR id="nm-device-modem-error-quark" href="libnm-glib/NMDeviceModem.html#nm-device-modem-error-quark"> <ANCHOR id="nm-device-modem-get-current-capabilities" href="libnm-glib/NMDeviceModem.html#nm-device-modem-get-current-capabilities"> <ANCHOR id="nm-device-modem-get-modem-capabilities" href="libnm-glib/NMDeviceModem.html#nm-device-modem-get-modem-capabilities"> <ANCHOR id="NMDeviceModem.property-details" href="libnm-glib/NMDeviceModem.html#NMDeviceModem.property-details"> @@ -253,9 +289,18 @@ <ANCHOR id="NMDeviceBt.details" href="libnm-glib/NMDeviceBt.html#NMDeviceBt.details"> <ANCHOR id="NMDeviceBt-struct" href="libnm-glib/NMDeviceBt.html#NMDeviceBt-struct"> <ANCHOR id="NMDeviceBtClass" href="libnm-glib/NMDeviceBt.html#NMDeviceBtClass"> +<ANCHOR id="NMDeviceBtError" href="libnm-glib/NMDeviceBt.html#NMDeviceBtError"> +<ANCHOR id="NM-DEVICE-BT-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-BT-ERROR-NOT-BT-CONNECTION:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-ERROR-NOT-BT-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-BT-ERROR-INVALID-BT-CONNECTION:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-ERROR-INVALID-BT-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-BT-ERROR-INVALID-DEVICE-MAC:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-ERROR-INVALID-DEVICE-MAC:CAPS"> +<ANCHOR id="NM-DEVICE-BT-ERROR-MAC-MISMATCH:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-ERROR-MAC-MISMATCH:CAPS"> +<ANCHOR id="NM-DEVICE-BT-ERROR-MISSING-DEVICE-CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-ERROR-MISSING-DEVICE-CAPS"> <ANCHOR id="NM-DEVICE-BT-CAPABILITIES:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS"> +<ANCHOR id="NM-DEVICE-BT-ERROR:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-ERROR:CAPS"> <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-error-quark" href="libnm-glib/NMDeviceBt.html#nm-device-bt-error-quark"> <ANCHOR id="nm-device-bt-get-capabilities" href="libnm-glib/NMDeviceBt.html#nm-device-bt-get-capabilities"> <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"> @@ -274,13 +319,21 @@ <ANCHOR id="NMDeviceWimax.details" href="libnm-glib/NMDeviceWimax.html#NMDeviceWimax.details"> <ANCHOR id="NMDeviceWimax-struct" href="libnm-glib/NMDeviceWimax.html#NMDeviceWimax-struct"> <ANCHOR id="NMDeviceWimaxClass" href="libnm-glib/NMDeviceWimax.html#NMDeviceWimaxClass"> +<ANCHOR id="NMDeviceWimaxError" href="libnm-glib/NMDeviceWimax.html#NMDeviceWimaxError"> +<ANCHOR id="NM-DEVICE-WIMAX-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-WIMAX-ERROR-NOT-WIMAX-CONNECTION:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-NOT-WIMAX-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-WIMAX-ERROR-INVALID-WIMAX-CONNECTION:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-INVALID-WIMAX-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-WIMAX-ERROR-INVALID-DEVICE-MAC:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-INVALID-DEVICE-MAC:CAPS"> +<ANCHOR id="NM-DEVICE-WIMAX-ERROR-MAC-MISMATCH:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-MAC-MISMATCH:CAPS"> <ANCHOR id="NM-DEVICE-WIMAX-ACTIVE-NSP:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-ACTIVE-NSP:CAPS"> <ANCHOR id="NM-DEVICE-WIMAX-BSID:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-BSID:CAPS"> <ANCHOR id="NM-DEVICE-WIMAX-CENTER-FREQUENCY:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-CENTER-FREQUENCY:CAPS"> <ANCHOR id="NM-DEVICE-WIMAX-CINR:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-CINR:CAPS"> +<ANCHOR id="NM-DEVICE-WIMAX-ERROR:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR:CAPS"> <ANCHOR id="NM-DEVICE-WIMAX-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-HW-ADDRESS:CAPS"> <ANCHOR id="NM-DEVICE-WIMAX-RSSI:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-RSSI:CAPS"> <ANCHOR id="NM-DEVICE-WIMAX-TX-POWER:CAPS" href="libnm-glib/NMDeviceWimax.html#NM-DEVICE-WIMAX-TX-POWER:CAPS"> +<ANCHOR id="nm-device-wimax-error-quark" href="libnm-glib/NMDeviceWimax.html#nm-device-wimax-error-quark"> <ANCHOR id="nm-device-wimax-get-active-nsp" href="libnm-glib/NMDeviceWimax.html#nm-device-wimax-get-active-nsp"> <ANCHOR id="nm-device-wimax-get-bsid" href="libnm-glib/NMDeviceWimax.html#nm-device-wimax-get-bsid"> <ANCHOR id="nm-device-wimax-get-center-frequency" href="libnm-glib/NMDeviceWimax.html#nm-device-wimax-get-center-frequency"> @@ -302,6 +355,109 @@ <ANCHOR id="NMDeviceWimax.signal-details" href="libnm-glib/NMDeviceWimax.html#NMDeviceWimax.signal-details"> <ANCHOR id="NMDeviceWimax-nsp-added" href="libnm-glib/NMDeviceWimax.html#NMDeviceWimax-nsp-added"> <ANCHOR id="NMDeviceWimax-nsp-removed" href="libnm-glib/NMDeviceWimax.html#NMDeviceWimax-nsp-removed"> +<ANCHOR id="NMDeviceBond" href="libnm-glib/NMDeviceBond.html"> +<ANCHOR id="NMDeviceBond.synopsis" href="libnm-glib/NMDeviceBond.html#NMDeviceBond.synopsis"> +<ANCHOR id="NMDeviceBond.object-hierarchy" href="libnm-glib/NMDeviceBond.html#NMDeviceBond.object-hierarchy"> +<ANCHOR id="NMDeviceBond.implemented-interfaces" href="libnm-glib/NMDeviceBond.html#NMDeviceBond.implemented-interfaces"> +<ANCHOR id="NMDeviceBond.properties" href="libnm-glib/NMDeviceBond.html#NMDeviceBond.properties"> +<ANCHOR id="NMDeviceBond.description" href="libnm-glib/NMDeviceBond.html#NMDeviceBond.description"> +<ANCHOR id="NMDeviceBond.details" href="libnm-glib/NMDeviceBond.html#NMDeviceBond.details"> +<ANCHOR id="NMDeviceBond-struct" href="libnm-glib/NMDeviceBond.html#NMDeviceBond-struct"> +<ANCHOR id="NMDeviceBondClass" href="libnm-glib/NMDeviceBond.html#NMDeviceBondClass"> +<ANCHOR id="NMDeviceBondError" href="libnm-glib/NMDeviceBond.html#NMDeviceBondError"> +<ANCHOR id="NM-DEVICE-BOND-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceBond.html#NM-DEVICE-BOND-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-BOND-ERROR-NOT-BOND-CONNECTION:CAPS" href="libnm-glib/NMDeviceBond.html#NM-DEVICE-BOND-ERROR-NOT-BOND-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-BOND-ERROR-INVALID-BOND-CONNECTION:CAPS" href="libnm-glib/NMDeviceBond.html#NM-DEVICE-BOND-ERROR-INVALID-BOND-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-BOND-ERROR-INTERFACE-MISMATCH:CAPS" href="libnm-glib/NMDeviceBond.html#NM-DEVICE-BOND-ERROR-INTERFACE-MISMATCH:CAPS"> +<ANCHOR id="NM-DEVICE-BOND-CARRIER:CAPS" href="libnm-glib/NMDeviceBond.html#NM-DEVICE-BOND-CARRIER:CAPS"> +<ANCHOR id="NM-DEVICE-BOND-ERROR:CAPS" href="libnm-glib/NMDeviceBond.html#NM-DEVICE-BOND-ERROR:CAPS"> +<ANCHOR id="NM-DEVICE-BOND-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceBond.html#NM-DEVICE-BOND-HW-ADDRESS:CAPS"> +<ANCHOR id="nm-device-bond-error-quark" href="libnm-glib/NMDeviceBond.html#nm-device-bond-error-quark"> +<ANCHOR id="nm-device-bond-get-carrier" href="libnm-glib/NMDeviceBond.html#nm-device-bond-get-carrier"> +<ANCHOR id="nm-device-bond-get-hw-address" href="libnm-glib/NMDeviceBond.html#nm-device-bond-get-hw-address"> +<ANCHOR id="nm-device-bond-new" href="libnm-glib/NMDeviceBond.html#nm-device-bond-new"> +<ANCHOR id="NMDeviceBond.property-details" href="libnm-glib/NMDeviceBond.html#NMDeviceBond.property-details"> +<ANCHOR id="NMDeviceBond--carrier" href="libnm-glib/NMDeviceBond.html#NMDeviceBond--carrier"> +<ANCHOR id="NMDeviceBond--hw-address" href="libnm-glib/NMDeviceBond.html#NMDeviceBond--hw-address"> +<ANCHOR id="NMDeviceInfiniband" href="libnm-glib/NMDeviceInfiniband.html"> +<ANCHOR id="NMDeviceInfiniband.synopsis" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband.synopsis"> +<ANCHOR id="NMDeviceInfiniband.object-hierarchy" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband.object-hierarchy"> +<ANCHOR id="NMDeviceInfiniband.implemented-interfaces" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband.implemented-interfaces"> +<ANCHOR id="NMDeviceInfiniband.properties" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband.properties"> +<ANCHOR id="NMDeviceInfiniband.description" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband.description"> +<ANCHOR id="NMDeviceInfiniband.details" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband.details"> +<ANCHOR id="NMDeviceInfiniband-struct" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband-struct"> +<ANCHOR id="NMDeviceInfinibandClass" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfinibandClass"> +<ANCHOR id="NMDeviceInfinibandError" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfinibandError"> +<ANCHOR id="NM-DEVICE-INFINIBAND-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-INFINIBAND-ERROR-NOT-INFINIBAND-CONNECTION:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-NOT-INFINIBAND-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-INFINIBAND-ERROR-INVALID-INFINIBAND-CONNECTION:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-INVALID-INFINIBAND-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-INFINIBAND-ERROR-INVALID-DEVICE-MAC:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-INVALID-DEVICE-MAC:CAPS"> +<ANCHOR id="NM-DEVICE-INFINIBAND-ERROR-MAC-MISMATCH:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-MAC-MISMATCH:CAPS"> +<ANCHOR id="NM-DEVICE-INFINIBAND-CARRIER:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-CARRIER:CAPS"> +<ANCHOR id="NM-DEVICE-INFINIBAND-ERROR:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR:CAPS"> +<ANCHOR id="NM-DEVICE-INFINIBAND-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-HW-ADDRESS:CAPS"> +<ANCHOR id="nm-device-infiniband-error-quark" href="libnm-glib/NMDeviceInfiniband.html#nm-device-infiniband-error-quark"> +<ANCHOR id="nm-device-infiniband-get-carrier" href="libnm-glib/NMDeviceInfiniband.html#nm-device-infiniband-get-carrier"> +<ANCHOR id="nm-device-infiniband-get-hw-address" href="libnm-glib/NMDeviceInfiniband.html#nm-device-infiniband-get-hw-address"> +<ANCHOR id="nm-device-infiniband-new" href="libnm-glib/NMDeviceInfiniband.html#nm-device-infiniband-new"> +<ANCHOR id="NMDeviceInfiniband.property-details" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband.property-details"> +<ANCHOR id="NMDeviceInfiniband--carrier" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband--carrier"> +<ANCHOR id="NMDeviceInfiniband--hw-address" href="libnm-glib/NMDeviceInfiniband.html#NMDeviceInfiniband--hw-address"> +<ANCHOR id="NMDeviceVlan" href="libnm-glib/NMDeviceVlan.html"> +<ANCHOR id="NMDeviceVlan.synopsis" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan.synopsis"> +<ANCHOR id="NMDeviceVlan.object-hierarchy" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan.object-hierarchy"> +<ANCHOR id="NMDeviceVlan.implemented-interfaces" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan.implemented-interfaces"> +<ANCHOR id="NMDeviceVlan.properties" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan.properties"> +<ANCHOR id="NMDeviceVlan.description" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan.description"> +<ANCHOR id="NMDeviceVlan.details" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan.details"> +<ANCHOR id="NMDeviceVlan-struct" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan-struct"> +<ANCHOR id="NMDeviceVlanClass" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlanClass"> +<ANCHOR id="NMDeviceVlanError" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlanError"> +<ANCHOR id="NM-DEVICE-VLAN-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-ERROR-NOT-VLAN-CONNECTION:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-NOT-VLAN-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-ERROR-INVALID-VLAN-CONNECTION:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-INVALID-VLAN-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-ERROR-ID-MISMATCH:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-ID-MISMATCH:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-ERROR-INTERFACE-MISMATCH:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-INTERFACE-MISMATCH:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-CARRIER:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-CARRIER:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-ERROR:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-HW-ADDRESS:CAPS"> +<ANCHOR id="NM-DEVICE-VLAN-VLAN-ID:CAPS" href="libnm-glib/NMDeviceVlan.html#NM-DEVICE-VLAN-VLAN-ID:CAPS"> +<ANCHOR id="nm-device-vlan-error-quark" href="libnm-glib/NMDeviceVlan.html#nm-device-vlan-error-quark"> +<ANCHOR id="nm-device-vlan-get-carrier" href="libnm-glib/NMDeviceVlan.html#nm-device-vlan-get-carrier"> +<ANCHOR id="nm-device-vlan-get-hw-address" href="libnm-glib/NMDeviceVlan.html#nm-device-vlan-get-hw-address"> +<ANCHOR id="nm-device-vlan-get-vlan-id" href="libnm-glib/NMDeviceVlan.html#nm-device-vlan-get-vlan-id"> +<ANCHOR id="nm-device-vlan-new" href="libnm-glib/NMDeviceVlan.html#nm-device-vlan-new"> +<ANCHOR id="NMDeviceVlan.property-details" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan.property-details"> +<ANCHOR id="NMDeviceVlan--carrier" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan--carrier"> +<ANCHOR id="NMDeviceVlan--hw-address" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan--hw-address"> +<ANCHOR id="NMDeviceVlan--vlan-id" href="libnm-glib/NMDeviceVlan.html#NMDeviceVlan--vlan-id"> +<ANCHOR id="NMDeviceOlpcMesh" href="libnm-glib/NMDeviceOlpcMesh.html"> +<ANCHOR id="NMDeviceOlpcMesh.synopsis" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh.synopsis"> +<ANCHOR id="NMDeviceOlpcMesh.object-hierarchy" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh.object-hierarchy"> +<ANCHOR id="NMDeviceOlpcMesh.implemented-interfaces" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh.implemented-interfaces"> +<ANCHOR id="NMDeviceOlpcMesh.properties" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh.properties"> +<ANCHOR id="NMDeviceOlpcMesh.description" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh.description"> +<ANCHOR id="NMDeviceOlpcMesh.details" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh.details"> +<ANCHOR id="NMDeviceOlpcMesh-struct" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh-struct"> +<ANCHOR id="NMDeviceOlpcMeshClass" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMeshClass"> +<ANCHOR id="NMDeviceOlpcMeshError" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMeshError"> +<ANCHOR id="NM-DEVICE-OLPC-MESH-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-DEVICE-OLPC-MESH-ERROR-NOT-OLPC-MESH-CONNECTION:CAPS" href="libnm-glib/NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR-NOT-OLPC-MESH-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-OLPC-MESH-ERROR-INVALID-OLPC-MESH-CONNECTION:CAPS" href="libnm-glib/NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR-INVALID-OLPC-MESH-CONNECTION:CAPS"> +<ANCHOR id="NM-DEVICE-OLPC-MESH-ACTIVE-CHANNEL:CAPS" href="libnm-glib/NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ACTIVE-CHANNEL:CAPS"> +<ANCHOR id="NM-DEVICE-OLPC-MESH-COMPANION:CAPS" href="libnm-glib/NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-COMPANION:CAPS"> +<ANCHOR id="NM-DEVICE-OLPC-MESH-ERROR:CAPS" href="libnm-glib/NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR:CAPS"> +<ANCHOR id="NM-DEVICE-OLPC-MESH-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-HW-ADDRESS:CAPS"> +<ANCHOR id="nm-device-olpc-mesh-error-quark" href="libnm-glib/NMDeviceOlpcMesh.html#nm-device-olpc-mesh-error-quark"> +<ANCHOR id="nm-device-olpc-mesh-get-active-channel" href="libnm-glib/NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-active-channel"> +<ANCHOR id="nm-device-olpc-mesh-get-companion" href="libnm-glib/NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-companion"> +<ANCHOR id="nm-device-olpc-mesh-get-hw-address" href="libnm-glib/NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-hw-address"> +<ANCHOR id="nm-device-olpc-mesh-new" href="libnm-glib/NMDeviceOlpcMesh.html#nm-device-olpc-mesh-new"> +<ANCHOR id="NMDeviceOlpcMesh.property-details" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh.property-details"> +<ANCHOR id="NMDeviceOlpcMesh--active-channel" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--active-channel"> +<ANCHOR id="NMDeviceOlpcMesh--companion" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--companion"> +<ANCHOR id="NMDeviceOlpcMesh--hw-address" href="libnm-glib/NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--hw-address"> <ANCHOR id="NMWimaxNsp" href="libnm-glib/NMWimaxNsp.html"> <ANCHOR id="NMWimaxNsp.synopsis" href="libnm-glib/NMWimaxNsp.html#NMWimaxNsp.synopsis"> <ANCHOR id="NMWimaxNsp.object-hierarchy" href="libnm-glib/NMWimaxNsp.html#NMWimaxNsp.object-hierarchy"> @@ -452,17 +608,25 @@ <ANCHOR id="NMObject.object-hierarchy" href="libnm-glib/NMObject.html#NMObject.object-hierarchy"> <ANCHOR id="NMObject.implemented-interfaces" href="libnm-glib/NMObject.html#NMObject.implemented-interfaces"> <ANCHOR id="NMObject.properties" href="libnm-glib/NMObject.html#NMObject.properties"> +<ANCHOR id="NMObject.signals" href="libnm-glib/NMObject.html#NMObject.signals"> <ANCHOR id="NMObject.description" href="libnm-glib/NMObject.html#NMObject.description"> <ANCHOR id="NMObject.details" href="libnm-glib/NMObject.html#NMObject.details"> <ANCHOR id="NMObject-struct" href="libnm-glib/NMObject.html#NMObject-struct"> <ANCHOR id="NMObjectClass" href="libnm-glib/NMObject.html#NMObjectClass"> +<ANCHOR id="NMObjectError" href="libnm-glib/NMObject.html#NMObjectError"> +<ANCHOR id="NM-OBJECT-ERROR-UNKNOWN:CAPS" href="libnm-glib/NMObject.html#NM-OBJECT-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-OBJECT-ERROR-OBJECT-CREATION-FAILURE:CAPS" href="libnm-glib/NMObject.html#NM-OBJECT-ERROR-OBJECT-CREATION-FAILURE:CAPS"> <ANCHOR id="NM-OBJECT-DBUS-CONNECTION:CAPS" href="libnm-glib/NMObject.html#NM-OBJECT-DBUS-CONNECTION:CAPS"> <ANCHOR id="NM-OBJECT-DBUS-PATH:CAPS" href="libnm-glib/NMObject.html#NM-OBJECT-DBUS-PATH:CAPS"> +<ANCHOR id="NM-OBJECT-ERROR:CAPS" href="libnm-glib/NMObject.html#NM-OBJECT-ERROR:CAPS"> +<ANCHOR id="nm-object-error-quark" href="libnm-glib/NMObject.html#nm-object-error-quark"> <ANCHOR id="nm-object-get-connection" href="libnm-glib/NMObject.html#nm-object-get-connection"> <ANCHOR id="nm-object-get-path" href="libnm-glib/NMObject.html#nm-object-get-path"> <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="NMObject.signal-details" href="libnm-glib/NMObject.html#NMObject.signal-details"> +<ANCHOR id="NMObject-object-creation-failed" href="libnm-glib/NMObject.html#NMObject-object-creation-failed"> <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"> @@ -547,14 +711,17 @@ <ANCHOR id="NM-SECRET-AGENT-GET-SECRETS-FLAG-NONE:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-NONE:CAPS"> <ANCHOR id="NM-SECRET-AGENT-GET-SECRETS-FLAG-ALLOW-INTERACTION:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-ALLOW-INTERACTION:CAPS"> <ANCHOR id="NM-SECRET-AGENT-GET-SECRETS-FLAG-REQUEST-NEW:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-REQUEST-NEW:CAPS"> +<ANCHOR id="NM-SECRET-AGENT-GET-SECRETS-FLAG-USER-REQUESTED:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-USER-REQUESTED:CAPS"> <ANCHOR id="NMSecretAgentGetSecretsFunc" href="libnm-glib/NMSecretAgent.html#NMSecretAgentGetSecretsFunc"> <ANCHOR id="NMSecretAgentSaveSecretsFunc" href="libnm-glib/NMSecretAgent.html#NMSecretAgentSaveSecretsFunc"> <ANCHOR id="NM-SECRET-AGENT-AUTO-REGISTER:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-AUTO-REGISTER:CAPS"> <ANCHOR id="NM-SECRET-AGENT-ERROR:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-ERROR:CAPS"> <ANCHOR id="NM-SECRET-AGENT-IDENTIFIER:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-IDENTIFIER:CAPS"> +<ANCHOR id="NM-SECRET-AGENT-REGISTERED:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-REGISTERED:CAPS"> <ANCHOR id="NM-SECRET-AGENT-REGISTRATION-RESULT:CAPS" href="libnm-glib/NMSecretAgent.html#NM-SECRET-AGENT-REGISTRATION-RESULT:CAPS"> <ANCHOR id="nm-secret-agent-delete-secrets" href="libnm-glib/NMSecretAgent.html#nm-secret-agent-delete-secrets"> <ANCHOR id="nm-secret-agent-error-quark" href="libnm-glib/NMSecretAgent.html#nm-secret-agent-error-quark"> +<ANCHOR id="nm-secret-agent-get-registered" href="libnm-glib/NMSecretAgent.html#nm-secret-agent-get-registered"> <ANCHOR id="nm-secret-agent-get-secrets" href="libnm-glib/NMSecretAgent.html#nm-secret-agent-get-secrets"> <ANCHOR id="nm-secret-agent-register" href="libnm-glib/NMSecretAgent.html#nm-secret-agent-register"> <ANCHOR id="nm-secret-agent-save-secrets" href="libnm-glib/NMSecretAgent.html#nm-secret-agent-save-secrets"> @@ -599,7 +766,9 @@ <ANCHOR id="nm-vpn-plugin-failure" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-failure"> <ANCHOR id="nm-vpn-plugin-get-connection" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-connection"> <ANCHOR id="nm-vpn-plugin-get-state" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-state"> +<ANCHOR id="nm-vpn-plugin-set-config" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-config"> <ANCHOR id="nm-vpn-plugin-set-ip4-config" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip4-config"> +<ANCHOR id="nm-vpn-plugin-set-ip6-config" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip6-config"> <ANCHOR id="nm-vpn-plugin-set-login-banner" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-login-banner"> <ANCHOR id="nm-vpn-plugin-set-state" href="libnm-glib/libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-state"> <ANCHOR id="libnm-glib-NMVpnPluginUiWidget" href="libnm-glib/libnm-glib-NMVpnPluginUiWidget.html"> diff --git a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html index a8f13163..a05a01a4 100644 --- a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html +++ b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html @@ -49,8 +49,12 @@ enum <a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugi <em class="parameter"><code><span class="type">NMVPNPluginFailure</span> reason</code></em>); <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="returnvalue">DBusGConnection</span></a> * <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-connection" title="nm_vpn_plugin_get_connection ()">nm_vpn_plugin_get_connection</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>); <span class="returnvalue">NMVPNServiceState</span> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-state" title="nm_vpn_plugin_get_state ()">nm_vpn_plugin_get_state</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>); +<span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-config" title="nm_vpn_plugin_set_config ()">nm_vpn_plugin_set_config</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</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> *config</code></em>); <span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip4-config" title="nm_vpn_plugin_set_ip4_config ()">nm_vpn_plugin_set_ip4_config</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</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> *ip4_config</code></em>); +<span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip6-config" title="nm_vpn_plugin_set_ip6_config ()">nm_vpn_plugin_set_ip6_config</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</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> *ip6_config</code></em>); <span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-login-banner" title="nm_vpn_plugin_set_login_banner ()">nm_vpn_plugin_set_login_banner</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>, <em class="parameter"><code>const <span class="type">char</span> *banner</code></em>); <span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-state" title="nm_vpn_plugin_set_state ()">nm_vpn_plugin_set_state</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>, @@ -80,40 +84,44 @@ enum <a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugi GObjectClass parent; /* virtual methods */ - gboolean (*connect) (NMVPNPlugin *plugin, - NMConnection *connection, - GError **err); + gboolean (*connect) (NMVPNPlugin *plugin, + NMConnection *connection, + GError **err); gboolean (*need_secrets) (NMVPNPlugin *plugin, - NMConnection *connection, - char **setting_name, - GError **error); + NMConnection *connection, + char **setting_name, + GError **error); - gboolean (*disconnect) (NMVPNPlugin *plugin, - GError **err); + gboolean (*disconnect) (NMVPNPlugin *plugin, + GError **err); /* Signals */ void (*state_changed) (NMVPNPlugin *plugin, - NMVPNServiceState state); + NMVPNServiceState state); void (*ip4_config) (NMVPNPlugin *plugin, - GHashTable *ip4_config); + GHashTable *ip4_config); void (*login_banner) (NMVPNPlugin *plugin, - const char *banner); + const char *banner); void (*failure) (NMVPNPlugin *plugin, - NMVPNPluginFailure reason); + NMVPNPluginFailure reason); void (*quit) (NMVPNPlugin *plugin); + void (*config) (NMVPNPlugin *plugin, + GHashTable *config); + + void (*ip6_config) (NMVPNPlugin *plugin, + GHashTable *config); + /* Padding for future expansion */ void (*_reserved1) (void); void (*_reserved2) (void); void (*_reserved3) (void); void (*_reserved4) (void); - void (*_reserved5) (void); - void (*_reserved6) (void); } NMVPNPluginClass; </pre> <p> @@ -192,6 +200,14 @@ enum <a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugi </div> <hr> <div class="refsect2"> +<a name="nm-vpn-plugin-set-config"></a><h3>nm_vpn_plugin_set_config ()</h3> +<pre class="programlisting"><span class="returnvalue">void</span> nm_vpn_plugin_set_config (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</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> *config</code></em>);</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="nm-vpn-plugin-set-ip4-config"></a><h3>nm_vpn_plugin_set_ip4_config ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> nm_vpn_plugin_set_ip4_config (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</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> *ip4_config</code></em>);</pre> @@ -200,6 +216,14 @@ enum <a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugi </div> <hr> <div class="refsect2"> +<a name="nm-vpn-plugin-set-ip6-config"></a><h3>nm_vpn_plugin_set_ip6_config ()</h3> +<pre class="programlisting"><span class="returnvalue">void</span> nm_vpn_plugin_set_ip6_config (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</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> *ip6_config</code></em>);</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="nm-vpn-plugin-set-login-banner"></a><h3>nm_vpn_plugin_set_login_banner ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> nm_vpn_plugin_set_login_banner (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNPlugin.html#NMVPNPlugin" title="NMVPNPlugin"><span class="type">NMVPNPlugin</span></a> *plugin</code></em>, <em class="parameter"><code>const <span class="type">char</span> *banner</code></em>);</pre> diff --git a/docs/libnm-glib/html/libnm-glib.devhelp2 b/docs/libnm-glib/html/libnm-glib.devhelp2 index edbb4a26..08ca3a93 100644 --- a/docs/libnm-glib/html/libnm-glib.devhelp2 +++ b/docs/libnm-glib/html/libnm-glib.devhelp2 @@ -12,6 +12,10 @@ <sub name="NMDeviceModem" link="NMDeviceModem.html"/> <sub name="NMDeviceBt" link="NMDeviceBt.html"/> <sub name="NMDeviceWimax" link="NMDeviceWimax.html"/> + <sub name="NMDeviceBond" link="NMDeviceBond.html"/> + <sub name="NMDeviceInfiniband" link="NMDeviceInfiniband.html"/> + <sub name="NMDeviceVlan" link="NMDeviceVlan.html"/> + <sub name="NMDeviceOlpcMesh" link="NMDeviceOlpcMesh.html"/> <sub name="NMWimaxNsp" link="NMWimaxNsp.html"/> <sub name="NMAccessPoint" link="NMAccessPoint.html"/> <sub name="NMIP4Config" link="NMIP4Config.html"/> @@ -121,12 +125,15 @@ <keyword type="struct" name="NMDeviceClass" link="NMDevice.html#NMDeviceClass"/> <keyword type="function" name="NMDeviceDeactivateFn ()" link="NMDevice.html#NMDeviceDeactivateFn"/> <keyword type="macro" name="NM_DEVICE_ACTIVE_CONNECTION" link="NMDevice.html#NM-DEVICE-ACTIVE-CONNECTION:CAPS"/> + <keyword type="macro" name="NM_DEVICE_AUTOCONNECT" link="NMDevice.html#NM-DEVICE-AUTOCONNECT:CAPS"/> <keyword type="macro" name="NM_DEVICE_CAPABILITIES" link="NMDevice.html#NM-DEVICE-CAPABILITIES:CAPS"/> <keyword type="macro" name="NM_DEVICE_DEVICE_TYPE" link="NMDevice.html#NM-DEVICE-DEVICE-TYPE:CAPS"/> <keyword type="macro" name="NM_DEVICE_DHCP4_CONFIG" link="NMDevice.html#NM-DEVICE-DHCP4-CONFIG:CAPS"/> <keyword type="macro" name="NM_DEVICE_DHCP6_CONFIG" link="NMDevice.html#NM-DEVICE-DHCP6-CONFIG:CAPS"/> <keyword type="macro" name="NM_DEVICE_DRIVER" link="NMDevice.html#NM-DEVICE-DRIVER:CAPS"/> + <keyword type="macro" name="NM_DEVICE_DRIVER_VERSION" link="NMDevice.html#NM-DEVICE-DRIVER-VERSION:CAPS"/> <keyword type="macro" name="NM_DEVICE_FIRMWARE_MISSING" link="NMDevice.html#NM-DEVICE-FIRMWARE-MISSING:CAPS"/> + <keyword type="macro" name="NM_DEVICE_FIRMWARE_VERSION" link="NMDevice.html#NM-DEVICE-FIRMWARE-VERSION:CAPS"/> <keyword type="macro" name="NM_DEVICE_INTERFACE" link="NMDevice.html#NM-DEVICE-INTERFACE:CAPS"/> <keyword type="macro" name="NM_DEVICE_IP4_CONFIG" link="NMDevice.html#NM-DEVICE-IP4-CONFIG:CAPS"/> <keyword type="macro" name="NM_DEVICE_IP6_CONFIG" link="NMDevice.html#NM-DEVICE-IP6-CONFIG:CAPS"/> @@ -137,16 +144,20 @@ <keyword type="macro" name="NM_DEVICE_STATE_REASON" link="NMDevice.html#NM-DEVICE-STATE-REASON:CAPS"/> <keyword type="macro" name="NM_DEVICE_UDI" link="NMDevice.html#NM-DEVICE-UDI:CAPS"/> <keyword type="macro" name="NM_DEVICE_VENDOR" link="NMDevice.html#NM-DEVICE-VENDOR:CAPS"/> + <keyword type="function" name="nm_device_connection_compatible ()" link="NMDevice.html#nm-device-connection-compatible"/> <keyword type="function" name="nm_device_connection_valid ()" link="NMDevice.html#nm-device-connection-valid"/> <keyword type="function" name="nm_device_disconnect ()" link="NMDevice.html#nm-device-disconnect"/> <keyword type="function" name="nm_device_filter_connections ()" link="NMDevice.html#nm-device-filter-connections"/> <keyword type="function" name="nm_device_get_active_connection ()" link="NMDevice.html#nm-device-get-active-connection"/> + <keyword type="function" name="nm_device_get_autoconnect ()" link="NMDevice.html#nm-device-get-autoconnect"/> <keyword type="function" name="nm_device_get_capabilities ()" link="NMDevice.html#nm-device-get-capabilities"/> <keyword type="function" name="nm_device_get_device_type ()" link="NMDevice.html#nm-device-get-device-type"/> <keyword type="function" name="nm_device_get_dhcp4_config ()" link="NMDevice.html#nm-device-get-dhcp4-config"/> <keyword type="function" name="nm_device_get_dhcp6_config ()" link="NMDevice.html#nm-device-get-dhcp6-config"/> <keyword type="function" name="nm_device_get_driver ()" link="NMDevice.html#nm-device-get-driver"/> + <keyword type="function" name="nm_device_get_driver_version ()" link="NMDevice.html#nm-device-get-driver-version"/> <keyword type="function" name="nm_device_get_firmware_missing ()" link="NMDevice.html#nm-device-get-firmware-missing"/> + <keyword type="function" name="nm_device_get_firmware_version ()" link="NMDevice.html#nm-device-get-firmware-version"/> <keyword type="function" name="nm_device_get_iface ()" link="NMDevice.html#nm-device-get-iface"/> <keyword type="function" name="nm_device_get_ip4_config ()" link="NMDevice.html#nm-device-get-ip4-config"/> <keyword type="function" name="nm_device_get_ip6_config ()" link="NMDevice.html#nm-device-get-ip6-config"/> @@ -158,13 +169,17 @@ <keyword type="function" name="nm_device_get_udi ()" link="NMDevice.html#nm-device-get-udi"/> <keyword type="function" name="nm_device_get_vendor ()" link="NMDevice.html#nm-device-get-vendor"/> <keyword type="function" name="nm_device_new ()" link="NMDevice.html#nm-device-new"/> + <keyword type="function" name="nm_device_set_autoconnect ()" link="NMDevice.html#nm-device-set-autoconnect"/> <keyword type="property" name="The "active-connection" property" link="NMDevice.html#NMDevice--active-connection"/> + <keyword type="property" name="The "autoconnect" property" link="NMDevice.html#NMDevice--autoconnect"/> <keyword type="property" name="The "capabilities" property" link="NMDevice.html#NMDevice--capabilities"/> <keyword type="property" name="The "device-type" property" link="NMDevice.html#NMDevice--device-type"/> <keyword type="property" name="The "dhcp4-config" property" link="NMDevice.html#NMDevice--dhcp4-config"/> <keyword type="property" name="The "dhcp6-config" property" link="NMDevice.html#NMDevice--dhcp6-config"/> <keyword type="property" name="The "driver" property" link="NMDevice.html#NMDevice--driver"/> + <keyword type="property" name="The "driver-version" property" link="NMDevice.html#NMDevice--driver-version"/> <keyword type="property" name="The "firmware-missing" property" link="NMDevice.html#NMDevice--firmware-missing"/> + <keyword type="property" name="The "firmware-version" property" link="NMDevice.html#NMDevice--firmware-version"/> <keyword type="property" name="The "interface" property" link="NMDevice.html#NMDevice--interface"/> <keyword type="property" name="The "ip-interface" property" link="NMDevice.html#NMDevice--ip-interface"/> <keyword type="property" name="The "ip4-config" property" link="NMDevice.html#NMDevice--ip4-config"/> @@ -178,10 +193,13 @@ <keyword type="signal" name="The "state-changed" signal" link="NMDevice.html#NMDevice-state-changed"/> <keyword type="struct" name="NMDeviceEthernet" link="NMDeviceEthernet.html#NMDeviceEthernet-struct"/> <keyword type="struct" name="NMDeviceEthernetClass" link="NMDeviceEthernet.html#NMDeviceEthernetClass"/> + <keyword type="enum" name="enum NMDeviceEthernetError" link="NMDeviceEthernet.html#NMDeviceEthernetError"/> <keyword type="macro" name="NM_DEVICE_ETHERNET_CARRIER" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-CARRIER:CAPS"/> + <keyword type="macro" name="NM_DEVICE_ETHERNET_ERROR" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR:CAPS"/> <keyword type="macro" name="NM_DEVICE_ETHERNET_HW_ADDRESS" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-HW-ADDRESS:CAPS"/> <keyword type="macro" name="NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-PERMANENT-HW-ADDRESS:CAPS"/> <keyword type="macro" name="NM_DEVICE_ETHERNET_SPEED" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-SPEED:CAPS"/> + <keyword type="function" name="nm_device_ethernet_error_quark ()" link="NMDeviceEthernet.html#nm-device-ethernet-error-quark"/> <keyword type="function" name="nm_device_ethernet_get_carrier ()" link="NMDeviceEthernet.html#nm-device-ethernet-get-carrier"/> <keyword type="function" name="nm_device_ethernet_get_hw_address ()" link="NMDeviceEthernet.html#nm-device-ethernet-get-hw-address"/> <keyword type="function" name="nm_device_ethernet_get_permanent_hw_address ()" link="NMDeviceEthernet.html#nm-device-ethernet-get-permanent-hw-address"/> @@ -193,12 +211,15 @@ <keyword type="property" name="The "speed" property" link="NMDeviceEthernet.html#NMDeviceEthernet--speed"/> <keyword type="struct" name="NMDeviceWifi" link="NMDeviceWifi.html#NMDeviceWifi-struct"/> <keyword type="struct" name="NMDeviceWifiClass" link="NMDeviceWifi.html#NMDeviceWifiClass"/> + <keyword type="enum" name="enum NMDeviceWifiError" link="NMDeviceWifi.html#NMDeviceWifiError"/> <keyword type="macro" name="NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ACTIVE-ACCESS-POINT:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIFI_BITRATE" link="NMDeviceWifi.html#NM-DEVICE-WIFI-BITRATE:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIFI_CAPABILITIES" link="NMDeviceWifi.html#NM-DEVICE-WIFI-CAPABILITIES:CAPS"/> + <keyword type="macro" name="NM_DEVICE_WIFI_ERROR" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIFI_HW_ADDRESS" link="NMDeviceWifi.html#NM-DEVICE-WIFI-HW-ADDRESS:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIFI_MODE" link="NMDeviceWifi.html#NM-DEVICE-WIFI-MODE:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS" link="NMDeviceWifi.html#NM-DEVICE-WIFI-PERMANENT-HW-ADDRESS:CAPS"/> + <keyword type="function" name="nm_device_wifi_error_quark ()" link="NMDeviceWifi.html#nm-device-wifi-error-quark"/> <keyword type="function" name="nm_device_wifi_get_access_point_by_path ()" link="NMDeviceWifi.html#nm-device-wifi-get-access-point-by-path"/> <keyword type="function" name="nm_device_wifi_get_access_points ()" link="NMDeviceWifi.html#nm-device-wifi-get-access-points"/> <keyword type="function" name="nm_device_wifi_get_active_access_point ()" link="NMDeviceWifi.html#nm-device-wifi-get-active-access-point"/> @@ -218,17 +239,23 @@ <keyword type="signal" name="The "access-point-removed" signal" link="NMDeviceWifi.html#NMDeviceWifi-access-point-removed"/> <keyword type="struct" name="NMDeviceModem" link="NMDeviceModem.html#NMDeviceModem-struct"/> <keyword type="struct" name="NMDeviceModemClass" link="NMDeviceModem.html#NMDeviceModemClass"/> + <keyword type="enum" name="enum NMDeviceModemError" link="NMDeviceModem.html#NMDeviceModemError"/> <keyword type="macro" name="NM_DEVICE_MODEM_CURRENT_CAPABILITIES" link="NMDeviceModem.html#NM-DEVICE-MODEM-CURRENT-CAPABILITIES:CAPS"/> + <keyword type="macro" name="NM_DEVICE_MODEM_ERROR" link="NMDeviceModem.html#NM-DEVICE-MODEM-ERROR:CAPS"/> <keyword type="macro" name="NM_DEVICE_MODEM_MODEM_CAPABILITIES" link="NMDeviceModem.html#NM-DEVICE-MODEM-MODEM-CAPABILITIES:CAPS"/> + <keyword type="function" name="nm_device_modem_error_quark ()" link="NMDeviceModem.html#nm-device-modem-error-quark"/> <keyword type="function" name="nm_device_modem_get_current_capabilities ()" link="NMDeviceModem.html#nm-device-modem-get-current-capabilities"/> <keyword type="function" name="nm_device_modem_get_modem_capabilities ()" link="NMDeviceModem.html#nm-device-modem-get-modem-capabilities"/> <keyword type="property" name="The "current-capabilities" property" link="NMDeviceModem.html#NMDeviceModem--current-capabilities"/> <keyword type="property" name="The "modem-capabilities" property" link="NMDeviceModem.html#NMDeviceModem--modem-capabilities"/> <keyword type="struct" name="NMDeviceBt" link="NMDeviceBt.html#NMDeviceBt-struct"/> <keyword type="struct" name="NMDeviceBtClass" link="NMDeviceBt.html#NMDeviceBtClass"/> + <keyword type="enum" name="enum NMDeviceBtError" link="NMDeviceBt.html#NMDeviceBtError"/> <keyword type="macro" name="NM_DEVICE_BT_CAPABILITIES" link="NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS"/> + <keyword type="macro" name="NM_DEVICE_BT_ERROR" link="NMDeviceBt.html#NM-DEVICE-BT-ERROR:CAPS"/> <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="function" name="nm_device_bt_error_quark ()" link="NMDeviceBt.html#nm-device-bt-error-quark"/> <keyword type="function" name="nm_device_bt_get_capabilities ()" link="NMDeviceBt.html#nm-device-bt-get-capabilities"/> <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"/> @@ -238,13 +265,16 @@ <keyword type="property" name="The "name" property" link="NMDeviceBt.html#NMDeviceBt--name"/> <keyword type="struct" name="NMDeviceWimax" link="NMDeviceWimax.html#NMDeviceWimax-struct"/> <keyword type="struct" name="NMDeviceWimaxClass" link="NMDeviceWimax.html#NMDeviceWimaxClass"/> + <keyword type="enum" name="enum NMDeviceWimaxError" link="NMDeviceWimax.html#NMDeviceWimaxError"/> <keyword type="macro" name="NM_DEVICE_WIMAX_ACTIVE_NSP" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-ACTIVE-NSP:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIMAX_BSID" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-BSID:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIMAX_CENTER_FREQUENCY" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-CENTER-FREQUENCY:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIMAX_CINR" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-CINR:CAPS"/> + <keyword type="macro" name="NM_DEVICE_WIMAX_ERROR" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIMAX_HW_ADDRESS" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-HW-ADDRESS:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIMAX_RSSI" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-RSSI:CAPS"/> <keyword type="macro" name="NM_DEVICE_WIMAX_TX_POWER" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-TX-POWER:CAPS"/> + <keyword type="function" name="nm_device_wimax_error_quark ()" link="NMDeviceWimax.html#nm-device-wimax-error-quark"/> <keyword type="function" name="nm_device_wimax_get_active_nsp ()" link="NMDeviceWimax.html#nm-device-wimax-get-active-nsp"/> <keyword type="function" name="nm_device_wimax_get_bsid ()" link="NMDeviceWimax.html#nm-device-wimax-get-bsid"/> <keyword type="function" name="nm_device_wimax_get_center_frequency ()" link="NMDeviceWimax.html#nm-device-wimax-get-center-frequency"/> @@ -264,6 +294,60 @@ <keyword type="property" name="The "tx-power" property" link="NMDeviceWimax.html#NMDeviceWimax--tx-power"/> <keyword type="signal" name="The "nsp-added" signal" link="NMDeviceWimax.html#NMDeviceWimax-nsp-added"/> <keyword type="signal" name="The "nsp-removed" signal" link="NMDeviceWimax.html#NMDeviceWimax-nsp-removed"/> + <keyword type="struct" name="NMDeviceBond" link="NMDeviceBond.html#NMDeviceBond-struct"/> + <keyword type="struct" name="NMDeviceBondClass" link="NMDeviceBond.html#NMDeviceBondClass"/> + <keyword type="enum" name="enum NMDeviceBondError" link="NMDeviceBond.html#NMDeviceBondError"/> + <keyword type="macro" name="NM_DEVICE_BOND_CARRIER" link="NMDeviceBond.html#NM-DEVICE-BOND-CARRIER:CAPS"/> + <keyword type="macro" name="NM_DEVICE_BOND_ERROR" link="NMDeviceBond.html#NM-DEVICE-BOND-ERROR:CAPS"/> + <keyword type="macro" name="NM_DEVICE_BOND_HW_ADDRESS" link="NMDeviceBond.html#NM-DEVICE-BOND-HW-ADDRESS:CAPS"/> + <keyword type="function" name="nm_device_bond_error_quark ()" link="NMDeviceBond.html#nm-device-bond-error-quark"/> + <keyword type="function" name="nm_device_bond_get_carrier ()" link="NMDeviceBond.html#nm-device-bond-get-carrier"/> + <keyword type="function" name="nm_device_bond_get_hw_address ()" link="NMDeviceBond.html#nm-device-bond-get-hw-address"/> + <keyword type="function" name="nm_device_bond_new ()" link="NMDeviceBond.html#nm-device-bond-new"/> + <keyword type="property" name="The "carrier" property" link="NMDeviceBond.html#NMDeviceBond--carrier"/> + <keyword type="property" name="The "hw-address" property" link="NMDeviceBond.html#NMDeviceBond--hw-address"/> + <keyword type="struct" name="NMDeviceInfiniband" link="NMDeviceInfiniband.html#NMDeviceInfiniband-struct"/> + <keyword type="struct" name="NMDeviceInfinibandClass" link="NMDeviceInfiniband.html#NMDeviceInfinibandClass"/> + <keyword type="enum" name="enum NMDeviceInfinibandError" link="NMDeviceInfiniband.html#NMDeviceInfinibandError"/> + <keyword type="macro" name="NM_DEVICE_INFINIBAND_CARRIER" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-CARRIER:CAPS"/> + <keyword type="macro" name="NM_DEVICE_INFINIBAND_ERROR" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR:CAPS"/> + <keyword type="macro" name="NM_DEVICE_INFINIBAND_HW_ADDRESS" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-HW-ADDRESS:CAPS"/> + <keyword type="function" name="nm_device_infiniband_error_quark ()" link="NMDeviceInfiniband.html#nm-device-infiniband-error-quark"/> + <keyword type="function" name="nm_device_infiniband_get_carrier ()" link="NMDeviceInfiniband.html#nm-device-infiniband-get-carrier"/> + <keyword type="function" name="nm_device_infiniband_get_hw_address ()" link="NMDeviceInfiniband.html#nm-device-infiniband-get-hw-address"/> + <keyword type="function" name="nm_device_infiniband_new ()" link="NMDeviceInfiniband.html#nm-device-infiniband-new"/> + <keyword type="property" name="The "carrier" property" link="NMDeviceInfiniband.html#NMDeviceInfiniband--carrier"/> + <keyword type="property" name="The "hw-address" property" link="NMDeviceInfiniband.html#NMDeviceInfiniband--hw-address"/> + <keyword type="struct" name="NMDeviceVlan" link="NMDeviceVlan.html#NMDeviceVlan-struct"/> + <keyword type="struct" name="NMDeviceVlanClass" link="NMDeviceVlan.html#NMDeviceVlanClass"/> + <keyword type="enum" name="enum NMDeviceVlanError" link="NMDeviceVlan.html#NMDeviceVlanError"/> + <keyword type="macro" name="NM_DEVICE_VLAN_CARRIER" link="NMDeviceVlan.html#NM-DEVICE-VLAN-CARRIER:CAPS"/> + <keyword type="macro" name="NM_DEVICE_VLAN_ERROR" link="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR:CAPS"/> + <keyword type="macro" name="NM_DEVICE_VLAN_HW_ADDRESS" link="NMDeviceVlan.html#NM-DEVICE-VLAN-HW-ADDRESS:CAPS"/> + <keyword type="macro" name="NM_DEVICE_VLAN_VLAN_ID" link="NMDeviceVlan.html#NM-DEVICE-VLAN-VLAN-ID:CAPS"/> + <keyword type="function" name="nm_device_vlan_error_quark ()" link="NMDeviceVlan.html#nm-device-vlan-error-quark"/> + <keyword type="function" name="nm_device_vlan_get_carrier ()" link="NMDeviceVlan.html#nm-device-vlan-get-carrier"/> + <keyword type="function" name="nm_device_vlan_get_hw_address ()" link="NMDeviceVlan.html#nm-device-vlan-get-hw-address"/> + <keyword type="function" name="nm_device_vlan_get_vlan_id ()" link="NMDeviceVlan.html#nm-device-vlan-get-vlan-id"/> + <keyword type="function" name="nm_device_vlan_new ()" link="NMDeviceVlan.html#nm-device-vlan-new"/> + <keyword type="property" name="The "carrier" property" link="NMDeviceVlan.html#NMDeviceVlan--carrier"/> + <keyword type="property" name="The "hw-address" property" link="NMDeviceVlan.html#NMDeviceVlan--hw-address"/> + <keyword type="property" name="The "vlan-id" property" link="NMDeviceVlan.html#NMDeviceVlan--vlan-id"/> + <keyword type="struct" name="NMDeviceOlpcMesh" link="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh-struct"/> + <keyword type="struct" name="NMDeviceOlpcMeshClass" link="NMDeviceOlpcMesh.html#NMDeviceOlpcMeshClass"/> + <keyword type="enum" name="enum NMDeviceOlpcMeshError" link="NMDeviceOlpcMesh.html#NMDeviceOlpcMeshError"/> + <keyword type="macro" name="NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL" link="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ACTIVE-CHANNEL:CAPS"/> + <keyword type="macro" name="NM_DEVICE_OLPC_MESH_COMPANION" link="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-COMPANION:CAPS"/> + <keyword type="macro" name="NM_DEVICE_OLPC_MESH_ERROR" link="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR:CAPS"/> + <keyword type="macro" name="NM_DEVICE_OLPC_MESH_HW_ADDRESS" link="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-HW-ADDRESS:CAPS"/> + <keyword type="function" name="nm_device_olpc_mesh_error_quark ()" link="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-error-quark"/> + <keyword type="function" name="nm_device_olpc_mesh_get_active_channel ()" link="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-active-channel"/> + <keyword type="function" name="nm_device_olpc_mesh_get_companion ()" link="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-companion"/> + <keyword type="function" name="nm_device_olpc_mesh_get_hw_address ()" link="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-get-hw-address"/> + <keyword type="function" name="nm_device_olpc_mesh_new ()" link="NMDeviceOlpcMesh.html#nm-device-olpc-mesh-new"/> + <keyword type="property" name="The "active-channel" property" link="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--active-channel"/> + <keyword type="property" name="The "companion" property" link="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--companion"/> + <keyword type="property" name="The "hw-address" property" link="NMDeviceOlpcMesh.html#NMDeviceOlpcMesh--hw-address"/> <keyword type="struct" name="NMWimaxNsp" link="NMWimaxNsp.html#NMWimaxNsp-struct"/> <keyword type="struct" name="NMWimaxNspClass" link="NMWimaxNsp.html#NMWimaxNspClass"/> <keyword type="enum" name="enum NMWimaxNspNetworkType" link="NMWimaxNsp.html#NMWimaxNspNetworkType"/> @@ -363,12 +447,16 @@ <keyword type="property" name="The "options" property" link="NMDHCP6Config.html#NMDHCP6Config--options"/> <keyword type="struct" name="NMObject" link="NMObject.html#NMObject-struct"/> <keyword type="struct" name="NMObjectClass" link="NMObject.html#NMObjectClass"/> + <keyword type="enum" name="enum NMObjectError" link="NMObject.html#NMObjectError"/> <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="macro" name="NM_OBJECT_ERROR" link="NMObject.html#NM-OBJECT-ERROR:CAPS"/> + <keyword type="function" name="nm_object_error_quark ()" link="NMObject.html#nm-object-error-quark"/> <keyword type="function" name="nm_object_get_connection ()" link="NMObject.html#nm-object-get-connection"/> <keyword type="function" name="nm_object_get_path ()" link="NMObject.html#nm-object-get-path"/> <keyword type="property" name="The "dbus-connection" property" link="NMObject.html#NMObject--dbus-connection"/> <keyword type="property" name="The "dbus-path" property" link="NMObject.html#NMObject--dbus-path"/> + <keyword type="signal" name="The "object-creation-failed" signal" link="NMObject.html#NMObject-object-creation-failed"/> <keyword type="struct" name="NMRemoteConnection" link="NMRemoteConnection.html#NMRemoteConnection-struct"/> <keyword type="struct" name="NMRemoteConnectionClass" link="NMRemoteConnection.html#NMRemoteConnectionClass"/> <keyword type="function" name="NMRemoteConnectionCommitFunc ()" link="NMRemoteConnection.html#NMRemoteConnectionCommitFunc"/> @@ -421,9 +509,11 @@ <keyword type="macro" name="NM_SECRET_AGENT_AUTO_REGISTER" link="NMSecretAgent.html#NM-SECRET-AGENT-AUTO-REGISTER:CAPS"/> <keyword type="macro" name="NM_SECRET_AGENT_ERROR" link="NMSecretAgent.html#NM-SECRET-AGENT-ERROR:CAPS"/> <keyword type="macro" name="NM_SECRET_AGENT_IDENTIFIER" link="NMSecretAgent.html#NM-SECRET-AGENT-IDENTIFIER:CAPS"/> + <keyword type="macro" name="NM_SECRET_AGENT_REGISTERED" link="NMSecretAgent.html#NM-SECRET-AGENT-REGISTERED:CAPS"/> <keyword type="macro" name="NM_SECRET_AGENT_REGISTRATION_RESULT" link="NMSecretAgent.html#NM-SECRET-AGENT-REGISTRATION-RESULT:CAPS"/> <keyword type="function" name="nm_secret_agent_delete_secrets ()" link="NMSecretAgent.html#nm-secret-agent-delete-secrets"/> <keyword type="function" name="nm_secret_agent_error_quark ()" link="NMSecretAgent.html#nm-secret-agent-error-quark"/> + <keyword type="function" name="nm_secret_agent_get_registered ()" link="NMSecretAgent.html#nm-secret-agent-get-registered"/> <keyword type="function" name="nm_secret_agent_get_secrets ()" link="NMSecretAgent.html#nm-secret-agent-get-secrets"/> <keyword type="function" name="nm_secret_agent_register ()" link="NMSecretAgent.html#nm-secret-agent-register"/> <keyword type="function" name="nm_secret_agent_save_secrets ()" link="NMSecretAgent.html#nm-secret-agent-save-secrets"/> @@ -452,7 +542,9 @@ <keyword type="function" name="nm_vpn_plugin_failure ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-failure"/> <keyword type="function" name="nm_vpn_plugin_get_connection ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-connection"/> <keyword type="function" name="nm_vpn_plugin_get_state ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-state"/> + <keyword type="function" name="nm_vpn_plugin_set_config ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-config"/> <keyword type="function" name="nm_vpn_plugin_set_ip4_config ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip4-config"/> + <keyword type="function" name="nm_vpn_plugin_set_ip6_config ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-ip6-config"/> <keyword type="function" name="nm_vpn_plugin_set_login_banner ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-login-banner"/> <keyword type="function" name="nm_vpn_plugin_set_state ()" link="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-set-state"/> <keyword type="function" name="NMVpnPluginUiFactory ()" link="libnm-glib-NMVpnPluginUiWidget.html#NMVpnPluginUiFactory"/> @@ -477,11 +569,58 @@ <keyword type="function" name="nm_vpn_plugin_ui_widget_interface_update_connection ()" link="libnm-glib-NMVpnPluginUiWidget.html#nm-vpn-plugin-ui-widget-interface-update-connection"/> <keyword type="function" name="nm_vpn_plugin_utils_get_secret_flags ()" link="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-get-secret-flags"/> <keyword type="function" name="nm_vpn_plugin_utils_read_vpn_details ()" link="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-read-vpn-details"/> + <keyword type="constant" name="NM_DEVICE_ETHERNET_ERROR_UNKNOWN" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_ETHERNET_ERROR_NOT_ETHERNET_CONNECTION" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-NOT-ETHERNET-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_ETHERNET_ERROR_INVALID_ETHERNET_CONNECTION" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-INVALID-ETHERNET-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_ETHERNET_ERROR_INVALID_DEVICE_MAC" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-INVALID-DEVICE-MAC:CAPS"/> + <keyword type="constant" name="NM_DEVICE_ETHERNET_ERROR_MAC_MISMATCH" link="NMDeviceEthernet.html#NM-DEVICE-ETHERNET-ERROR-MAC-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIFI_ERROR_UNKNOWN" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIFI_ERROR_NOT_WIFI_CONNECTION" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-NOT-WIFI-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIFI_ERROR_INVALID_WIFI_CONNECTION" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-INVALID-WIFI-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIFI_ERROR_INVALID_DEVICE_MAC" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-INVALID-DEVICE-MAC:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIFI_ERROR_MAC_MISMATCH" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-MAC-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_WPA_CAPS" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-WPA-CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_RSN_CAPS" link="NMDeviceWifi.html#NM-DEVICE-WIFI-ERROR-MISSING-DEVICE-RSN-CAPS"/> + <keyword type="constant" name="NM_DEVICE_MODEM_ERROR_UNKNOWN" link="NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_MODEM_ERROR_NOT_MODEM_CONNECTION" link="NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-NOT-MODEM-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_MODEM_ERROR_INVALID_MODEM_CONNECTION" link="NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-INVALID-MODEM-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_MODEM_ERROR_MISSING_DEVICE_CAPS" link="NMDeviceModem.html#NM-DEVICE-MODEM-ERROR-MISSING-DEVICE-CAPS"/> + <keyword type="constant" name="NM_DEVICE_BT_ERROR_UNKNOWN" link="NMDeviceBt.html#NM-DEVICE-BT-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BT_ERROR_NOT_BT_CONNECTION" link="NMDeviceBt.html#NM-DEVICE-BT-ERROR-NOT-BT-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BT_ERROR_INVALID_BT_CONNECTION" link="NMDeviceBt.html#NM-DEVICE-BT-ERROR-INVALID-BT-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BT_ERROR_INVALID_DEVICE_MAC" link="NMDeviceBt.html#NM-DEVICE-BT-ERROR-INVALID-DEVICE-MAC:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BT_ERROR_MAC_MISMATCH" link="NMDeviceBt.html#NM-DEVICE-BT-ERROR-MAC-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BT_ERROR_MISSING_DEVICE_CAPS" link="NMDeviceBt.html#NM-DEVICE-BT-ERROR-MISSING-DEVICE-CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIMAX_ERROR_UNKNOWN" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIMAX_ERROR_NOT_WIMAX_CONNECTION" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-NOT-WIMAX-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIMAX_ERROR_INVALID_WIMAX_CONNECTION" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-INVALID-WIMAX-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIMAX_ERROR_INVALID_DEVICE_MAC" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-INVALID-DEVICE-MAC:CAPS"/> + <keyword type="constant" name="NM_DEVICE_WIMAX_ERROR_MAC_MISMATCH" link="NMDeviceWimax.html#NM-DEVICE-WIMAX-ERROR-MAC-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BOND_ERROR_UNKNOWN" link="NMDeviceBond.html#NM-DEVICE-BOND-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BOND_ERROR_NOT_BOND_CONNECTION" link="NMDeviceBond.html#NM-DEVICE-BOND-ERROR-NOT-BOND-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BOND_ERROR_INVALID_BOND_CONNECTION" link="NMDeviceBond.html#NM-DEVICE-BOND-ERROR-INVALID-BOND-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_BOND_ERROR_INTERFACE_MISMATCH" link="NMDeviceBond.html#NM-DEVICE-BOND-ERROR-INTERFACE-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_INFINIBAND_ERROR_UNKNOWN" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_INFINIBAND_ERROR_NOT_INFINIBAND_CONNECTION" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-NOT-INFINIBAND-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_INFINIBAND_ERROR_INVALID_INFINIBAND_CONNECTION" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-INVALID-INFINIBAND-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_INFINIBAND_ERROR_INVALID_DEVICE_MAC" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-INVALID-DEVICE-MAC:CAPS"/> + <keyword type="constant" name="NM_DEVICE_INFINIBAND_ERROR_MAC_MISMATCH" link="NMDeviceInfiniband.html#NM-DEVICE-INFINIBAND-ERROR-MAC-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_VLAN_ERROR_UNKNOWN" link="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_VLAN_ERROR_NOT_VLAN_CONNECTION" link="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-NOT-VLAN-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_VLAN_ERROR_INVALID_VLAN_CONNECTION" link="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-INVALID-VLAN-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_VLAN_ERROR_ID_MISMATCH" link="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-ID-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_VLAN_ERROR_INTERFACE_MISMATCH" link="NMDeviceVlan.html#NM-DEVICE-VLAN-ERROR-INTERFACE-MISMATCH:CAPS"/> + <keyword type="constant" name="NM_DEVICE_OLPC_MESH_ERROR_UNKNOWN" link="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_DEVICE_OLPC_MESH_ERROR_NOT_OLPC_MESH_CONNECTION" link="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR-NOT-OLPC-MESH-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_DEVICE_OLPC_MESH_ERROR_INVALID_OLPC_MESH_CONNECTION" link="NMDeviceOlpcMesh.html#NM-DEVICE-OLPC-MESH-ERROR-INVALID-OLPC-MESH-CONNECTION:CAPS"/> + <keyword type="constant" name="NM_OBJECT_ERROR_UNKNOWN" link="NMObject.html#NM-OBJECT-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE" link="NMObject.html#NM-OBJECT-ERROR-OBJECT-CREATION-FAILURE:CAPS"/> <keyword type="constant" name="NM_REMOTE_SETTINGS_ERROR_UNKNOWN" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-ERROR-UNKNOWN:CAPS"/> <keyword type="constant" name="NM_REMOTE_SETTINGS_ERROR_CONNECTION_REMOVED" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-ERROR-CONNECTION-REMOVED:CAPS"/> <keyword type="constant" name="NM_REMOTE_SETTINGS_ERROR_CONNECTION_UNAVAILABLE" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-ERROR-CONNECTION-UNAVAILABLE:CAPS"/> <keyword type="constant" name="NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE" link="NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-NONE:CAPS"/> <keyword type="constant" name="NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION" link="NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-ALLOW-INTERACTION:CAPS"/> <keyword type="constant" name="NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW" link="NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-REQUEST-NEW:CAPS"/> + <keyword type="constant" name="NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED" link="NMSecretAgent.html#NM-SECRET-AGENT-GET-SECRETS-FLAG-USER-REQUESTED:CAPS"/> </functions> </book> diff --git a/docs/libnm-glib/html/object-tree.html b/docs/libnm-glib/html/object-tree.html index bbc78129..40bce23a 100644 --- a/docs/libnm-glib/html/object-tree.html +++ b/docs/libnm-glib/html/object-tree.html @@ -32,10 +32,10 @@ <a class="link" href="NMDeviceModem.html" title="NMDeviceModem">NMDeviceModem</a> <a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a> <a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax">NMDeviceWimax</a> - NMDeviceOlpcMesh - NMDeviceInfiniband - NMDeviceBond - NMDeviceVlan + <a class="link" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">NMDeviceOlpcMesh</a> + <a class="link" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">NMDeviceInfiniband</a> + <a class="link" href="NMDeviceBond.html" title="NMDeviceBond">NMDeviceBond</a> + <a class="link" href="NMDeviceVlan.html" title="NMDeviceVlan">NMDeviceVlan</a> <a class="link" href="NMWimaxNsp.html" title="NMWimaxNsp">NMWimaxNsp</a> <a class="link" href="NMAccessPoint.html" title="NMAccessPoint">NMAccessPoint</a> <a class="link" href="NMIP4Config.html" title="NMIP4Config">NMIP4Config</a> diff --git a/docs/libnm-glib/libnm-glib-docs.xml b/docs/libnm-glib/libnm-glib-docs.xml index 92dad87c..7f855aa0 100644 --- a/docs/libnm-glib/libnm-glib-docs.xml +++ b/docs/libnm-glib/libnm-glib-docs.xml @@ -88,6 +88,10 @@ <xi:include href="xml/nm-device-modem.xml"/> <xi:include href="xml/nm-device-bt.xml"/> <xi:include href="xml/nm-device-wimax.xml"/> + <xi:include href="xml/nm-device-bond.xml"/> + <xi:include href="xml/nm-device-infiniband.xml"/> + <xi:include href="xml/nm-device-vlan.xml"/> + <xi:include href="xml/nm-device-olpc-mesh.xml"/> <xi:include href="xml/nm-wimax-nsp.xml"/> <xi:include href="xml/nm-access-point.xml"/> <xi:include href="xml/nm-ip4-config.xml"/> diff --git a/docs/libnm-glib/libnm-glib-sections.txt b/docs/libnm-glib/libnm-glib-sections.txt index 25ba7b85..1ba78796 100644 --- a/docs/libnm-glib/libnm-glib-sections.txt +++ b/docs/libnm-glib/libnm-glib-sections.txt @@ -136,12 +136,15 @@ NMDevice NMDeviceClass NMDeviceDeactivateFn NM_DEVICE_ACTIVE_CONNECTION +NM_DEVICE_AUTOCONNECT NM_DEVICE_CAPABILITIES NM_DEVICE_DEVICE_TYPE NM_DEVICE_DHCP4_CONFIG NM_DEVICE_DHCP6_CONFIG NM_DEVICE_DRIVER +NM_DEVICE_DRIVER_VERSION NM_DEVICE_FIRMWARE_MISSING +NM_DEVICE_FIRMWARE_VERSION NM_DEVICE_INTERFACE NM_DEVICE_IP4_CONFIG NM_DEVICE_IP6_CONFIG @@ -152,16 +155,20 @@ NM_DEVICE_STATE NM_DEVICE_STATE_REASON NM_DEVICE_UDI NM_DEVICE_VENDOR +nm_device_connection_compatible nm_device_connection_valid nm_device_disconnect nm_device_filter_connections nm_device_get_active_connection +nm_device_get_autoconnect nm_device_get_capabilities nm_device_get_device_type nm_device_get_dhcp4_config nm_device_get_dhcp6_config nm_device_get_driver +nm_device_get_driver_version nm_device_get_firmware_missing +nm_device_get_firmware_version nm_device_get_iface nm_device_get_ip4_config nm_device_get_ip6_config @@ -173,6 +180,7 @@ nm_device_get_state_reason nm_device_get_udi nm_device_get_vendor nm_device_new +nm_device_set_autoconnect <SUBSECTION Standard> NM_DEVICE NM_DEVICE_CLASS @@ -184,12 +192,36 @@ nm_device_get_type </SECTION> <SECTION> +<FILE>nm-device-adsl</FILE> +<TITLE>NMDeviceAdsl</TITLE> +NMDeviceAdsl +NMDeviceAdslClass +NMDeviceAdslError +NM_DEVICE_ADSL_CARRIER +NM_DEVICE_ADSL_ERROR +nm_device_adsl_error_quark +nm_device_adsl_get_carrier +nm_device_adsl_new +<SUBSECTION Standard> +NM_DEVICE_ADSL +NM_DEVICE_ADSL_CLASS +NM_DEVICE_ADSL_GET_CLASS +NM_IS_DEVICE_ADSL +NM_IS_DEVICE_ADSL_CLASS +NM_TYPE_DEVICE_ADSL +nm_device_adsl_get_type +</SECTION> + +<SECTION> <FILE>nm-device-bond</FILE> <TITLE>NMDeviceBond</TITLE> NMDeviceBond NMDeviceBondClass +NMDeviceBondError NM_DEVICE_BOND_CARRIER +NM_DEVICE_BOND_ERROR NM_DEVICE_BOND_HW_ADDRESS +nm_device_bond_error_quark nm_device_bond_get_carrier nm_device_bond_get_hw_address nm_device_bond_new @@ -208,9 +240,12 @@ nm_device_bond_get_type <TITLE>NMDeviceBt</TITLE> NMDeviceBt NMDeviceBtClass +NMDeviceBtError NM_DEVICE_BT_CAPABILITIES +NM_DEVICE_BT_ERROR NM_DEVICE_BT_HW_ADDRESS NM_DEVICE_BT_NAME +nm_device_bt_error_quark nm_device_bt_get_capabilities nm_device_bt_get_hw_address nm_device_bt_get_name @@ -230,10 +265,13 @@ nm_device_bt_get_type <TITLE>NMDeviceEthernet</TITLE> NMDeviceEthernet NMDeviceEthernetClass +NMDeviceEthernetError NM_DEVICE_ETHERNET_CARRIER +NM_DEVICE_ETHERNET_ERROR NM_DEVICE_ETHERNET_HW_ADDRESS NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS NM_DEVICE_ETHERNET_SPEED +nm_device_ethernet_error_quark nm_device_ethernet_get_carrier nm_device_ethernet_get_hw_address nm_device_ethernet_get_permanent_hw_address @@ -254,8 +292,11 @@ nm_device_ethernet_get_type <TITLE>NMDeviceInfiniband</TITLE> NMDeviceInfiniband NMDeviceInfinibandClass +NMDeviceInfinibandError NM_DEVICE_INFINIBAND_CARRIER +NM_DEVICE_INFINIBAND_ERROR NM_DEVICE_INFINIBAND_HW_ADDRESS +nm_device_infiniband_error_quark nm_device_infiniband_get_carrier nm_device_infiniband_get_hw_address nm_device_infiniband_new @@ -270,17 +311,15 @@ nm_device_infiniband_get_type </SECTION> <SECTION> -<FILE>nm-device-infiniband-bindings</FILE> -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Device_Infiniband -</SECTION> - -<SECTION> <FILE>nm-device-modem</FILE> <TITLE>NMDeviceModem</TITLE> NMDeviceModem NMDeviceModemClass +NMDeviceModemError NM_DEVICE_MODEM_CURRENT_CAPABILITIES +NM_DEVICE_MODEM_ERROR NM_DEVICE_MODEM_MODEM_CAPABILITIES +nm_device_modem_error_quark nm_device_modem_get_current_capabilities nm_device_modem_get_modem_capabilities <SUBSECTION Standard> @@ -298,9 +337,12 @@ nm_device_modem_get_type <TITLE>NMDeviceOlpcMesh</TITLE> NMDeviceOlpcMesh NMDeviceOlpcMeshClass +NMDeviceOlpcMeshError NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL NM_DEVICE_OLPC_MESH_COMPANION +NM_DEVICE_OLPC_MESH_ERROR NM_DEVICE_OLPC_MESH_HW_ADDRESS +nm_device_olpc_mesh_error_quark nm_device_olpc_mesh_get_active_channel nm_device_olpc_mesh_get_companion nm_device_olpc_mesh_get_hw_address @@ -320,9 +362,12 @@ nm_device_olpc_mesh_get_type <TITLE>NMDeviceVlan</TITLE> NMDeviceVlan NMDeviceVlanClass +NMDeviceVlanError NM_DEVICE_VLAN_CARRIER +NM_DEVICE_VLAN_ERROR NM_DEVICE_VLAN_HW_ADDRESS NM_DEVICE_VLAN_VLAN_ID +nm_device_vlan_error_quark nm_device_vlan_get_carrier nm_device_vlan_get_hw_address nm_device_vlan_get_vlan_id @@ -342,12 +387,15 @@ nm_device_vlan_get_type <TITLE>NMDeviceWifi</TITLE> NMDeviceWifi NMDeviceWifiClass +NMDeviceWifiError NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT NM_DEVICE_WIFI_BITRATE NM_DEVICE_WIFI_CAPABILITIES +NM_DEVICE_WIFI_ERROR NM_DEVICE_WIFI_HW_ADDRESS NM_DEVICE_WIFI_MODE NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS +nm_device_wifi_error_quark nm_device_wifi_get_access_point_by_path nm_device_wifi_get_access_points nm_device_wifi_get_active_access_point @@ -372,13 +420,16 @@ nm_device_wifi_get_type <TITLE>NMDeviceWimax</TITLE> NMDeviceWimax NMDeviceWimaxClass +NMDeviceWimaxError NM_DEVICE_WIMAX_ACTIVE_NSP NM_DEVICE_WIMAX_BSID NM_DEVICE_WIMAX_CENTER_FREQUENCY NM_DEVICE_WIMAX_CINR +NM_DEVICE_WIMAX_ERROR NM_DEVICE_WIMAX_HW_ADDRESS NM_DEVICE_WIMAX_RSSI NM_DEVICE_WIMAX_TX_POWER +nm_device_wimax_error_quark nm_device_wimax_get_active_nsp nm_device_wimax_get_bsid nm_device_wimax_get_center_frequency @@ -436,70 +487,38 @@ nm_dhcp6_config_get_type </SECTION> <SECTION> -<FILE>nm-exported-connection-bindings</FILE> -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManagerSettings_Connection -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManagerSettings_Connection_Secrets -dbus_g_proxy_begin_call -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_async -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_async_callback -org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_reply -org_freedesktop_NetworkManagerSettings_Connection_delete -org_freedesktop_NetworkManagerSettings_Connection_delete_async -org_freedesktop_NetworkManagerSettings_Connection_delete_async_callback -org_freedesktop_NetworkManagerSettings_Connection_delete_reply -org_freedesktop_NetworkManagerSettings_Connection_get_settings -org_freedesktop_NetworkManagerSettings_Connection_get_settings_async -org_freedesktop_NetworkManagerSettings_Connection_get_settings_async_callback -org_freedesktop_NetworkManagerSettings_Connection_get_settings_reply -org_freedesktop_NetworkManagerSettings_Connection_update -org_freedesktop_NetworkManagerSettings_Connection_update_async -org_freedesktop_NetworkManagerSettings_Connection_update_async_callback -org_freedesktop_NetworkManagerSettings_Connection_update_reply -</SECTION> - -<SECTION> -<FILE>nm-exported-connection-glue</FILE> -dbus_glib_marshal_nm_exported_connection_BOOLEAN__POINTER_POINTER -dbus_glib_marshal_nm_exported_connection_NONE__BOXED_POINTER -dbus_glib_marshal_nm_exported_connection_NONE__POINTER -dbus_glib_marshal_nm_exported_connection_NONE__STRING_BOXED_BOOLEAN_POINTER -dbus_glib_marshal_nm_exported_connection_VOID__BOXED_POINTER -dbus_glib_marshal_nm_exported_connection_VOID__POINTER -dbus_glib_marshal_nm_exported_connection_VOID__STRING_BOXED_BOOLEAN_POINTER -dbus_glib_nm_exported_connection_object_info -g_marshal_value_peek_boolean -g_marshal_value_peek_boxed -g_marshal_value_peek_char -g_marshal_value_peek_double -g_marshal_value_peek_enum -g_marshal_value_peek_flags -g_marshal_value_peek_float -g_marshal_value_peek_int -g_marshal_value_peek_int64 -g_marshal_value_peek_long -g_marshal_value_peek_object -g_marshal_value_peek_param -g_marshal_value_peek_pointer -g_marshal_value_peek_string -g_marshal_value_peek_uchar -g_marshal_value_peek_uint -g_marshal_value_peek_uint64 -g_marshal_value_peek_ulong -g_marshal_value_peek_variant -</SECTION> - -<SECTION> <FILE>nm-glib-enum-types</FILE> <SUBSECTION Standard> NM_TYPE_CLIENT_PERMISSION NM_TYPE_CLIENT_PERMISSION_RESULT +NM_TYPE_DEVICE_ADSL_ERROR +NM_TYPE_DEVICE_BOND_ERROR +NM_TYPE_DEVICE_BT_ERROR +NM_TYPE_DEVICE_ETHERNET_ERROR +NM_TYPE_DEVICE_INFINIBAND_ERROR +NM_TYPE_DEVICE_MODEM_ERROR +NM_TYPE_DEVICE_OLPC_MESH_ERROR +NM_TYPE_DEVICE_VLAN_ERROR +NM_TYPE_DEVICE_WIFI_ERROR +NM_TYPE_DEVICE_WIMAX_ERROR +NM_TYPE_OBJECT_ERROR NM_TYPE_REMOTE_SETTINGS_ERROR NM_TYPE_SECRET_AGENT_ERROR NM_TYPE_SECRET_AGENT_GET_SECRETS_FLAGS NM_TYPE_WIMAX_NSP_NETWORK_TYPE nm_client_permission_get_type nm_client_permission_result_get_type +nm_device_adsl_error_get_type +nm_device_bond_error_get_type +nm_device_bt_error_get_type +nm_device_ethernet_error_get_type +nm_device_infiniband_error_get_type +nm_device_modem_error_get_type +nm_device_olpc_mesh_error_get_type +nm_device_vlan_error_get_type +nm_device_wifi_error_get_type +nm_device_wimax_error_get_type +nm_object_error_get_type nm_remote_settings_error_get_type nm_secret_agent_error_get_type nm_secret_agent_get_secrets_flags_get_type @@ -566,8 +585,11 @@ nm_ip6_config_get_type <TITLE>NMObject</TITLE> NMObject NMObjectClass +NMObjectError NM_OBJECT_DBUS_CONNECTION NM_OBJECT_DBUS_PATH +NM_OBJECT_ERROR +nm_object_error_quark nm_object_get_connection nm_object_get_path <SUBSECTION Standard> @@ -651,9 +673,11 @@ NMSecretAgentSaveSecretsFunc NM_SECRET_AGENT_AUTO_REGISTER NM_SECRET_AGENT_ERROR NM_SECRET_AGENT_IDENTIFIER +NM_SECRET_AGENT_REGISTERED NM_SECRET_AGENT_REGISTRATION_RESULT nm_secret_agent_delete_secrets nm_secret_agent_error_quark +nm_secret_agent_get_registered nm_secret_agent_get_secrets nm_secret_agent_register nm_secret_agent_save_secrets @@ -669,50 +693,6 @@ nm_secret_agent_get_type </SECTION> <SECTION> -<FILE>nm-secret-agent-glue</FILE> -dbus_glib_marshal_nm_secret_agent_NONE__BOXED_BOXED_POINTER -dbus_glib_marshal_nm_secret_agent_NONE__BOXED_BOXED_STRING_BOXED_UINT_POINTER -dbus_glib_marshal_nm_secret_agent_NONE__BOXED_STRING_POINTER -dbus_glib_marshal_nm_secret_agent_VOID__BOXED_BOXED_POINTER -dbus_glib_marshal_nm_secret_agent_VOID__BOXED_BOXED_STRING_BOXED_UINT_POINTER -dbus_glib_marshal_nm_secret_agent_VOID__BOXED_STRING_POINTER -dbus_glib_nm_secret_agent_object_info -g_marshal_value_peek_boolean -g_marshal_value_peek_boxed -g_marshal_value_peek_char -g_marshal_value_peek_double -g_marshal_value_peek_enum -g_marshal_value_peek_flags -g_marshal_value_peek_float -g_marshal_value_peek_int -g_marshal_value_peek_int64 -g_marshal_value_peek_long -g_marshal_value_peek_object -g_marshal_value_peek_param -g_marshal_value_peek_pointer -g_marshal_value_peek_string -g_marshal_value_peek_uchar -g_marshal_value_peek_uint -g_marshal_value_peek_uint64 -g_marshal_value_peek_ulong -g_marshal_value_peek_variant -</SECTION> - -<SECTION> -<FILE>nm-settings-system-bindings</FILE> -DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManagerSettings_System -dbus_g_proxy_begin_call -org_freedesktop_NetworkManagerSettings_System_get_permissions -org_freedesktop_NetworkManagerSettings_System_get_permissions_async -org_freedesktop_NetworkManagerSettings_System_get_permissions_async_callback -org_freedesktop_NetworkManagerSettings_System_get_permissions_reply -org_freedesktop_NetworkManagerSettings_System_save_hostname -org_freedesktop_NetworkManagerSettings_System_save_hostname_async -org_freedesktop_NetworkManagerSettings_System_save_hostname_async_callback -org_freedesktop_NetworkManagerSettings_System_save_hostname_reply -</SECTION> - -<SECTION> <FILE>nm-types</FILE> <SUBSECTION Standard> NM_TYPE_IP6_ADDRESS_ARRAY @@ -773,7 +753,9 @@ nm_vpn_plugin_error_quark nm_vpn_plugin_failure nm_vpn_plugin_get_connection nm_vpn_plugin_get_state +nm_vpn_plugin_set_config nm_vpn_plugin_set_ip4_config +nm_vpn_plugin_set_ip6_config nm_vpn_plugin_set_login_banner nm_vpn_plugin_set_state <SUBSECTION Standard> diff --git a/docs/libnm-glib/tmpl/nm-device-adsl.sgml b/docs/libnm-glib/tmpl/nm-device-adsl.sgml new file mode 100644 index 00000000..dc26b35c --- /dev/null +++ b/docs/libnm-glib/tmpl/nm-device-adsl.sgml @@ -0,0 +1,93 @@ +<!-- ##### SECTION Title ##### --> +NMDeviceAdsl + +<!-- ##### SECTION Short_Description ##### --> + + +<!-- ##### SECTION Long_Description ##### --> +<para> + +</para> + +<!-- ##### SECTION See_Also ##### --> +<para> + +</para> + +<!-- ##### SECTION Stability_Level ##### --> + + +<!-- ##### SECTION Image ##### --> + + +<!-- ##### STRUCT NMDeviceAdsl ##### --> +<para> + +</para> + +@parent: + +<!-- ##### STRUCT NMDeviceAdslClass ##### --> +<para> + +</para> + +@parent: +@_reserved1: +@_reserved2: +@_reserved3: +@_reserved4: +@_reserved5: +@_reserved6: + +<!-- ##### ENUM NMDeviceAdslError ##### --> +<para> + +</para> + +@NM_DEVICE_ADSL_ERROR_UNKNOWN: +@NM_DEVICE_ADSL_ERROR_NOT_ADSL_CONNECTION: +@NM_DEVICE_ADSL_ERROR_INVALID_ADSL_CONNECTION: + +<!-- ##### MACRO NM_DEVICE_ADSL_CARRIER ##### --> +<para> + +</para> + + + +<!-- ##### MACRO NM_DEVICE_ADSL_ERROR ##### --> +<para> + +</para> + + + +<!-- ##### FUNCTION nm_device_adsl_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + +<!-- ##### FUNCTION nm_device_adsl_get_carrier ##### --> +<para> + +</para> + +@device: +@Returns: + + +<!-- ##### FUNCTION nm_device_adsl_new ##### --> +<para> + +</para> + +@connection: +@path: +@Returns: + + diff --git a/docs/libnm-glib/tmpl/nm-device-bond.sgml b/docs/libnm-glib/tmpl/nm-device-bond.sgml index d719184c..8f9e8db6 100644 --- a/docs/libnm-glib/tmpl/nm-device-bond.sgml +++ b/docs/libnm-glib/tmpl/nm-device-bond.sgml @@ -49,6 +49,16 @@ NMDeviceBond @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceBondError ##### --> +<para> + +</para> + +@NM_DEVICE_BOND_ERROR_UNKNOWN: +@NM_DEVICE_BOND_ERROR_NOT_BOND_CONNECTION: +@NM_DEVICE_BOND_ERROR_INVALID_BOND_CONNECTION: +@NM_DEVICE_BOND_ERROR_INTERFACE_MISMATCH: + <!-- ##### MACRO NM_DEVICE_BOND_CARRIER ##### --> <para> @@ -56,6 +66,13 @@ NMDeviceBond +<!-- ##### MACRO NM_DEVICE_BOND_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_BOND_HW_ADDRESS ##### --> <para> @@ -63,6 +80,15 @@ NMDeviceBond +<!-- ##### FUNCTION nm_device_bond_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_bond_get_carrier ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-bt.sgml b/docs/libnm-glib/tmpl/nm-device-bt.sgml index bcf2d3c6..26582065 100644 --- a/docs/libnm-glib/tmpl/nm-device-bt.sgml +++ b/docs/libnm-glib/tmpl/nm-device-bt.sgml @@ -54,6 +54,18 @@ NMDeviceBt @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceBtError ##### --> +<para> + +</para> + +@NM_DEVICE_BT_ERROR_UNKNOWN: +@NM_DEVICE_BT_ERROR_NOT_BT_CONNECTION: +@NM_DEVICE_BT_ERROR_INVALID_BT_CONNECTION: +@NM_DEVICE_BT_ERROR_INVALID_DEVICE_MAC: +@NM_DEVICE_BT_ERROR_MAC_MISMATCH: +@NM_DEVICE_BT_ERROR_MISSING_DEVICE_CAPS: + <!-- ##### MACRO NM_DEVICE_BT_CAPABILITIES ##### --> <para> @@ -61,6 +73,13 @@ NMDeviceBt +<!-- ##### MACRO NM_DEVICE_BT_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_BT_HW_ADDRESS ##### --> <para> @@ -75,6 +94,15 @@ NMDeviceBt +<!-- ##### FUNCTION nm_device_bt_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_bt_get_capabilities ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-ethernet.sgml b/docs/libnm-glib/tmpl/nm-device-ethernet.sgml index b3620ab0..ea04914e 100644 --- a/docs/libnm-glib/tmpl/nm-device-ethernet.sgml +++ b/docs/libnm-glib/tmpl/nm-device-ethernet.sgml @@ -59,6 +59,17 @@ NMDeviceEthernet @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceEthernetError ##### --> +<para> + +</para> + +@NM_DEVICE_ETHERNET_ERROR_UNKNOWN: +@NM_DEVICE_ETHERNET_ERROR_NOT_ETHERNET_CONNECTION: +@NM_DEVICE_ETHERNET_ERROR_INVALID_ETHERNET_CONNECTION: +@NM_DEVICE_ETHERNET_ERROR_INVALID_DEVICE_MAC: +@NM_DEVICE_ETHERNET_ERROR_MAC_MISMATCH: + <!-- ##### MACRO NM_DEVICE_ETHERNET_CARRIER ##### --> <para> @@ -66,6 +77,13 @@ NMDeviceEthernet +<!-- ##### MACRO NM_DEVICE_ETHERNET_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_ETHERNET_HW_ADDRESS ##### --> <para> @@ -87,6 +105,15 @@ NMDeviceEthernet +<!-- ##### FUNCTION nm_device_ethernet_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_ethernet_get_carrier ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-infiniband-bindings.sgml b/docs/libnm-glib/tmpl/nm-device-infiniband-bindings.sgml deleted file mode 100644 index 09405987..00000000 --- a/docs/libnm-glib/tmpl/nm-device-infiniband-bindings.sgml +++ /dev/null @@ -1,29 +0,0 @@ -<!-- ##### SECTION Title ##### --> -nm-device-infiniband-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_Infiniband ##### --> -<para> - -</para> - - - diff --git a/docs/libnm-glib/tmpl/nm-device-infiniband.sgml b/docs/libnm-glib/tmpl/nm-device-infiniband.sgml index bd2ef58e..e94c6bae 100644 --- a/docs/libnm-glib/tmpl/nm-device-infiniband.sgml +++ b/docs/libnm-glib/tmpl/nm-device-infiniband.sgml @@ -49,6 +49,17 @@ NMDeviceInfiniband @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceInfinibandError ##### --> +<para> + +</para> + +@NM_DEVICE_INFINIBAND_ERROR_UNKNOWN: +@NM_DEVICE_INFINIBAND_ERROR_NOT_INFINIBAND_CONNECTION: +@NM_DEVICE_INFINIBAND_ERROR_INVALID_INFINIBAND_CONNECTION: +@NM_DEVICE_INFINIBAND_ERROR_INVALID_DEVICE_MAC: +@NM_DEVICE_INFINIBAND_ERROR_MAC_MISMATCH: + <!-- ##### MACRO NM_DEVICE_INFINIBAND_CARRIER ##### --> <para> @@ -56,6 +67,13 @@ NMDeviceInfiniband +<!-- ##### MACRO NM_DEVICE_INFINIBAND_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_INFINIBAND_HW_ADDRESS ##### --> <para> @@ -63,6 +81,15 @@ NMDeviceInfiniband +<!-- ##### FUNCTION nm_device_infiniband_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_infiniband_get_carrier ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-modem.sgml b/docs/libnm-glib/tmpl/nm-device-modem.sgml index a67c4777..259db939 100644 --- a/docs/libnm-glib/tmpl/nm-device-modem.sgml +++ b/docs/libnm-glib/tmpl/nm-device-modem.sgml @@ -49,6 +49,16 @@ NMDeviceModem @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceModemError ##### --> +<para> + +</para> + +@NM_DEVICE_MODEM_ERROR_UNKNOWN: +@NM_DEVICE_MODEM_ERROR_NOT_MODEM_CONNECTION: +@NM_DEVICE_MODEM_ERROR_INVALID_MODEM_CONNECTION: +@NM_DEVICE_MODEM_ERROR_MISSING_DEVICE_CAPS: + <!-- ##### MACRO NM_DEVICE_MODEM_CURRENT_CAPABILITIES ##### --> <para> @@ -56,6 +66,13 @@ NMDeviceModem +<!-- ##### MACRO NM_DEVICE_MODEM_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_MODEM_MODEM_CAPABILITIES ##### --> <para> @@ -63,6 +80,15 @@ NMDeviceModem +<!-- ##### FUNCTION nm_device_modem_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_modem_get_current_capabilities ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-olpc-mesh.sgml b/docs/libnm-glib/tmpl/nm-device-olpc-mesh.sgml index 69e2cd52..a604a43a 100644 --- a/docs/libnm-glib/tmpl/nm-device-olpc-mesh.sgml +++ b/docs/libnm-glib/tmpl/nm-device-olpc-mesh.sgml @@ -54,6 +54,15 @@ NMDeviceOlpcMesh @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceOlpcMeshError ##### --> +<para> + +</para> + +@NM_DEVICE_OLPC_MESH_ERROR_UNKNOWN: +@NM_DEVICE_OLPC_MESH_ERROR_NOT_OLPC_MESH_CONNECTION: +@NM_DEVICE_OLPC_MESH_ERROR_INVALID_OLPC_MESH_CONNECTION: + <!-- ##### MACRO NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL ##### --> <para> @@ -68,6 +77,13 @@ NMDeviceOlpcMesh +<!-- ##### MACRO NM_DEVICE_OLPC_MESH_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_OLPC_MESH_HW_ADDRESS ##### --> <para> @@ -75,6 +91,15 @@ NMDeviceOlpcMesh +<!-- ##### FUNCTION nm_device_olpc_mesh_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_olpc_mesh_get_active_channel ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-vlan.sgml b/docs/libnm-glib/tmpl/nm-device-vlan.sgml index 5d38d111..5a58b7b2 100644 --- a/docs/libnm-glib/tmpl/nm-device-vlan.sgml +++ b/docs/libnm-glib/tmpl/nm-device-vlan.sgml @@ -54,6 +54,17 @@ NMDeviceVlan @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceVlanError ##### --> +<para> + +</para> + +@NM_DEVICE_VLAN_ERROR_UNKNOWN: +@NM_DEVICE_VLAN_ERROR_NOT_VLAN_CONNECTION: +@NM_DEVICE_VLAN_ERROR_INVALID_VLAN_CONNECTION: +@NM_DEVICE_VLAN_ERROR_ID_MISMATCH: +@NM_DEVICE_VLAN_ERROR_INTERFACE_MISMATCH: + <!-- ##### MACRO NM_DEVICE_VLAN_CARRIER ##### --> <para> @@ -61,6 +72,13 @@ NMDeviceVlan +<!-- ##### MACRO NM_DEVICE_VLAN_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_VLAN_HW_ADDRESS ##### --> <para> @@ -75,6 +93,15 @@ NMDeviceVlan +<!-- ##### FUNCTION nm_device_vlan_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_vlan_get_carrier ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-wifi.sgml b/docs/libnm-glib/tmpl/nm-device-wifi.sgml index 94cc3e9f..89ead82a 100644 --- a/docs/libnm-glib/tmpl/nm-device-wifi.sgml +++ b/docs/libnm-glib/tmpl/nm-device-wifi.sgml @@ -87,6 +87,19 @@ NMDeviceWifi @_reserved5: @_reserved6: +<!-- ##### ENUM NMDeviceWifiError ##### --> +<para> + +</para> + +@NM_DEVICE_WIFI_ERROR_UNKNOWN: +@NM_DEVICE_WIFI_ERROR_NOT_WIFI_CONNECTION: +@NM_DEVICE_WIFI_ERROR_INVALID_WIFI_CONNECTION: +@NM_DEVICE_WIFI_ERROR_INVALID_DEVICE_MAC: +@NM_DEVICE_WIFI_ERROR_MAC_MISMATCH: +@NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_WPA_CAPS: +@NM_DEVICE_WIFI_ERROR_MISSING_DEVICE_RSN_CAPS: + <!-- ##### MACRO NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT ##### --> <para> @@ -108,6 +121,13 @@ NMDeviceWifi +<!-- ##### MACRO NM_DEVICE_WIFI_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_WIFI_HW_ADDRESS ##### --> <para> @@ -129,6 +149,15 @@ NMDeviceWifi +<!-- ##### FUNCTION nm_device_wifi_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_wifi_get_access_point_by_path ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device-wimax.sgml b/docs/libnm-glib/tmpl/nm-device-wimax.sgml index fbda3469..8d23e4da 100644 --- a/docs/libnm-glib/tmpl/nm-device-wimax.sgml +++ b/docs/libnm-glib/tmpl/nm-device-wimax.sgml @@ -86,6 +86,17 @@ NMDeviceWimax @nsp_added: @nsp_removed: +<!-- ##### ENUM NMDeviceWimaxError ##### --> +<para> + +</para> + +@NM_DEVICE_WIMAX_ERROR_UNKNOWN: +@NM_DEVICE_WIMAX_ERROR_NOT_WIMAX_CONNECTION: +@NM_DEVICE_WIMAX_ERROR_INVALID_WIMAX_CONNECTION: +@NM_DEVICE_WIMAX_ERROR_INVALID_DEVICE_MAC: +@NM_DEVICE_WIMAX_ERROR_MAC_MISMATCH: + <!-- ##### MACRO NM_DEVICE_WIMAX_ACTIVE_NSP ##### --> <para> @@ -114,6 +125,13 @@ NMDeviceWimax +<!-- ##### MACRO NM_DEVICE_WIMAX_ERROR ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_WIMAX_HW_ADDRESS ##### --> <para> @@ -135,6 +153,15 @@ NMDeviceWimax +<!-- ##### FUNCTION nm_device_wimax_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_device_wimax_get_active_nsp ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-device.sgml b/docs/libnm-glib/tmpl/nm-device.sgml index c2d02f96..68df46f9 100644 --- a/docs/libnm-glib/tmpl/nm-device.sgml +++ b/docs/libnm-glib/tmpl/nm-device.sgml @@ -41,6 +41,11 @@ NMDevice </para> +<!-- ##### ARG NMDevice:autoconnect ##### --> +<para> + +</para> + <!-- ##### ARG NMDevice:capabilities ##### --> <para> @@ -66,11 +71,21 @@ NMDevice </para> +<!-- ##### ARG NMDevice:driver-version ##### --> +<para> + +</para> + <!-- ##### ARG NMDevice:firmware-missing ##### --> <para> </para> +<!-- ##### ARG NMDevice:firmware-version ##### --> +<para> + +</para> + <!-- ##### ARG NMDevice:interface ##### --> <para> @@ -153,6 +168,13 @@ NMDevice +<!-- ##### MACRO NM_DEVICE_AUTOCONNECT ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_CAPABILITIES ##### --> <para> @@ -188,6 +210,13 @@ NMDevice +<!-- ##### MACRO NM_DEVICE_DRIVER_VERSION ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_FIRMWARE_MISSING ##### --> <para> @@ -195,6 +224,13 @@ NMDevice +<!-- ##### MACRO NM_DEVICE_FIRMWARE_VERSION ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_DEVICE_INTERFACE ##### --> <para> @@ -265,6 +301,17 @@ NMDevice +<!-- ##### FUNCTION nm_device_connection_compatible ##### --> +<para> + +</para> + +@device: +@connection: +@error: +@Returns: + + <!-- ##### FUNCTION nm_device_connection_valid ##### --> <para> @@ -304,6 +351,15 @@ NMDevice @Returns: +<!-- ##### FUNCTION nm_device_get_autoconnect ##### --> +<para> + +</para> + +@device: +@Returns: + + <!-- ##### FUNCTION nm_device_get_capabilities ##### --> <para> @@ -349,6 +405,15 @@ NMDevice @Returns: +<!-- ##### FUNCTION nm_device_get_driver_version ##### --> +<para> + +</para> + +@device: +@Returns: + + <!-- ##### FUNCTION nm_device_get_firmware_missing ##### --> <para> @@ -358,6 +423,15 @@ NMDevice @Returns: +<!-- ##### FUNCTION nm_device_get_firmware_version ##### --> +<para> + +</para> + +@device: +@Returns: + + <!-- ##### FUNCTION nm_device_get_iface ##### --> <para> @@ -459,3 +533,12 @@ NMDevice @Returns: +<!-- ##### FUNCTION nm_device_set_autoconnect ##### --> +<para> + +</para> + +@device: +@autoconnect: + + diff --git a/docs/libnm-glib/tmpl/nm-exported-connection-bindings.sgml b/docs/libnm-glib/tmpl/nm-exported-connection-bindings.sgml deleted file mode 100644 index 6d7bd83d..00000000 --- a/docs/libnm-glib/tmpl/nm-exported-connection-bindings.sgml +++ /dev/null @@ -1,213 +0,0 @@ -<!-- ##### SECTION Title ##### --> -nm-exported-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_NetworkManagerSettings_Connection ##### --> -<para> - -</para> - - - -<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManagerSettings_Connection_Secrets ##### --> -<para> - -</para> - - - -<!-- ##### FUNCTION dbus_g_proxy_begin_call ##### --> -<para> - -</para> - -@Param1: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets ##### --> -<para> - -</para> - -@proxy: -@IN_setting_name: -@IN_hints: -@IN_request_new: -@OUT_secrets: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_async ##### --> -<para> - -</para> - -@proxy: -@IN_setting_name: -@IN_hints: -@IN_request_new: -@callback: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_async_callback ##### --> -<para> - -</para> - -@proxy: -@call: -@user_data: - - -<!-- ##### USER_FUNCTION org_freedesktop_NetworkManagerSettings_Connection_Secrets_get_secrets_reply ##### --> -<para> - -</para> - -@proxy: -@OUT_secrets: -@error: -@userdata: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_delete ##### --> -<para> - -</para> - -@proxy: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_delete_async ##### --> -<para> - -</para> - -@proxy: -@callback: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_delete_async_callback ##### --> -<para> - -</para> - -@proxy: -@call: -@user_data: - - -<!-- ##### USER_FUNCTION org_freedesktop_NetworkManagerSettings_Connection_delete_reply ##### --> -<para> - -</para> - -@proxy: -@error: -@userdata: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_get_settings ##### --> -<para> - -</para> - -@proxy: -@OUT_settings: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_get_settings_async ##### --> -<para> - -</para> - -@proxy: -@callback: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_get_settings_async_callback ##### --> -<para> - -</para> - -@proxy: -@call: -@user_data: - - -<!-- ##### USER_FUNCTION org_freedesktop_NetworkManagerSettings_Connection_get_settings_reply ##### --> -<para> - -</para> - -@proxy: -@OUT_settings: -@error: -@userdata: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_update ##### --> -<para> - -</para> - -@proxy: -@IN_properties: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_update_async ##### --> -<para> - -</para> - -@proxy: -@IN_properties: -@callback: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_Connection_update_async_callback ##### --> -<para> - -</para> - -@proxy: -@call: -@user_data: - - -<!-- ##### USER_FUNCTION org_freedesktop_NetworkManagerSettings_Connection_update_reply ##### --> -<para> - -</para> - -@proxy: -@error: -@userdata: - - diff --git a/docs/libnm-glib/tmpl/nm-exported-connection-glue.sgml b/docs/libnm-glib/tmpl/nm-exported-connection-glue.sgml deleted file mode 100644 index fda72e2e..00000000 --- a/docs/libnm-glib/tmpl/nm-exported-connection-glue.sgml +++ /dev/null @@ -1,247 +0,0 @@ -<!-- ##### SECTION Title ##### --> -nm-exported-connection-glue - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### SECTION Image ##### --> - - -<!-- ##### FUNCTION dbus_glib_marshal_nm_exported_connection_BOOLEAN__POINTER_POINTER ##### --> -<para> - -</para> - -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: - - -<!-- ##### MACRO dbus_glib_marshal_nm_exported_connection_NONE__BOXED_POINTER ##### --> -<para> - -</para> - - - -<!-- ##### MACRO dbus_glib_marshal_nm_exported_connection_NONE__POINTER ##### --> -<para> - -</para> - - - -<!-- ##### MACRO dbus_glib_marshal_nm_exported_connection_NONE__STRING_BOXED_BOOLEAN_POINTER ##### --> -<para> - -</para> - - - -<!-- ##### FUNCTION dbus_glib_marshal_nm_exported_connection_VOID__BOXED_POINTER ##### --> -<para> - -</para> - -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: - - -<!-- ##### MACRO dbus_glib_marshal_nm_exported_connection_VOID__POINTER ##### --> -<para> - -</para> - - - -<!-- ##### FUNCTION dbus_glib_marshal_nm_exported_connection_VOID__STRING_BOXED_BOOLEAN_POINTER ##### --> -<para> - -</para> - -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: - - -<!-- ##### VARIABLE dbus_glib_nm_exported_connection_object_info ##### --> -<para> - -</para> - - -<!-- ##### MACRO g_marshal_value_peek_boolean ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_boxed ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_char ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_double ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_enum ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_flags ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_float ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_int ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_int64 ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_long ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_object ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_param ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_pointer ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_string ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_uchar ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_uint ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_uint64 ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_ulong ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_variant ##### --> -<para> - -</para> - -@v: - - diff --git a/docs/libnm-glib/tmpl/nm-object.sgml b/docs/libnm-glib/tmpl/nm-object.sgml index d79c1522..aaf91b49 100644 --- a/docs/libnm-glib/tmpl/nm-object.sgml +++ b/docs/libnm-glib/tmpl/nm-object.sgml @@ -26,6 +26,15 @@ NMObject </para> +<!-- ##### SIGNAL NMObject::object-creation-failed ##### --> +<para> + +</para> + +@nmobject: the object which received the signal. +@arg1: +@arg2: + <!-- ##### ARG NMObject:dbus-connection ##### --> <para> @@ -42,6 +51,7 @@ NMObject </para> @parent: +@object_creation_failed: @_reserved1: @_reserved2: @_reserved3: @@ -49,6 +59,14 @@ NMObject @_reserved5: @_reserved6: +<!-- ##### ENUM NMObjectError ##### --> +<para> + +</para> + +@NM_OBJECT_ERROR_UNKNOWN: +@NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE: + <!-- ##### MACRO NM_OBJECT_DBUS_CONNECTION ##### --> <para> @@ -63,6 +81,22 @@ NMObject +<!-- ##### MACRO NM_OBJECT_ERROR ##### --> +<para> + +</para> + + + +<!-- ##### FUNCTION nm_object_error_quark ##### --> +<para> + +</para> + +@void: +@Returns: + + <!-- ##### FUNCTION nm_object_get_connection ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-secret-agent-glue.sgml b/docs/libnm-glib/tmpl/nm-secret-agent-glue.sgml deleted file mode 100644 index f8b51d7d..00000000 --- a/docs/libnm-glib/tmpl/nm-secret-agent-glue.sgml +++ /dev/null @@ -1,240 +0,0 @@ -<!-- ##### SECTION Title ##### --> -nm-secret-agent-glue - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### SECTION Image ##### --> - - -<!-- ##### MACRO dbus_glib_marshal_nm_secret_agent_NONE__BOXED_BOXED_POINTER ##### --> -<para> - -</para> - - - -<!-- ##### MACRO dbus_glib_marshal_nm_secret_agent_NONE__BOXED_BOXED_STRING_BOXED_UINT_POINTER ##### --> -<para> - -</para> - - - -<!-- ##### MACRO dbus_glib_marshal_nm_secret_agent_NONE__BOXED_STRING_POINTER ##### --> -<para> - -</para> - - - -<!-- ##### FUNCTION dbus_glib_marshal_nm_secret_agent_VOID__BOXED_BOXED_POINTER ##### --> -<para> - -</para> - -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: - - -<!-- ##### FUNCTION dbus_glib_marshal_nm_secret_agent_VOID__BOXED_BOXED_STRING_BOXED_UINT_POINTER ##### --> -<para> - -</para> - -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: - - -<!-- ##### FUNCTION dbus_glib_marshal_nm_secret_agent_VOID__BOXED_STRING_POINTER ##### --> -<para> - -</para> - -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: - - -<!-- ##### VARIABLE dbus_glib_nm_secret_agent_object_info ##### --> -<para> - -</para> - - -<!-- ##### MACRO g_marshal_value_peek_boolean ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_boxed ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_char ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_double ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_enum ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_flags ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_float ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_int ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_int64 ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_long ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_object ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_param ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_pointer ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_string ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_uchar ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_uint ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_uint64 ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_ulong ##### --> -<para> - -</para> - -@v: - - -<!-- ##### MACRO g_marshal_value_peek_variant ##### --> -<para> - -</para> - -@v: - - diff --git a/docs/libnm-glib/tmpl/nm-secret-agent.sgml b/docs/libnm-glib/tmpl/nm-secret-agent.sgml index 9f31c86b..428b7afd 100644 --- a/docs/libnm-glib/tmpl/nm-secret-agent.sgml +++ b/docs/libnm-glib/tmpl/nm-secret-agent.sgml @@ -98,6 +98,7 @@ NMSecretAgent @NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE: @NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION: @NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW: +@NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED: <!-- ##### USER_FUNCTION NMSecretAgentGetSecretsFunc ##### --> <para> @@ -143,6 +144,13 @@ NMSecretAgent +<!-- ##### MACRO NM_SECRET_AGENT_REGISTERED ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_SECRET_AGENT_REGISTRATION_RESULT ##### --> <para> @@ -170,6 +178,15 @@ NMSecretAgent @Returns: +<!-- ##### FUNCTION nm_secret_agent_get_registered ##### --> +<para> + +</para> + +@self: +@Returns: + + <!-- ##### FUNCTION nm_secret_agent_get_secrets ##### --> <para> diff --git a/docs/libnm-glib/tmpl/nm-settings-system-bindings.sgml b/docs/libnm-glib/tmpl/nm-settings-system-bindings.sgml deleted file mode 100644 index 29790794..00000000 --- a/docs/libnm-glib/tmpl/nm-settings-system-bindings.sgml +++ /dev/null @@ -1,120 +0,0 @@ -<!-- ##### SECTION Title ##### --> -nm-settings-system-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_NetworkManagerSettings_System ##### --> -<para> - -</para> - - - -<!-- ##### FUNCTION dbus_g_proxy_begin_call ##### --> -<para> - -</para> - -@Param1: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_System_get_permissions ##### --> -<para> - -</para> - -@proxy: -@OUT_permissions: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_System_get_permissions_async ##### --> -<para> - -</para> - -@proxy: -@callback: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_System_get_permissions_async_callback ##### --> -<para> - -</para> - -@proxy: -@call: -@user_data: - - -<!-- ##### USER_FUNCTION org_freedesktop_NetworkManagerSettings_System_get_permissions_reply ##### --> -<para> - -</para> - -@proxy: -@OUT_permissions: -@error: -@userdata: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_System_save_hostname ##### --> -<para> - -</para> - -@proxy: -@IN_hostname: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_System_save_hostname_async ##### --> -<para> - -</para> - -@proxy: -@IN_hostname: -@callback: -@Returns: - - -<!-- ##### FUNCTION org_freedesktop_NetworkManagerSettings_System_save_hostname_async_callback ##### --> -<para> - -</para> - -@proxy: -@call: -@user_data: - - -<!-- ##### USER_FUNCTION org_freedesktop_NetworkManagerSettings_System_save_hostname_reply ##### --> -<para> - -</para> - -@proxy: -@error: -@userdata: - - diff --git a/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml b/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml index 08e0807c..c04eb296 100644 --- a/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml +++ b/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml @@ -41,12 +41,12 @@ NMVPNPlugin @login_banner: @failure: @quit: +@config: +@ip6_config: @_reserved1: @_reserved2: @_reserved3: @_reserved4: -@_reserved5: -@_reserved6: <!-- ##### ENUM NMVPNPluginError ##### --> <para> @@ -123,6 +123,15 @@ NMVPNPlugin @Returns: +<!-- ##### FUNCTION nm_vpn_plugin_set_config ##### --> +<para> + +</para> + +@plugin: +@config: + + <!-- ##### FUNCTION nm_vpn_plugin_set_ip4_config ##### --> <para> @@ -132,6 +141,15 @@ NMVPNPlugin @ip4_config: +<!-- ##### FUNCTION nm_vpn_plugin_set_ip6_config ##### --> +<para> + +</para> + +@plugin: +@ip6_config: + + <!-- ##### FUNCTION nm_vpn_plugin_set_login_banner ##### --> <para> diff --git a/docs/libnm-util/Makefile.in b/docs/libnm-util/Makefile.in index 281aa765..de0a694a 100644 --- a/docs/libnm-util/Makefile.in +++ b/docs/libnm-util/Makefile.in @@ -53,7 +53,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -141,6 +141,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -236,6 +240,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -274,6 +281,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/docs/libnm-util/html/NMConnection.html b/docs/libnm-util/html/NMConnection.html index 45911ba8..c1bd42e1 100644 --- a/docs/libnm-util/html/NMConnection.html +++ b/docs/libnm-util/html/NMConnection.html @@ -78,16 +78,17 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMCon <a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting" title="nm_connection_get_setting ()">nm_connection_get_setting</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/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> setting_type</code></em>); <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="returnvalue">NMSetting8021x</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-802-1x" title="nm_connection_get_setting_802_1x ()">nm_connection_get_setting_802_1x</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); +<span class="returnvalue">NMSettingAdsl</span> * <a class="link" href="NMConnection.html#nm-connection-get-setting-adsl" title="nm_connection_get_setting_adsl ()">nm_connection_get_setting_adsl</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="returnvalue">NMSettingBluetooth</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-bluetooth" title="nm_connection_get_setting_bluetooth ()">nm_connection_get_setting_bluetooth</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); -<span class="returnvalue">NMSettingBond</span> * <a class="link" href="NMConnection.html#nm-connection-get-setting-bond" title="nm_connection_get_setting_bond ()">nm_connection_get_setting_bond</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); +<a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="returnvalue">NMSettingBond</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-bond" title="nm_connection_get_setting_bond ()">nm_connection_get_setting_bond</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-by-name" title="nm_connection_get_setting_by_name ()">nm_connection_get_setting_by_name</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> *name</code></em>); <a class="link" href="NMSettingCdma.html" title="NMSettingCdma"><span class="returnvalue">NMSettingCdma</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-cdma" title="nm_connection_get_setting_cdma ()">nm_connection_get_setting_cdma</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingConnection.html" title="NMSettingConnection"><span class="returnvalue">NMSettingConnection</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-connection" title="nm_connection_get_setting_connection ()">nm_connection_get_setting_connection</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="returnvalue">NMSettingGsm</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-gsm" title="nm_connection_get_setting_gsm ()">nm_connection_get_setting_gsm</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); -<span class="returnvalue">NMSettingInfiniband</span> * <a class="link" href="NMConnection.html#nm-connection-get-setting-infiniband" title="nm_connection_get_setting_infiniband ()">nm_connection_get_setting_infiniband</a> +<a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="returnvalue">NMSettingInfiniband</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-infiniband" title="nm_connection_get_setting_infiniband ()">nm_connection_get_setting_infiniband</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="returnvalue">NMSettingIP4Config</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-ip4-config" title="nm_connection_get_setting_ip4_config ()">nm_connection_get_setting_ip4_config</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); @@ -97,7 +98,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMCon <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="returnvalue">NMSettingPPP</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-ppp" title="nm_connection_get_setting_ppp ()">nm_connection_get_setting_ppp</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="returnvalue">NMSettingPPPOE</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-pppoe" title="nm_connection_get_setting_pppoe ()">nm_connection_get_setting_pppoe</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="returnvalue">NMSettingSerial</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-serial" title="nm_connection_get_setting_serial ()">nm_connection_get_setting_serial</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); -<span class="returnvalue">NMSettingVlan</span> * <a class="link" href="NMConnection.html#nm-connection-get-setting-vlan" title="nm_connection_get_setting_vlan ()">nm_connection_get_setting_vlan</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); +<a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="returnvalue">NMSettingVlan</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-vlan" title="nm_connection_get_setting_vlan ()">nm_connection_get_setting_vlan</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="returnvalue">NMSettingVPN</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-vpn" title="nm_connection_get_setting_vpn ()">nm_connection_get_setting_vpn</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="returnvalue">NMSettingWimax</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-wimax" title="nm_connection_get_setting_wimax ()">nm_connection_get_setting_wimax</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="returnvalue">NMSettingWired</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-wired" title="nm_connection_get_setting_wired ()">nm_connection_get_setting_wired</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>); @@ -629,6 +630,29 @@ A shortcut to return any <a class="link" href="NMSetting8021x.html" title="NMSet </div> <hr> <div class="refsect2"> +<a name="nm-connection-get-setting-adsl"></a><h3>nm_connection_get_setting_adsl ()</h3> +<pre class="programlisting"><span class="returnvalue">NMSettingAdsl</span> * nm_connection_get_setting_adsl (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> +<p> +A shortcut to return any <span class="type">NMSettingAdsl</span> the connection might contain. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td> +<td>the <a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>an <span class="type">NMSettingAdsl</span> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-connection-get-setting-bluetooth"></a><h3>nm_connection_get_setting_bluetooth ()</h3> <pre class="programlisting"><a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="returnvalue">NMSettingBluetooth</span></a> * nm_connection_get_setting_bluetooth (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> @@ -654,9 +678,9 @@ A shortcut to return any <a class="link" href="NMSettingBluetooth.html" title="N <hr> <div class="refsect2"> <a name="nm-connection-get-setting-bond"></a><h3>nm_connection_get_setting_bond ()</h3> -<pre class="programlisting"><span class="returnvalue">NMSettingBond</span> * nm_connection_get_setting_bond (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> +<pre class="programlisting"><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="returnvalue">NMSettingBond</span></a> * nm_connection_get_setting_bond (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> <p> -A shortcut to return any <span class="type">NMSettingBond</span> the connection might contain. +A shortcut to return any <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> the connection might contain. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> @@ -668,7 +692,7 @@ A shortcut to return any <span class="type">NMSettingBond</span> the connection </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>an <span class="type">NMSettingBond</span> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> +<td>an <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> </td> </tr> </tbody> @@ -777,10 +801,10 @@ A shortcut to return any <a class="link" href="NMSettingGsm.html" title="NMSetti <hr> <div class="refsect2"> <a name="nm-connection-get-setting-infiniband"></a><h3>nm_connection_get_setting_infiniband ()</h3> -<pre class="programlisting"><span class="returnvalue">NMSettingInfiniband</span> * nm_connection_get_setting_infiniband +<pre class="programlisting"><a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="returnvalue">NMSettingInfiniband</span></a> * nm_connection_get_setting_infiniband (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> <p> -A shortcut to return any <span class="type">NMSettingInfiniband</span> the connection might contain. +A shortcut to return any <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> the connection might contain. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> @@ -792,7 +816,7 @@ A shortcut to return any <span class="type">NMSettingInfiniband</span> the conne </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>an <span class="type">NMSettingInfiniband</span> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> +<td>an <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> </td> </tr> </tbody> @@ -941,9 +965,9 @@ A shortcut to return any <a class="link" href="NMSettingSerial.html" title="NMSe <hr> <div class="refsect2"> <a name="nm-connection-get-setting-vlan"></a><h3>nm_connection_get_setting_vlan ()</h3> -<pre class="programlisting"><span class="returnvalue">NMSettingVlan</span> * nm_connection_get_setting_vlan (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> +<pre class="programlisting"><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="returnvalue">NMSettingVlan</span></a> * nm_connection_get_setting_vlan (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre> <p> -A shortcut to return any <span class="type">NMSettingVlan</span> the connection might contain. +A shortcut to return any <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> the connection might contain. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> @@ -955,7 +979,7 @@ A shortcut to return any <span class="type">NMSettingVlan</span> the connection </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>an <span class="type">NMSettingVlan</span> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> +<td>an <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> </td> </tr> </tbody> diff --git a/docs/libnm-util/html/NMSetting.html b/docs/libnm-util/html/NMSetting.html index 3e64eeb0..cccfd00b 100644 --- a/docs/libnm-util/html/NMSetting.html +++ b/docs/libnm-util/html/NMSetting.html @@ -113,19 +113,20 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> +----NMSetting +----<a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a> + +----NMSettingAdsl +----<a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth">NMSettingBluetooth</a> - +----NMSettingBond + +----<a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> +----<a class="link" href="NMSettingCdma.html" title="NMSettingCdma">NMSettingCdma</a> +----<a class="link" href="NMSettingConnection.html" title="NMSettingConnection">NMSettingConnection</a> +----<a class="link" href="NMSettingGsm.html" title="NMSettingGsm">NMSettingGsm</a> - +----NMSettingInfiniband + +----<a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> +----<a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config">NMSettingIP4Config</a> +----<a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config">NMSettingIP6Config</a> +----<a class="link" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">NMSettingOlpcMesh</a> +----<a class="link" href="NMSettingPPP.html" title="NMSettingPPP">NMSettingPPP</a> +----<a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE">NMSettingPPPOE</a> +----<a class="link" href="NMSettingSerial.html" title="NMSettingSerial">NMSettingSerial</a> - +----NMSettingVlan + +----<a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> +----<a class="link" href="NMSettingVPN.html" title="NMSettingVPN">NMSettingVPN</a> +----<a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a> +----<a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> diff --git a/docs/libnm-util/html/NMSettingBond.html b/docs/libnm-util/html/NMSettingBond.html new file mode 100644 index 00000000..e29bca05 --- /dev/null +++ b/docs/libnm-util/html/NMSettingBond.html @@ -0,0 +1,547 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>NMSettingBond</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="index.html" title="libnm-util Reference Manual"> +<link rel="up" href="ch01.html" title="libnm-util API Reference"> +<link rel="prev" href="NMSettingWimax.html" title="NMSettingWimax"> +<link rel="next" href="NMSettingInfiniband.html" title="NMSettingInfiniband"> +<meta name="generator" content="GTK-Doc V1.18 (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="NMSettingWimax.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">libnm-util Reference Manual</th> +<td><a accesskey="n" href="NMSettingInfiniband.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#NMSettingBond.synopsis" class="shortcut">Top</a> + | + <a href="#NMSettingBond.description" class="shortcut">Description</a> + | + <a href="#NMSettingBond.object-hierarchy" class="shortcut">Object Hierarchy</a> + | + <a href="#NMSettingBond.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="NMSettingBond"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="NMSettingBond.top_of_page"></a>NMSettingBond</span></h2> +<p>NMSettingBond — Describes connection properties for bonds</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="NMSettingBond.synopsis"></a><h2>Synopsis</h2> +<a name="NMSettingBondError"></a><pre class="synopsis"> +#include <nm-setting-bond.h> + + <a class="link" href="NMSettingBond.html#NMSettingBond-struct" title="NMSettingBond">NMSettingBond</a>; + <a class="link" href="NMSettingBond.html#NMSettingBondClass" title="NMSettingBondClass">NMSettingBondClass</a>; +enum <a class="link" href="NMSettingBond.html#NMSettingBondError-enum" title="enum NMSettingBondError">NMSettingBondError</a>; +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-ERROR:CAPS" title="NM_SETTING_BOND_ERROR">NM_SETTING_BOND_ERROR</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-INTERFACE-NAME:CAPS" title="NM_SETTING_BOND_INTERFACE_NAME">NM_SETTING_BOND_INTERFACE_NAME</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTIONS:CAPS" title="NM_SETTING_BOND_OPTIONS">NM_SETTING_BOND_OPTIONS</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-INTERVAL:CAPS" title="NM_SETTING_BOND_OPTION_ARP_INTERVAL">NM_SETTING_BOND_OPTION_ARP_INTERVAL</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-IP-TARGET:CAPS" title="NM_SETTING_BOND_OPTION_ARP_IP_TARGET">NM_SETTING_BOND_OPTION_ARP_IP_TARGET</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-DOWNDELAY:CAPS" title="NM_SETTING_BOND_OPTION_DOWNDELAY">NM_SETTING_BOND_OPTION_DOWNDELAY</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-MIIMON:CAPS" title="NM_SETTING_BOND_OPTION_MIIMON">NM_SETTING_BOND_OPTION_MIIMON</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-MODE:CAPS" title="NM_SETTING_BOND_OPTION_MODE">NM_SETTING_BOND_OPTION_MODE</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-UPDELAY:CAPS" title="NM_SETTING_BOND_OPTION_UPDELAY">NM_SETTING_BOND_OPTION_UPDELAY</a> +#define <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-SETTING-NAME:CAPS" title="NM_SETTING_BOND_SETTING_NAME">NM_SETTING_BOND_SETTING_NAME</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="NMSettingBond.html#nm-setting-bond-add-option" title="nm_setting_bond_add_option ()">nm_setting_bond_add_option</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *value</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMSettingBond.html#nm-setting-bond-error-quark" title="nm_setting_bond_error_quark ()">nm_setting_bond_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMSettingBond.html#nm-setting-bond-get-interface-name" title="nm_setting_bond_get_interface_name ()">nm_setting_bond_get_interface_name</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSettingBond.html#nm-setting-bond-get-num-options" title="nm_setting_bond_get_num_options ()">nm_setting_bond_get_num_options</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSettingBond.html#nm-setting-bond-get-option" title="nm_setting_bond_get_option ()">nm_setting_bond_get_option</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>, + <em class="parameter"><code>const <span class="type">char</span> **out_name</code></em>, + <em class="parameter"><code>const <span class="type">char</span> **out_value</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMSettingBond.html#nm-setting-bond-get-option-by-name" title="nm_setting_bond_get_option_by_name ()">nm_setting_bond_get_option_by_name</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMSettingBond.html#nm-setting-bond-get-option-default" title="nm_setting_bond_get_option_default ()">nm_setting_bond_get_option_default</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>); +const <span class="returnvalue">char</span> ** <a class="link" href="NMSettingBond.html#nm-setting-bond-get-valid-options" title="nm_setting_bond_get_valid_options ()">nm_setting_bond_get_valid_options</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>); +<a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * <a class="link" href="NMSettingBond.html#nm-setting-bond-new" title="nm_setting_bond_new ()">nm_setting_bond_new</a> (<em class="parameter"><code><span class="type">void</span></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="NMSettingBond.html#nm-setting-bond-remove-option" title="nm_setting_bond_remove_option ()">nm_setting_bond_remove_option</a> (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>); +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingBond.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="NMSetting.html" title="NMSetting">NMSetting</a> + +----NMSettingBond +</pre> +<pre class="synopsis"> + GEnum + +----NMSettingBondError +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingBond.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="NMSettingBond.html#NMSettingBond--interface-name" title='The "interface-name" property'>interface-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write + "<a class="link" href="NMSettingBond.html#NMSettingBond--options" title='The "options" property'>options</a>" <span class="type">GHashTable_gchararray+gchararray_*</span> : Read / Write +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingBond.description"></a><h2>Description</h2> +<p> +The <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties +necessary for bond connections. +</p> +</div> +<div class="refsect1"> +<a name="NMSettingBond.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="NMSettingBond-struct"></a><h3>NMSettingBond</h3> +<pre class="programlisting">typedef struct _NMSettingBond NMSettingBond;</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingBondClass"></a><h3>NMSettingBondClass</h3> +<pre class="programlisting">typedef struct { + NMSettingClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); +} NMSettingBondClass; +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingBondError-enum"></a><h3>enum NMSettingBondError</h3> +<pre class="programlisting">typedef enum { + NM_SETTING_BOND_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_SETTING_BOND_ERROR_INVALID_PROPERTY, /*< nick=InvalidProperty >*/ + NM_SETTING_BOND_ERROR_MISSING_PROPERTY, /*< nick=MissingProperty >*/ + NM_SETTING_BOND_ERROR_INVALID_OPTION, /*< nick=InvalidOption >*/ + NM_SETTING_BOND_ERROR_MISSING_OPTION, /*< nick=MissingOption >*/ +} NMSettingBondError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-SETTING-BOND-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BOND_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-BOND-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BOND_ERROR_INVALID_PROPERTY</code></span></p></td> +<td>the property was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-BOND-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BOND_ERROR_MISSING_PROPERTY</code></span></p></td> +<td>the property was missing and is +required +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-BOND-ERROR-INVALID-OPTION:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BOND_ERROR_INVALID_OPTION</code></span></p></td> +<td> +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-BOND-ERROR-MISSING-OPTION:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BOND_ERROR_MISSING_OPTION</code></span></p></td> +<td> +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-ERROR:CAPS"></a><h3>NM_SETTING_BOND_ERROR</h3> +<pre class="programlisting">#define NM_SETTING_BOND_ERROR nm_setting_bond_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-INTERFACE-NAME:CAPS"></a><h3>NM_SETTING_BOND_INTERFACE_NAME</h3> +<pre class="programlisting">#define NM_SETTING_BOND_INTERFACE_NAME "interface-name" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-OPTIONS:CAPS"></a><h3>NM_SETTING_BOND_OPTIONS</h3> +<pre class="programlisting">#define NM_SETTING_BOND_OPTIONS "options" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-OPTION-ARP-INTERVAL:CAPS"></a><h3>NM_SETTING_BOND_OPTION_ARP_INTERVAL</h3> +<pre class="programlisting">#define NM_SETTING_BOND_OPTION_ARP_INTERVAL "arp_interval" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-OPTION-ARP-IP-TARGET:CAPS"></a><h3>NM_SETTING_BOND_OPTION_ARP_IP_TARGET</h3> +<pre class="programlisting">#define NM_SETTING_BOND_OPTION_ARP_IP_TARGET "arp_ip_target" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-OPTION-DOWNDELAY:CAPS"></a><h3>NM_SETTING_BOND_OPTION_DOWNDELAY</h3> +<pre class="programlisting">#define NM_SETTING_BOND_OPTION_DOWNDELAY "downdelay" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-OPTION-MIIMON:CAPS"></a><h3>NM_SETTING_BOND_OPTION_MIIMON</h3> +<pre class="programlisting">#define NM_SETTING_BOND_OPTION_MIIMON "miimon" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-OPTION-MODE:CAPS"></a><h3>NM_SETTING_BOND_OPTION_MODE</h3> +<pre class="programlisting">#define NM_SETTING_BOND_OPTION_MODE "mode" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-OPTION-UPDELAY:CAPS"></a><h3>NM_SETTING_BOND_OPTION_UPDELAY</h3> +<pre class="programlisting">#define NM_SETTING_BOND_OPTION_UPDELAY "updelay" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-BOND-SETTING-NAME:CAPS"></a><h3>NM_SETTING_BOND_SETTING_NAME</h3> +<pre class="programlisting">#define NM_SETTING_BOND_SETTING_NAME "bond" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-add-option"></a><h3>nm_setting_bond_add_option ()</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_bond_add_option (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre> +<p> +Add an option to the table. The option is compared to an internal list +of allowed options. Option names may contain only alphanumeric characters +(ie [a-zA-Z0-9]). Adding a new name replaces any existing name/value pair +that may already exist. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td> +<td>name for the option</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td> +<td>value for the option</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 option was valid and was added to the internal option +list, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it was not.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-error-quark"></a><h3>nm_setting_bond_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_bond_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-get-interface-name"></a><h3>nm_setting_bond_get_interface_name ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_bond_get_interface_name (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html#NMSettingBond--interface-name" title='The "interface-name" property'><span class="type">"interface-name"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-get-num-options"></a><h3>nm_setting_bond_get_num_options ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_bond_get_num_options (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>);</pre> +<p> +Returns the number of options that should be set for this bond when it +is activated. This can be used to retrieve each option individually +using <a class="link" href="NMSettingBond.html#nm-setting-bond-get-option" title="nm_setting_bond_get_option ()"><code class="function">nm_setting_bond_get_option()</code></a>. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the number of bonding options</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-get-option"></a><h3>nm_setting_bond_get_option ()</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_bond_get_option (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>, + <em class="parameter"><code>const <span class="type">char</span> **out_name</code></em>, + <em class="parameter"><code>const <span class="type">char</span> **out_value</code></em>);</pre> +<p> +Given an index, return the value of the bonding option at that index. Indexes +are *not* guaranteed to be static across modifications to options done by +<a class="link" href="NMSettingBond.html#nm-setting-bond-add-option" title="nm_setting_bond_add_option ()"><code class="function">nm_setting_bond_add_option()</code></a> and <a class="link" href="NMSettingBond.html#nm-setting-bond-remove-option" title="nm_setting_bond_remove_option ()"><code class="function">nm_setting_bond_remove_option()</code></a>, +and should not be used to refer to options except for short periods of time +such as during option iteration. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td> +<td>index of the desired option, from 0 to +<a class="link" href="NMSettingBond.html#nm-setting-bond-get-num-options" title="nm_setting_bond_get_num_options ()"><code class="function">nm_setting_bond_get_num_options()</code></a> - 1</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>out_name</code></em> :</span></p></td> +<td>on return, the name of the bonding option; this +value is owned by the setting and should not be modified. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>out_value</code></em> :</span></p></td> +<td>on return, the value of the name of the bonding +option; this value is owned by the setting and should not be modified. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success if the index was valid and an option was found, +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the index was invalid (ie, greater than the number of options +currently held by the setting)</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-get-option-by-name"></a><h3>nm_setting_bond_get_option_by_name ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_bond_get_option_by_name (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre> +<p> +Returns the value associated with the bonding option specified by +<em class="parameter"><code>name</code></em>, if it exists. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td> +<td>the option name for which to retrieve the value</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the value, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the key/value pair was never added to the +setting; the value is owned by the setting and must not be modified</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-get-option-default"></a><h3>nm_setting_bond_get_option_default ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_bond_get_option_default (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td> +<td>the name of the option</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the value of the bond option if not overridden by an entry in +the <a class="link" href="NMSettingBond.html#NMSettingBond--options" title='The "options" property'><span class="type">"options"</span></a> property.</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-get-valid-options"></a><h3>nm_setting_bond_get_valid_options ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> ** nm_setting_bond_get_valid_options (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>);</pre> +<p> +Returns a list of valid bond options. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>a NULL-terminated array of strings of valid bond options. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-new"></a><h3>nm_setting_bond_new ()</h3> +<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_bond_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Creates a new <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> object with default values. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the new empty <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> +</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-bond-remove-option"></a><h3>nm_setting_bond_remove_option ()</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_bond_remove_option (<em class="parameter"><code><a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> *setting</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre> +<p> +Remove the bonding option referenced by <em class="parameter"><code>name</code></em> from the internal option +list. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingBond.html" title="NMSettingBond"><span class="type">NMSettingBond</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td> +<td>name of the option to remove</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 option was found and removed from the internal option +list, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it was not.</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="NMSettingBond.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="NMSettingBond--interface-name"></a><h3>The <code class="literal">"interface-name"</code> property</h3> +<pre class="programlisting"> "interface-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<p> +The name of the virtual in-kernel bonding network interface +</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingBond--options"></a><h3>The <code class="literal">"options"</code> property</h3> +<pre class="programlisting"> "options" <span class="type">GHashTable_gchararray+gchararray_*</span> : Read / Write</pre> +<p> +Dictionary of key/value pairs of bonding options. Both keys +and values must be strings. Option names must contain only +alphanumeric characters (ie, [a-zA-Z0-9]). +</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/libnm-util/html/NMSettingConnection.html b/docs/libnm-util/html/NMSettingConnection.html index 360c9743..339919d2 100644 --- a/docs/libnm-util/html/NMSettingConnection.html +++ b/docs/libnm-util/html/NMSettingConnection.html @@ -697,7 +697,7 @@ Returns the <a class="link" href="NMSettingConnection.html#NMSettingConnection-- </tr> <tr> <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td> -<td>the setting name (ie <span class="type">NM_SETTING_BOND_SETTING_NAME</span>) to be matched +<td>the setting name (ie <a class="link" href="NMSettingBond.html#NM-SETTING-BOND-SETTING-NAME:CAPS" title="NM_SETTING_BOND_SETTING_NAME"><span class="type">NM_SETTING_BOND_SETTING_NAME</span></a>) to be matched against <em class="parameter"><code>setting</code></em>'s slave type</td> </tr> <tr> @@ -849,7 +849,7 @@ if the connection is read-only and cannot be modified. <pre class="programlisting"> "slave-type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> <p> Setting name describing the type of slave device (ie -<span class="type">NM_SETTING_BOND_SETTING_NAME</span>) or NULL if this connection is not a slave. +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-SETTING-NAME:CAPS" title="NM_SETTING_BOND_SETTING_NAME"><span class="type">NM_SETTING_BOND_SETTING_NAME</span></a>) or NULL if this connection is not a slave. </p> <p>Default value: NULL</p> </div> diff --git a/docs/libnm-util/html/NMSettingInfiniband.html b/docs/libnm-util/html/NMSettingInfiniband.html new file mode 100644 index 00000000..a208bff1 --- /dev/null +++ b/docs/libnm-util/html/NMSettingInfiniband.html @@ -0,0 +1,318 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>NMSettingInfiniband</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="index.html" title="libnm-util Reference Manual"> +<link rel="up" href="ch01.html" title="libnm-util API Reference"> +<link rel="prev" href="NMSettingBond.html" title="NMSettingBond"> +<link rel="next" href="NMSettingVlan.html" title="NMSettingVlan"> +<meta name="generator" content="GTK-Doc V1.18 (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="NMSettingBond.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">libnm-util Reference Manual</th> +<td><a accesskey="n" href="NMSettingVlan.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#NMSettingInfiniband.synopsis" class="shortcut">Top</a> + | + <a href="#NMSettingInfiniband.description" class="shortcut">Description</a> + | + <a href="#NMSettingInfiniband.object-hierarchy" class="shortcut">Object Hierarchy</a> + | + <a href="#NMSettingInfiniband.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="NMSettingInfiniband"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="NMSettingInfiniband.top_of_page"></a>NMSettingInfiniband</span></h2> +<p>NMSettingInfiniband — Describes connection properties for IP-over-InfiniBand networks</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="NMSettingInfiniband.synopsis"></a><h2>Synopsis</h2> +<a name="NMSettingInfinibandError"></a><pre class="synopsis"> +#include <nm-setting-infiniband.h> + + <a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband-struct" title="NMSettingInfiniband">NMSettingInfiniband</a>; + <a class="link" href="NMSettingInfiniband.html#NMSettingInfinibandClass" title="NMSettingInfinibandClass">NMSettingInfinibandClass</a>; +enum <a class="link" href="NMSettingInfiniband.html#NMSettingInfinibandError-enum" title="enum NMSettingInfinibandError">NMSettingInfinibandError</a>; +#define <a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR:CAPS" title="NM_SETTING_INFINIBAND_ERROR">NM_SETTING_INFINIBAND_ERROR</a> +#define <a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MAC-ADDRESS:CAPS" title="NM_SETTING_INFINIBAND_MAC_ADDRESS">NM_SETTING_INFINIBAND_MAC_ADDRESS</a> +#define <a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MTU:CAPS" title="NM_SETTING_INFINIBAND_MTU">NM_SETTING_INFINIBAND_MTU</a> +#define <a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-SETTING-NAME:CAPS" title="NM_SETTING_INFINIBAND_SETTING_NAME">NM_SETTING_INFINIBAND_SETTING_NAME</a> +#define <a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-TRANSPORT-MODE:CAPS" title="NM_SETTING_INFINIBAND_TRANSPORT_MODE">NM_SETTING_INFINIBAND_TRANSPORT_MODE</a> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-error-quark" title="nm_setting_infiniband_error_quark ()">nm_setting_infiniband_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>); +const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-get-mac-address" title="nm_setting_infiniband_get_mac_address ()">nm_setting_infiniband_get_mac_address</a> + (<em class="parameter"><code><a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> *setting</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-get-mtu" title="nm_setting_infiniband_get_mtu ()">nm_setting_infiniband_get_mtu</a> (<em class="parameter"><code><a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> *setting</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-get-transport-mode" title="nm_setting_infiniband_get_transport_mode ()">nm_setting_infiniband_get_transport_mode</a> + (<em class="parameter"><code><a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> *setting</code></em>); +<a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * <a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-new" title="nm_setting_infiniband_new ()">nm_setting_infiniband_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>); +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingInfiniband.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="NMSetting.html" title="NMSetting">NMSetting</a> + +----NMSettingInfiniband +</pre> +<pre class="synopsis"> + GEnum + +----NMSettingInfinibandError +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingInfiniband.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mac-address" title='The "mac-address" property'>mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write + "<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mtu" title='The "mtu" property'>mtu</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct + "<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--transport-mode" title='The "transport-mode" property'>transport-mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingInfiniband.description"></a><h2>Description</h2> +<p> +The <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties +necessary for connection to IP-over-InfiniBand networks. +</p> +</div> +<div class="refsect1"> +<a name="NMSettingInfiniband.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="NMSettingInfiniband-struct"></a><h3>NMSettingInfiniband</h3> +<pre class="programlisting">typedef struct _NMSettingInfiniband NMSettingInfiniband;</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingInfinibandClass"></a><h3>NMSettingInfinibandClass</h3> +<pre class="programlisting">typedef struct { + NMSettingClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); +} NMSettingInfinibandClass; +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingInfinibandError-enum"></a><h3>enum NMSettingInfinibandError</h3> +<pre class="programlisting">typedef enum { + NM_SETTING_INFINIBAND_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_SETTING_INFINIBAND_ERROR_INVALID_PROPERTY, /*< nick=InvalidProperty >*/ + NM_SETTING_INFINIBAND_ERROR_MISSING_PROPERTY /*< nick=MissingProperty >*/ +} NMSettingInfinibandError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-SETTING-INFINIBAND-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_INFINIBAND_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-INFINIBAND-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_INFINIBAND_ERROR_INVALID_PROPERTY</code></span></p></td> +<td>the property was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-INFINIBAND-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_INFINIBAND_ERROR_MISSING_PROPERTY</code></span></p></td> +<td>the property was missing and is +required +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-INFINIBAND-ERROR:CAPS"></a><h3>NM_SETTING_INFINIBAND_ERROR</h3> +<pre class="programlisting">#define NM_SETTING_INFINIBAND_ERROR nm_setting_infiniband_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-INFINIBAND-MAC-ADDRESS:CAPS"></a><h3>NM_SETTING_INFINIBAND_MAC_ADDRESS</h3> +<pre class="programlisting">#define NM_SETTING_INFINIBAND_MAC_ADDRESS "mac-address" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-INFINIBAND-MTU:CAPS"></a><h3>NM_SETTING_INFINIBAND_MTU</h3> +<pre class="programlisting">#define NM_SETTING_INFINIBAND_MTU "mtu" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-INFINIBAND-SETTING-NAME:CAPS"></a><h3>NM_SETTING_INFINIBAND_SETTING_NAME</h3> +<pre class="programlisting">#define NM_SETTING_INFINIBAND_SETTING_NAME "infiniband" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-INFINIBAND-TRANSPORT-MODE:CAPS"></a><h3>NM_SETTING_INFINIBAND_TRANSPORT_MODE</h3> +<pre class="programlisting">#define NM_SETTING_INFINIBAND_TRANSPORT_MODE "transport-mode" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-infiniband-error-quark"></a><h3>nm_setting_infiniband_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_infiniband_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-infiniband-get-mac-address"></a><h3>nm_setting_infiniband_get_mac_address ()</h3> +<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_infiniband_get_mac_address + (<em class="parameter"><code><a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mac-address" title='The "mac-address" property'><span class="type">"mac-address"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-infiniband-get-mtu"></a><h3>nm_setting_infiniband_get_mtu ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_infiniband_get_mtu (<em class="parameter"><code><a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mtu" title='The "mtu" property'><span class="type">"mtu"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-infiniband-get-transport-mode"></a><h3>nm_setting_infiniband_get_transport_mode ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_infiniband_get_transport_mode + (<em class="parameter"><code><a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> *setting</code></em>);</pre> +<p> +Returns the transport mode for this device. Either 'datagram' or +'connected'. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the IPoIB transport mode</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-infiniband-new"></a><h3>nm_setting_infiniband_new ()</h3> +<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_infiniband_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Creates a new <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> object with default values. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the new empty <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband"><span class="type">NMSettingInfiniband</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> +</td> +</tr></tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="NMSettingInfiniband.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="NMSettingInfiniband--mac-address"></a><h3>The <code class="literal">"mac-address"</code> property</h3> +<pre class="programlisting"> "mac-address" <span class="type">GArray_guchar_</span>* : Read / Write</pre> +<p> +If specified, this connection will only apply to the IPoIB +device whose permanent MAC address matches. This property does +not change the MAC address of the device (i.e. MAC spoofing). +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingInfiniband--mtu"></a><h3>The <code class="literal">"mtu"</code> property</h3> +<pre class="programlisting"> "mtu" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<p> +If non-zero, only transmit packets of the specified size or smaller, +breaking larger packets up into multiple frames. +</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingInfiniband--transport-mode"></a><h3>The <code class="literal">"transport-mode"</code> property</h3> +<pre class="programlisting"> "transport-mode" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<p> +The IP-over-InfiniBand transport mode. Either 'datagram' or +'connected'. +</p> +<p>Default value: NULL</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/libnm-util/html/NMSettingOlpcMesh.html b/docs/libnm-util/html/NMSettingOlpcMesh.html index 15992600..53ee169c 100644 --- a/docs/libnm-util/html/NMSettingOlpcMesh.html +++ b/docs/libnm-util/html/NMSettingOlpcMesh.html @@ -6,7 +6,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> <link rel="home" href="index.html" title="libnm-util Reference Manual"> <link rel="up" href="ch01.html" title="libnm-util API Reference"> -<link rel="prev" href="NMSettingWimax.html" title="NMSettingWimax"> +<link rel="prev" href="NMSettingVlan.html" title="NMSettingVlan"> <link rel="next" href="NMSetting8021x.html" title="NMSetting8021x"> <meta name="generator" content="GTK-Doc V1.18 (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="NMSettingWimax.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="NMSettingVlan.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">libnm-util Reference Manual</th> diff --git a/docs/libnm-util/html/NMSettingPPP.html b/docs/libnm-util/html/NMSettingPPP.html index 0f95d8f6..c4d92133 100644 --- a/docs/libnm-util/html/NMSettingPPP.html +++ b/docs/libnm-util/html/NMSettingPPP.html @@ -375,128 +375,344 @@ Registers an error quark for <a class="link" href="NMSettingPPP.html" title="NMS <div class="refsect2"> <a name="nm-setting-ppp-get-baud"></a><h3>nm_setting_ppp_get_baud ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ppp_get_baud (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--baud" title='The "baud" property'><span class="type">"baud"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-crtscts"></a><h3>nm_setting_ppp_get_crtscts ()</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_ppp_get_crtscts (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--crtscts" title='The "crtscts" property'><span class="type">"crtscts"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-lcp-echo-failure"></a><h3>nm_setting_ppp_get_lcp_echo_failure ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ppp_get_lcp_echo_failure (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--lcp-echo-failure" title='The "lcp-echo-failure" property'><span class="type">"lcp-echo-failure"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-lcp-echo-interval"></a><h3>nm_setting_ppp_get_lcp_echo_interval ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ppp_get_lcp_echo_interval (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--lcp-echo-interval" title='The "lcp-echo-interval" property'><span class="type">"lcp-echo-interval"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-mppe-stateful"></a><h3>nm_setting_ppp_get_mppe_stateful ()</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_ppp_get_mppe_stateful (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--mppe-stateful" title='The "mppe-stateful" property'><span class="type">"mppe-stateful"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-mru"></a><h3>nm_setting_ppp_get_mru ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ppp_get_mru (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--mru" title='The "mru" property'><span class="type">"mru"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-mtu"></a><h3>nm_setting_ppp_get_mtu ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ppp_get_mtu (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--mtu" title='The "mtu" property'><span class="type">"mtu"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-no-vj-comp"></a><h3>nm_setting_ppp_get_no_vj_comp ()</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_ppp_get_no_vj_comp (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--no-vj-comp" title='The "no-vj-comp" property'><span class="type">"no-vj-comp"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-noauth"></a><h3>nm_setting_ppp_get_noauth ()</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_ppp_get_noauth (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--noauth" title='The "noauth" property'><span class="type">"noauth"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-nobsdcomp"></a><h3>nm_setting_ppp_get_nobsdcomp ()</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_ppp_get_nobsdcomp (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--nobsdcomp" title='The "nobsdcomp" property'><span class="type">"nobsdcomp"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-nodeflate"></a><h3>nm_setting_ppp_get_nodeflate ()</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_ppp_get_nodeflate (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--nodeflate" title='The "nodeflate" property'><span class="type">"nodeflate"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-refuse-chap"></a><h3>nm_setting_ppp_get_refuse_chap ()</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_ppp_get_refuse_chap (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--refuse-chap" title='The "refuse-chap" property'><span class="type">"refuse-chap"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-refuse-eap"></a><h3>nm_setting_ppp_get_refuse_eap ()</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_ppp_get_refuse_eap (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--refuse-eap" title='The "refuse-eap" property'><span class="type">"refuse-eap"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-refuse-mschap"></a><h3>nm_setting_ppp_get_refuse_mschap ()</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_ppp_get_refuse_mschap (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--refuse-mschap" title='The "refuse-mschap" property'><span class="type">"refuse-mschap"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-refuse-mschapv2"></a><h3>nm_setting_ppp_get_refuse_mschapv2 ()</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_ppp_get_refuse_mschapv2 (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--refuse-mschapv2" title='The "refuse-mschapv2" property'><span class="type">"refuse-mschapv2"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-refuse-pap"></a><h3>nm_setting_ppp_get_refuse_pap ()</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_ppp_get_refuse_pap (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--refuse-pap" title='The "refuse-pap" property'><span class="type">"refuse-pap"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-require-mppe"></a><h3>nm_setting_ppp_get_require_mppe ()</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_ppp_get_require_mppe (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--require-mppe" title='The "require-mppe" property'><span class="type">"require-mppe"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> <a name="nm-setting-ppp-get-require-mppe-128"></a><h3>nm_setting_ppp_get_require_mppe_128 ()</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_ppp_get_require_mppe_128 (<em class="parameter"><code><a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPP.html#NMSettingPPP--require-mppe-128" title='The "require-mppe-128" property'><span class="type">"require-mppe-128"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> diff --git a/docs/libnm-util/html/NMSettingPPPOE.html b/docs/libnm-util/html/NMSettingPPPOE.html index bdbeeead..3f20ccec 100644 --- a/docs/libnm-util/html/NMSettingPPPOE.html +++ b/docs/libnm-util/html/NMSettingPPPOE.html @@ -220,8 +220,20 @@ Registers an error quark for <a class="link" href="NMSettingPPPOE.html" title="N <div class="refsect2"> <a name="nm-setting-pppoe-get-password"></a><h3>nm_setting_pppoe_get_password ()</h3> <pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_pppoe_get_password (<em class="parameter"><code><a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPPOE.html#NMSettingPPPOE--password" title='The "password" property'><span class="type">"password"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> @@ -258,7 +270,7 @@ Registers an error quark for <a class="link" href="NMSettingPPPOE.html" title="N </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>the <a class="link" href="NMSettingPPPOE.html#NMSettingPPPOE--password" title='The "password" property'><span class="type">"password"</span></a> property of the setting</td> +<td>the <a class="link" href="NMSettingPPPOE.html#NMSettingPPPOE--service" title='The "service" property'><span class="type">"service"</span></a> property of the setting</td> </tr> </tbody> </table></div> @@ -267,8 +279,20 @@ Registers an error quark for <a class="link" href="NMSettingPPPOE.html" title="N <div class="refsect2"> <a name="nm-setting-pppoe-get-username"></a><h3>nm_setting_pppoe_get_username ()</h3> <pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_pppoe_get_username (<em class="parameter"><code><a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> *setting</code></em>);</pre> -<p> -</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingPPPOE.html#NMSettingPPPOE--username" title='The "username" property'><span class="type">"username"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> diff --git a/docs/libnm-util/html/NMSettingVlan.html b/docs/libnm-util/html/NMSettingVlan.html new file mode 100644 index 00000000..cc50161e --- /dev/null +++ b/docs/libnm-util/html/NMSettingVlan.html @@ -0,0 +1,708 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>NMSettingVlan</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="index.html" title="libnm-util Reference Manual"> +<link rel="up" href="ch01.html" title="libnm-util API Reference"> +<link rel="prev" href="NMSettingInfiniband.html" title="NMSettingInfiniband"> +<link rel="next" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh"> +<meta name="generator" content="GTK-Doc V1.18 (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="NMSettingInfiniband.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> +<th width="100%" align="center">libnm-util Reference Manual</th> +<td><a accesskey="n" href="NMSettingOlpcMesh.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr> +<tr><td colspan="5" class="shortcuts"> +<a href="#NMSettingVlan.synopsis" class="shortcut">Top</a> + | + <a href="#NMSettingVlan.description" class="shortcut">Description</a> + | + <a href="#NMSettingVlan.object-hierarchy" class="shortcut">Object Hierarchy</a> + | + <a href="#NMSettingVlan.properties" class="shortcut">Properties</a> +</td></tr> +</table> +<div class="refentry"> +<a name="NMSettingVlan"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="NMSettingVlan.top_of_page"></a>NMSettingVlan</span></h2> +<p>NMSettingVlan — Describes connection properties for VLAN interfaces</p> +</td> +<td valign="top" align="right"></td> +</tr></table></div> +<div class="refsynopsisdiv"> +<a name="NMSettingVlan.synopsis"></a><h2>Synopsis</h2> +<a name="NMSettingVlanError"></a><a name="NMVlanFlags"></a><a name="NMVlanPriorityMap"></a><pre class="synopsis"> +#include <nm-setting-vlan.h> + + <a class="link" href="NMSettingVlan.html#NMSettingVlan-struct" title="NMSettingVlan">NMSettingVlan</a>; + <a class="link" href="NMSettingVlan.html#NMSettingVlanClass" title="NMSettingVlanClass">NMSettingVlanClass</a>; +enum <a class="link" href="NMSettingVlan.html#NMSettingVlanError-enum" title="enum NMSettingVlanError">NMSettingVlanError</a>; +enum <a class="link" href="NMSettingVlan.html#NMVlanFlags-enum" title="enum NMVlanFlags">NMVlanFlags</a>; +enum <a class="link" href="NMSettingVlan.html#NMVlanPriorityMap-enum" title="enum NMVlanPriorityMap">NMVlanPriorityMap</a>; +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-EGRESS-PRIORITY-MAP:CAPS" title="NM_SETTING_VLAN_EGRESS_PRIORITY_MAP">NM_SETTING_VLAN_EGRESS_PRIORITY_MAP</a> +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-ERROR:CAPS" title="NM_SETTING_VLAN_ERROR">NM_SETTING_VLAN_ERROR</a> +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-FLAGS:CAPS" title="NM_SETTING_VLAN_FLAGS">NM_SETTING_VLAN_FLAGS</a> +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-ID:CAPS" title="NM_SETTING_VLAN_ID">NM_SETTING_VLAN_ID</a> +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-INGRESS-PRIORITY-MAP:CAPS" title="NM_SETTING_VLAN_INGRESS_PRIORITY_MAP">NM_SETTING_VLAN_INGRESS_PRIORITY_MAP</a> +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-INTERFACE-NAME:CAPS" title="NM_SETTING_VLAN_INTERFACE_NAME">NM_SETTING_VLAN_INTERFACE_NAME</a> +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-PARENT:CAPS" title="NM_SETTING_VLAN_PARENT">NM_SETTING_VLAN_PARENT</a> +#define <a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-SETTING-NAME:CAPS" title="NM_SETTING_VLAN_SETTING_NAME">NM_SETTING_VLAN_SETTING_NAME</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="NMSettingVlan.html#nm-setting-vlan-add-priority" title="nm_setting_vlan_add_priority ()">nm_setting_vlan_add_priority</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> from</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to</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="NMSettingVlan.html#nm-setting-vlan-add-priority-str" title="nm_setting_vlan_add_priority_str ()">nm_setting_vlan_add_priority_str</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *str</code></em>); +<span class="returnvalue">void</span> <a class="link" href="NMSettingVlan.html#nm-setting-vlan-clear-priorities" title="nm_setting_vlan_clear_priorities ()">nm_setting_vlan_clear_priorities</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMSettingVlan.html#nm-setting-vlan-error-quark" title="nm_setting_vlan_error_quark ()">nm_setting_vlan_error_quark</a> (<em class="parameter"><code><span class="type">void</span></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="NMSettingVlan.html#nm-setting-vlan-get-flags" title="nm_setting_vlan_get_flags ()">nm_setting_vlan_get_flags</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-id" title="nm_setting_vlan_get_id ()">nm_setting_vlan_get_id</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-interface-name" title="nm_setting_vlan_get_interface_name ()">nm_setting_vlan_get_interface_name</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a> <a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-num-priorities" title="nm_setting_vlan_get_num_priorities ()">nm_setting_vlan_get_num_priorities</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>); +const <span class="returnvalue">char</span> * <a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-parent" title="nm_setting_vlan_get_parent ()">nm_setting_vlan_get_parent</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-priority" title="nm_setting_vlan_get_priority ()">nm_setting_vlan_get_priority</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *out_from</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *out_to</code></em>); +<a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * <a class="link" href="NMSettingVlan.html#nm-setting-vlan-new" title="nm_setting_vlan_new ()">nm_setting_vlan_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>); +<span class="returnvalue">void</span> <a class="link" href="NMSettingVlan.html#nm-setting-vlan-remove-priority" title="nm_setting_vlan_remove_priority ()">nm_setting_vlan_remove_priority</a> (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>); +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingVlan.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="NMSetting.html" title="NMSetting">NMSetting</a> + +----NMSettingVlan +</pre> +<pre class="synopsis"> + GEnum + +----NMSettingVlanError +</pre> +<pre class="synopsis"> + GEnum + +----NMVlanFlags +</pre> +<pre class="synopsis"> + GEnum + +----NMVlanPriorityMap +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingVlan.properties"></a><h2>Properties</h2> +<pre class="synopsis"> + "<a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'>egress-priority-map</a>" <span class="type">GSList_gchararray_</span>* : Read / Write + "<a class="link" href="NMSettingVlan.html#NMSettingVlan--flags" title='The "flags" property'>flags</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct + "<a class="link" href="NMSettingVlan.html#NMSettingVlan--id" title='The "id" property'>id</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct + "<a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'>ingress-priority-map</a>" <span class="type">GSList_gchararray_</span>* : Read / Write + "<a class="link" href="NMSettingVlan.html#NMSettingVlan--interface-name" title='The "interface-name" property'>interface-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct + "<a class="link" href="NMSettingVlan.html#NMSettingVlan--parent" title='The "parent" property'>parent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct +</pre> +</div> +<div class="refsect1"> +<a name="NMSettingVlan.description"></a><h2>Description</h2> +<p> +The <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties +necessary for connection to VLAN interfaces. +</p> +</div> +<div class="refsect1"> +<a name="NMSettingVlan.details"></a><h2>Details</h2> +<div class="refsect2"> +<a name="NMSettingVlan-struct"></a><h3>NMSettingVlan</h3> +<pre class="programlisting">typedef struct _NMSettingVlan NMSettingVlan;</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingVlanClass"></a><h3>NMSettingVlanClass</h3> +<pre class="programlisting">typedef struct { + NMSettingClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); +} NMSettingVlanClass; +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingVlanError-enum"></a><h3>enum NMSettingVlanError</h3> +<pre class="programlisting">typedef enum { + NM_SETTING_VLAN_ERROR_UNKNOWN = 0, /*< nick=Unknown >*/ + NM_SETTING_VLAN_ERROR_INVALID_PROPERTY, /*< nick=InvalidProperty >*/ + NM_SETTING_VLAN_ERROR_MISSING_PROPERTY /*< nick=MissingProperty >*/ +} NMSettingVlanError; +</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-SETTING-VLAN-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_VLAN_ERROR_UNKNOWN</code></span></p></td> +<td>unknown or unclassified error +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-VLAN-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_VLAN_ERROR_INVALID_PROPERTY</code></span></p></td> +<td>the property was invalid +</td> +</tr> +<tr> +<td><p><a name="NM-SETTING-VLAN-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_VLAN_ERROR_MISSING_PROPERTY</code></span></p></td> +<td>the property was missing and is +required +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NMVlanFlags-enum"></a><h3>enum NMVlanFlags</h3> +<pre class="programlisting">typedef enum { + NM_VLAN_FLAG_REORDER_HEADERS = 0x1, + NM_VLAN_FLAG_GVRP = 0x2, + NM_VLAN_FLAG_LOOSE_BINDING = 0x4, + + /* NOTE: if adding flags update nm-setting-vlan.c::verify() */ +} NMVlanFlags; +</pre> +<p> +<a class="link" href="NMSettingVlan.html#NMVlanFlags"><span class="type">NMVlanFlags</span></a> values control the behavior of the VLAN interface. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-VLAN-FLAG-REORDER-HEADERS:CAPS"></a><span class="term"><code class="literal">NM_VLAN_FLAG_REORDER_HEADERS</code></span></p></td> +<td>indicates that this interface should reorder + outgoing packet headers to look more like a non-VLAN ethernet interface +</td> +</tr> +<tr> +<td><p><a name="NM-VLAN-FLAG-GVRP:CAPS"></a><span class="term"><code class="literal">NM_VLAN_FLAG_GVRP</code></span></p></td> +<td>indicates that this interface should use GVRP to register + itself with it's switch +</td> +</tr> +<tr> +<td><p><a name="NM-VLAN-FLAG-LOOSE-BINDING:CAPS"></a><span class="term"><code class="literal">NM_VLAN_FLAG_LOOSE_BINDING</code></span></p></td> +<td>indicates that this interface's operating + state is tied to the underlying network interface but other details + (like routing) are not. +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NMVlanPriorityMap-enum"></a><h3>enum NMVlanPriorityMap</h3> +<pre class="programlisting">typedef enum { + NM_VLAN_INGRESS_MAP, + NM_VLAN_EGRESS_MAP +} NMVlanPriorityMap; +</pre> +<p> +A selector for traffic priority maps; these map Linux SKB priorities +to 802.1p priorities used in VLANs. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><a name="NM-VLAN-INGRESS-MAP:CAPS"></a><span class="term"><code class="literal">NM_VLAN_INGRESS_MAP</code></span></p></td> +<td>map for incoming data +</td> +</tr> +<tr> +<td><p><a name="NM-VLAN-EGRESS-MAP:CAPS"></a><span class="term"><code class="literal">NM_VLAN_EGRESS_MAP</code></span></p></td> +<td>map for outgoing data +</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-EGRESS-PRIORITY-MAP:CAPS"></a><h3>NM_SETTING_VLAN_EGRESS_PRIORITY_MAP</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_EGRESS_PRIORITY_MAP "egress-priority-map" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-ERROR:CAPS"></a><h3>NM_SETTING_VLAN_ERROR</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_ERROR nm_setting_vlan_error_quark () +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-FLAGS:CAPS"></a><h3>NM_SETTING_VLAN_FLAGS</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_FLAGS "flags" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-ID:CAPS"></a><h3>NM_SETTING_VLAN_ID</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_ID "id" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-INGRESS-PRIORITY-MAP:CAPS"></a><h3>NM_SETTING_VLAN_INGRESS_PRIORITY_MAP</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_INGRESS_PRIORITY_MAP "ingress-priority-map" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-INTERFACE-NAME:CAPS"></a><h3>NM_SETTING_VLAN_INTERFACE_NAME</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_INTERFACE_NAME "interface-name" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-PARENT:CAPS"></a><h3>NM_SETTING_VLAN_PARENT</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_PARENT "parent" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NM-SETTING-VLAN-SETTING-NAME:CAPS"></a><h3>NM_SETTING_VLAN_SETTING_NAME</h3> +<pre class="programlisting">#define NM_SETTING_VLAN_SETTING_NAME "vlan" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-add-priority"></a><h3>nm_setting_vlan_add_priority ()</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_vlan_add_priority (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> from</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to</code></em>);</pre> +<p> +Adds a priority mapping to the <a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'><span class="type">"ingress_priority_map"</span></a> or +<a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'><span class="type">"egress_priority_map"</span></a> properties of the setting. If <em class="parameter"><code>from</code></em> is +already in the given priority map, this function will overwrite the +existing entry with the new <em class="parameter"><code>to</code></em>. +</p> +<p> +If <em class="parameter"><code>map</code></em> is <a class="link" href="NMSettingVlan.html#NM-VLAN-INGRESS-MAP:CAPS"><span class="type">NM_VLAN_INGRESS_MAP</span></a> then <em class="parameter"><code>from</code></em> is the incoming 802.1q VLAN +Priority Code Point (PCP) value, and <em class="parameter"><code>to</code></em> is the Linux SKB priority value. +</p> +<p> +If <em class="parameter"><code>map</code></em> is <a class="link" href="NMSettingVlan.html#NM-VLAN-EGRESS-MAP:CAPS"><span class="type">NM_VLAN_EGRESS_MAP</span></a> then <em class="parameter"><code>from</code></em> is the Linux SKB priority value and +<em class="parameter"><code>to</code></em> is the outgoing 802.1q VLAN Priority Code Point (PCP) value. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>map</code></em> :</span></p></td> +<td>the type of priority map</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>from</code></em> :</span></p></td> +<td>the priority to map to <em class="parameter"><code>to</code></em> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>to</code></em> :</span></p></td> +<td>the priority to map <em class="parameter"><code>from</code></em> to</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>TRUE if the new priority mapping was successfully added to the +list, FALSE if error</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-add-priority-str"></a><h3>nm_setting_vlan_add_priority_str ()</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_vlan_add_priority_str (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code>const <span class="type">char</span> *str</code></em>);</pre> +<p> +Adds a priority map entry into either the <a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'><span class="type">"ingress_priority_map"</span></a> +or the <a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'><span class="type">"egress_priority_map"</span></a> properties. The priority map maps +the Linux SKB priorities to 802.1p priorities. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>map</code></em> :</span></p></td> +<td>the type of priority map</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td> +<td>the string which contains a priority map, like "3:7"</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>TRUE if the entry was successfully added to the list, or it +overwrote the old value, FALSE if error</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-clear-priorities"></a><h3>nm_setting_vlan_clear_priorities ()</h3> +<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_vlan_clear_priorities (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>);</pre> +<p> +Clear all the entires from <a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'><span class="type">"ingress_priority_map"</span></a> or +<a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'><span class="type">"egress_priority_map"</span></a> properties. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>map</code></em> :</span></p></td> +<td>the type of priority map</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-error-quark"></a><h3>nm_setting_vlan_error_quark ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_vlan_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Registers an error quark for <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> if necessary. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> errors.</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-get-flags"></a><h3>nm_setting_vlan_get_flags ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_vlan_get_flags (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html#NMSettingVlan--flags" title='The "flags" property'><span class="type">"flags"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-get-id"></a><h3>nm_setting_vlan_get_id ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_vlan_get_id (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html#NMSettingVlan--id" title='The "id" property'><span class="type">"id"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-get-interface-name"></a><h3>nm_setting_vlan_get_interface_name ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_vlan_get_interface_name (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html#NMSettingVlan--interface-name" title='The "interface-name" property'><span class="type">"interface_name"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-get-num-priorities"></a><h3>nm_setting_vlan_get_num_priorities ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a> nm_setting_vlan_get_num_priorities (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>);</pre> +<p> +Returns the number of entires in the +<a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'><span class="type">"ingress_priority_map"</span></a> or <a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'><span class="type">"egress_priority_map"</span></a> +properties of this setting. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>map</code></em> :</span></p></td> +<td>the type of priority map</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>return the number of ingress/egress priority entries, -1 if error</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-get-parent"></a><h3>nm_setting_vlan_get_parent ()</h3> +<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_vlan_get_parent (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html#NMSettingVlan--parent" title='The "parent" property'><span class="type">"parent"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-get-priority"></a><h3>nm_setting_vlan_get_priority ()</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_vlan_get_priority (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *out_from</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *out_to</code></em>);</pre> +<p> +Retrieve one of the entries of the <a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'><span class="type">"ingress_priority_map"</span></a> +or <a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'><span class="type">"egress_priority_map"</span></a> properties of this setting. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>map</code></em> :</span></p></td> +<td>the type of priority map</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td> +<td>the zero-based index of the ingress/egress priority map entry</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>out_from</code></em> :</span></p></td> +<td>on return the value of the priority map's 'from' item. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>out_to</code></em> :</span></p></td> +<td>on return the value of priority map's 'to' item. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a priority map was returned, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if error</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-new"></a><h3>nm_setting_vlan_new ()</h3> +<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_vlan_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<p> +Creates a new <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> object with default values. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the new empty <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> +</td> +</tr></tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="nm-setting-vlan-remove-priority"></a><h3>nm_setting_vlan_remove_priority ()</h3> +<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_vlan_remove_priority (<em class="parameter"><code><a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> *setting</code></em>, + <em class="parameter"><code><a class="link" href="NMSettingVlan.html#NMVlanPriorityMap"><span class="type">NMVlanPriorityMap</span></a> map</code></em>, + <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>);</pre> +<p> +Removes the priority map at index <em class="parameter"><code>idx</code></em> from the +<a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'><span class="type">"ingress_priority_map"</span></a> or <a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'><span class="type">"egress_priority_map"</span></a> +properties. +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingVlan.html" title="NMSettingVlan"><span class="type">NMSettingVlan</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>map</code></em> :</span></p></td> +<td>the type of priority map</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td> +<td>the zero-based index of the priority map to remove</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<div class="refsect1"> +<a name="NMSettingVlan.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="NMSettingVlan--egress-priority-map"></a><h3>The <code class="literal">"egress-priority-map"</code> property</h3> +<pre class="programlisting"> "egress-priority-map" <span class="type">GSList_gchararray_</span>* : Read / Write</pre> +<p> +For outgoing packets, a list of mappings from Linux SKB priorities to +802.1p priorities. The mapping is given in the format 'from:to' +where both 'from' and 'to' are unsigned integers, ie '7:3'. +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingVlan--flags"></a><h3>The <code class="literal">"flags"</code> property</h3> +<pre class="programlisting"> "flags" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<p> +One or more of <a class="link" href="NMSettingVlan.html#NMVlanFlags"><code class="literal">NMVlanFlags</code></a> which control the behavior and features of +the VLAN interface. +</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingVlan--id"></a><h3>The <code class="literal">"id"</code> property</h3> +<pre class="programlisting"> "id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<p> +The VLAN identifier the interface created by this connection should be +assigned. +</p> +<p>Allowed values: <= 4095</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingVlan--ingress-priority-map"></a><h3>The <code class="literal">"ingress-priority-map"</code> property</h3> +<pre class="programlisting"> "ingress-priority-map" <span class="type">GSList_gchararray_</span>* : Read / Write</pre> +<p> +For incoming packets, a list of mappings from 802.1p priorities to Linux +SKB priorities. The mapping is given in the format 'from:to' where both +'from' and 'to' are unsigned integers, ie '7:3'. +</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingVlan--interface-name"></a><h3>The <code class="literal">"interface-name"</code> property</h3> +<pre class="programlisting"> "interface-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<p> +If given, specifies the kernel name of the VLAN interface. If not given, +a default name will be constructed from the interface described by the +parent interface and the <a class="link" href="NMSettingVlan.html#NMSettingVlan--id" title='The "id" property'><span class="type">"id"</span></a> , ex 'eth2.1'. The parent +interface may be given by the <a class="link" href="NMSettingVlan.html#NMSettingVlan--parent" title='The "parent" property'><span class="type">"parent"</span></a> property or by a +hardware address property, eg <a class="link" href="NMSettingWired.html#NMSettingWired--mac-address" title='The "mac-address" property'><span class="type">"mac-address"</span></a> or +<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mac-address" title='The "mac-address" property'><span class="type">"mac-address"</span></a>. +</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="NMSettingVlan--parent"></a><h3>The <code class="literal">"parent"</code> property</h3> +<pre class="programlisting"> "parent" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<p> +If given, specifies the parent interface name or parent connection UUID +from which this VLAN interface should be created. If this property is +not specified, the connection must contain a hardware address in a +hardware-specific setting, like <a class="link" href="NMSettingWired.html#NMSettingWired--mac-address" title='The "mac-address" property'><span class="type">"mac-address"</span></a> or +<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mac-address" title='The "mac-address" property'><span class="type">"mac-address"</span></a>. +</p> +<p>Default value: NULL</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.18</div> +</body> +</html> \ No newline at end of file diff --git a/docs/libnm-util/html/NMSettingWimax.html b/docs/libnm-util/html/NMSettingWimax.html index 66f68ba9..ee30d02e 100644 --- a/docs/libnm-util/html/NMSettingWimax.html +++ b/docs/libnm-util/html/NMSettingWimax.html @@ -7,7 +7,7 @@ <link rel="home" href="index.html" title="libnm-util Reference Manual"> <link rel="up" href="ch01.html" title="libnm-util API Reference"> <link rel="prev" href="NMSettingGsm.html" title="NMSettingGsm"> -<link rel="next" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh"> +<link rel="next" href="NMSettingBond.html" title="NMSettingBond"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> @@ -18,7 +18,7 @@ <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">libnm-util Reference Manual</th> -<td><a accesskey="n" href="NMSettingOlpcMesh.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="NMSettingBond.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#NMSettingWimax.synopsis" class="shortcut">Top</a> diff --git a/docs/libnm-util/html/NMSettingWireless.html b/docs/libnm-util/html/NMSettingWireless.html index ab05340e..85e17c1d 100644 --- a/docs/libnm-util/html/NMSettingWireless.html +++ b/docs/libnm-util/html/NMSettingWireless.html @@ -52,6 +52,7 @@ enum <a class="link" href="NMSettingWireless.html#NMSettingWirele #define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-CHANNEL:CAPS" title="NM_SETTING_WIRELESS_CHANNEL">NM_SETTING_WIRELESS_CHANNEL</a> #define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS" title="NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS">NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS</a> #define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR:CAPS" title="NM_SETTING_WIRELESS_ERROR">NM_SETTING_WIRELESS_ERROR</a> +#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-HIDDEN:CAPS" title="NM_SETTING_WIRELESS_HIDDEN">NM_SETTING_WIRELESS_HIDDEN</a> #define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS" title="NM_SETTING_WIRELESS_MAC_ADDRESS">NM_SETTING_WIRELESS_MAC_ADDRESS</a> #define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS" title="NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST">NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST</a> #define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MODE:CAPS" title="NM_SETTING_WIRELESS_MODE">NM_SETTING_WIRELESS_MODE</a> @@ -79,6 +80,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.htm <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-channel" title="nm_setting_wireless_get_channel ()">nm_setting_wireless_get_channel</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>); const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-cloned-mac-address" title="nm_setting_wireless_get_cloned_mac_address ()">nm_setting_wireless_get_cloned_mac_address</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>); +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-hidden" title="nm_setting_wireless_get_hidden ()">nm_setting_wireless_get_hidden</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>); const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mac-address" title="nm_setting_wireless_get_mac_address ()">nm_setting_wireless_get_mac_address</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>); const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist" title="nm_setting_wireless_get_mac_address_blacklist ()">nm_setting_wireless_get_mac_address_blacklist</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>); @@ -114,6 +116,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.htm "<a class="link" href="NMSettingWireless.html#NMSettingWireless--bssid" title='The "bssid" property'>bssid</a>" <span class="type">GArray_guchar_</span>* : Read / Write "<a class="link" href="NMSettingWireless.html#NMSettingWireless--channel" title='The "channel" property'>channel</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct "<a class="link" href="NMSettingWireless.html#NMSettingWireless--cloned-mac-address" title='The "cloned-mac-address" property'>cloned-mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write + "<a class="link" href="NMSettingWireless.html#NMSettingWireless--hidden" title='The "hidden" property'>hidden</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write "<a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address" title='The "mac-address" property'>mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write "<a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address-blacklist" title='The "mac-address-blacklist" property'>mac-address-blacklist</a>" <span class="type">GSList_gchararray_</span>* : Read / Write "<a class="link" href="NMSettingWireless.html#NMSettingWireless--mode" title='The "mode" property'>mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write @@ -243,6 +246,14 @@ set to a value that requires the <a class="link" href="NMSettingWireless.html#NM </div> <hr> <div class="refsect2"> +<a name="NM-SETTING-WIRELESS-HIDDEN:CAPS"></a><h3>NM_SETTING_WIRELESS_HIDDEN</h3> +<pre class="programlisting">#define NM_SETTING_WIRELESS_HIDDEN "hidden" +</pre> +<p> +</p> +</div> +<hr> +<div class="refsect2"> <a name="NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS"></a><h3>NM_SETTING_WIRELESS_MAC_ADDRESS</h3> <pre class="programlisting">#define NM_SETTING_WIRELESS_MAC_ADDRESS "mac-address" </pre> @@ -522,6 +533,25 @@ Registers an error quark for <a class="link" href="NMSettingWireless.html" title </div> <hr> <div class="refsect2"> +<a name="nm-setting-wireless-get-hidden"></a><h3>nm_setting_wireless_get_hidden ()</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_wireless_get_hidden (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td> +<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--hidden" title='The "hidden" property'><span class="type">"hidden"</span></a> property of the setting</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> <a name="nm-setting-wireless-get-mac-address"></a><h3>nm_setting_wireless_get_mac_address ()</h3> <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wireless_get_mac_address (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre> <div class="variablelist"><table border="0"> @@ -786,6 +816,19 @@ permanent MAC address. This is known as MAC cloning or spoofing. </div> <hr> <div class="refsect2"> +<a name="NMSettingWireless--hidden"></a><h3>The <code class="literal">"hidden"</code> property</h3> +<pre class="programlisting"> "hidden" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<p> +If <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, indicates this network is a non-broadcasting network that +hides its SSID. In this case various workarounds may take place, such +as probe-scanning the SSID for more reliable network discovery. However, +these workarounds expose inherent insecurities with hidden SSID networks, +and thus hidden SSID networks should be used with caution. +</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> <a name="NMSettingWireless--mac-address"></a><h3>The <code class="literal">"mac-address"</code> property</h3> <pre class="programlisting"> "mac-address" <span class="type">GArray_guchar_</span>* : Read / Write</pre> <p> diff --git a/docs/libnm-util/html/NMSettingWirelessSecurity.html b/docs/libnm-util/html/NMSettingWirelessSecurity.html index b9022091..94ff1432 100644 --- a/docs/libnm-util/html/NMSettingWirelessSecurity.html +++ b/docs/libnm-util/html/NMSettingWirelessSecurity.html @@ -653,7 +653,15 @@ specified then all protocols are allowed. <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_wireless_security_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p> +Registers an error quark for <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> if necessary. </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody><tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>the error quark used for <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> errors.</td> +</tr></tbody> +</table></div> </div> <hr> <div class="refsect2"> diff --git a/docs/libnm-util/html/api-index-full.html b/docs/libnm-util/html/api-index-full.html index 9f287353..7ceff0ba 100644 --- a/docs/libnm-util/html/api-index-full.html +++ b/docs/libnm-util/html/api-index-full.html @@ -123,6 +123,10 @@ </dt> <dd></dd> <dt> +<a class="link" href="NMConnection.html#nm-connection-get-setting-adsl" title="nm_connection_get_setting_adsl ()">nm_connection_get_setting_adsl</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-get-setting-bluetooth" title="nm_connection_get_setting_bluetooth ()">nm_connection_get_setting_bluetooth</a>, function in <a class="link" href="NMConnection.html" title="NMConnection">NMConnection</a> </dt> <dd></dd> @@ -617,6 +621,46 @@ </dt> <dd></dd> <dt> +NMSettingAdsl, struct in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdsl:encapsulation, object property in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdsl:password, object property in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdsl:password-flags, object property in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdsl:protocol, object property in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdsl:username, object property in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdsl:vci, object property in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdsl:vpi, object property in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdslClass, struct in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NMSettingAdslError, enum in NMSettingAdsl +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingBluetooth.html#NMSettingBluetooth-struct" title="NMSettingBluetooth">NMSettingBluetooth</a>, struct in <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth">NMSettingBluetooth</a> </dt> <dd></dd> @@ -637,23 +681,23 @@ </dt> <dd></dd> <dt> -NMSettingBond, struct in NMSettingBond +<a class="link" href="NMSettingBond.html#NMSettingBond-struct" title="NMSettingBond">NMSettingBond</a>, struct in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NMSettingBond:interface-name, object property in NMSettingBond +<a class="link" href="NMSettingBond.html#NMSettingBond--interface-name" title='The "interface-name" property'>NMSettingBond:interface-name</a>, object property in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NMSettingBond:options, object property in NMSettingBond +<a class="link" href="NMSettingBond.html#NMSettingBond--options" title='The "options" property'>NMSettingBond:options</a>, object property in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NMSettingBondClass, struct in NMSettingBond +<a class="link" href="NMSettingBond.html#NMSettingBondClass" title="NMSettingBondClass">NMSettingBondClass</a>, struct in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NMSettingBondError, enum in NMSettingBond +<a class="link" href="NMSettingBond.html#NMSettingBondError-enum" title="enum NMSettingBondError">NMSettingBondError</a>, enum in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> @@ -825,27 +869,27 @@ NMSettingBondError, enum in NMSettingBond </dt> <dd></dd> <dt> -NMSettingInfiniband, struct in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband-struct" title="NMSettingInfiniband">NMSettingInfiniband</a>, struct in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NMSettingInfiniband:mac-address, object property in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mac-address" title='The "mac-address" property'>NMSettingInfiniband:mac-address</a>, object property in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NMSettingInfiniband:mtu, object property in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--mtu" title='The "mtu" property'>NMSettingInfiniband:mtu</a>, object property in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NMSettingInfiniband:transport-mode, object property in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NMSettingInfiniband--transport-mode" title='The "transport-mode" property'>NMSettingInfiniband:transport-mode</a>, object property in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NMSettingInfinibandClass, struct in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NMSettingInfinibandClass" title="NMSettingInfinibandClass">NMSettingInfinibandClass</a>, struct in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NMSettingInfinibandError, enum in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NMSettingInfinibandError-enum" title="enum NMSettingInfinibandError">NMSettingInfinibandError</a>, enum in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> @@ -1141,39 +1185,39 @@ NMSettingInfinibandError, enum in NMSettingInfiniband </dt> <dd></dd> <dt> -NMSettingVlan, struct in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlan-struct" title="NMSettingVlan">NMSettingVlan</a>, struct in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlan:egress-priority-map, object property in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlan--egress-priority-map" title='The "egress-priority-map" property'>NMSettingVlan:egress-priority-map</a>, object property in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlan:flags, object property in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlan--flags" title='The "flags" property'>NMSettingVlan:flags</a>, object property in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlan:id, object property in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlan--id" title='The "id" property'>NMSettingVlan:id</a>, object property in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlan:ingress-priority-map, object property in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlan--ingress-priority-map" title='The "ingress-priority-map" property'>NMSettingVlan:ingress-priority-map</a>, object property in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlan:interface-name, object property in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlan--interface-name" title='The "interface-name" property'>NMSettingVlan:interface-name</a>, object property in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlan:parent, object property in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlan--parent" title='The "parent" property'>NMSettingVlan:parent</a>, object property in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlanClass, struct in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlanClass" title="NMSettingVlanClass">NMSettingVlanClass</a>, struct in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMSettingVlanError, enum in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMSettingVlanError-enum" title="enum NMSettingVlanError">NMSettingVlanError</a>, enum in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> @@ -1301,6 +1345,10 @@ NMSettingVlanError, enum in NMSettingVlan </dt> <dd></dd> <dt> +<a class="link" href="NMSettingWireless.html#NMSettingWireless--hidden" title='The "hidden" property'>NMSettingWireless:hidden</a>, object property in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address" title='The "mac-address" property'>NMSettingWireless:mac-address</a>, object property in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a> </dt> <dd></dd> @@ -1825,6 +1873,98 @@ NMSettingVlanError, enum in NMSettingVlan </dt> <dd></dd> <dt> +NM_SETTING_ADSL_ENCAPSULATION, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_ENCAPSULATION_LLC, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_ENCAPSULATION_VCMUX, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_ERROR, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_error_quark, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_get_encapsulation, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_get_password, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_get_password_flags, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_get_protocol, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_get_username, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_get_vci, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_get_vpi, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +nm_setting_adsl_new, function in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_PASSWORD, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_PASSWORD_FLAGS, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_PROTOCOL, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_PROTOCOL_IPOATM, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_PROTOCOL_PPPOA, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_PROTOCOL_PPPOE, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_SETTING_NAME, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_USERNAME, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_VCI, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> +NM_SETTING_ADSL_VPI, macro in NMSettingAdsl +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-BDADDR:CAPS" title="NM_SETTING_BLUETOOTH_BDADDR">NM_SETTING_BLUETOOTH_BDADDR</a>, macro in <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth">NMSettingBluetooth</a> </dt> <dd></dd> @@ -1865,83 +2005,83 @@ NMSettingVlanError, enum in NMSettingVlan </dt> <dd></dd> <dt> -nm_setting_bond_add_option, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-add-option" title="nm_setting_bond_add_option ()">nm_setting_bond_add_option</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_ERROR, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-ERROR:CAPS" title="NM_SETTING_BOND_ERROR">NM_SETTING_BOND_ERROR</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_error_quark, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-error-quark" title="nm_setting_bond_error_quark ()">nm_setting_bond_error_quark</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_get_interface_name, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-get-interface-name" title="nm_setting_bond_get_interface_name ()">nm_setting_bond_get_interface_name</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_get_num_options, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-get-num-options" title="nm_setting_bond_get_num_options ()">nm_setting_bond_get_num_options</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_get_option, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-get-option" title="nm_setting_bond_get_option ()">nm_setting_bond_get_option</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_get_option_by_name, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-get-option-by-name" title="nm_setting_bond_get_option_by_name ()">nm_setting_bond_get_option_by_name</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_get_option_default, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-get-option-default" title="nm_setting_bond_get_option_default ()">nm_setting_bond_get_option_default</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_get_valid_options, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-get-valid-options" title="nm_setting_bond_get_valid_options ()">nm_setting_bond_get_valid_options</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_INTERFACE_NAME, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-INTERFACE-NAME:CAPS" title="NM_SETTING_BOND_INTERFACE_NAME">NM_SETTING_BOND_INTERFACE_NAME</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_new, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-new" title="nm_setting_bond_new ()">nm_setting_bond_new</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_OPTIONS, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTIONS:CAPS" title="NM_SETTING_BOND_OPTIONS">NM_SETTING_BOND_OPTIONS</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_OPTION_ARP_INTERVAL, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-INTERVAL:CAPS" title="NM_SETTING_BOND_OPTION_ARP_INTERVAL">NM_SETTING_BOND_OPTION_ARP_INTERVAL</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_OPTION_ARP_IP_TARGET, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-IP-TARGET:CAPS" title="NM_SETTING_BOND_OPTION_ARP_IP_TARGET">NM_SETTING_BOND_OPTION_ARP_IP_TARGET</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_OPTION_DOWNDELAY, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-DOWNDELAY:CAPS" title="NM_SETTING_BOND_OPTION_DOWNDELAY">NM_SETTING_BOND_OPTION_DOWNDELAY</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_OPTION_MIIMON, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-MIIMON:CAPS" title="NM_SETTING_BOND_OPTION_MIIMON">NM_SETTING_BOND_OPTION_MIIMON</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_OPTION_MODE, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-MODE:CAPS" title="NM_SETTING_BOND_OPTION_MODE">NM_SETTING_BOND_OPTION_MODE</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_OPTION_UPDELAY, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-OPTION-UPDELAY:CAPS" title="NM_SETTING_BOND_OPTION_UPDELAY">NM_SETTING_BOND_OPTION_UPDELAY</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -nm_setting_bond_remove_option, function in NMSettingBond +<a class="link" href="NMSettingBond.html#nm-setting-bond-remove-option" title="nm_setting_bond_remove_option ()">nm_setting_bond_remove_option</a>, function in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> -NM_SETTING_BOND_SETTING_NAME, macro in NMSettingBond +<a class="link" href="NMSettingBond.html#NM-SETTING-BOND-SETTING-NAME:CAPS" title="NM_SETTING_BOND_SETTING_NAME">NM_SETTING_BOND_SETTING_NAME</a>, macro in <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> </dt> <dd></dd> <dt> @@ -2277,43 +2417,43 @@ NM_SETTING_BOND_SETTING_NAME, macro in NMSettingBond </dt> <dd></dd> <dt> -NM_SETTING_INFINIBAND_ERROR, macro in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR:CAPS" title="NM_SETTING_INFINIBAND_ERROR">NM_SETTING_INFINIBAND_ERROR</a>, macro in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -nm_setting_infiniband_error_quark, function in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-error-quark" title="nm_setting_infiniband_error_quark ()">nm_setting_infiniband_error_quark</a>, function in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -nm_setting_infiniband_get_mac_address, function in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-get-mac-address" title="nm_setting_infiniband_get_mac_address ()">nm_setting_infiniband_get_mac_address</a>, function in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -nm_setting_infiniband_get_mtu, function in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-get-mtu" title="nm_setting_infiniband_get_mtu ()">nm_setting_infiniband_get_mtu</a>, function in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -nm_setting_infiniband_get_transport_mode, function in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-get-transport-mode" title="nm_setting_infiniband_get_transport_mode ()">nm_setting_infiniband_get_transport_mode</a>, function in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NM_SETTING_INFINIBAND_MAC_ADDRESS, macro in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MAC-ADDRESS:CAPS" title="NM_SETTING_INFINIBAND_MAC_ADDRESS">NM_SETTING_INFINIBAND_MAC_ADDRESS</a>, macro in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NM_SETTING_INFINIBAND_MTU, macro in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MTU:CAPS" title="NM_SETTING_INFINIBAND_MTU">NM_SETTING_INFINIBAND_MTU</a>, macro in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -nm_setting_infiniband_new, function in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#nm-setting-infiniband-new" title="nm_setting_infiniband_new ()">nm_setting_infiniband_new</a>, function in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NM_SETTING_INFINIBAND_SETTING_NAME, macro in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-SETTING-NAME:CAPS" title="NM_SETTING_INFINIBAND_SETTING_NAME">NM_SETTING_INFINIBAND_SETTING_NAME</a>, macro in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> -NM_SETTING_INFINIBAND_TRANSPORT_MODE, macro in NMSettingInfiniband +<a class="link" href="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-TRANSPORT-MODE:CAPS" title="NM_SETTING_INFINIBAND_TRANSPORT_MODE">NM_SETTING_INFINIBAND_TRANSPORT_MODE</a>, macro in <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> </dt> <dd></dd> <dt> @@ -3053,83 +3193,83 @@ NM_SETTING_SECRET_FLAGS_ALL, macro in nm-setting-private </dt> <dd></dd> <dt> -nm_setting_vlan_add_priority, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-add-priority" title="nm_setting_vlan_add_priority ()">nm_setting_vlan_add_priority</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_add_priority_str, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-add-priority-str" title="nm_setting_vlan_add_priority_str ()">nm_setting_vlan_add_priority_str</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_clear_priorities, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-clear-priorities" title="nm_setting_vlan_clear_priorities ()">nm_setting_vlan_clear_priorities</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_EGRESS_PRIORITY_MAP, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-EGRESS-PRIORITY-MAP:CAPS" title="NM_SETTING_VLAN_EGRESS_PRIORITY_MAP">NM_SETTING_VLAN_EGRESS_PRIORITY_MAP</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_ERROR, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-ERROR:CAPS" title="NM_SETTING_VLAN_ERROR">NM_SETTING_VLAN_ERROR</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_error_quark, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-error-quark" title="nm_setting_vlan_error_quark ()">nm_setting_vlan_error_quark</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_FLAGS, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-FLAGS:CAPS" title="NM_SETTING_VLAN_FLAGS">NM_SETTING_VLAN_FLAGS</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_get_flags, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-flags" title="nm_setting_vlan_get_flags ()">nm_setting_vlan_get_flags</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_get_id, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-id" title="nm_setting_vlan_get_id ()">nm_setting_vlan_get_id</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_get_interface_name, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-interface-name" title="nm_setting_vlan_get_interface_name ()">nm_setting_vlan_get_interface_name</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_get_num_priorities, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-num-priorities" title="nm_setting_vlan_get_num_priorities ()">nm_setting_vlan_get_num_priorities</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_get_parent, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-parent" title="nm_setting_vlan_get_parent ()">nm_setting_vlan_get_parent</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_get_priority, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-get-priority" title="nm_setting_vlan_get_priority ()">nm_setting_vlan_get_priority</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_ID, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-ID:CAPS" title="NM_SETTING_VLAN_ID">NM_SETTING_VLAN_ID</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_INGRESS_PRIORITY_MAP, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-INGRESS-PRIORITY-MAP:CAPS" title="NM_SETTING_VLAN_INGRESS_PRIORITY_MAP">NM_SETTING_VLAN_INGRESS_PRIORITY_MAP</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_INTERFACE_NAME, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-INTERFACE-NAME:CAPS" title="NM_SETTING_VLAN_INTERFACE_NAME">NM_SETTING_VLAN_INTERFACE_NAME</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_new, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-new" title="nm_setting_vlan_new ()">nm_setting_vlan_new</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_PARENT, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-PARENT:CAPS" title="NM_SETTING_VLAN_PARENT">NM_SETTING_VLAN_PARENT</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -nm_setting_vlan_remove_priority, function in NMSettingVlan +<a class="link" href="NMSettingVlan.html#nm-setting-vlan-remove-priority" title="nm_setting_vlan_remove_priority ()">nm_setting_vlan_remove_priority</a>, function in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NM_SETTING_VLAN_SETTING_NAME, macro in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NM-SETTING-VLAN-SETTING-NAME:CAPS" title="NM_SETTING_VLAN_SETTING_NAME">NM_SETTING_VLAN_SETTING_NAME</a>, macro in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> @@ -3413,6 +3553,10 @@ NM_SETTING_VLAN_SETTING_NAME, macro in NMSettingVlan </dt> <dd></dd> <dt> +<a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-hidden" title="nm_setting_wireless_get_hidden ()">nm_setting_wireless_get_hidden</a>, function in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mac-address" title="nm_setting_wireless_get_mac_address ()">nm_setting_wireless_get_mac_address</a>, function in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a> </dt> <dd></dd> @@ -3453,6 +3597,10 @@ NM_SETTING_VLAN_SETTING_NAME, macro in NMSettingVlan </dt> <dd></dd> <dt> +<a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-HIDDEN:CAPS" title="NM_SETTING_WIRELESS_HIDDEN">NM_SETTING_WIRELESS_HIDDEN</a>, macro in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a> +</dt> +<dd></dd> +<dt> <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS" title="NM_SETTING_WIRELESS_MAC_ADDRESS">NM_SETTING_WIRELESS_MAC_ADDRESS</a>, macro in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a> </dt> <dd></dd> @@ -3843,11 +3991,11 @@ NM_SETTING_VLAN_SETTING_NAME, macro in NMSettingVlan <dd></dd> <a name="idxV"></a><h3 class="title">V</h3> <dt> -NMVlanFlags, enum in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMVlanFlags-enum" title="enum NMVlanFlags">NMVlanFlags</a>, enum in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> -NMVlanPriorityMap, enum in NMSettingVlan +<a class="link" href="NMSettingVlan.html#NMVlanPriorityMap-enum" title="enum NMVlanPriorityMap">NMVlanPriorityMap</a>, enum in <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> </dt> <dd></dd> <dt> diff --git a/docs/libnm-util/html/ch01.html b/docs/libnm-util/html/ch01.html index c23e7223..1cddc6b2 100644 --- a/docs/libnm-util/html/ch01.html +++ b/docs/libnm-util/html/ch01.html @@ -21,7 +21,7 @@ </tr></table> <div class="chapter"> <div class="titlepage"><div><div><h2 class="title"> -<a name="id500813"></a>libnm-util API Reference</h2></div></div></div> +<a name="id507708"></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> @@ -59,6 +59,15 @@ serial communications</span> <span class="refentrytitle"><a href="NMSettingWimax.html">NMSettingWimax</a></span><span class="refpurpose"> — Describes 802.16e Mobile WiMAX connection properties</span> </dt> <dt> +<span class="refentrytitle"><a href="NMSettingBond.html">NMSettingBond</a></span><span class="refpurpose"> — Describes connection properties for bonds</span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMSettingInfiniband.html">NMSettingInfiniband</a></span><span class="refpurpose"> — Describes connection properties for IP-over-InfiniBand networks</span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMSettingVlan.html">NMSettingVlan</a></span><span class="refpurpose"> — Describes connection properties for VLAN interfaces</span> +</dt> +<dt> <span class="refentrytitle"><a href="NMSettingOlpcMesh.html">NMSettingOlpcMesh</a></span><span class="refpurpose"></span> </dt> <dt> diff --git a/docs/libnm-util/html/index.html b/docs/libnm-util/html/index.html index 6f6ac022..dea375f6 100644 --- a/docs/libnm-util/html/index.html +++ b/docs/libnm-util/html/index.html @@ -61,6 +61,15 @@ serial communications</span> <span class="refentrytitle"><a href="NMSettingWimax.html">NMSettingWimax</a></span><span class="refpurpose"> — Describes 802.16e Mobile WiMAX connection properties</span> </dt> <dt> +<span class="refentrytitle"><a href="NMSettingBond.html">NMSettingBond</a></span><span class="refpurpose"> — Describes connection properties for bonds</span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMSettingInfiniband.html">NMSettingInfiniband</a></span><span class="refpurpose"> — Describes connection properties for IP-over-InfiniBand networks</span> +</dt> +<dt> +<span class="refentrytitle"><a href="NMSettingVlan.html">NMSettingVlan</a></span><span class="refpurpose"> — Describes connection properties for VLAN interfaces</span> +</dt> +<dt> <span class="refentrytitle"><a href="NMSettingOlpcMesh.html">NMSettingOlpcMesh</a></span><span class="refpurpose"></span> </dt> <dt> diff --git a/docs/libnm-util/html/index.sgml b/docs/libnm-util/html/index.sgml index 18260e91..c2b27338 100644 --- a/docs/libnm-util/html/index.sgml +++ b/docs/libnm-util/html/index.sgml @@ -30,6 +30,7 @@ <ANCHOR id="nm-connection-get-path" href="libnm-util/NMConnection.html#nm-connection-get-path"> <ANCHOR id="nm-connection-get-setting" href="libnm-util/NMConnection.html#nm-connection-get-setting"> <ANCHOR id="nm-connection-get-setting-802-1x" href="libnm-util/NMConnection.html#nm-connection-get-setting-802-1x"> +<ANCHOR id="nm-connection-get-setting-adsl" href="libnm-util/NMConnection.html#nm-connection-get-setting-adsl"> <ANCHOR id="nm-connection-get-setting-bluetooth" href="libnm-util/NMConnection.html#nm-connection-get-setting-bluetooth"> <ANCHOR id="nm-connection-get-setting-bond" href="libnm-util/NMConnection.html#nm-connection-get-setting-bond"> <ANCHOR id="nm-connection-get-setting-by-name" href="libnm-util/NMConnection.html#nm-connection-get-setting-by-name"> @@ -268,6 +269,7 @@ <ANCHOR id="NM-SETTING-WIRELESS-CHANNEL:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-CHANNEL:CAPS"> <ANCHOR id="NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS"> <ANCHOR id="NM-SETTING-WIRELESS-ERROR:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR:CAPS"> +<ANCHOR id="NM-SETTING-WIRELESS-HIDDEN:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-HIDDEN:CAPS"> <ANCHOR id="NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS"> <ANCHOR id="NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS"> <ANCHOR id="NM-SETTING-WIRELESS-MODE:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-MODE:CAPS"> @@ -287,6 +289,7 @@ <ANCHOR id="nm-setting-wireless-get-bssid" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-bssid"> <ANCHOR id="nm-setting-wireless-get-channel" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-channel"> <ANCHOR id="nm-setting-wireless-get-cloned-mac-address" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-cloned-mac-address"> +<ANCHOR id="nm-setting-wireless-get-hidden" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-hidden"> <ANCHOR id="nm-setting-wireless-get-mac-address" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-mac-address"> <ANCHOR id="nm-setting-wireless-get-mac-address-blacklist" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist"> <ANCHOR id="nm-setting-wireless-get-mode" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-mode"> @@ -303,6 +306,7 @@ <ANCHOR id="NMSettingWireless--bssid" href="libnm-util/NMSettingWireless.html#NMSettingWireless--bssid"> <ANCHOR id="NMSettingWireless--channel" href="libnm-util/NMSettingWireless.html#NMSettingWireless--channel"> <ANCHOR id="NMSettingWireless--cloned-mac-address" href="libnm-util/NMSettingWireless.html#NMSettingWireless--cloned-mac-address"> +<ANCHOR id="NMSettingWireless--hidden" href="libnm-util/NMSettingWireless.html#NMSettingWireless--hidden"> <ANCHOR id="NMSettingWireless--mac-address" href="libnm-util/NMSettingWireless.html#NMSettingWireless--mac-address"> <ANCHOR id="NMSettingWireless--mac-address-blacklist" href="libnm-util/NMSettingWireless.html#NMSettingWireless--mac-address-blacklist"> <ANCHOR id="NMSettingWireless--mode" href="libnm-util/NMSettingWireless.html#NMSettingWireless--mode"> @@ -593,6 +597,120 @@ <ANCHOR id="NMSettingWimax.property-details" href="libnm-util/NMSettingWimax.html#NMSettingWimax.property-details"> <ANCHOR id="NMSettingWimax--mac-address" href="libnm-util/NMSettingWimax.html#NMSettingWimax--mac-address"> <ANCHOR id="NMSettingWimax--network-name" href="libnm-util/NMSettingWimax.html#NMSettingWimax--network-name"> +<ANCHOR id="NMSettingBond" href="libnm-util/NMSettingBond.html"> +<ANCHOR id="NMSettingBond.synopsis" href="libnm-util/NMSettingBond.html#NMSettingBond.synopsis"> +<ANCHOR id="NMSettingBondError" href="libnm-util/NMSettingBond.html#NMSettingBondError"> +<ANCHOR id="NMSettingBond.object-hierarchy" href="libnm-util/NMSettingBond.html#NMSettingBond.object-hierarchy"> +<ANCHOR id="NMSettingBond.properties" href="libnm-util/NMSettingBond.html#NMSettingBond.properties"> +<ANCHOR id="NMSettingBond.description" href="libnm-util/NMSettingBond.html#NMSettingBond.description"> +<ANCHOR id="NMSettingBond.details" href="libnm-util/NMSettingBond.html#NMSettingBond.details"> +<ANCHOR id="NMSettingBond-struct" href="libnm-util/NMSettingBond.html#NMSettingBond-struct"> +<ANCHOR id="NMSettingBondClass" href="libnm-util/NMSettingBond.html#NMSettingBondClass"> +<ANCHOR id="NMSettingBondError-enum" href="libnm-util/NMSettingBond.html#NMSettingBondError-enum"> +<ANCHOR id="NM-SETTING-BOND-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-SETTING-BOND-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-ERROR-INVALID-PROPERTY:CAPS"> +<ANCHOR id="NM-SETTING-BOND-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-ERROR-MISSING-PROPERTY:CAPS"> +<ANCHOR id="NM-SETTING-BOND-ERROR-INVALID-OPTION:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-ERROR-INVALID-OPTION:CAPS"> +<ANCHOR id="NM-SETTING-BOND-ERROR-MISSING-OPTION:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-ERROR-MISSING-OPTION:CAPS"> +<ANCHOR id="NM-SETTING-BOND-ERROR:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-ERROR:CAPS"> +<ANCHOR id="NM-SETTING-BOND-INTERFACE-NAME:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-INTERFACE-NAME:CAPS"> +<ANCHOR id="NM-SETTING-BOND-OPTIONS:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-OPTIONS:CAPS"> +<ANCHOR id="NM-SETTING-BOND-OPTION-ARP-INTERVAL:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-INTERVAL:CAPS"> +<ANCHOR id="NM-SETTING-BOND-OPTION-ARP-IP-TARGET:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-IP-TARGET:CAPS"> +<ANCHOR id="NM-SETTING-BOND-OPTION-DOWNDELAY:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-OPTION-DOWNDELAY:CAPS"> +<ANCHOR id="NM-SETTING-BOND-OPTION-MIIMON:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-OPTION-MIIMON:CAPS"> +<ANCHOR id="NM-SETTING-BOND-OPTION-MODE:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-OPTION-MODE:CAPS"> +<ANCHOR id="NM-SETTING-BOND-OPTION-UPDELAY:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-OPTION-UPDELAY:CAPS"> +<ANCHOR id="NM-SETTING-BOND-SETTING-NAME:CAPS" href="libnm-util/NMSettingBond.html#NM-SETTING-BOND-SETTING-NAME:CAPS"> +<ANCHOR id="nm-setting-bond-add-option" href="libnm-util/NMSettingBond.html#nm-setting-bond-add-option"> +<ANCHOR id="nm-setting-bond-error-quark" href="libnm-util/NMSettingBond.html#nm-setting-bond-error-quark"> +<ANCHOR id="nm-setting-bond-get-interface-name" href="libnm-util/NMSettingBond.html#nm-setting-bond-get-interface-name"> +<ANCHOR id="nm-setting-bond-get-num-options" href="libnm-util/NMSettingBond.html#nm-setting-bond-get-num-options"> +<ANCHOR id="nm-setting-bond-get-option" href="libnm-util/NMSettingBond.html#nm-setting-bond-get-option"> +<ANCHOR id="nm-setting-bond-get-option-by-name" href="libnm-util/NMSettingBond.html#nm-setting-bond-get-option-by-name"> +<ANCHOR id="nm-setting-bond-get-option-default" href="libnm-util/NMSettingBond.html#nm-setting-bond-get-option-default"> +<ANCHOR id="nm-setting-bond-get-valid-options" href="libnm-util/NMSettingBond.html#nm-setting-bond-get-valid-options"> +<ANCHOR id="nm-setting-bond-new" href="libnm-util/NMSettingBond.html#nm-setting-bond-new"> +<ANCHOR id="nm-setting-bond-remove-option" href="libnm-util/NMSettingBond.html#nm-setting-bond-remove-option"> +<ANCHOR id="NMSettingBond.property-details" href="libnm-util/NMSettingBond.html#NMSettingBond.property-details"> +<ANCHOR id="NMSettingBond--interface-name" href="libnm-util/NMSettingBond.html#NMSettingBond--interface-name"> +<ANCHOR id="NMSettingBond--options" href="libnm-util/NMSettingBond.html#NMSettingBond--options"> +<ANCHOR id="NMSettingInfiniband" href="libnm-util/NMSettingInfiniband.html"> +<ANCHOR id="NMSettingInfiniband.synopsis" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband.synopsis"> +<ANCHOR id="NMSettingInfinibandError" href="libnm-util/NMSettingInfiniband.html#NMSettingInfinibandError"> +<ANCHOR id="NMSettingInfiniband.object-hierarchy" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband.object-hierarchy"> +<ANCHOR id="NMSettingInfiniband.properties" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband.properties"> +<ANCHOR id="NMSettingInfiniband.description" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband.description"> +<ANCHOR id="NMSettingInfiniband.details" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband.details"> +<ANCHOR id="NMSettingInfiniband-struct" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband-struct"> +<ANCHOR id="NMSettingInfinibandClass" href="libnm-util/NMSettingInfiniband.html#NMSettingInfinibandClass"> +<ANCHOR id="NMSettingInfinibandError-enum" href="libnm-util/NMSettingInfiniband.html#NMSettingInfinibandError-enum"> +<ANCHOR id="NM-SETTING-INFINIBAND-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-SETTING-INFINIBAND-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR-INVALID-PROPERTY:CAPS"> +<ANCHOR id="NM-SETTING-INFINIBAND-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR-MISSING-PROPERTY:CAPS"> +<ANCHOR id="NM-SETTING-INFINIBAND-ERROR:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR:CAPS"> +<ANCHOR id="NM-SETTING-INFINIBAND-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MAC-ADDRESS:CAPS"> +<ANCHOR id="NM-SETTING-INFINIBAND-MTU:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MTU:CAPS"> +<ANCHOR id="NM-SETTING-INFINIBAND-SETTING-NAME:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-SETTING-NAME:CAPS"> +<ANCHOR id="NM-SETTING-INFINIBAND-TRANSPORT-MODE:CAPS" href="libnm-util/NMSettingInfiniband.html#NM-SETTING-INFINIBAND-TRANSPORT-MODE:CAPS"> +<ANCHOR id="nm-setting-infiniband-error-quark" href="libnm-util/NMSettingInfiniband.html#nm-setting-infiniband-error-quark"> +<ANCHOR id="nm-setting-infiniband-get-mac-address" href="libnm-util/NMSettingInfiniband.html#nm-setting-infiniband-get-mac-address"> +<ANCHOR id="nm-setting-infiniband-get-mtu" href="libnm-util/NMSettingInfiniband.html#nm-setting-infiniband-get-mtu"> +<ANCHOR id="nm-setting-infiniband-get-transport-mode" href="libnm-util/NMSettingInfiniband.html#nm-setting-infiniband-get-transport-mode"> +<ANCHOR id="nm-setting-infiniband-new" href="libnm-util/NMSettingInfiniband.html#nm-setting-infiniband-new"> +<ANCHOR id="NMSettingInfiniband.property-details" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband.property-details"> +<ANCHOR id="NMSettingInfiniband--mac-address" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband--mac-address"> +<ANCHOR id="NMSettingInfiniband--mtu" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband--mtu"> +<ANCHOR id="NMSettingInfiniband--transport-mode" href="libnm-util/NMSettingInfiniband.html#NMSettingInfiniband--transport-mode"> +<ANCHOR id="NMSettingVlan" href="libnm-util/NMSettingVlan.html"> +<ANCHOR id="NMSettingVlan.synopsis" href="libnm-util/NMSettingVlan.html#NMSettingVlan.synopsis"> +<ANCHOR id="NMSettingVlanError" href="libnm-util/NMSettingVlan.html#NMSettingVlanError"> +<ANCHOR id="NMVlanFlags" href="libnm-util/NMSettingVlan.html#NMVlanFlags"> +<ANCHOR id="NMVlanPriorityMap" href="libnm-util/NMSettingVlan.html#NMVlanPriorityMap"> +<ANCHOR id="NMSettingVlan.object-hierarchy" href="libnm-util/NMSettingVlan.html#NMSettingVlan.object-hierarchy"> +<ANCHOR id="NMSettingVlan.properties" href="libnm-util/NMSettingVlan.html#NMSettingVlan.properties"> +<ANCHOR id="NMSettingVlan.description" href="libnm-util/NMSettingVlan.html#NMSettingVlan.description"> +<ANCHOR id="NMSettingVlan.details" href="libnm-util/NMSettingVlan.html#NMSettingVlan.details"> +<ANCHOR id="NMSettingVlan-struct" href="libnm-util/NMSettingVlan.html#NMSettingVlan-struct"> +<ANCHOR id="NMSettingVlanClass" href="libnm-util/NMSettingVlan.html#NMSettingVlanClass"> +<ANCHOR id="NMSettingVlanError-enum" href="libnm-util/NMSettingVlan.html#NMSettingVlanError-enum"> +<ANCHOR id="NM-SETTING-VLAN-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-ERROR-UNKNOWN:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-ERROR-INVALID-PROPERTY:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-ERROR-MISSING-PROPERTY:CAPS"> +<ANCHOR id="NMVlanFlags-enum" href="libnm-util/NMSettingVlan.html#NMVlanFlags-enum"> +<ANCHOR id="NM-VLAN-FLAG-REORDER-HEADERS:CAPS" href="libnm-util/NMSettingVlan.html#NM-VLAN-FLAG-REORDER-HEADERS:CAPS"> +<ANCHOR id="NM-VLAN-FLAG-GVRP:CAPS" href="libnm-util/NMSettingVlan.html#NM-VLAN-FLAG-GVRP:CAPS"> +<ANCHOR id="NM-VLAN-FLAG-LOOSE-BINDING:CAPS" href="libnm-util/NMSettingVlan.html#NM-VLAN-FLAG-LOOSE-BINDING:CAPS"> +<ANCHOR id="NMVlanPriorityMap-enum" href="libnm-util/NMSettingVlan.html#NMVlanPriorityMap-enum"> +<ANCHOR id="NM-VLAN-INGRESS-MAP:CAPS" href="libnm-util/NMSettingVlan.html#NM-VLAN-INGRESS-MAP:CAPS"> +<ANCHOR id="NM-VLAN-EGRESS-MAP:CAPS" href="libnm-util/NMSettingVlan.html#NM-VLAN-EGRESS-MAP:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-EGRESS-PRIORITY-MAP:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-EGRESS-PRIORITY-MAP:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-ERROR:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-ERROR:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-FLAGS:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-FLAGS:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-ID:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-ID:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-INGRESS-PRIORITY-MAP:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-INGRESS-PRIORITY-MAP:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-INTERFACE-NAME:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-INTERFACE-NAME:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-PARENT:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-PARENT:CAPS"> +<ANCHOR id="NM-SETTING-VLAN-SETTING-NAME:CAPS" href="libnm-util/NMSettingVlan.html#NM-SETTING-VLAN-SETTING-NAME:CAPS"> +<ANCHOR id="nm-setting-vlan-add-priority" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-add-priority"> +<ANCHOR id="nm-setting-vlan-add-priority-str" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-add-priority-str"> +<ANCHOR id="nm-setting-vlan-clear-priorities" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-clear-priorities"> +<ANCHOR id="nm-setting-vlan-error-quark" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-error-quark"> +<ANCHOR id="nm-setting-vlan-get-flags" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-get-flags"> +<ANCHOR id="nm-setting-vlan-get-id" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-get-id"> +<ANCHOR id="nm-setting-vlan-get-interface-name" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-get-interface-name"> +<ANCHOR id="nm-setting-vlan-get-num-priorities" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-get-num-priorities"> +<ANCHOR id="nm-setting-vlan-get-parent" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-get-parent"> +<ANCHOR id="nm-setting-vlan-get-priority" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-get-priority"> +<ANCHOR id="nm-setting-vlan-new" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-new"> +<ANCHOR id="nm-setting-vlan-remove-priority" href="libnm-util/NMSettingVlan.html#nm-setting-vlan-remove-priority"> +<ANCHOR id="NMSettingVlan.property-details" href="libnm-util/NMSettingVlan.html#NMSettingVlan.property-details"> +<ANCHOR id="NMSettingVlan--egress-priority-map" href="libnm-util/NMSettingVlan.html#NMSettingVlan--egress-priority-map"> +<ANCHOR id="NMSettingVlan--flags" href="libnm-util/NMSettingVlan.html#NMSettingVlan--flags"> +<ANCHOR id="NMSettingVlan--id" href="libnm-util/NMSettingVlan.html#NMSettingVlan--id"> +<ANCHOR id="NMSettingVlan--ingress-priority-map" href="libnm-util/NMSettingVlan.html#NMSettingVlan--ingress-priority-map"> +<ANCHOR id="NMSettingVlan--interface-name" href="libnm-util/NMSettingVlan.html#NMSettingVlan--interface-name"> +<ANCHOR id="NMSettingVlan--parent" href="libnm-util/NMSettingVlan.html#NMSettingVlan--parent"> <ANCHOR id="NMSettingOlpcMesh" href="libnm-util/NMSettingOlpcMesh.html"> <ANCHOR id="NMSettingOlpcMesh.synopsis" href="libnm-util/NMSettingOlpcMesh.html#NMSettingOlpcMesh.synopsis"> <ANCHOR id="NMSettingOlpcMeshError" href="libnm-util/NMSettingOlpcMesh.html#NMSettingOlpcMeshError"> diff --git a/docs/libnm-util/html/libnm-util-nm-utils.html b/docs/libnm-util/html/libnm-util-nm-utils.html index a17c1ece..a4404b33 100644 --- a/docs/libnm-util/html/libnm-util-nm-utils.html +++ b/docs/libnm-util/html/libnm-util-nm-utils.html @@ -664,7 +664,25 @@ which should be unset by the caller (when no longer needed) with <a name="nm-utils-ip6-dns-from-gvalue"></a><h3>nm_utils_ip6_dns_from_gvalue ()</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_utils_ip6_dns_from_gvalue (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre> <p> +Converts a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> containing a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of IP6 DNS, represented as +<a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="type">GByteArray</span></a>s into 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">in6_addr</span>s. </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td> +<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of IP6 +addresses. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Posix.in6_addr]</span> +</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> @@ -672,7 +690,26 @@ which should be unset by the caller (when no longer needed) with <pre class="programlisting"><span class="returnvalue">void</span> nm_utils_ip6_dns_to_gvalue (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *list</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre> <p> +Utility function to convert a <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of 'struct in6_addr' structs into a +GPtrArray of GByteArrays representing each server's IPv6 addresses in +network byte order. The specific format of this serialization is not +guaranteed to be stable and may be extended in the future. </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td> +<td>a list of <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> objects</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td> +<td>a pointer to a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> into which to place the converted DNS server +addresses, which should be unset by the caller (when no longer needed) with +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a>.</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2"> diff --git a/docs/libnm-util/html/libnm-util.devhelp2 b/docs/libnm-util/html/libnm-util.devhelp2 index 993a29d7..fb3955a3 100644 --- a/docs/libnm-util/html/libnm-util.devhelp2 +++ b/docs/libnm-util/html/libnm-util.devhelp2 @@ -14,6 +14,9 @@ <sub name="NMSettingCdma" link="NMSettingCdma.html"/> <sub name="NMSettingGsm" link="NMSettingGsm.html"/> <sub name="NMSettingWimax" link="NMSettingWimax.html"/> + <sub name="NMSettingBond" link="NMSettingBond.html"/> + <sub name="NMSettingInfiniband" link="NMSettingInfiniband.html"/> + <sub name="NMSettingVlan" link="NMSettingVlan.html"/> <sub name="NMSettingOlpcMesh" link="NMSettingOlpcMesh.html"/> <sub name="NMSetting8021x" link="NMSetting8021x.html"/> <sub name="NMSettingIP4Config" link="NMSettingIP4Config.html"/> @@ -47,6 +50,7 @@ <keyword type="function" name="nm_connection_get_path ()" link="NMConnection.html#nm-connection-get-path"/> <keyword type="function" name="nm_connection_get_setting ()" link="NMConnection.html#nm-connection-get-setting"/> <keyword type="function" name="nm_connection_get_setting_802_1x ()" link="NMConnection.html#nm-connection-get-setting-802-1x"/> + <keyword type="function" name="nm_connection_get_setting_adsl ()" link="NMConnection.html#nm-connection-get-setting-adsl"/> <keyword type="function" name="nm_connection_get_setting_bluetooth ()" link="NMConnection.html#nm-connection-get-setting-bluetooth"/> <keyword type="function" name="nm_connection_get_setting_bond ()" link="NMConnection.html#nm-connection-get-setting-bond"/> <keyword type="function" name="nm_connection_get_setting_by_name ()" link="NMConnection.html#nm-connection-get-setting-by-name"/> @@ -215,6 +219,7 @@ <keyword type="macro" name="NM_SETTING_WIRELESS_CHANNEL" link="NMSettingWireless.html#NM-SETTING-WIRELESS-CHANNEL:CAPS"/> <keyword type="macro" name="NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS"/> <keyword type="macro" name="NM_SETTING_WIRELESS_ERROR" link="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR:CAPS"/> + <keyword type="macro" name="NM_SETTING_WIRELESS_HIDDEN" link="NMSettingWireless.html#NM-SETTING-WIRELESS-HIDDEN:CAPS"/> <keyword type="macro" name="NM_SETTING_WIRELESS_MAC_ADDRESS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS"/> <keyword type="macro" name="NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS"/> <keyword type="macro" name="NM_SETTING_WIRELESS_MODE" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MODE:CAPS"/> @@ -234,6 +239,7 @@ <keyword type="function" name="nm_setting_wireless_get_bssid ()" link="NMSettingWireless.html#nm-setting-wireless-get-bssid"/> <keyword type="function" name="nm_setting_wireless_get_channel ()" link="NMSettingWireless.html#nm-setting-wireless-get-channel"/> <keyword type="function" name="nm_setting_wireless_get_cloned_mac_address ()" link="NMSettingWireless.html#nm-setting-wireless-get-cloned-mac-address"/> + <keyword type="function" name="nm_setting_wireless_get_hidden ()" link="NMSettingWireless.html#nm-setting-wireless-get-hidden"/> <keyword type="function" name="nm_setting_wireless_get_mac_address ()" link="NMSettingWireless.html#nm-setting-wireless-get-mac-address"/> <keyword type="function" name="nm_setting_wireless_get_mac_address_blacklist ()" link="NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist"/> <keyword type="function" name="nm_setting_wireless_get_mode ()" link="NMSettingWireless.html#nm-setting-wireless-get-mode"/> @@ -249,6 +255,7 @@ <keyword type="property" name="The "bssid" property" link="NMSettingWireless.html#NMSettingWireless--bssid"/> <keyword type="property" name="The "channel" property" link="NMSettingWireless.html#NMSettingWireless--channel"/> <keyword type="property" name="The "cloned-mac-address" property" link="NMSettingWireless.html#NMSettingWireless--cloned-mac-address"/> + <keyword type="property" name="The "hidden" property" link="NMSettingWireless.html#NMSettingWireless--hidden"/> <keyword type="property" name="The "mac-address" property" link="NMSettingWireless.html#NMSettingWireless--mac-address"/> <keyword type="property" name="The "mac-address-blacklist" property" link="NMSettingWireless.html#NMSettingWireless--mac-address-blacklist"/> <keyword type="property" name="The "mode" property" link="NMSettingWireless.html#NMSettingWireless--mode"/> @@ -438,6 +445,78 @@ <keyword type="function" name="nm_setting_wimax_new ()" link="NMSettingWimax.html#nm-setting-wimax-new"/> <keyword type="property" name="The "mac-address" property" link="NMSettingWimax.html#NMSettingWimax--mac-address"/> <keyword type="property" name="The "network-name" property" link="NMSettingWimax.html#NMSettingWimax--network-name"/> + <keyword type="struct" name="NMSettingBond" link="NMSettingBond.html#NMSettingBond-struct"/> + <keyword type="struct" name="NMSettingBondClass" link="NMSettingBond.html#NMSettingBondClass"/> + <keyword type="enum" name="enum NMSettingBondError" link="NMSettingBond.html#NMSettingBondError-enum"/> + <keyword type="macro" name="NM_SETTING_BOND_ERROR" link="NMSettingBond.html#NM-SETTING-BOND-ERROR:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_INTERFACE_NAME" link="NMSettingBond.html#NM-SETTING-BOND-INTERFACE-NAME:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_OPTIONS" link="NMSettingBond.html#NM-SETTING-BOND-OPTIONS:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_OPTION_ARP_INTERVAL" link="NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-INTERVAL:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_OPTION_ARP_IP_TARGET" link="NMSettingBond.html#NM-SETTING-BOND-OPTION-ARP-IP-TARGET:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_OPTION_DOWNDELAY" link="NMSettingBond.html#NM-SETTING-BOND-OPTION-DOWNDELAY:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_OPTION_MIIMON" link="NMSettingBond.html#NM-SETTING-BOND-OPTION-MIIMON:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_OPTION_MODE" link="NMSettingBond.html#NM-SETTING-BOND-OPTION-MODE:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_OPTION_UPDELAY" link="NMSettingBond.html#NM-SETTING-BOND-OPTION-UPDELAY:CAPS"/> + <keyword type="macro" name="NM_SETTING_BOND_SETTING_NAME" link="NMSettingBond.html#NM-SETTING-BOND-SETTING-NAME:CAPS"/> + <keyword type="function" name="nm_setting_bond_add_option ()" link="NMSettingBond.html#nm-setting-bond-add-option"/> + <keyword type="function" name="nm_setting_bond_error_quark ()" link="NMSettingBond.html#nm-setting-bond-error-quark"/> + <keyword type="function" name="nm_setting_bond_get_interface_name ()" link="NMSettingBond.html#nm-setting-bond-get-interface-name"/> + <keyword type="function" name="nm_setting_bond_get_num_options ()" link="NMSettingBond.html#nm-setting-bond-get-num-options"/> + <keyword type="function" name="nm_setting_bond_get_option ()" link="NMSettingBond.html#nm-setting-bond-get-option"/> + <keyword type="function" name="nm_setting_bond_get_option_by_name ()" link="NMSettingBond.html#nm-setting-bond-get-option-by-name"/> + <keyword type="function" name="nm_setting_bond_get_option_default ()" link="NMSettingBond.html#nm-setting-bond-get-option-default"/> + <keyword type="function" name="nm_setting_bond_get_valid_options ()" link="NMSettingBond.html#nm-setting-bond-get-valid-options"/> + <keyword type="function" name="nm_setting_bond_new ()" link="NMSettingBond.html#nm-setting-bond-new"/> + <keyword type="function" name="nm_setting_bond_remove_option ()" link="NMSettingBond.html#nm-setting-bond-remove-option"/> + <keyword type="property" name="The "interface-name" property" link="NMSettingBond.html#NMSettingBond--interface-name"/> + <keyword type="property" name="The "options" property" link="NMSettingBond.html#NMSettingBond--options"/> + <keyword type="struct" name="NMSettingInfiniband" link="NMSettingInfiniband.html#NMSettingInfiniband-struct"/> + <keyword type="struct" name="NMSettingInfinibandClass" link="NMSettingInfiniband.html#NMSettingInfinibandClass"/> + <keyword type="enum" name="enum NMSettingInfinibandError" link="NMSettingInfiniband.html#NMSettingInfinibandError-enum"/> + <keyword type="macro" name="NM_SETTING_INFINIBAND_ERROR" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR:CAPS"/> + <keyword type="macro" name="NM_SETTING_INFINIBAND_MAC_ADDRESS" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MAC-ADDRESS:CAPS"/> + <keyword type="macro" name="NM_SETTING_INFINIBAND_MTU" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-MTU:CAPS"/> + <keyword type="macro" name="NM_SETTING_INFINIBAND_SETTING_NAME" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-SETTING-NAME:CAPS"/> + <keyword type="macro" name="NM_SETTING_INFINIBAND_TRANSPORT_MODE" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-TRANSPORT-MODE:CAPS"/> + <keyword type="function" name="nm_setting_infiniband_error_quark ()" link="NMSettingInfiniband.html#nm-setting-infiniband-error-quark"/> + <keyword type="function" name="nm_setting_infiniband_get_mac_address ()" link="NMSettingInfiniband.html#nm-setting-infiniband-get-mac-address"/> + <keyword type="function" name="nm_setting_infiniband_get_mtu ()" link="NMSettingInfiniband.html#nm-setting-infiniband-get-mtu"/> + <keyword type="function" name="nm_setting_infiniband_get_transport_mode ()" link="NMSettingInfiniband.html#nm-setting-infiniband-get-transport-mode"/> + <keyword type="function" name="nm_setting_infiniband_new ()" link="NMSettingInfiniband.html#nm-setting-infiniband-new"/> + <keyword type="property" name="The "mac-address" property" link="NMSettingInfiniband.html#NMSettingInfiniband--mac-address"/> + <keyword type="property" name="The "mtu" property" link="NMSettingInfiniband.html#NMSettingInfiniband--mtu"/> + <keyword type="property" name="The "transport-mode" property" link="NMSettingInfiniband.html#NMSettingInfiniband--transport-mode"/> + <keyword type="struct" name="NMSettingVlan" link="NMSettingVlan.html#NMSettingVlan-struct"/> + <keyword type="struct" name="NMSettingVlanClass" link="NMSettingVlan.html#NMSettingVlanClass"/> + <keyword type="enum" name="enum NMSettingVlanError" link="NMSettingVlan.html#NMSettingVlanError-enum"/> + <keyword type="enum" name="enum NMVlanFlags" link="NMSettingVlan.html#NMVlanFlags-enum"/> + <keyword type="enum" name="enum NMVlanPriorityMap" link="NMSettingVlan.html#NMVlanPriorityMap-enum"/> + <keyword type="macro" name="NM_SETTING_VLAN_EGRESS_PRIORITY_MAP" link="NMSettingVlan.html#NM-SETTING-VLAN-EGRESS-PRIORITY-MAP:CAPS"/> + <keyword type="macro" name="NM_SETTING_VLAN_ERROR" link="NMSettingVlan.html#NM-SETTING-VLAN-ERROR:CAPS"/> + <keyword type="macro" name="NM_SETTING_VLAN_FLAGS" link="NMSettingVlan.html#NM-SETTING-VLAN-FLAGS:CAPS"/> + <keyword type="macro" name="NM_SETTING_VLAN_ID" link="NMSettingVlan.html#NM-SETTING-VLAN-ID:CAPS"/> + <keyword type="macro" name="NM_SETTING_VLAN_INGRESS_PRIORITY_MAP" link="NMSettingVlan.html#NM-SETTING-VLAN-INGRESS-PRIORITY-MAP:CAPS"/> + <keyword type="macro" name="NM_SETTING_VLAN_INTERFACE_NAME" link="NMSettingVlan.html#NM-SETTING-VLAN-INTERFACE-NAME:CAPS"/> + <keyword type="macro" name="NM_SETTING_VLAN_PARENT" link="NMSettingVlan.html#NM-SETTING-VLAN-PARENT:CAPS"/> + <keyword type="macro" name="NM_SETTING_VLAN_SETTING_NAME" link="NMSettingVlan.html#NM-SETTING-VLAN-SETTING-NAME:CAPS"/> + <keyword type="function" name="nm_setting_vlan_add_priority ()" link="NMSettingVlan.html#nm-setting-vlan-add-priority"/> + <keyword type="function" name="nm_setting_vlan_add_priority_str ()" link="NMSettingVlan.html#nm-setting-vlan-add-priority-str"/> + <keyword type="function" name="nm_setting_vlan_clear_priorities ()" link="NMSettingVlan.html#nm-setting-vlan-clear-priorities"/> + <keyword type="function" name="nm_setting_vlan_error_quark ()" link="NMSettingVlan.html#nm-setting-vlan-error-quark"/> + <keyword type="function" name="nm_setting_vlan_get_flags ()" link="NMSettingVlan.html#nm-setting-vlan-get-flags"/> + <keyword type="function" name="nm_setting_vlan_get_id ()" link="NMSettingVlan.html#nm-setting-vlan-get-id"/> + <keyword type="function" name="nm_setting_vlan_get_interface_name ()" link="NMSettingVlan.html#nm-setting-vlan-get-interface-name"/> + <keyword type="function" name="nm_setting_vlan_get_num_priorities ()" link="NMSettingVlan.html#nm-setting-vlan-get-num-priorities"/> + <keyword type="function" name="nm_setting_vlan_get_parent ()" link="NMSettingVlan.html#nm-setting-vlan-get-parent"/> + <keyword type="function" name="nm_setting_vlan_get_priority ()" link="NMSettingVlan.html#nm-setting-vlan-get-priority"/> + <keyword type="function" name="nm_setting_vlan_new ()" link="NMSettingVlan.html#nm-setting-vlan-new"/> + <keyword type="function" name="nm_setting_vlan_remove_priority ()" link="NMSettingVlan.html#nm-setting-vlan-remove-priority"/> + <keyword type="property" name="The "egress-priority-map" property" link="NMSettingVlan.html#NMSettingVlan--egress-priority-map"/> + <keyword type="property" name="The "flags" property" link="NMSettingVlan.html#NMSettingVlan--flags"/> + <keyword type="property" name="The "id" property" link="NMSettingVlan.html#NMSettingVlan--id"/> + <keyword type="property" name="The "ingress-priority-map" property" link="NMSettingVlan.html#NMSettingVlan--ingress-priority-map"/> + <keyword type="property" name="The "interface-name" property" link="NMSettingVlan.html#NMSettingVlan--interface-name"/> + <keyword type="property" name="The "parent" property" link="NMSettingVlan.html#NMSettingVlan--parent"/> <keyword type="struct" name="NMSettingOlpcMesh" link="NMSettingOlpcMesh.html#NMSettingOlpcMesh-struct"/> <keyword type="struct" name="NMSettingOlpcMeshClass" link="NMSettingOlpcMesh.html#NMSettingOlpcMeshClass"/> <keyword type="enum" name="enum NMSettingOlpcMeshError" link="NMSettingOlpcMesh.html#NMSettingOlpcMeshError-enum"/> @@ -996,6 +1075,22 @@ <keyword type="constant" name="NM_SETTING_WIMAX_ERROR_UNKNOWN" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-UNKNOWN:CAPS"/> <keyword type="constant" name="NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-INVALID-PROPERTY:CAPS"/> <keyword type="constant" name="NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-MISSING-PROPERTY:CAPS"/> + <keyword type="constant" name="NM_SETTING_BOND_ERROR_UNKNOWN" link="NMSettingBond.html#NM-SETTING-BOND-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_SETTING_BOND_ERROR_INVALID_PROPERTY" link="NMSettingBond.html#NM-SETTING-BOND-ERROR-INVALID-PROPERTY:CAPS"/> + <keyword type="constant" name="NM_SETTING_BOND_ERROR_MISSING_PROPERTY" link="NMSettingBond.html#NM-SETTING-BOND-ERROR-MISSING-PROPERTY:CAPS"/> + <keyword type="constant" name="NM_SETTING_BOND_ERROR_INVALID_OPTION" link="NMSettingBond.html#NM-SETTING-BOND-ERROR-INVALID-OPTION:CAPS"/> + <keyword type="constant" name="NM_SETTING_BOND_ERROR_MISSING_OPTION" link="NMSettingBond.html#NM-SETTING-BOND-ERROR-MISSING-OPTION:CAPS"/> + <keyword type="constant" name="NM_SETTING_INFINIBAND_ERROR_UNKNOWN" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_SETTING_INFINIBAND_ERROR_INVALID_PROPERTY" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR-INVALID-PROPERTY:CAPS"/> + <keyword type="constant" name="NM_SETTING_INFINIBAND_ERROR_MISSING_PROPERTY" link="NMSettingInfiniband.html#NM-SETTING-INFINIBAND-ERROR-MISSING-PROPERTY:CAPS"/> + <keyword type="constant" name="NM_SETTING_VLAN_ERROR_UNKNOWN" link="NMSettingVlan.html#NM-SETTING-VLAN-ERROR-UNKNOWN:CAPS"/> + <keyword type="constant" name="NM_SETTING_VLAN_ERROR_INVALID_PROPERTY" link="NMSettingVlan.html#NM-SETTING-VLAN-ERROR-INVALID-PROPERTY:CAPS"/> + <keyword type="constant" name="NM_SETTING_VLAN_ERROR_MISSING_PROPERTY" link="NMSettingVlan.html#NM-SETTING-VLAN-ERROR-MISSING-PROPERTY:CAPS"/> + <keyword type="constant" name="NM_VLAN_FLAG_REORDER_HEADERS" link="NMSettingVlan.html#NM-VLAN-FLAG-REORDER-HEADERS:CAPS"/> + <keyword type="constant" name="NM_VLAN_FLAG_GVRP" link="NMSettingVlan.html#NM-VLAN-FLAG-GVRP:CAPS"/> + <keyword type="constant" name="NM_VLAN_FLAG_LOOSE_BINDING" link="NMSettingVlan.html#NM-VLAN-FLAG-LOOSE-BINDING:CAPS"/> + <keyword type="constant" name="NM_VLAN_INGRESS_MAP" link="NMSettingVlan.html#NM-VLAN-INGRESS-MAP:CAPS"/> + <keyword type="constant" name="NM_VLAN_EGRESS_MAP" link="NMSettingVlan.html#NM-VLAN-EGRESS-MAP:CAPS"/> <keyword type="constant" name="NM_SETTING_802_1X_CK_FORMAT_UNKNOWN" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-FORMAT-UNKNOWN:CAPS"/> <keyword type="constant" name="NM_SETTING_802_1X_CK_FORMAT_X509" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-FORMAT-X509:CAPS"/> <keyword type="constant" name="NM_SETTING_802_1X_CK_FORMAT_RAW_KEY" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-FORMAT-RAW-KEY:CAPS"/> diff --git a/docs/libnm-util/html/object-tree.html b/docs/libnm-util/html/object-tree.html index 8670ba6c..edb82a82 100644 --- a/docs/libnm-util/html/object-tree.html +++ b/docs/libnm-util/html/object-tree.html @@ -27,19 +27,20 @@ <a class="link" href="NMConnection.html" title="NMConnection">NMConnection</a> <a class="link" href="NMSetting.html" title="NMSetting">NMSetting</a> <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a> + NMSettingAdsl <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth">NMSettingBluetooth</a> - NMSettingBond + <a class="link" href="NMSettingBond.html" title="NMSettingBond">NMSettingBond</a> <a class="link" href="NMSettingCdma.html" title="NMSettingCdma">NMSettingCdma</a> <a class="link" href="NMSettingConnection.html" title="NMSettingConnection">NMSettingConnection</a> <a class="link" href="NMSettingGsm.html" title="NMSettingGsm">NMSettingGsm</a> - NMSettingInfiniband + <a class="link" href="NMSettingInfiniband.html" title="NMSettingInfiniband">NMSettingInfiniband</a> <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config">NMSettingIP4Config</a> <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config">NMSettingIP6Config</a> <a class="link" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">NMSettingOlpcMesh</a> <a class="link" href="NMSettingPPP.html" title="NMSettingPPP">NMSettingPPP</a> <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE">NMSettingPPPOE</a> <a class="link" href="NMSettingSerial.html" title="NMSettingSerial">NMSettingSerial</a> - NMSettingVlan + <a class="link" href="NMSettingVlan.html" title="NMSettingVlan">NMSettingVlan</a> <a class="link" href="NMSettingVPN.html" title="NMSettingVPN">NMSettingVPN</a> <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a> <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a> @@ -50,8 +51,9 @@ <a class="link" href="NMSetting8021x.html#NMSetting8021xCKFormat">NMSetting8021xCKFormat</a> <a class="link" href="NMSetting8021x.html#NMSetting8021xCKScheme">NMSetting8021xCKScheme</a> <a class="link" href="NMSetting8021x.html#NMSetting8021xError">NMSetting8021xError</a> + NMSettingAdslError <a class="link" href="NMSettingBluetooth.html#NMSettingBluetoothError">NMSettingBluetoothError</a> - NMSettingBondError + <a class="link" href="NMSettingBond.html#NMSettingBondError">NMSettingBondError</a> <a class="link" href="NMSettingCdma.html#NMSettingCdmaError">NMSettingCdmaError</a> <a class="link" href="NMSetting.html#NMSettingCompareFlags">NMSettingCompareFlags</a> <a class="link" href="NMSettingConnection.html#NMSettingConnectionError">NMSettingConnectionError</a> @@ -61,7 +63,7 @@ <a class="link" href="NMSettingGsm.html#NMSettingGsmNetworkBand">NMSettingGsmNetworkBand</a> <a class="link" href="NMSettingGsm.html#NMSettingGsmNetworkType">NMSettingGsmNetworkType</a> <a class="link" href="NMSetting.html#NMSettingHashFlags">NMSettingHashFlags</a> - NMSettingInfinibandError + <a class="link" href="NMSettingInfiniband.html#NMSettingInfinibandError">NMSettingInfinibandError</a> <a class="link" href="NMSettingIP4Config.html#NMSettingIP4ConfigError">NMSettingIP4ConfigError</a> <a class="link" href="NMSettingIP6Config.html#NMSettingIP6ConfigError">NMSettingIP6ConfigError</a> <a class="link" href="NMSettingIP6Config.html#NMSettingIP6ConfigPrivacy">NMSettingIP6ConfigPrivacy</a> @@ -70,15 +72,15 @@ <a class="link" href="NMSettingPPPOE.html#NMSettingPPPOEError">NMSettingPPPOEError</a> <a class="link" href="NMSetting.html#NMSettingSecretFlags">NMSettingSecretFlags</a> <a class="link" href="NMSettingSerial.html#NMSettingSerialError">NMSettingSerialError</a> - NMSettingVlanError + <a class="link" href="NMSettingVlan.html#NMSettingVlanError">NMSettingVlanError</a> <a class="link" href="NMSettingVPN.html#NMSettingVpnError">NMSettingVpnError</a> <a class="link" href="NMSettingWimax.html#NMSettingWimaxError">NMSettingWimaxError</a> <a class="link" href="NMSettingWired.html#NMSettingWiredError">NMSettingWiredError</a> <a class="link" href="NMSettingWireless.html#NMSettingWirelessError">NMSettingWirelessError</a> <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurityError">NMSettingWirelessSecurityError</a> <a class="link" href="libnm-util-nm-utils.html#NMUtilsSecurityType">NMUtilsSecurityType</a> - NMVlanFlags - NMVlanPriorityMap + <a class="link" href="NMSettingVlan.html#NMVlanFlags">NMVlanFlags</a> + <a class="link" href="NMSettingVlan.html#NMVlanPriorityMap">NMVlanPriorityMap</a> <a class="link" href="NMSettingWirelessSecurity.html#NMWepKeyType">NMWepKeyType</a> GBoxed <a class="link" href="NMSettingIP4Config.html#NMIP4Address">NMIP4Address</a> diff --git a/docs/libnm-util/libnm-util-docs.sgml b/docs/libnm-util/libnm-util-docs.sgml index f717db37..f389971b 100644 --- a/docs/libnm-util/libnm-util-docs.sgml +++ b/docs/libnm-util/libnm-util-docs.sgml @@ -27,6 +27,9 @@ <xi:include href="xml/nm-setting-cdma.xml"/> <xi:include href="xml/nm-setting-gsm.xml"/> <xi:include href="xml/nm-setting-wimax.xml"/> + <xi:include href="xml/nm-setting-bond.xml"/> + <xi:include href="xml/nm-setting-infiniband.xml"/> + <xi:include href="xml/nm-setting-vlan.xml"/> <xi:include href="xml/nm-setting-olpc-mesh.xml"/> <xi:include href="xml/nm-setting-8021x.xml"/> <xi:include href="xml/nm-setting-ip4-config.xml"/> diff --git a/docs/libnm-util/libnm-util-sections.txt b/docs/libnm-util/libnm-util-sections.txt index a278e8e8..c55c690f 100644 --- a/docs/libnm-util/libnm-util-sections.txt +++ b/docs/libnm-util/libnm-util-sections.txt @@ -20,6 +20,7 @@ nm_connection_get_id nm_connection_get_path nm_connection_get_setting nm_connection_get_setting_802_1x +nm_connection_get_setting_adsl nm_connection_get_setting_bluetooth nm_connection_get_setting_bond nm_connection_get_setting_by_name @@ -227,6 +228,45 @@ nm_setting_802_1x_get_type </SECTION> <SECTION> +<FILE>nm-setting-adsl</FILE> +<TITLE>NMSettingAdsl</TITLE> +NMSettingAdsl +NMSettingAdslClass +NMSettingAdslError +NM_SETTING_ADSL_ENCAPSULATION +NM_SETTING_ADSL_ENCAPSULATION_LLC +NM_SETTING_ADSL_ENCAPSULATION_VCMUX +NM_SETTING_ADSL_ERROR +NM_SETTING_ADSL_PASSWORD +NM_SETTING_ADSL_PASSWORD_FLAGS +NM_SETTING_ADSL_PROTOCOL +NM_SETTING_ADSL_PROTOCOL_IPOATM +NM_SETTING_ADSL_PROTOCOL_PPPOA +NM_SETTING_ADSL_PROTOCOL_PPPOE +NM_SETTING_ADSL_SETTING_NAME +NM_SETTING_ADSL_USERNAME +NM_SETTING_ADSL_VCI +NM_SETTING_ADSL_VPI +nm_setting_adsl_error_quark +nm_setting_adsl_get_encapsulation +nm_setting_adsl_get_password +nm_setting_adsl_get_password_flags +nm_setting_adsl_get_protocol +nm_setting_adsl_get_username +nm_setting_adsl_get_vci +nm_setting_adsl_get_vpi +nm_setting_adsl_new +<SUBSECTION Standard> +NM_IS_SETTING_ADSL +NM_IS_SETTING_ADSL_CLASS +NM_SETTING_ADSL +NM_SETTING_ADSL_CLASS +NM_SETTING_ADSL_GET_CLASS +NM_TYPE_SETTING_ADSL +nm_setting_adsl_get_type +</SECTION> + +<SECTION> <FILE>nm-setting-bluetooth</FILE> <TITLE>NMSettingBluetooth</TITLE> NMSettingBluetooth @@ -921,6 +961,7 @@ NM_SETTING_WIRELESS_BSSID NM_SETTING_WIRELESS_CHANNEL NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS NM_SETTING_WIRELESS_ERROR +NM_SETTING_WIRELESS_HIDDEN NM_SETTING_WIRELESS_MAC_ADDRESS NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST NM_SETTING_WIRELESS_MODE @@ -940,6 +981,7 @@ nm_setting_wireless_get_band nm_setting_wireless_get_bssid nm_setting_wireless_get_channel nm_setting_wireless_get_cloned_mac_address +nm_setting_wireless_get_hidden nm_setting_wireless_get_mac_address nm_setting_wireless_get_mac_address_blacklist nm_setting_wireless_get_mode @@ -1073,6 +1115,7 @@ NM_TYPE_CONNECTION_ERROR NM_TYPE_SETTING_802_1X_CK_FORMAT NM_TYPE_SETTING_802_1X_CK_SCHEME NM_TYPE_SETTING_802_1X_ERROR +NM_TYPE_SETTING_ADSL_ERROR NM_TYPE_SETTING_BLUETOOTH_ERROR NM_TYPE_SETTING_BOND_ERROR NM_TYPE_SETTING_CDMA_ERROR @@ -1107,6 +1150,7 @@ nm_connection_error_get_type nm_setting_802_1x_ck_format_get_type nm_setting_802_1x_ck_scheme_get_type nm_setting_802_1x_error_get_type +nm_setting_adsl_error_get_type nm_setting_bluetooth_error_get_type nm_setting_bond_error_get_type nm_setting_cdma_error_get_type diff --git a/docs/libnm-util/libnm-util.types b/docs/libnm-util/libnm-util.types index 72f62e06..511e539d 100644 --- a/docs/libnm-util/libnm-util.types +++ b/docs/libnm-util/libnm-util.types @@ -8,6 +8,8 @@ nm_setting_802_1x_ck_format_get_type nm_setting_802_1x_ck_scheme_get_type nm_setting_802_1x_error_get_type nm_setting_802_1x_get_type +nm_setting_adsl_error_get_type +nm_setting_adsl_get_type nm_setting_bluetooth_error_get_type nm_setting_bluetooth_get_type nm_setting_bond_error_get_type diff --git a/docs/libnm-util/tmpl/libnm-util-unused.sgml b/docs/libnm-util/tmpl/libnm-util-unused.sgml index 26fd8b52..e69de29b 100644 --- a/docs/libnm-util/tmpl/libnm-util-unused.sgml +++ b/docs/libnm-util/tmpl/libnm-util-unused.sgml @@ -1,260 +0,0 @@ -<!-- ##### SECTION ./tmpl/nm-setting-adsl.sgml:Image ##### --> - - - -<!-- ##### SECTION ./tmpl/nm-setting-adsl.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/nm-setting-adsl.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/nm-setting-adsl.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/nm-setting-adsl.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/nm-setting-adsl.sgml:Title ##### --> -NMSettingAdsl - - -<!-- ##### STRUCT NMSettingAdsl ##### --> -<para> - -</para> - - -<!-- ##### ARG NMSettingAdsl:encapsulation ##### --> -<para> - -</para> - - -<!-- ##### ARG NMSettingAdsl:password ##### --> -<para> - -</para> - - -<!-- ##### ARG NMSettingAdsl:password-flags ##### --> -<para> - -</para> - - -<!-- ##### ARG NMSettingAdsl:protocol ##### --> -<para> - -</para> - - -<!-- ##### ARG NMSettingAdsl:username ##### --> -<para> - -</para> - - -<!-- ##### ARG NMSettingAdsl:vci ##### --> -<para> - -</para> - - -<!-- ##### ARG NMSettingAdsl:vpi ##### --> -<para> - -</para> - - -<!-- ##### STRUCT NMSettingAdslClass ##### --> -<para> - -</para> - -@parent: -@_reserved1: -@_reserved2: -@_reserved3: -@_reserved4: - -<!-- ##### ENUM NMSettingAdslError ##### --> -<para> - -</para> - -@NM_SETTING_ADSL_ERROR_UNKNOWN: -@NM_SETTING_ADSL_ERROR_INVALID_PROPERTY: -@NM_SETTING_ADSL_ERROR_MISSING_PROPERTY: - -<!-- ##### MACRO NM_SETTING_ADSL_ENCAPSULATION ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_ENCAPSULATION_LLC ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_ENCAPSULATION_VCMUX ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_ERROR ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_PASSWORD ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_PASSWORD_FLAGS ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_PROTOCOL ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_PROTOCOL_IPOATM ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_PROTOCOL_PPPOA ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_PROTOCOL_PPPOE ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_SETTING_NAME ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_USERNAME ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_VCI ##### --> -<para> - -</para> - - -<!-- ##### MACRO NM_SETTING_ADSL_VPI ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION nm_connection_get_setting_adsl ##### --> -<para> - -</para> - -@connection: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_error_quark ##### --> -<para> - -</para> - -@void: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_get_encapsulation ##### --> -<para> - -</para> - -@setting: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_get_password ##### --> -<para> - -</para> - -@setting: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_get_password_flags ##### --> -<para> - -</para> - -@setting: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_get_protocol ##### --> -<para> - -</para> - -@setting: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_get_username ##### --> -<para> - -</para> - -@setting: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_get_vci ##### --> -<para> - -</para> - -@setting: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_get_vpi ##### --> -<para> - -</para> - -@setting: -@Returns: - -<!-- ##### FUNCTION nm_setting_adsl_new ##### --> -<para> - -</para> - -@void: -@Returns: - diff --git a/docs/libnm-util/tmpl/nm-connection.sgml b/docs/libnm-util/tmpl/nm-connection.sgml index 434e0d1b..59799611 100644 --- a/docs/libnm-util/tmpl/nm-connection.sgml +++ b/docs/libnm-util/tmpl/nm-connection.sgml @@ -210,6 +210,15 @@ NMConnection @Returns: +<!-- ##### FUNCTION nm_connection_get_setting_adsl ##### --> +<para> + +</para> + +@connection: +@Returns: + + <!-- ##### FUNCTION nm_connection_get_setting_bluetooth ##### --> <para> diff --git a/docs/libnm-util/tmpl/nm-setting-wireless.sgml b/docs/libnm-util/tmpl/nm-setting-wireless.sgml index 3790e252..6a34f4c5 100644 --- a/docs/libnm-util/tmpl/nm-setting-wireless.sgml +++ b/docs/libnm-util/tmpl/nm-setting-wireless.sgml @@ -46,6 +46,11 @@ NMSettingWireless </para> +<!-- ##### ARG NMSettingWireless:hidden ##### --> +<para> + +</para> + <!-- ##### ARG NMSettingWireless:mac-address ##### --> <para> @@ -148,6 +153,13 @@ NMSettingWireless +<!-- ##### MACRO NM_SETTING_WIRELESS_HIDDEN ##### --> +<para> + +</para> + + + <!-- ##### MACRO NM_SETTING_WIRELESS_MAC_ADDRESS ##### --> <para> @@ -301,6 +313,15 @@ NMSettingWireless @Returns: +<!-- ##### FUNCTION nm_setting_wireless_get_hidden ##### --> +<para> + +</para> + +@setting: +@Returns: + + <!-- ##### FUNCTION nm_setting_wireless_get_mac_address ##### --> <para> diff --git a/examples/C/Makefile.in b/examples/C/Makefile.in index 463b6d49..faec1665 100644 --- a/examples/C/Makefile.in +++ b/examples/C/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -175,6 +175,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -270,6 +274,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -308,6 +315,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/examples/C/glib/Makefile.in b/examples/C/glib/Makefile.in index 871da9c9..8624e5b8 100644 --- a/examples/C/glib/Makefile.in +++ b/examples/C/glib/Makefile.in @@ -56,7 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -244,6 +244,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -339,6 +343,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -377,6 +384,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/examples/C/qt/Makefile.in b/examples/C/qt/Makefile.in index 5c3f9a33..f65e28ee 100644 --- a/examples/C/qt/Makefile.in +++ b/examples/C/qt/Makefile.in @@ -50,7 +50,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -185,6 +185,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -280,6 +284,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -318,6 +325,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/examples/Makefile.in b/examples/Makefile.in index bd89738c..f9d9a51b 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -174,6 +174,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -269,6 +273,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -307,6 +314,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/examples/python/Makefile.am b/examples/python/Makefile.am index 59e16088..2706c0f4 100644 --- a/examples/python/Makefile.am +++ b/examples/python/Makefile.am @@ -7,4 +7,6 @@ EXTRA_DIST = \ show-bssids.py \ disconnect-device.py \ get-active-connections.py \ - list-devices.py + list-devices.py \ + goi-list-connections.py \ + goi-device-state-ip4config.py diff --git a/examples/python/Makefile.in b/examples/python/Makefile.in index fce5f16a..aefb9384 100644 --- a/examples/python/Makefile.in +++ b/examples/python/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -134,6 +134,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -229,6 +233,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -267,6 +274,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -481,7 +490,9 @@ uninstall-am: show-bssids.py \ disconnect-device.py \ get-active-connections.py \ - list-devices.py + list-devices.py \ + goi-list-connections.py \ + goi-device-state-ip4config.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/ruby/Makefile.in b/examples/ruby/Makefile.in index 0e5db416..71a9f9e9 100644 --- a/examples/ruby/Makefile.in +++ b/examples/ruby/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -134,6 +134,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -229,6 +233,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -267,6 +274,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/examples/shell/Makefile.in b/examples/shell/Makefile.in index 1933a406..47571c4b 100644 --- a/examples/shell/Makefile.in +++ b/examples/shell/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -134,6 +134,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -229,6 +233,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -267,6 +274,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/include/Makefile.in b/include/Makefile.in index 8b60268a..01d92cde 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -161,6 +161,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -256,6 +260,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -294,6 +301,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/include/NetworkManager.h b/include/NetworkManager.h index 0aa31aef..96b132e9 100644 --- a/include/NetworkManager.h +++ b/include/NetworkManager.h @@ -34,6 +34,7 @@ #define NM_DBUS_INTERFACE "org.freedesktop.NetworkManager" #define NM_DBUS_INTERFACE_DEVICE NM_DBUS_INTERFACE ".Device" #define NM_DBUS_INTERFACE_DEVICE_WIRED NM_DBUS_INTERFACE_DEVICE ".Wired" +#define NM_DBUS_INTERFACE_DEVICE_ADSL NM_DBUS_INTERFACE_DEVICE ".Adsl" #define NM_DBUS_INTERFACE_DEVICE_WIRELESS NM_DBUS_INTERFACE_DEVICE ".Wireless" #define NM_DBUS_INTERFACE_DEVICE_BLUETOOTH NM_DBUS_INTERFACE_DEVICE ".Bluetooth" #define NM_DBUS_INTERFACE_DEVICE_OLPC_MESH NM_DBUS_INTERFACE_DEVICE ".OlpcMesh" @@ -107,6 +108,7 @@ typedef enum { * GSM/UMTS, or LTE network access protocols * @NM_DEVICE_TYPE_INFINIBAND: an IP-over-InfiniBand device * @NM_DEVICE_TYPE_BOND: a bond master interface + * @NM_DEVICE_TYPE_ADSL: ADSL modem * * #NMDeviceType values indicate the type of hardware represented by * an #NMDevice. @@ -124,6 +126,7 @@ typedef enum { NM_DEVICE_TYPE_INFINIBAND = 9, NM_DEVICE_TYPE_BOND = 10, NM_DEVICE_TYPE_VLAN = 11, + NM_DEVICE_TYPE_ADSL = 12, } NMDeviceType; /** @@ -491,6 +494,9 @@ typedef enum { /* A dependency of the connection failed */ NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED = 50, + /* Problem with the RFC 2684 Ethernet over ADSL bridge */ + NM_DEVICE_STATE_REASON_BR2684_FAILED = 51, + /* Unused */ NM_DEVICE_STATE_REASON_LAST = 0xFFFF } NMDeviceStateReason; diff --git a/include/NetworkManagerVPN.h b/include/NetworkManagerVPN.h index 8ee5b9a3..6e654b3a 100644 --- a/include/NetworkManagerVPN.h +++ b/include/NetworkManagerVPN.h @@ -114,8 +114,28 @@ typedef enum { } NMVPNPluginFailure; -/* uint32: IP address of the public external VPN gateway (network byte order) */ -#define NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY "gateway" +/*** Generic config ***/ + +/* string: VPN interface name (tun0, tap0, etc) */ +#define NM_VPN_PLUGIN_CONFIG_TUNDEV "tundev" + +/* string: Login message */ +#define NM_VPN_PLUGIN_CONFIG_BANNER "banner" + +/* uint32 / array of uint8: IP address of the public external VPN gateway (network byte order) */ +#define NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY "gateway" + +/* uint32: Maximum Transfer Unit that the VPN interface should use */ +#define NM_VPN_PLUGIN_CONFIG_MTU "mtu" + +/* boolean: Has IP4 configuration? */ +#define NM_VPN_PLUGIN_CONFIG_HAS_IP4 "has-ip4" + +/* boolean: Has IP6 configuration? */ +#define NM_VPN_PLUGIN_CONFIG_HAS_IP6 "has-ip6" + + +/*** Ip4Config ***/ /* uint32: IP address of the internal gateway of the subnet the VPN interface is * on, if the VPN uses subnet configuration (network byte order) @@ -142,30 +162,14 @@ typedef enum { /* uint32: Message Segment Size that the VPN interface should use */ #define NM_VPN_PLUGIN_IP4_CONFIG_MSS "mss" -/* uint32: Maximum Transfer Unit that the VPN interface should use */ -#define NM_VPN_PLUGIN_IP4_CONFIG_MTU "mtu" - -/* string: VPN interface name (tun0, tap0, etc) */ -#define NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV "tundev" - /* string: DNS domain name */ #define NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN "domain" /* array of strings: DNS domain names */ #define NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS "domains" -/* string: Login message */ -#define NM_VPN_PLUGIN_IP4_CONFIG_BANNER "banner" - -/* array of array of uint32: custom routes the client should apply. NOTE: NM - * expects the D-Bus argument signature "aau" here. i.e., an array of - * routes, where each route is a 4-element array of uint32 values. - * - * Each route consists of the following 4 uint32 values, in this order: - * 1: destination IP address (network byte order) - * 2: destination prefix (1 - 32 inclusive) - * 3: IP address of next hop (network byte order) - * 4: route metric +/* [ip4 routes]: custom routes the client should apply, in the format used + * by nm_utils_ip4_routes_to/from_gvalue */ #define NM_VPN_PLUGIN_IP4_CONFIG_ROUTES "routes" @@ -175,5 +179,52 @@ typedef enum { /* Deprecated */ #define NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY +/* Legacy IP4 items; these are included in the IP4 config by older plugins, + * but in the generic config by newer plugins. + */ + +#define NM_VPN_PLUGIN_IP4_CONFIG_BANNER NM_VPN_PLUGIN_CONFIG_BANNER +#define NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY +#define NM_VPN_PLUGIN_IP4_CONFIG_MTU NM_VPN_PLUGIN_CONFIG_MTU +#define NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV NM_VPN_PLUGIN_CONFIG_TUNDEV + + +/*** Ip6Config ***/ + +/* array of uint8: IP address of the internal gateway of the subnet the VPN interface is + * on, if the VPN uses subnet configuration (network byte order) + */ +#define NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY "internal-gateway" + +/* array of uint8: internal IP address of the local VPN interface (network byte order) */ +#define NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS "address" + +/* array of uint8: IP address of the other side of Point-to-Point connection if the VPN + * uses Point-to-Point configuration. (network byte order) + */ +#define NM_VPN_PLUGIN_IP6_CONFIG_PTP "ptp" + +/* uint32: prefix length of the VPN interface; 1 - 128 inclusive */ +#define NM_VPN_PLUGIN_IP6_CONFIG_PREFIX "prefix" + +/* array of array of uint8: IP addresses of DNS servers for the VPN (network byte order) */ +#define NM_VPN_PLUGIN_IP6_CONFIG_DNS "dns" + +/* uint32: Message Segment Size that the VPN interface should use */ +#define NM_VPN_PLUGIN_IP6_CONFIG_MSS "mss" + +/* string: DNS domain name */ +#define NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN "domain" + +/* array of strings: DNS domain names */ +#define NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS "domains" + +/* [ip6 routes]: custom routes the client should apply, in the format used + * by nm_utils_ip6_routes_to/from_gvalue + */ +#define NM_VPN_PLUGIN_IP6_CONFIG_ROUTES "routes" + +/* boolean: prevent this VPN connection from ever getting the default route */ +#define NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT "never-default" #endif /* NETWORK_MANAGER_VPN_H */ diff --git a/include/nm-glib-compat.h b/include/nm-glib-compat.h index 30b83e0d..3b772f4f 100644 --- a/include/nm-glib-compat.h +++ b/include/nm-glib-compat.h @@ -42,6 +42,16 @@ g_simple_async_result_set_from_error (result, __error); \ g_error_free (__error); \ } G_STMT_END + +#define g_clear_object(object_ptr) \ + G_STMT_START { \ + GObject **__obj_p = (gpointer) (object_ptr); \ + if (*__obj_p) { \ + g_object_unref (*__obj_p); \ + *__obj_p = NULL; \ + } \ + } G_STMT_END + #endif #endif /* NM_GLIB_COMPAT_H */ diff --git a/include/nm-settings-flags.h b/include/nm-settings-flags.h index 4bf59f2f..57f38ea5 100644 --- a/include/nm-settings-flags.h +++ b/include/nm-settings-flags.h @@ -29,6 +29,7 @@ typedef enum { NM_SETTINGS_GET_SECRETS_FLAG_NONE = 0x0, NM_SETTINGS_GET_SECRETS_FLAG_ALLOW_INTERACTION = 0x1, NM_SETTINGS_GET_SECRETS_FLAG_REQUEST_NEW = 0x2, + NM_SETTINGS_GET_SECRETS_FLAG_USER_REQUESTED = 0x4, /* Internal only to NM */ NM_SETTINGS_GET_SECRETS_FLAG_ONLY_SYSTEM = 0x80000000 diff --git a/include/nm-version.h b/include/nm-version.h index 19af476b..4bf3ebe5 100644 --- a/include/nm-version.h +++ b/include/nm-version.h @@ -43,7 +43,7 @@ * Evaluates to the micro version number of NetworkManager which this source * compiled against. */ -#define NM_MICRO_VERSION (4) +#define NM_MICRO_VERSION (5) /** * NM_CHECK_VERSION: diff --git a/initscript/Arch/Makefile.in b/initscript/Arch/Makefile.in index cd2ba2ea..dc554265 100644 --- a/initscript/Arch/Makefile.in +++ b/initscript/Arch/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/Debian/Makefile.in b/initscript/Debian/Makefile.in index 7ddadb9c..6af40e44 100644 --- a/initscript/Debian/Makefile.in +++ b/initscript/Debian/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/Gentoo/Makefile.in b/initscript/Gentoo/Makefile.in index 4da1a2a4..9729a2a4 100644 --- a/initscript/Gentoo/Makefile.in +++ b/initscript/Gentoo/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/Makefile.in b/initscript/Makefile.in index a3a61d15..1078bb89 100644 --- a/initscript/Makefile.in +++ b/initscript/Makefile.in @@ -55,7 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -184,6 +184,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -279,6 +283,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -317,6 +324,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/Mandriva/Makefile.in b/initscript/Mandriva/Makefile.in index 1b1c8710..584e3493 100644 --- a/initscript/Mandriva/Makefile.in +++ b/initscript/Mandriva/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/RedHat/Makefile.in b/initscript/RedHat/Makefile.in index 6ee9f033..2e6e9af4 100644 --- a/initscript/RedHat/Makefile.in +++ b/initscript/RedHat/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/SUSE/Makefile.in b/initscript/SUSE/Makefile.in index b0a0fce1..f465e5cd 100644 --- a/initscript/SUSE/Makefile.in +++ b/initscript/SUSE/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -135,6 +135,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -230,6 +234,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -268,6 +275,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/Slackware/Makefile.in b/initscript/Slackware/Makefile.in index 3d5ad040..593b6630 100644 --- a/initscript/Slackware/Makefile.in +++ b/initscript/Slackware/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/linexa/Makefile.in b/initscript/linexa/Makefile.in index 9e65bda2..60a15a15 100644 --- a/initscript/linexa/Makefile.in +++ b/initscript/linexa/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/initscript/paldo/Makefile.in b/initscript/paldo/Makefile.in index 44f3f7f7..b80b0da9 100644 --- a/initscript/paldo/Makefile.in +++ b/initscript/paldo/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/introspection/Makefile.am b/introspection/Makefile.am index ea1c51ba..a267b51a 100644 --- a/introspection/Makefile.am +++ b/introspection/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST = \ nm-device-wifi.xml \ nm-device-olpc-mesh.xml \ nm-device-ethernet.xml \ + nm-device-adsl.xml \ nm-device-modem.xml \ nm-device-wimax.xml \ nm-device-infiniband.xml \ diff --git a/introspection/Makefile.in b/introspection/Makefile.in index 382cd5ab..31078f0f 100644 --- a/introspection/Makefile.in +++ b/introspection/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -135,6 +135,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -230,6 +234,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -268,6 +275,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -298,6 +307,7 @@ EXTRA_DIST = \ nm-device-wifi.xml \ nm-device-olpc-mesh.xml \ nm-device-ethernet.xml \ + nm-device-adsl.xml \ nm-device-modem.xml \ nm-device-wimax.xml \ nm-device-infiniband.xml \ diff --git a/introspection/all.xml.in b/introspection/all.xml.in index 406140e9..e9e7b0e0 100644 --- a/introspection/all.xml.in +++ b/introspection/all.xml.in @@ -37,6 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <xi:include href="nm-device-infiniband.xml"/> <xi:include href="nm-device-bond.xml"/> <xi:include href="nm-device-vlan.xml"/> +<xi:include href="nm-device-adsl.xml"/> <xi:include href="nm-wimax-nsp.xml"/> <xi:include href="nm-ip4-config.xml"/> <xi:include href="nm-ip6-config.xml"/> diff --git a/introspection/nm-device-adsl.xml b/introspection/nm-device-adsl.xml new file mode 100644 index 00000000..ec50d110 --- /dev/null +++ b/introspection/nm-device-adsl.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"> + <interface name="org.freedesktop.NetworkManager.Device.Adsl"> + + <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> + + <property name="Carrier" type="b" access="read"> + <tp:docstring> + Indicates whether the physical carrier is found. + </tp:docstring> + </property> + + </interface> +</node> diff --git a/introspection/nm-device-wifi.xml b/introspection/nm-device-wifi.xml index fb507624..531fc893 100644 --- a/introspection/nm-device-wifi.xml +++ b/introspection/nm-device-wifi.xml @@ -14,6 +14,19 @@ </tp:docstring> </method> + <method name="RequestScan"> + <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_device_request_scan"/> + <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> + <arg name="options" type="a{sv}" direction="in"> + <tp:docstring> + Options of scan + </tp:docstring> + </arg> + <tp:docstring> + Request the device to scan + </tp:docstring> + </method> + <property name="HwAddress" type="s" access="read"> <tp:docstring> The active hardware address of the device. diff --git a/introspection/nm-device.xml b/introspection/nm-device.xml index d12d4778..7f6a0a07 100644 --- a/introspection/nm-device.xml +++ b/introspection/nm-device.xml @@ -36,6 +36,16 @@ The driver handling the device. </tp:docstring> </property> + <property name="DriverVersion" type="s" access="read"> + <tp:docstring> + The version of the driver handling the device. + </tp:docstring> + </property> + <property name="FirmwareVersion" type="s" access="read"> + <tp:docstring> + The firmware version for the device. + </tp:docstring> + </property> <property name="Capabilities" type="u" access="read" tp:type="NM_DEVICE_CAP"> <tp:docstring> Flags describing the capabilities of the device. @@ -91,6 +101,14 @@ Whether or not this device is managed by NetworkManager. </tp:docstring> </property> + <property name="Autoconnect" type="b" access="readwrite"> + <tp:docstring> + If TRUE, indicates the device is allowed to autoconnect. If FALSE, + manual intervention is required before the device will automatically + connect to a known network, such as activating a connection using the + device, or setting this property to TRUE. + </tp:docstring> + </property> <property name="FirmwareMissing" type="b" access="read"> <tp:docstring> If TRUE, indicates the device is likely missing firmware necessary for @@ -526,6 +544,11 @@ A dependency of the connection failed. </tp:docstring> </tp:enumvalue> + <tp:enumvalue suffix="BR2684_FAILED" value="50"> + <tp:docstring> + Problem with the RFC 2684 Ethernet over ADSL bridge. + </tp:docstring> + </tp:enumvalue> </tp:enum> <tp:struct name="NM_DEVICE_STATE_REASON_STRUCT"> diff --git a/introspection/nm-secret-agent.xml b/introspection/nm-secret-agent.xml index 0a67efdc..81a1321b 100644 --- a/introspection/nm-secret-agent.xml +++ b/introspection/nm-secret-agent.xml @@ -96,6 +96,14 @@ invalid or wrong. This flag implies that interaction is allowed. </tp:docstring> </tp:flag> + <tp:flag suffix="USER_REQUESTED" value="0x4"> + <tp:docstring> + Set if the request was initiated by user-requested action via the + D-Bus interface, as opposed to automatically initiated by + NetworkManager in response to (for example) scan results or + carrier changes. + </tp:docstring> + </tp:flag> </tp:flags> <method name="CancelGetSecrets"> diff --git a/introspection/nm-vpn-plugin.xml b/introspection/nm-vpn-plugin.xml index 72861f26..5fb11622 100644 --- a/introspection/nm-vpn-plugin.xml +++ b/introspection/nm-vpn-plugin.xml @@ -55,6 +55,18 @@ </tp:possible-errors> </method> + <method name="SetConfig"> + <tp:docstring> + Set generic connection details on the connection. + </tp:docstring> + <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_config"/> + <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map"> + <tp:docstring> + Generic configuration details for the connection. + </tp:docstring> + </arg> + </method> + <method name="SetIp4Config"> <tp:docstring> Set IPv4 details on the connection. @@ -62,7 +74,21 @@ <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip4_config"/> <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map"> <tp:docstring> - Ip4Config details for the conneciton. + Ip4Config details for the connection. You must call + SetConfig() before calling this. + </tp:docstring> + </arg> + </method> + + <method name="SetIp6Config"> + <tp:docstring> + Set IPv6 details on the connection. + </tp:docstring> + <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_vpn_plugin_set_ip6_config"/> + <arg name="config" type="a{sv}" direction="in" tp:type="String_Variant_Map"> + <tp:docstring> + Ip6Config details for the connection. You must call + SetConfig() before calling this. </tp:docstring> </arg> </method> @@ -96,6 +122,17 @@ </arg> </signal> + <signal name="Config"> + <tp:docstring> + The plugin obtained generic configuration information. + </tp:docstring> + <arg name="config" type="a{sv}" tp:type="String_Variant_Map"> + <tp:docstring> + The configuration information. + </tp:docstring> + </arg> + </signal> + <signal name="Ip4Config"> <tp:docstring> The plugin obtained an IPv4 configuration. @@ -107,6 +144,17 @@ </arg> </signal> + <signal name="Ip6Config"> + <tp:docstring> + The plugin obtained an IPv6 configuration. + </tp:docstring> + <arg name="ip6config" type="a{sv}" tp:type="String_Variant_Map"> + <tp:docstring> + The IPv6 configuration. + </tp:docstring> + </arg> + </signal> + <signal name="LoginBanner"> <tp:docstring> Emitted when the plugin receives a login banner from the VPN service. diff --git a/libnm-glib/Makefile.am b/libnm-glib/Makefile.am index b2ea3b79..89ed3c5e 100644 --- a/libnm-glib/Makefile.am +++ b/libnm-glib/Makefile.am @@ -59,6 +59,7 @@ libnminclude_HEADERS = \ nm-device.h \ nm-device-ethernet.h \ nm-device-infiniband.h \ + nm-device-adsl.h \ nm-device-wifi.h \ nm-device-bt.h \ nm-device-olpc-mesh.h \ @@ -92,6 +93,7 @@ libnm_glib_la_csources = \ nm-device.c \ nm-device-ethernet.c \ nm-device-infiniband.c \ + nm-device-adsl.c \ nm-device-wifi.c \ nm-device-bt.c \ nm-device-olpc-mesh.c \ @@ -215,10 +217,11 @@ introspection_sources = $(libnminclude_HEADERS) $(libnm_glib_la_csources) NMClient-1.0.gir: libnm-glib.la NMClient_1_0_gir_INCLUDES = Gio-2.0 DBusGLib-1.0 NMClient_1_0_gir_PACKAGES = gio-2.0 dbus-glib-1 gudev-1.0 +NMClient_1_0_gir_EXPORT_PACKAGES = libnm-glib libnm-glib-vpn NMClient_1_0_gir_CFLAGS = $(INCLUDES) -I$(top_srcdir)/libnm-glib -I$(top_srcdir)/libnm-util -NMClient_1_0_gir_LIBS = libnm-glib.la +NMClient_1_0_gir_LIBS = libnm-glib.la $(top_builddir)/libnm-util/libnm-util.la NMClient_1_0_gir_FILES = $(introspection_sources) -NMClient_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm_ --include-uninstalled=$(top_builddir)/libnm-util/NetworkManager-1.0.gir +NMClient_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm --include-uninstalled=$(top_builddir)/libnm-util/NetworkManager-1.0.gir INTROSPECTION_GIRS += NMClient-1.0.gir girdir = $(datadir)/gir-1.0 diff --git a/libnm-glib/Makefile.in b/libnm-glib/Makefile.in index 5a013e87..b3535234 100644 --- a/libnm-glib/Makefile.in +++ b/libnm-glib/Makefile.in @@ -56,7 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -108,6 +108,7 @@ am__objects_2 = libnm_glib_test_la-nm-object.lo \ libnm_glib_test_la-nm-device.lo \ libnm_glib_test_la-nm-device-ethernet.lo \ libnm_glib_test_la-nm-device-infiniband.lo \ + libnm_glib_test_la-nm-device-adsl.lo \ libnm_glib_test_la-nm-device-wifi.lo \ libnm_glib_test_la-nm-device-bt.lo \ libnm_glib_test_la-nm-device-olpc-mesh.lo \ @@ -155,6 +156,7 @@ libnm_glib_la_DEPENDENCIES = $(top_builddir)/libnm-util/libnm-util.la \ am__objects_4 = libnm_glib_la-nm-object.lo libnm_glib_la-nm-client.lo \ libnm_glib_la-nm-device.lo libnm_glib_la-nm-device-ethernet.lo \ libnm_glib_la-nm-device-infiniband.lo \ + libnm_glib_la-nm-device-adsl.lo \ libnm_glib_la-nm-device-wifi.lo libnm_glib_la-nm-device-bt.lo \ libnm_glib_la-nm-device-olpc-mesh.lo \ libnm_glib_la-nm-device-bond.lo \ @@ -338,6 +340,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -433,6 +439,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -471,6 +480,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -543,6 +554,7 @@ libnminclude_HEADERS = \ nm-device.h \ nm-device-ethernet.h \ nm-device-infiniband.h \ + nm-device-adsl.h \ nm-device-wifi.h \ nm-device-bt.h \ nm-device-olpc-mesh.h \ @@ -576,6 +588,7 @@ libnm_glib_la_csources = \ nm-device.c \ nm-device-ethernet.c \ nm-device-infiniband.c \ + nm-device-adsl.c \ nm-device-wifi.c \ nm-device-bt.c \ nm-device-olpc-mesh.c \ @@ -674,10 +687,11 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/libnm-util @HAVE_INTROSPECTION_TRUE@introspection_sources = $(libnminclude_HEADERS) $(libnm_glib_la_csources) @HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_INCLUDES = Gio-2.0 DBusGLib-1.0 @HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_PACKAGES = gio-2.0 dbus-glib-1 gudev-1.0 +@HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_EXPORT_PACKAGES = libnm-glib libnm-glib-vpn @HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_CFLAGS = $(INCLUDES) -I$(top_srcdir)/libnm-glib -I$(top_srcdir)/libnm-util -@HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_LIBS = libnm-glib.la +@HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_LIBS = libnm-glib.la $(top_builddir)/libnm-util/libnm-util.la @HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_FILES = $(introspection_sources) -@HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm_ --include-uninstalled=$(top_builddir)/libnm-util/NetworkManager-1.0.gir +@HAVE_INTROSPECTION_TRUE@NMClient_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm --include-uninstalled=$(top_builddir)/libnm-util/NetworkManager-1.0.gir @HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0 @HAVE_INTROSPECTION_TRUE@gir_DATA = $(INTROSPECTION_GIRS) @HAVE_INTROSPECTION_TRUE@typelibdir = $(libdir)/girepository-1.0 @@ -792,6 +806,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_la-nm-access-point.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_la-nm-active-connection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_la-nm-client.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_la-nm-device-adsl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_la-nm-device-bond.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_la-nm-device-bt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_la-nm-device-ethernet.Plo@am__quote@ @@ -820,6 +835,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_test_la-nm-access-point.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_test_la-nm-active-connection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_test_la-nm-client.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_test_la-nm-device-adsl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_test_la-nm-device-bond.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_test_la-nm-device-bt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_glib_test_la-nm-device-ethernet.Plo@am__quote@ @@ -924,6 +940,14 @@ libnm_glib_test_la-nm-device-infiniband.lo: nm-device-infiniband.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_test_la_CFLAGS) $(CFLAGS) -c -o libnm_glib_test_la-nm-device-infiniband.lo `test -f 'nm-device-infiniband.c' || echo '$(srcdir)/'`nm-device-infiniband.c +libnm_glib_test_la-nm-device-adsl.lo: nm-device-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_test_la_CFLAGS) $(CFLAGS) -MT libnm_glib_test_la-nm-device-adsl.lo -MD -MP -MF $(DEPDIR)/libnm_glib_test_la-nm-device-adsl.Tpo -c -o libnm_glib_test_la-nm-device-adsl.lo `test -f 'nm-device-adsl.c' || echo '$(srcdir)/'`nm-device-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_glib_test_la-nm-device-adsl.Tpo $(DEPDIR)/libnm_glib_test_la-nm-device-adsl.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-device-adsl.c' object='libnm_glib_test_la-nm-device-adsl.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_test_la_CFLAGS) $(CFLAGS) -c -o libnm_glib_test_la-nm-device-adsl.lo `test -f 'nm-device-adsl.c' || echo '$(srcdir)/'`nm-device-adsl.c + libnm_glib_test_la-nm-device-wifi.lo: nm-device-wifi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_test_la_CFLAGS) $(CFLAGS) -MT libnm_glib_test_la-nm-device-wifi.lo -MD -MP -MF $(DEPDIR)/libnm_glib_test_la-nm-device-wifi.Tpo -c -o libnm_glib_test_la-nm-device-wifi.lo `test -f 'nm-device-wifi.c' || echo '$(srcdir)/'`nm-device-wifi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_glib_test_la-nm-device-wifi.Tpo $(DEPDIR)/libnm_glib_test_la-nm-device-wifi.Plo @@ -1172,6 +1196,14 @@ libnm_glib_la-nm-device-infiniband.lo: nm-device-infiniband.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_la_CFLAGS) $(CFLAGS) -c -o libnm_glib_la-nm-device-infiniband.lo `test -f 'nm-device-infiniband.c' || echo '$(srcdir)/'`nm-device-infiniband.c +libnm_glib_la-nm-device-adsl.lo: nm-device-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_la_CFLAGS) $(CFLAGS) -MT libnm_glib_la-nm-device-adsl.lo -MD -MP -MF $(DEPDIR)/libnm_glib_la-nm-device-adsl.Tpo -c -o libnm_glib_la-nm-device-adsl.lo `test -f 'nm-device-adsl.c' || echo '$(srcdir)/'`nm-device-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_glib_la-nm-device-adsl.Tpo $(DEPDIR)/libnm_glib_la-nm-device-adsl.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-device-adsl.c' object='libnm_glib_la-nm-device-adsl.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_la_CFLAGS) $(CFLAGS) -c -o libnm_glib_la-nm-device-adsl.lo `test -f 'nm-device-adsl.c' || echo '$(srcdir)/'`nm-device-adsl.c + libnm_glib_la-nm-device-wifi.lo: nm-device-wifi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libnm_glib_la_CFLAGS) $(CFLAGS) -MT libnm_glib_la-nm-device-wifi.lo -MD -MP -MF $(DEPDIR)/libnm_glib_la-nm-device-wifi.Tpo -c -o libnm_glib_la-nm-device-wifi.lo `test -f 'nm-device-wifi.c' || echo '$(srcdir)/'`nm-device-wifi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_glib_la-nm-device-wifi.Tpo $(DEPDIR)/libnm_glib_la-nm-device-wifi.Plo diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver index 427e2484..4bcbfb0d 100644 --- a/libnm-glib/libnm-glib.ver +++ b/libnm-glib/libnm-glib.ver @@ -58,6 +58,11 @@ global: nm_client_wwan_get_enabled; nm_client_wwan_hardware_get_enabled; nm_client_wwan_set_enabled; + nm_device_adsl_error_get_type; + nm_device_adsl_error_quark; + nm_device_adsl_get_carrier; + nm_device_adsl_get_type; + nm_device_adsl_new; nm_device_bond_error_get_type; nm_device_bond_error_quark; nm_device_bond_get_carrier; @@ -84,12 +89,15 @@ global: nm_device_ethernet_new; nm_device_filter_connections; nm_device_get_active_connection; + nm_device_get_autoconnect; nm_device_get_capabilities; nm_device_get_device_type; nm_device_get_dhcp4_config; nm_device_get_dhcp6_config; nm_device_get_driver; + nm_device_get_driver_version; nm_device_get_firmware_missing; + nm_device_get_firmware_version; nm_device_get_iface; nm_device_get_ip4_config; nm_device_get_ip6_config; @@ -120,6 +128,7 @@ global: nm_device_olpc_mesh_get_hw_address; nm_device_olpc_mesh_get_type; nm_device_olpc_mesh_new; + nm_device_set_autoconnect; nm_device_vlan_error_get_type; nm_device_vlan_error_quark; nm_device_vlan_get_carrier; @@ -177,6 +186,8 @@ global: nm_ip6_config_new; nm_ip6_route_object_array_get_type; nm_object_array_get_type; + nm_object_error_get_type; + nm_object_error_quark; nm_object_get_connection; nm_object_get_path; nm_object_get_type; diff --git a/libnm-glib/nm-access-point.c b/libnm-glib/nm-access-point.c index 53993b07..fef65575 100644 --- a/libnm-glib/nm-access-point.c +++ b/libnm-glib/nm-access-point.c @@ -25,6 +25,8 @@ #include <string.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-connection.h> #include <nm-setting-connection.h> #include <nm-setting-wireless.h> @@ -41,7 +43,6 @@ G_DEFINE_TYPE (NMAccessPoint, nm_access_point, NM_TYPE_OBJECT) #define NM_ACCESS_POINT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ACCESS_POINT, NMAccessPointPrivate)) typedef struct { - gboolean disposed; DBusGProxy *proxy; NM80211ApFlags flags; @@ -431,14 +432,7 @@ dispose (GObject *object) { NMAccessPointPrivate *priv = NM_ACCESS_POINT_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_access_point_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - - g_object_unref (priv->proxy); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_access_point_parent_class)->dispose (object); } @@ -464,6 +458,8 @@ get_property (GObject *object, { NMAccessPoint *ap = NM_ACCESS_POINT (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_FLAGS: g_value_set_uint (value, nm_access_point_get_flags (ap)); diff --git a/libnm-glib/nm-access-point.h b/libnm-glib/nm-access-point.h index 97bd9a25..ffbf63cc 100644 --- a/libnm-glib/nm-access-point.h +++ b/libnm-glib/nm-access-point.h @@ -27,6 +27,7 @@ #include <glib.h> #include <glib-object.h> #include <NetworkManager.h> +#include <nm-connection.h> #include "nm-object.h" G_BEGIN_DECLS diff --git a/libnm-glib/nm-active-connection.c b/libnm-glib/nm-active-connection.c index 59d8a6af..f170121b 100644 --- a/libnm-glib/nm-active-connection.c +++ b/libnm-glib/nm-active-connection.c @@ -49,7 +49,6 @@ G_DEFINE_TYPE_WITH_CODE (NMActiveConnection, nm_active_connection, NM_TYPE_OBJEC #define NM_ACTIVE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionPrivate)) typedef struct { - gboolean disposed; DBusGProxy *proxy; char *connection; @@ -357,18 +356,13 @@ dispose (GObject *object) { NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_active_connection_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - if (priv->devices) { g_ptr_array_foreach (priv->devices, (GFunc) g_object_unref, NULL); g_ptr_array_free (priv->devices, TRUE); + priv->devices = NULL; } - g_object_unref (priv->proxy); + + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_active_connection_parent_class)->dispose (object); } @@ -394,6 +388,8 @@ get_property (GObject *object, { NMActiveConnection *self = NM_ACTIVE_CONNECTION (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_CONNECTION: g_value_set_string (value, nm_active_connection_get_connection (self)); diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c index 937a1bf8..a21b8147 100644 --- a/libnm-glib/nm-client.c +++ b/libnm-glib/nm-client.c @@ -53,8 +53,6 @@ G_DEFINE_TYPE_WITH_CODE (NMClient, nm_client, NM_TYPE_OBJECT, #define NM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CLIENT, NMClientPrivate)) typedef struct { - gboolean disposed; - DBusGProxy *client_proxy; DBusGProxy *bus_proxy; gboolean manager_running; @@ -459,35 +457,56 @@ activate_info_complete (ActivateInfo *info, } static void -recheck_pending_activations (NMClient *self) +recheck_pending_activations (NMClient *self, const char *failed_path, GError *error) { NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); GSList *iter; const GPtrArray *active_connections; + gboolean found_in_active = FALSE; + gboolean found_in_pending = FALSE; + ActivateInfo *ainfo = NULL; int i; active_connections = nm_client_get_active_connections (self); - if (!active_connections) - return; - /* For each active connection, look for a pending activation that has - * the active connection's object path, and call its callback. + /* For each pending activation, look for a active connection that has + * the pending activation's object path, and call pending connection's + * callback. + * If the connection to activate doesn't make it to active_connections, + * due to an error, we have to call the callback for failed_path. */ - for (i = 0; i < active_connections->len; i++) { - NMActiveConnection *active = g_ptr_array_index (active_connections, i); - const char *active_path = nm_object_get_path (NM_OBJECT (active)); + for (iter = priv->pending_activations; iter; iter = g_slist_next (iter)) { + ActivateInfo *info = iter->data; + + if (!found_in_pending && failed_path && g_strcmp0 (failed_path, info->active_path) == 0) { + found_in_pending = TRUE; + ainfo = info; + } - for (iter = priv->pending_activations; iter; iter = g_slist_next (iter)) { - ActivateInfo *info = iter->data; + for (i = 0; active_connections && i < active_connections->len; i++) { + NMActiveConnection *active = g_ptr_array_index (active_connections, i); + const char *active_path = nm_object_get_path (NM_OBJECT (active)); + + if (!found_in_active && failed_path && g_strcmp0 (failed_path, active_path) == 0) + found_in_active = TRUE; if (g_strcmp0 (info->active_path, active_path) == 0) { - /* Call the pending activation's callback and it all up*/ + /* Call the pending activation's callback and it all up */ activate_info_complete (info, active, NULL); activate_info_free (info); break; } } } + + if (!found_in_active && found_in_pending) { + /* A newly activated connection failed due to some immediate error + * and disappeared from active connection list. Make sure the + * callback gets called. + */ + activate_info_complete (ainfo, NULL, error); + activate_info_free (ainfo); + } } static void @@ -508,7 +527,7 @@ activate_cb (DBusGProxy *proxy, g_clear_error (&error); } else { info->active_path = path; - recheck_pending_activations (info->client); + recheck_pending_activations (info->client, NULL, NULL); } } @@ -587,7 +606,7 @@ add_activate_cb (DBusGProxy *proxy, } else { info->new_connection_path = connection_path; info->active_path = active_path; - recheck_pending_activations (info->client); + recheck_pending_activations (info->client, NULL, NULL); } } @@ -653,7 +672,14 @@ nm_client_add_and_activate_connection (NMClient *client, static void active_connections_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_data) { - recheck_pending_activations (NM_CLIENT (object)); + recheck_pending_activations (NM_CLIENT (object), NULL, NULL); +} + +static void +object_creation_failed_cb (GObject *object, GError *error, char *failed_path) +{ + if (error) + recheck_pending_activations (NM_CLIENT (object), failed_path, error); } /** @@ -692,7 +718,7 @@ nm_client_deactivate_connection (NMClient *client, NMActiveConnection *active) * Gets the active connections. * * Returns: (transfer none) (element-type NMClient.ActiveConnection): a #GPtrArray -* containing all the active #NMActiveConnection<!-- -->s. + * containing all the active #NMActiveConnection<!-- -->s. * The returned array is owned by the client and should not be modified. **/ const GPtrArray * @@ -1018,30 +1044,50 @@ nm_client_get_permission_result (NMClient *client, NMClientPermission permission /****************************************************************/ static void -free_object_array (GPtrArray **array) +free_devices (NMClient *client, gboolean emit_signals) { - g_return_if_fail (array != NULL); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client); + GPtrArray *devices; + NMDevice *device; + int i; + + if (!priv->devices) + return; - if (*array) { - g_ptr_array_foreach (*array, (GFunc) g_object_unref, NULL); - g_ptr_array_free (*array, TRUE); - *array = NULL; + devices = priv->devices; + priv->devices = NULL; + for (i = 0; i < devices->len; i++) { + device = devices->pdata[i]; + if (emit_signals) + g_signal_emit (client, signals[DEVICE_REMOVED], 0, device); + g_object_unref (device); } + g_ptr_array_free (devices, TRUE); } static void -dispose_and_free_object_array (GPtrArray **array) +free_active_connections (NMClient *client, gboolean emit_signals) { - g_return_if_fail (array != NULL); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client); + GPtrArray *active_connections; + NMActiveConnection *active_connection; + int i; - if (*array) { - /* The objects in the array may have circular refs with other - * objects, which the caller will need to know to break by - * calling this function rather than free_object_array(). - */ - g_ptr_array_foreach (*array, (GFunc) g_object_run_dispose, NULL); - free_object_array (array); + if (!priv->active_connections) + return; + + active_connections = priv->active_connections; + priv->active_connections = NULL; + for (i = 0; i < active_connections->len; i++) { + active_connection = active_connections->pdata[i]; + /* Break circular refs */ + g_object_run_dispose (G_OBJECT (active_connection)); + g_object_unref (active_connection); } + g_ptr_array_free (active_connections, TRUE); + + if (emit_signals) + g_object_notify (G_OBJECT (client), NM_CLIENT_ACTIVE_CONNECTIONS); } static void @@ -1088,8 +1134,8 @@ proxy_name_owner_changed (DBusGProxy *proxy, _nm_object_queue_notify (NM_OBJECT (client), NM_CLIENT_MANAGER_RUNNING); _nm_object_suppress_property_updates (NM_OBJECT (client), TRUE); poke_wireless_devices_with_rf_status (client); - free_object_array (&priv->devices); - dispose_and_free_object_array (&priv->active_connections); + free_devices (client, TRUE); + free_active_connections (client, TRUE); priv->wireless_enabled = FALSE; priv->wireless_hw_enabled = FALSE; priv->wwan_enabled = FALSE; @@ -1098,6 +1144,11 @@ proxy_name_owner_changed (DBusGProxy *proxy, priv->wimax_hw_enabled = FALSE; g_free (priv->version); priv->version = NULL; + + /* Clear object cache to ensure bad refcounting by clients doesn't + * keep objects in the cache. + */ + _nm_object_cache_clear (NM_OBJECT (client)); } else { _nm_object_suppress_property_updates (NM_OBJECT (client), FALSE); _nm_object_reload_properties_async (NM_OBJECT (client), updated_properties, client); @@ -1241,6 +1292,104 @@ nm_client_new_finish (GAsyncResult *result, GError **error) return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); } +/* + * Validate D-Bus object path. + * The function is copied and adjusted version of + * g_variant_serialiser_is_object_path() from glib. + * FIXME: The function can be replaced by g_variant_is_object_path() + * when we start using GLib >= 2.24 + */ +static gboolean +_nm_client_is_object_path (const char *string) +{ + gsize i; + + if (!g_utf8_validate (string, -1, NULL)) + return FALSE; + + /* The path must begin with an ASCII '/' (integer 47) character */ + if (string[0] != '/') + return FALSE; + + for (i = 1; string[i]; i++) { + /* Each element must only contain the ASCII characters + * "[A-Z][a-z][0-9]_" + */ + if (g_ascii_isalnum (string[i]) || string[i] == '_') + ; + /* must consist of elements separated by slash characters. */ + else if (string[i] == '/') { + /* No element may be the empty string. */ + /* Multiple '/' characters cannot occur in sequence. */ + if (string[i - 1] == '/') + return FALSE; + } else + return FALSE; + } + + /* A trailing '/' character is not allowed unless the path is the + * root path (a single '/' character). + */ + if (i > 1 && string[i - 1] == '/') + return FALSE; + + return TRUE; +} + +/* + * constructor() shouldn't be overriden in most cases, rather constructed() + * method is preferred and more useful. + * But, this serves as a workaround for bindings (use) calling the constructor() + * directly instead of nm_client_new() function, and neither providing + * construction properties. So, we fill "dbus-path" here if it was not specified + * (was set to default value (NULL)). + * + * It allows this python code: + * from gi.repository import NMClient + * nmclient = NMClient.Client() + * print nmclient.get_active_connections() + * + * instead of proper + * nmclient = NMClient.Client().new() + * + * Note: + * A nice overview of GObject construction is here: + * http://blogs.gnome.org/desrt/2012/02/26/a-gentle-introduction-to-gobject-construction + * It is much better explanation than the official docs + * http://developer.gnome.org/gobject/unstable/chapter-gobject.html#gobject-instantiation + */ +static GObject* +constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + GObject *object; + guint i; + const char *dbus_path; + + for (i = 0; i < n_construct_params; i++) { + if (strcmp (construct_params[i].pspec->name, NM_OBJECT_DBUS_PATH) == 0) { + dbus_path = g_value_get_string (construct_params[i].value); + if (dbus_path == NULL) { + g_value_set_static_string (construct_params[i].value, NM_DBUS_PATH); + } else { + if (!_nm_client_is_object_path (dbus_path)) { + g_warning ("Passsed D-Bus object path '%s' is invalid; using default '%s' instead", + dbus_path, NM_DBUS_PATH); + g_value_set_static_string (construct_params[i].value, NM_DBUS_PATH); + } + } + break; + } + } + + object = G_OBJECT_CLASS (nm_client_parent_class)->constructor (type, + n_construct_params, + construct_params); + + return object; +} + static void constructed (GObject *object) { @@ -1287,6 +1436,9 @@ constructed (GObject *object) g_signal_connect (object, "notify::" NM_CLIENT_ACTIVE_CONNECTIONS, G_CALLBACK (active_connections_changed_cb), NULL); + + g_signal_connect (object, "object-creation-failed", + G_CALLBACK (object_creation_failed_cb), NULL); } static gboolean @@ -1417,26 +1569,26 @@ init_async (GAsyncInitable *initable, int io_priority, static void dispose (GObject *object) { + NMClient *client = NM_CLIENT (object); NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_client_parent_class)->dispose (object); - return; - } - - if (priv->perm_call) + if (priv->perm_call) { dbus_g_proxy_cancel_call (priv->client_proxy, priv->perm_call); + priv->perm_call = NULL; + } - g_object_unref (priv->client_proxy); - g_object_unref (priv->bus_proxy); + g_clear_object (&priv->client_proxy); + g_clear_object (&priv->bus_proxy); - free_object_array (&priv->devices); - dispose_and_free_object_array (&priv->active_connections); + free_devices (client, FALSE); + free_active_connections (client, FALSE); g_slist_foreach (priv->pending_activations, (GFunc) activate_info_free, NULL); g_slist_free (priv->pending_activations); + priv->pending_activations = NULL; g_hash_table_destroy (priv->permissions); + priv->permissions = NULL; G_OBJECT_CLASS (nm_client_parent_class)->dispose (object); } @@ -1502,6 +1654,8 @@ get_property (GObject *object, NMClient *self = NM_CLIENT (object); NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_VERSION: g_value_set_string (value, nm_client_get_version (self)); @@ -1550,6 +1704,7 @@ nm_client_class_init (NMClientClass *client_class) g_type_class_add_private (client_class, sizeof (NMClientPrivate)); /* virtual methods */ + object_class->constructor = constructor; object_class->constructed = constructed; object_class->set_property = set_property; object_class->get_property = get_property; diff --git a/libnm-glib/nm-device-adsl.c b/libnm-glib/nm-device-adsl.c new file mode 100644 index 00000000..67aad9e8 --- /dev/null +++ b/libnm-glib/nm-device-adsl.c @@ -0,0 +1,245 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * libnm_glib -- Access network status & information from glib applications + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * author: Pantelis Koukousoulas <pktoss@gmail.com> + * Copyright 2009 - 2011 Red Hat, Inc. + */ + +#include "nm-device-adsl.h" +#include "nm-device-private.h" +#include "nm-object-private.h" + +#include "nm-setting-adsl.h" + +#include <string.h> + +G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE) + +#define NM_DEVICE_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_ADSL, NMDeviceAdslPrivate)) + +typedef struct { + DBusGProxy *proxy; + + gboolean carrier; + + gboolean disposed; +} NMDeviceAdslPrivate; + +enum { + PROP_0, + PROP_CARRIER, + LAST_PROP +}; +#define DBUS_PROP_CARRIER "Carrier" + +/** + * nm_device_adsl_error_quark: + * + * Registers an error quark for #NMDeviceAdsl if necessary. + * + * Returns: the error quark used for #NMDeviceAdsl errors. + **/ +GQuark +nm_device_adsl_error_quark (void) +{ + static GQuark quark = 0; + + if (G_UNLIKELY (quark == 0)) + quark = g_quark_from_static_string ("nm-device-adsl-error-quark"); + return quark; +} + +/** + * nm_device_adsl_new: + * @connection: the #DBusGConnection + * @path: the DBus object path of the device + * + * Creates a new #NMDeviceAdsl. + * + * Returns: a new device + **/ +GObject * +nm_device_adsl_new (DBusGConnection *connection, const char *path) +{ + GObject *device; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (path != NULL, NULL); + + device = g_object_new (NM_TYPE_DEVICE_ADSL, + NM_OBJECT_DBUS_CONNECTION, connection, + NM_OBJECT_DBUS_PATH, path, + NULL); + _nm_object_ensure_inited (NM_OBJECT (device)); + return device; +} + +/** + * nm_device_adsl_get_carrier: + * @device: a #NMDeviceAdsl + * + * Whether the device has carrier. + * + * Returns: %TRUE if the device has carrier + **/ +gboolean +nm_device_adsl_get_carrier (NMDeviceAdsl *device) +{ + g_return_val_if_fail (NM_IS_DEVICE_ADSL (device), FALSE); + + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_ADSL_GET_PRIVATE (device)->carrier; +} + +static gboolean +connection_compatible (NMDevice *device, NMConnection *connection, GError **error) +{ + NMSettingConnection *s_con; + NMSettingAdsl *s_adsl; + const char *ctype; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + ctype = nm_setting_connection_get_connection_type (s_con); + if (strcmp (ctype, NM_SETTING_ADSL_SETTING_NAME) != 0) { + g_set_error (error, NM_DEVICE_ADSL_ERROR, NM_DEVICE_ADSL_ERROR_NOT_ADSL_CONNECTION, + "The connection was not an ADSL connection."); + return FALSE; + } + + s_adsl = nm_connection_get_setting_adsl (connection); + if (!s_adsl) { + g_set_error (error, NM_DEVICE_ADSL_ERROR, NM_DEVICE_ADSL_ERROR_INVALID_ADSL_CONNECTION, + "The connection was not a valid ADSL connection."); + return FALSE; + } + + return TRUE; +} + +/******************************************************************/ + +static void +nm_device_adsl_init (NMDeviceAdsl *device) +{ + _nm_device_set_device_type (NM_DEVICE (device), NM_DEVICE_TYPE_ADSL); +} + +static void +register_properties (NMDeviceAdsl *device) +{ + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (device); + const NMPropertiesInfo property_info[] = { + { NM_DEVICE_ADSL_CARRIER, &priv->carrier }, + { NULL }, + }; + + _nm_object_register_properties (NM_OBJECT (device), + priv->proxy, + property_info); +} + +static void +constructed (GObject *object) +{ + NMDeviceAdslPrivate *priv; + + G_OBJECT_CLASS (nm_device_adsl_parent_class)->constructed (object); + + priv = NM_DEVICE_ADSL_GET_PRIVATE (object); + + priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (NM_OBJECT (object)), + NM_DBUS_SERVICE, + nm_object_get_path (NM_OBJECT (object)), + NM_DBUS_INTERFACE_DEVICE_ADSL); + + register_properties (NM_DEVICE_ADSL (object)); +} + +static void +dispose (GObject *object) +{ + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (object); + + if (priv->disposed) { + G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object); + return; + } + + priv->disposed = TRUE; + + g_object_unref (priv->proxy); + + G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object); +} + +static void +finalize (GObject *object) +{ + G_OBJECT_CLASS (nm_device_adsl_parent_class)->finalize (object); +} + +static void +get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + NMDeviceAdsl *device = NM_DEVICE_ADSL (object); + + switch (prop_id) { + case PROP_CARRIER: + g_value_set_boolean (value, nm_device_adsl_get_carrier (device)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +nm_device_adsl_class_init (NMDeviceAdslClass *adsl_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (adsl_class); + NMDeviceClass *device_class = NM_DEVICE_CLASS (adsl_class); + + g_type_class_add_private (object_class, sizeof (NMDeviceAdslPrivate)); + + /* virtual methods */ + object_class->constructed = constructed; + object_class->dispose = dispose; + object_class->finalize = finalize; + object_class->get_property = get_property; + device_class->connection_compatible = connection_compatible; + + /* properties */ + /** + * NMDeviceAdsl:carrier: + * + * Whether the device has carrier. + **/ + g_object_class_install_property + (object_class, PROP_CARRIER, + g_param_spec_boolean (NM_DEVICE_ADSL_CARRIER, + "Carrier", + "Carrier", + FALSE, + G_PARAM_READABLE)); +} diff --git a/libnm-glib/nm-device-adsl.h b/libnm-glib/nm-device-adsl.h new file mode 100644 index 00000000..9d83e267 --- /dev/null +++ b/libnm-glib/nm-device-adsl.h @@ -0,0 +1,77 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * libnm_glib -- Access network status & information from glib applications + * + * 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 Pantelis Koukousoulas <pktoss@gmail.com> + */ + +#ifndef NM_DEVICE_ADSL_H +#define NM_DEVICE_ADSL_H + +#include "nm-device.h" + +G_BEGIN_DECLS + +#define NM_TYPE_DEVICE_ADSL (nm_device_adsl_get_type ()) +#define NM_DEVICE_ADSL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_ADSL, NMDeviceAdsl)) +#define NM_DEVICE_ADSL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_ADSL, NMDeviceAdslClass)) +#define NM_IS_DEVICE_ADSL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_ADSL)) +#define NM_IS_DEVICE_ADSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_DEVICE_ADSL)) +#define NM_DEVICE_ADSL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_ADSL, NMDeviceAdslClass)) + +/** + * NMDeviceAdslError: + * @NM_DEVICE_ADSL_ERROR_UNKNOWN: unknown or unclassified error + * @NM_DEVICE_ADSL_ERROR_NOT_ADSL_CONNECTION: the connection was not of ADSL type + * @NM_DEVICE_ADSL_ERROR_INVALID_ADSL_CONNECTION: the ADSL connection was invalid + */ +typedef enum { + NM_DEVICE_ADSL_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_DEVICE_ADSL_ERROR_NOT_ADSL_CONNECTION, /*< nick=NotAdslConnection >*/ + NM_DEVICE_ADSL_ERROR_INVALID_ADSL_CONNECTION, /*< nick=InvalidAdslConnection >*/ +} NMDeviceAdslError; + +#define NM_DEVICE_ADSL_ERROR nm_device_adsl_error_quark () +GQuark nm_device_adsl_error_quark (void); + +#define NM_DEVICE_ADSL_CARRIER "carrier" + +typedef struct { + NMDevice parent; +} NMDeviceAdsl; + +typedef struct { + NMDeviceClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); + void (*_reserved5) (void); + void (*_reserved6) (void); +} NMDeviceAdslClass; + +GType nm_device_adsl_get_type (void); + +GObject *nm_device_adsl_new (DBusGConnection *connection, const char *path); +gboolean nm_device_adsl_get_carrier (NMDeviceAdsl *device); + +G_END_DECLS + +#endif /* NM_DEVICE_ADSL_H */ diff --git a/libnm-glib/nm-device-bond.c b/libnm-glib/nm-device-bond.c index 034b7b3c..d5e33e50 100644 --- a/libnm-glib/nm-device-bond.c +++ b/libnm-glib/nm-device-bond.c @@ -24,6 +24,8 @@ #include <string.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-bond.h> #include <nm-utils.h> @@ -215,10 +217,7 @@ dispose (GObject *object) { NMDeviceBondPrivate *priv = NM_DEVICE_BOND_GET_PRIVATE (object); - if (priv->proxy) { - g_object_unref (priv->proxy); - priv->proxy = NULL; - } + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_bond_parent_class)->dispose (object); } @@ -241,6 +240,8 @@ get_property (GObject *object, { NMDeviceBond *device = NM_DEVICE_BOND (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_bond_get_hw_address (device)); diff --git a/libnm-glib/nm-device-bt.c b/libnm-glib/nm-device-bt.c index 8e0ff200..ccfa83ca 100644 --- a/libnm-glib/nm-device-bt.c +++ b/libnm-glib/nm-device-bt.c @@ -25,6 +25,8 @@ #include <string.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-bluetooth.h> @@ -42,8 +44,6 @@ typedef struct { char *hw_address; char *name; guint32 bt_capabilities; - - gboolean disposed; } NMDeviceBtPrivate; enum { @@ -273,13 +273,7 @@ dispose (GObject *object) { NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_device_bt_parent_class)->dispose (object); - return; - } - priv->disposed = TRUE; - - g_object_unref (priv->proxy); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_bt_parent_class)->dispose (object); } @@ -303,6 +297,8 @@ get_property (GObject *object, { NMDeviceBt *device = NM_DEVICE_BT (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_bt_get_hw_address (device)); diff --git a/libnm-glib/nm-device-ethernet.c b/libnm-glib/nm-device-ethernet.c index 62aedbbf..e9d1b4ad 100644 --- a/libnm-glib/nm-device-ethernet.c +++ b/libnm-glib/nm-device-ethernet.c @@ -25,6 +25,8 @@ #include <string.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-wired.h> #include <nm-setting-pppoe.h> @@ -44,8 +46,6 @@ typedef struct { char *perm_hw_address; guint32 speed; gboolean carrier; - - gboolean disposed; } NMDeviceEthernetPrivate; enum { @@ -280,14 +280,7 @@ dispose (GObject *object) { NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_device_ethernet_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - - g_object_unref (priv->proxy); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_ethernet_parent_class)->dispose (object); } @@ -311,6 +304,8 @@ get_property (GObject *object, { NMDeviceEthernet *device = NM_DEVICE_ETHERNET (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_ethernet_get_hw_address (device)); diff --git a/libnm-glib/nm-device-infiniband.c b/libnm-glib/nm-device-infiniband.c index ec5f4a8b..d611993b 100644 --- a/libnm-glib/nm-device-infiniband.c +++ b/libnm-glib/nm-device-infiniband.c @@ -25,6 +25,8 @@ #include <linux/if_infiniband.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-infiniband.h> #include <nm-utils.h> @@ -224,10 +226,7 @@ dispose (GObject *object) { NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (object); - if (priv->proxy) { - g_object_unref (priv->proxy); - priv->proxy = NULL; - } + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_infiniband_parent_class)->dispose (object); } @@ -250,6 +249,8 @@ get_property (GObject *object, { NMDeviceInfiniband *device = NM_DEVICE_INFINIBAND (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_infiniband_get_hw_address (device)); diff --git a/libnm-glib/nm-device-modem.c b/libnm-glib/nm-device-modem.c index f1d1389b..f7a9230e 100644 --- a/libnm-glib/nm-device-modem.c +++ b/libnm-glib/nm-device-modem.c @@ -24,6 +24,8 @@ #include <config.h> #include <string.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-gsm.h> #include <nm-setting-cdma.h> @@ -44,8 +46,6 @@ typedef struct { NMDeviceModemCapabilities caps; NMDeviceModemCapabilities current_caps; - - gboolean disposed; } NMDeviceModemPrivate; enum { @@ -205,6 +205,8 @@ get_property (GObject *object, { NMDeviceModem *self = NM_DEVICE_MODEM (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_MODEM_CAPS: g_value_set_uint (value, nm_device_modem_get_modem_capabilities (self)); @@ -223,14 +225,7 @@ dispose (GObject *object) { NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_device_modem_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - - g_object_unref (priv->proxy); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_modem_parent_class)->dispose (object); } diff --git a/libnm-glib/nm-device-olpc-mesh.c b/libnm-glib/nm-device-olpc-mesh.c index ed48ecb6..7ca36890 100644 --- a/libnm-glib/nm-device-olpc-mesh.c +++ b/libnm-glib/nm-device-olpc-mesh.c @@ -24,6 +24,8 @@ #include <config.h> #include <string.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-olpc-mesh.h> @@ -227,14 +229,8 @@ dispose (GObject *object) { NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (object); - if (priv->companion) { - g_object_unref (priv->companion); - priv->companion = NULL; - } - if (priv->proxy) { - g_object_unref (priv->proxy); - priv->proxy = NULL; - } + g_clear_object (&priv->companion); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_olpc_mesh_parent_class)->dispose (object); } @@ -257,6 +253,8 @@ get_property (GObject *object, { NMDeviceOlpcMesh *device = NM_DEVICE_OLPC_MESH (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_olpc_mesh_get_hw_address (device)); diff --git a/libnm-glib/nm-device-vlan.c b/libnm-glib/nm-device-vlan.c index 08b1142d..13ca3ac3 100644 --- a/libnm-glib/nm-device-vlan.c +++ b/libnm-glib/nm-device-vlan.c @@ -24,6 +24,8 @@ #include <string.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-vlan.h> #include <nm-utils.h> @@ -238,10 +240,7 @@ dispose (GObject *object) { NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (object); - if (priv->proxy) { - g_object_unref (priv->proxy); - priv->proxy = NULL; - } + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_vlan_parent_class)->dispose (object); } @@ -264,6 +263,8 @@ get_property (GObject *object, { NMDeviceVlan *device = NM_DEVICE_VLAN (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_vlan_get_hw_address (device)); diff --git a/libnm-glib/nm-device-wifi.c b/libnm-glib/nm-device-wifi.c index 6975898f..0058fd10 100644 --- a/libnm-glib/nm-device-wifi.c +++ b/libnm-glib/nm-device-wifi.c @@ -25,6 +25,8 @@ #include <string.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-wireless.h> #include <nm-setting-wireless-security.h> @@ -43,7 +45,6 @@ G_DEFINE_TYPE (NMDeviceWifi, nm_device_wifi, NM_TYPE_DEVICE) void _nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, gboolean enabled); typedef struct { - gboolean disposed; DBusGProxy *proxy; char *hw_address; @@ -501,6 +502,8 @@ get_property (GObject *object, { NMDeviceWifi *self = NM_DEVICE_WIFI (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_wifi_get_hw_address (self)); @@ -606,15 +609,8 @@ dispose (GObject *object) { NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_device_wifi_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - clean_up_aps (NM_DEVICE_WIFI (object), FALSE); - g_object_unref (priv->proxy); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_wifi_parent_class)->dispose (object); } diff --git a/libnm-glib/nm-device-wimax.c b/libnm-glib/nm-device-wimax.c index 48a518d7..62e3f772 100644 --- a/libnm-glib/nm-device-wimax.c +++ b/libnm-glib/nm-device-wimax.c @@ -25,6 +25,8 @@ #include <string.h> #include <netinet/ether.h> +#include "nm-glib-compat.h" + #include <nm-setting-connection.h> #include <nm-setting-wimax.h> @@ -42,7 +44,6 @@ G_DEFINE_TYPE (NMDeviceWimax, nm_device_wimax, NM_TYPE_DEVICE) void _nm_device_wimax_set_wireless_enabled (NMDeviceWimax *wimax, gboolean enabled); typedef struct { - gboolean disposed; DBusGProxy *proxy; char *hw_address; @@ -444,6 +445,8 @@ get_property (GObject *object, { NMDeviceWimax *self = NM_DEVICE_WIMAX (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_wimax_get_hw_address (self)); @@ -591,18 +594,18 @@ dispose (GObject *object) { NMDeviceWimaxPrivate *priv = NM_DEVICE_WIMAX_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_device_wimax_parent_class)->dispose (object); - return; + if (priv->hw_address) { + g_free (priv->hw_address); + priv->hw_address = NULL; } - priv->disposed = TRUE; - - g_free (priv->hw_address); - g_free (priv->bsid); + if (priv->bsid) { + g_free (priv->bsid); + priv->bsid = NULL; + } clean_up_nsps (NM_DEVICE_WIMAX (object), FALSE); - g_object_unref (priv->proxy); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_device_wimax_parent_class)->dispose (object); } diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c index 96a037d5..36a36ebf 100644 --- a/libnm-glib/nm-device.c +++ b/libnm-glib/nm-device.c @@ -27,6 +27,7 @@ #include "NetworkManager.h" #include "nm-device-ethernet.h" +#include "nm-device-adsl.h" #include "nm-device-wifi.h" #include "nm-device-modem.h" #include "nm-device-bt.h" @@ -60,7 +61,6 @@ G_DEFINE_TYPE_WITH_CODE (NMDevice, nm_device, NM_TYPE_OBJECT, #define NM_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE, NMDevicePrivate)) typedef struct { - gboolean disposed; DBusGProxy *proxy; char *iface; @@ -68,9 +68,12 @@ typedef struct { NMDeviceType device_type; char *udi; char *driver; + char *driver_version; + char *firmware_version; NMDeviceCapabilities capabilities; gboolean managed; gboolean firmware_missing; + gboolean autoconnect; NMIP4Config *ip4_config; NMDHCP4Config *dhcp4_config; NMIP6Config *ip6_config; @@ -90,8 +93,11 @@ enum { PROP_INTERFACE, PROP_UDI, PROP_DRIVER, + PROP_DRIVER_VERSION, + PROP_FIRMWARE_VERSION, PROP_CAPABILITIES, PROP_MANAGED, + PROP_AUTOCONNECT, PROP_FIRMWARE_MISSING, PROP_IP4_CONFIG, PROP_DHCP4_CONFIG, @@ -152,8 +158,11 @@ register_properties (NMDevice *device) { NM_DEVICE_INTERFACE, &priv->iface }, { NM_DEVICE_IP_INTERFACE, &priv->ip_iface }, { NM_DEVICE_DRIVER, &priv->driver }, + { NM_DEVICE_DRIVER_VERSION, &priv->driver_version }, + { NM_DEVICE_FIRMWARE_VERSION, &priv->firmware_version }, { NM_DEVICE_CAPABILITIES, &priv->capabilities }, { NM_DEVICE_MANAGED, &priv->managed }, + { NM_DEVICE_AUTOCONNECT, &priv->autoconnect }, { NM_DEVICE_FIRMWARE_MISSING, &priv->firmware_missing }, { NM_DEVICE_IP4_CONFIG, &priv->ip4_config, NULL, NM_TYPE_IP4_CONFIG }, { NM_DEVICE_DHCP4_CONFIG, &priv->dhcp4_config, NULL, NM_TYPE_DHCP4_CONFIG }, @@ -208,6 +217,8 @@ _nm_device_gtype_from_dtype (NMDeviceType dtype) return NM_TYPE_DEVICE_MODEM; case NM_DEVICE_TYPE_BT: return NM_TYPE_DEVICE_BT; + case NM_DEVICE_TYPE_ADSL: + return NM_TYPE_DEVICE_ADSL; case NM_DEVICE_TYPE_OLPC_MESH: return NM_TYPE_DEVICE_OLPC_MESH; case NM_DEVICE_TYPE_WIMAX: @@ -265,26 +276,13 @@ dispose (GObject *object) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_device_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - - g_object_unref (priv->proxy); - if (priv->ip4_config) - g_object_unref (priv->ip4_config); - if (priv->dhcp4_config) - g_object_unref (priv->dhcp4_config); - if (priv->ip6_config) - g_object_unref (priv->ip6_config); - if (priv->dhcp6_config) - g_object_unref (priv->dhcp6_config); - if (priv->client) - g_object_unref (priv->client); - if (priv->active_connection) - g_object_unref (priv->active_connection); + g_clear_object (&priv->proxy); + g_clear_object (&priv->ip4_config); + g_clear_object (&priv->dhcp4_config); + g_clear_object (&priv->ip6_config); + g_clear_object (&priv->dhcp6_config); + g_clear_object (&priv->client); + g_clear_object (&priv->active_connection); G_OBJECT_CLASS (nm_device_parent_class)->dispose (object); } @@ -298,6 +296,8 @@ finalize (GObject *object) g_free (priv->ip_iface); g_free (priv->udi); g_free (priv->driver); + g_free (priv->driver_version); + g_free (priv->firmware_version); g_free (priv->product); g_free (priv->vendor); @@ -313,6 +313,8 @@ get_property (GObject *object, NMDevice *device = NM_DEVICE (object); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_DEVICE_TYPE: g_value_set_uint (value, nm_device_get_device_type (device)); @@ -329,12 +331,21 @@ get_property (GObject *object, case PROP_DRIVER: g_value_set_string (value, nm_device_get_driver (device)); break; + case PROP_DRIVER_VERSION: + g_value_set_string (value, nm_device_get_driver_version (device)); + break; + case PROP_FIRMWARE_VERSION: + g_value_set_string (value, nm_device_get_firmware_version (device)); + break; case PROP_CAPABILITIES: g_value_set_uint (value, nm_device_get_capabilities (device)); break; case PROP_MANAGED: g_value_set_boolean (value, nm_device_get_managed (device)); break; + case PROP_AUTOCONNECT: + g_value_set_boolean (value, nm_device_get_autoconnect (device)); + break; case PROP_FIRMWARE_MISSING: g_value_set_boolean (value, nm_device_get_firmware_missing (device)); break; @@ -384,12 +395,18 @@ set_property (GObject *object, { NMDevice *self = NM_DEVICE (object); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); + gboolean b; switch (prop_id) { case PROP_DEVICE_TYPE: /* Construct only */ priv->device_type = g_value_get_uint (value); break; + case PROP_AUTOCONNECT: + b = g_value_get_boolean (value); + if (priv->autoconnect != b) + nm_device_set_autoconnect (NM_DEVICE (object), b); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -483,6 +500,32 @@ nm_device_class_init (NMDeviceClass *device_class) G_PARAM_READABLE)); /** + * NMDevice:driver-version: + * + * The version of the device driver. + **/ + g_object_class_install_property + (object_class, PROP_DRIVER_VERSION, + g_param_spec_string (NM_DEVICE_DRIVER_VERSION, + "Driver Version", + "Driver Version", + NULL, + G_PARAM_READABLE)); + + /** + * NMDevice:firmware-version: + * + * The firmware version of the device. + **/ + g_object_class_install_property + (object_class, PROP_FIRMWARE_VERSION, + g_param_spec_string (NM_DEVICE_FIRMWARE_VERSION, + "Firmware Version", + "Firmware Version", + NULL, + G_PARAM_READABLE)); + + /** * NMDevice:capabilities: * * The capabilities of the device. @@ -509,6 +552,19 @@ nm_device_class_init (NMDeviceClass *device_class) G_PARAM_READABLE)); /** + * NMDevice:autoconnect: + * + * Whether the device can auto-activate a connection. + **/ + g_object_class_install_property + (object_class, PROP_AUTOCONNECT, + g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, + "Autoconnect", + "Autoconnect", + TRUE, + G_PARAM_READWRITE)); + + /** * NMDevice:firmware-missing: * * When %TRUE indicates the device is likely missing firmware required @@ -893,6 +949,42 @@ nm_device_get_driver (NMDevice *device) } /** + * nm_device_get_driver_version: + * @device: a #NMDevice + * + * Gets the driver version of the #NMDevice. + * + * Returns: the version of the device driver. This is the internal string used by the + * device, and must not be modified. + **/ +const char * +nm_device_get_driver_version (NMDevice *device) +{ + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_GET_PRIVATE (device)->driver_version; +} + +/** + * nm_device_get_firmware_version: + * @device: a #NMDevice + * + * Gets the firmware version of the #NMDevice. + * + * Returns: the firmware version of the device. This is the internal string used by the + * device, and must not be modified. + **/ +const char * +nm_device_get_firmware_version (NMDevice *device) +{ + g_return_val_if_fail (NM_IS_DEVICE (device), NULL); + + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_GET_PRIVATE (device)->firmware_version; +} + +/** * nm_device_get_capabilities: * @device: a #NMDevice * @@ -927,6 +1019,49 @@ nm_device_get_managed (NMDevice *device) } /** + * nm_device_get_autoconnect: + * @device: a #NMDevice + * + * Whether the #NMDevice can be autoconnected. + * + * Returns: %TRUE if the device is allowed to be autoconnected + **/ +gboolean +nm_device_get_autoconnect (NMDevice *device) +{ + g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_GET_PRIVATE (device)->autoconnect; +} + +/** + * nm_device_set_autoconnect: + * @device: a #NMDevice + * @autoconnect: %TRUE to enable autoconnecting + * + * Enables or disables automatic activation of the #NMDevice. + **/ +void +nm_device_set_autoconnect (NMDevice *device, gboolean autoconnect) +{ + GValue value = {0,}; + + g_return_if_fail (NM_IS_DEVICE (device)); + + g_value_init (&value, G_TYPE_BOOLEAN); + g_value_set_boolean (&value, autoconnect); + + + NM_DEVICE_GET_PRIVATE (device)->autoconnect = autoconnect; + + _nm_object_set_property (NM_OBJECT (device), + NM_DBUS_INTERFACE_DEVICE, + "Autoconnect", + &value); +} + +/** * nm_device_get_firmware_missing: * @device: a #NMDevice * diff --git a/libnm-glib/nm-device.h b/libnm-glib/nm-device.h index 50301dc9..9260a33c 100644 --- a/libnm-glib/nm-device.h +++ b/libnm-glib/nm-device.h @@ -50,8 +50,11 @@ G_BEGIN_DECLS #define NM_DEVICE_INTERFACE "interface" #define NM_DEVICE_IP_INTERFACE "ip-interface" #define NM_DEVICE_DRIVER "driver" +#define NM_DEVICE_DRIVER_VERSION "driver-version" +#define NM_DEVICE_FIRMWARE_VERSION "firmware-version" #define NM_DEVICE_CAPABILITIES "capabilities" #define NM_DEVICE_MANAGED "managed" +#define NM_DEVICE_AUTOCONNECT "autoconnect" #define NM_DEVICE_FIRMWARE_MISSING "firmware-missing" #define NM_DEVICE_IP4_CONFIG "ip4-config" #define NM_DEVICE_DHCP4_CONFIG "dhcp4-config" @@ -98,8 +101,12 @@ const char * nm_device_get_ip_iface (NMDevice *device); NMDeviceType nm_device_get_device_type (NMDevice *device); const char * nm_device_get_udi (NMDevice *device); const char * nm_device_get_driver (NMDevice *device); +const char * nm_device_get_driver_version (NMDevice *device); +const char * nm_device_get_firmware_version (NMDevice *device); NMDeviceCapabilities nm_device_get_capabilities (NMDevice *device); gboolean nm_device_get_managed (NMDevice *device); +gboolean nm_device_get_autoconnect (NMDevice *device); +void nm_device_set_autoconnect (NMDevice *device, gboolean autoconnect); gboolean nm_device_get_firmware_missing (NMDevice *device); NMIP4Config * nm_device_get_ip4_config (NMDevice *device); NMDHCP4Config * nm_device_get_dhcp4_config (NMDevice *device); diff --git a/libnm-glib/nm-dhcp4-config.c b/libnm-glib/nm-dhcp4-config.c index 2074e6d1..89ccf25e 100644 --- a/libnm-glib/nm-dhcp4-config.c +++ b/libnm-glib/nm-dhcp4-config.c @@ -132,6 +132,8 @@ get_property (GObject *object, { NMDHCP4Config *self = NM_DHCP4_CONFIG (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_OPTIONS: g_value_set_boxed (value, nm_dhcp4_config_get_options (self)); diff --git a/libnm-glib/nm-dhcp6-config.c b/libnm-glib/nm-dhcp6-config.c index 3764cbf0..88b3b103 100644 --- a/libnm-glib/nm-dhcp6-config.c +++ b/libnm-glib/nm-dhcp6-config.c @@ -132,6 +132,8 @@ get_property (GObject *object, { NMDHCP6Config *self = NM_DHCP6_CONFIG (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_OPTIONS: g_value_set_boxed (value, nm_dhcp6_config_get_options (self)); diff --git a/libnm-glib/nm-glib-enum-types.c b/libnm-glib/nm-glib-enum-types.c index 9fc4de96..6af605cf 100644 --- a/libnm-glib/nm-glib-enum-types.c +++ b/libnm-glib/nm-glib-enum-types.c @@ -10,6 +10,7 @@ #include "nm-device.h" #include "nm-device-ethernet.h" #include "nm-device-infiniband.h" +#include "nm-device-adsl.h" #include "nm-device-wifi.h" #include "nm-device-bt.h" #include "nm-device-olpc-mesh.h" @@ -31,6 +32,25 @@ #include "nm-wimax-nsp.h" GType +nm_object_error_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GEnumValue values[] = { + { NM_OBJECT_ERROR_UNKNOWN, "NM_OBJECT_ERROR_UNKNOWN", "unknown" }, + { NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE, "NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE", "object-creation-failure" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_enum_register_static (g_intern_static_string ("NMObjectError"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} +GType nm_client_permission_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; @@ -126,6 +146,26 @@ nm_device_infiniband_error_get_type (void) return g_define_type_id__volatile; } GType +nm_device_adsl_error_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GEnumValue values[] = { + { NM_DEVICE_ADSL_ERROR_UNKNOWN, "NM_DEVICE_ADSL_ERROR_UNKNOWN", "UnknownError" }, + { NM_DEVICE_ADSL_ERROR_NOT_ADSL_CONNECTION, "NM_DEVICE_ADSL_ERROR_NOT_ADSL_CONNECTION", "NotAdslConnection" }, + { NM_DEVICE_ADSL_ERROR_INVALID_ADSL_CONNECTION, "NM_DEVICE_ADSL_ERROR_INVALID_ADSL_CONNECTION", "InvalidAdslConnection" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_enum_register_static (g_intern_static_string ("NMDeviceAdslError"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} +GType nm_device_wifi_error_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; @@ -310,6 +350,7 @@ nm_secret_agent_get_secrets_flags_get_type (void) { NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE, "NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE", "none" }, { NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION, "NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION", "allow-interaction" }, { NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW, "NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW", "request-new" }, + { NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED, "NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED", "user-requested" }, { 0, NULL, NULL } }; GType g_define_type_id = diff --git a/libnm-glib/nm-glib-enum-types.h b/libnm-glib/nm-glib-enum-types.h index 9aa5fa90..6493ab19 100644 --- a/libnm-glib/nm-glib-enum-types.h +++ b/libnm-glib/nm-glib-enum-types.h @@ -9,6 +9,8 @@ #include <glib-object.h> G_BEGIN_DECLS +GType nm_object_error_get_type (void) G_GNUC_CONST; +#define NM_TYPE_OBJECT_ERROR (nm_object_error_get_type ()) GType nm_client_permission_get_type (void) G_GNUC_CONST; #define NM_TYPE_CLIENT_PERMISSION (nm_client_permission_get_type ()) GType nm_client_permission_result_get_type (void) G_GNUC_CONST; @@ -17,6 +19,8 @@ GType nm_device_ethernet_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_DEVICE_ETHERNET_ERROR (nm_device_ethernet_error_get_type ()) GType nm_device_infiniband_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_DEVICE_INFINIBAND_ERROR (nm_device_infiniband_error_get_type ()) +GType nm_device_adsl_error_get_type (void) G_GNUC_CONST; +#define NM_TYPE_DEVICE_ADSL_ERROR (nm_device_adsl_error_get_type ()) GType nm_device_wifi_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_DEVICE_WIFI_ERROR (nm_device_wifi_error_get_type ()) GType nm_device_bt_error_get_type (void) G_GNUC_CONST; diff --git a/libnm-glib/nm-glib-marshal.c b/libnm-glib/nm-glib-marshal.c index a6ca0113..4f4e4c86 100644 --- a/libnm-glib/nm-glib-marshal.c +++ b/libnm-glib/nm-glib-marshal.c @@ -5,7 +5,7 @@ #ifdef G_ENABLE_DEBUG #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) -#define g_marshal_value_peek_char(v) g_value_get_char (v) +#define g_marshal_value_peek_char(v) g_value_get_schar (v) #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) #define g_marshal_value_peek_int(v) g_value_get_int (v) #define g_marshal_value_peek_uint(v) g_value_get_uint (v) @@ -50,7 +50,44 @@ #endif /* !G_ENABLE_DEBUG */ -/* VOID:STRING,STRING,STRING (nm-glib-marshal.list:1) */ +/* VOID:POINTER,POINTER (nm-glib-marshal.list:1) */ +void +_nm_glib_marshal_VOID__POINTER_POINTER (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__POINTER_POINTER) (gpointer data1, + gpointer arg_1, + gpointer arg_2, + gpointer data2); + register GMarshalFunc_VOID__POINTER_POINTER callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 3); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_pointer (param_values + 1), + g_marshal_value_peek_pointer (param_values + 2), + data2); +} + +/* VOID:STRING,STRING,STRING (nm-glib-marshal.list:2) */ void _nm_glib_marshal_VOID__STRING_STRING_STRING (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -89,7 +126,7 @@ _nm_glib_marshal_VOID__STRING_STRING_STRING (GClosure *closure, data2); } -/* VOID:UINT,UINT (nm-glib-marshal.list:2) */ +/* VOID:UINT,UINT (nm-glib-marshal.list:3) */ void _nm_glib_marshal_VOID__UINT_UINT (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -126,7 +163,7 @@ _nm_glib_marshal_VOID__UINT_UINT (GClosure *closure, data2); } -/* VOID:UINT,UINT,UINT (nm-glib-marshal.list:3) */ +/* VOID:UINT,UINT,UINT (nm-glib-marshal.list:4) */ void _nm_glib_marshal_VOID__UINT_UINT_UINT (GClosure *closure, GValue *return_value G_GNUC_UNUSED, diff --git a/libnm-glib/nm-glib-marshal.h b/libnm-glib/nm-glib-marshal.h index 53d8c06b..01a96a87 100644 --- a/libnm-glib/nm-glib-marshal.h +++ b/libnm-glib/nm-glib-marshal.h @@ -6,7 +6,15 @@ G_BEGIN_DECLS -/* VOID:STRING,STRING,STRING (nm-glib-marshal.list:1) */ +/* VOID:POINTER,POINTER (nm-glib-marshal.list:1) */ +extern void _nm_glib_marshal_VOID__POINTER_POINTER (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +/* VOID:STRING,STRING,STRING (nm-glib-marshal.list:2) */ extern void _nm_glib_marshal_VOID__STRING_STRING_STRING (GClosure *closure, GValue *return_value, guint n_param_values, @@ -14,7 +22,7 @@ extern void _nm_glib_marshal_VOID__STRING_STRING_STRING (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:UINT,UINT (nm-glib-marshal.list:2) */ +/* VOID:UINT,UINT (nm-glib-marshal.list:3) */ extern void _nm_glib_marshal_VOID__UINT_UINT (GClosure *closure, GValue *return_value, guint n_param_values, @@ -22,7 +30,7 @@ extern void _nm_glib_marshal_VOID__UINT_UINT (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:UINT,UINT,UINT (nm-glib-marshal.list:3) */ +/* VOID:UINT,UINT,UINT (nm-glib-marshal.list:4) */ extern void _nm_glib_marshal_VOID__UINT_UINT_UINT (GClosure *closure, GValue *return_value, guint n_param_values, diff --git a/libnm-glib/nm-ip4-config.c b/libnm-glib/nm-ip4-config.c index 56678545..862e7a01 100644 --- a/libnm-glib/nm-ip4-config.c +++ b/libnm-glib/nm-ip4-config.c @@ -187,6 +187,8 @@ get_property (GObject *object, NMIP4Config *self = NM_IP4_CONFIG (object); NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_ADDRESSES: nm_utils_ip4_addresses_to_gvalue (priv->addresses, value); diff --git a/libnm-glib/nm-ip6-config.c b/libnm-glib/nm-ip6-config.c index c9a26279..988dcd30 100644 --- a/libnm-glib/nm-ip6-config.c +++ b/libnm-glib/nm-ip6-config.c @@ -268,6 +268,8 @@ get_property (GObject *object, NMIP6Config *self = NM_IP6_CONFIG (object); NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_ADDRESSES: nm_utils_ip6_addresses_to_gvalue (priv->addresses, value); diff --git a/libnm-glib/nm-object-cache.c b/libnm-glib/nm-object-cache.c index 741f1291..2748b1df 100644 --- a/libnm-glib/nm-object-cache.c +++ b/libnm-glib/nm-object-cache.c @@ -64,3 +64,28 @@ _nm_object_cache_get (const char *path) return object ? g_object_ref (object) : NULL; } +void +_nm_object_cache_clear (NMObject *except) +{ + GHashTableIter iter; + NMObject *obj; + const char *path; + char *foo; + + _init_cache (); + g_hash_table_iter_init (&iter, cache); + while (g_hash_table_iter_next (&iter, (gpointer) &path, (gpointer) &obj)) { + if (obj != except) { + /* Remove the callback so that if the object isn't yet released + * by a client, when it does finally get unrefed, it won't trigger + * the cache removal for a new object with the same path as the + * one being released. + */ + foo = g_object_steal_data (G_OBJECT (obj), "nm-object-cache-tag"); + g_free (foo); + + g_hash_table_iter_remove (&iter); + } + } +} + diff --git a/libnm-glib/nm-object-cache.h b/libnm-glib/nm-object-cache.h index 8386591c..84752134 100644 --- a/libnm-glib/nm-object-cache.h +++ b/libnm-glib/nm-object-cache.h @@ -32,6 +32,7 @@ G_BEGIN_DECLS /* Returns referenced object from the cache */ NMObject *_nm_object_cache_get (const char *path); void _nm_object_cache_add (NMObject *object); +void _nm_object_cache_clear (NMObject *except); G_END_DECLS diff --git a/libnm-glib/nm-object.c b/libnm-glib/nm-object.c index fc9d7f86..756bfa7a 100644 --- a/libnm-glib/nm-object.c +++ b/libnm-glib/nm-object.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2011 Red Hat, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #include <string.h> @@ -31,6 +31,7 @@ #include "nm-dbus-glib-types.h" #include "nm-glib-compat.h" #include "nm-types.h" +#include "nm-glib-marshal.h" #define DEBUG 0 @@ -78,7 +79,7 @@ typedef struct { GSList *notify_props; guint32 notify_id; - gboolean inited, disposed; + gboolean inited; GSList *reload_results; guint reload_remaining; @@ -93,6 +94,31 @@ enum { LAST_PROP }; +enum { + OBJECT_CREATION_FAILED, + + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +/** + * nm_object_error_quark: + * + * Registers an error quark for #NMObject if necessary. + * + * Returns: the error quark used for #NMObject errors. + **/ +GQuark +nm_object_error_quark (void) +{ + static GQuark quark; + + if (G_UNLIKELY (!quark)) + quark = g_quark_from_static_string ("nm-object-error-quark"); + return quark; +} + static void nm_object_init (NMObject *object) { @@ -194,13 +220,6 @@ dispose (GObject *object) { NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_object_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - if (priv->notify_id) { g_source_remove (priv->notify_id); priv->notify_id = 0; @@ -208,12 +227,18 @@ dispose (GObject *object) g_slist_foreach (priv->notify_props, (GFunc) g_free, NULL); g_slist_free (priv->notify_props); + priv->notify_props = NULL; g_slist_foreach (priv->property_interfaces, (GFunc) g_free, NULL); g_slist_free (priv->property_interfaces); + priv->property_interfaces = NULL; + + g_clear_object (&priv->properties_proxy); - g_object_unref (priv->properties_proxy); - dbus_g_connection_unref (priv->connection); + if (priv->connection) { + dbus_g_connection_unref (priv->connection); + priv->connection = NULL; + } G_OBJECT_CLASS (nm_object_parent_class)->dispose (object); } @@ -324,6 +349,29 @@ nm_object_class_init (NMObjectClass *nm_object_class) "DBus Object Path", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + /* signals */ + + /** + * NMObject::object-creation-failed: + * @master_object: the object that received the signal + * @error: the error that occured while creating object + * @failed_path: object path of the failed object + * + * Indicates that an error occured while creating an #NMObject object + * during property handling of @master_object. + * + * Note: Be aware that the signal is private for libnm-glib's internal + * use. + **/ + signals[OBJECT_CREATION_FAILED] = + g_signal_new ("object-creation-failed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMObjectClass, object_creation_failed), + NULL, NULL, + _nm_glib_marshal_VOID__POINTER_POINTER, + G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER); } static void @@ -464,7 +512,7 @@ _nm_object_create (GType type, DBusGConnection *connection, const char *path) return object; } -typedef void (*NMObjectCreateCallbackFunc) (GObject *, gpointer); +typedef void (*NMObjectCreateCallbackFunc) (GObject *, const char *, gpointer); typedef struct { DBusGConnection *connection; char *path; @@ -475,7 +523,7 @@ typedef struct { static void create_async_complete (GObject *object, NMObjectTypeAsyncData *async_data) { - async_data->callback (object, async_data->user_data); + async_data->callback (object, async_data->path, async_data->user_data); g_free (async_data->path); g_slice_free (NMObjectTypeAsyncData, async_data); @@ -644,12 +692,23 @@ object_property_complete (ObjectCreatedData *odata) } static void -object_created (GObject *obj, gpointer user_data) +object_created (GObject *obj, const char *path, gpointer user_data) { ObjectCreatedData *odata = user_data; /* We assume that on error, the creator_func printed something */ + if (obj == NULL && g_strcmp0 (path, "/") != 0 ) { + GError *error; + error = g_error_new (NM_OBJECT_ERROR, + NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE, + "Creating object for path '%s' failed in libnm-glib.", + path); + /* Emit a signal about the error. */ + g_signal_emit (odata->self, signals[OBJECT_CREATION_FAILED], 0, error, path); + g_error_free (error); + } + odata->objects[--odata->remaining] = obj; if (!odata->remaining) object_property_complete (odata); @@ -676,18 +735,19 @@ handle_object_property (NMObject *self, const char *property_name, GValue *value priv->reload_remaining++; path = g_value_get_boxed (value); + if (!strcmp (path, "/")) { - object_created (NULL, odata); + object_created (NULL, path, odata); return TRUE; } obj = G_OBJECT (_nm_object_cache_get (path)); if (obj) { - object_created (obj, odata); + object_created (obj, path, odata); return TRUE; } else if (synchronously) { obj = _nm_object_create (pi->object_type, priv->connection, path); - object_created (obj, odata); + object_created (obj, path, odata); return obj != NULL; } else { _nm_object_create_async (pi->object_type, priv->connection, path, @@ -736,10 +796,10 @@ handle_object_array_property (NMObject *self, const char *property_name, GValue obj = G_OBJECT (_nm_object_cache_get (path)); if (obj) { - object_created (obj, odata); + object_created (obj, path, odata); } else if (synchronously) { obj = _nm_object_create (pi->object_type, priv->connection, path); - object_created (obj, odata); + object_created (obj, path, odata); } else { _nm_object_create_async (pi->object_type, priv->connection, path, object_created, odata); @@ -844,8 +904,14 @@ process_properties_changed (NMObject *self, GHashTable *properties, gboolean syn return; g_hash_table_iter_init (&iter, properties); - while (g_hash_table_iter_next (&iter, &name, &value)) - handle_property_changed (self, name, value, synchronously); + while (g_hash_table_iter_next (&iter, &name, &value)) { + if (value) + handle_property_changed (self, name, value, synchronously); + else { + g_warning ("%s:%d %s(): object %s property '%s' value is unexpectedly NULL", + __FILE__, __LINE__, __func__, G_OBJECT_TYPE_NAME (self), (const char *) name); + } + } } static void @@ -1086,7 +1152,7 @@ _nm_object_set_property (NMObject *object, } static void -pseudo_property_object_created (GObject *obj, gpointer user_data) +pseudo_property_object_created (GObject *obj, const char *path, gpointer user_data) { PseudoPropertyInfo *ppi = user_data; @@ -1112,7 +1178,7 @@ pseudo_property_added (DBusGProxy *proxy, const char *path, gpointer user_data) obj = _nm_object_cache_get (path); if (obj) - pseudo_property_object_created (G_OBJECT (obj), ppi); + pseudo_property_object_created (G_OBJECT (obj), path, ppi); else { _nm_object_create_async (ppi->pi.object_type, priv->connection, path, pseudo_property_object_created, ppi); diff --git a/libnm-glib/nm-object.h b/libnm-glib/nm-object.h index 3f7b36cf..267c7148 100644 --- a/libnm-glib/nm-object.h +++ b/libnm-glib/nm-object.h @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #ifndef NM_OBJECT_H @@ -37,6 +37,22 @@ G_BEGIN_DECLS #define NM_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_OBJECT)) #define NM_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_OBJECT, NMObjectClass)) +/** + * NMObjectError: + * @NM_OBJECT_ERROR_UNKNOWN: unknown or unclassified error + * @NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE: an error ocured while creating an #NMObject + * + * Describes errors that may result from operations involving a #NMObject. + * + **/ +typedef enum { + NM_OBJECT_ERROR_UNKNOWN = 0, + NM_OBJECT_ERROR_OBJECT_CREATION_FAILURE, +} NMObjectError; + +#define NM_OBJECT_ERROR nm_object_error_quark () +GQuark nm_object_error_quark (void); + #define NM_OBJECT_DBUS_CONNECTION "dbus-connection" #define NM_OBJECT_DBUS_PATH "dbus-path" @@ -47,6 +63,15 @@ typedef struct { typedef struct { GObjectClass parent; + /* Signals */ + /* The "object-creation-failed" signal is PRIVATE for libnm-glib and + * is not meant for any external usage. It indicates that an error + * occured during creation of an object. + */ + void (*object_creation_failed) (NMObject *master_object, + GError *error, + char *failed_path); + /* Padding for future expansion */ void (*_reserved1) (void); void (*_reserved2) (void); diff --git a/libnm-glib/nm-remote-connection.c b/libnm-glib/nm-remote-connection.c index c5e38643..e8b99dff 100644 --- a/libnm-glib/nm-remote-connection.c +++ b/libnm-glib/nm-remote-connection.c @@ -72,7 +72,6 @@ typedef struct { GSList *calls; gboolean visible; - gboolean disposed; } NMRemoteConnectionPrivate; #define NM_REMOTE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_REMOTE_CONNECTION, NMRemoteConnectionPrivate)) @@ -477,14 +476,14 @@ dispose (GObject *object) NMRemoteConnection *self = NM_REMOTE_CONNECTION (object); NMRemoteConnectionPrivate *priv = NM_REMOTE_CONNECTION_GET_PRIVATE (object); - if (!priv->disposed) { - priv->disposed = TRUE; + while (g_slist_length (priv->calls)) + remote_call_complete (self, priv->calls->data); - while (g_slist_length (priv->calls)) - remote_call_complete (self, priv->calls->data); + g_clear_object (&priv->proxy); - g_object_unref (priv->proxy); + if (priv->bus) { dbus_g_connection_unref (priv->bus); + priv->bus = NULL; } G_OBJECT_CLASS (nm_remote_connection_parent_class)->dispose (object); diff --git a/libnm-glib/nm-remote-connection.h b/libnm-glib/nm-remote-connection.h index 809927ea..577e9a1b 100644 --- a/libnm-glib/nm-remote-connection.h +++ b/libnm-glib/nm-remote-connection.h @@ -63,14 +63,44 @@ typedef struct { void (*_reserved6) (void); } NMRemoteConnectionClass; +/** + * NMRemoteConnectionCommitFunc: + * @connection: the connection for which updates are to be committed + * @error: on failure, a descriptive error + * @user_data: user data passed to nm_remote_connection_commit_changes() + * + * Called when NetworkManager has committed outstanding changes to a connection + * to backing storage as a result of nm_remote_connection_commit_changes(). + */ typedef void (*NMRemoteConnectionCommitFunc) (NMRemoteConnection *connection, GError *error, gpointer user_data); +/** + * NMRemoteConnectionDeleteFunc: + * @connection: the connection to be deleted + * @error: on failure, a descriptive error + * @user_data: user data passed to nm_remote_connection_delete() + * + * Called when NetworkManager has deleted a connection as a result of + * nm_remote_connection_delete(). + */ typedef void (*NMRemoteConnectionDeleteFunc) (NMRemoteConnection *connection, GError *error, gpointer user_data); +/** + * NMRemoteConnectionGetSecretsFunc: + * @connection: the connection for which secrets were requested + * @secrets: (element-type utf8 GLib.HashTable): on success, a hash table of + * hash tables, with each inner hash mapping a setting property to a #GValue + * containing that property's value + * @error: on failure, a descriptive error + * @user_data: user data passed to nm_remote_connection_get_secrets() + * + * Called when NetworkManager returns secrets in response to a request for + * secrets via nm_remote_connection_get_secrets(). + */ typedef void (*NMRemoteConnectionGetSecretsFunc) (NMRemoteConnection *connection, GHashTable *secrets, GError *error, diff --git a/libnm-glib/nm-remote-settings.c b/libnm-glib/nm-remote-settings.c index 8f213f9e..19d865c0 100644 --- a/libnm-glib/nm-remote-settings.c +++ b/libnm-glib/nm-remote-settings.c @@ -61,8 +61,6 @@ typedef struct { DBusGProxy *dbus_proxy; guint fetch_id; - - gboolean disposed; } NMRemoteSettingsPrivate; enum { @@ -109,7 +107,7 @@ static void _nm_remote_settings_ensure_inited (NMRemoteSettings *self) { NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - GError *error; + GError *error = NULL; if (!priv->inited) { if (!g_initable_init (G_INITABLE (self), NULL, &error)) { @@ -258,6 +256,43 @@ connection_removed_cb (NMRemoteConnection *remote, gpointer user_data) g_hash_table_remove (priv->pending, path); } +static void connection_visible_cb (NMRemoteConnection *remote, + gboolean visible, + gpointer user_data); + +/* Takes a reference to the connection when adding to 'to' */ +static void +move_connection (NMRemoteSettings *self, + NMRemoteConnection *remote, + GHashTable *from, + GHashTable *to) +{ + const char *path = nm_connection_get_path (NM_CONNECTION (remote)); + + g_hash_table_insert (to, g_strdup (path), g_object_ref (remote)); + if (from) + g_hash_table_remove (from, path); + + /* Setup connection signals since removing from 'from' clears them, but + * also the first time the connection is added to a hash if 'from' is NULL. + */ + if (!g_signal_handler_find (remote, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, connection_removed_cb, NULL)) { + g_signal_connect (remote, + NM_REMOTE_CONNECTION_REMOVED, + G_CALLBACK (connection_removed_cb), + self); + } + + if (!g_signal_handler_find (remote, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, connection_visible_cb, NULL)) { + g_signal_connect (remote, + "visible", + G_CALLBACK (connection_visible_cb), + self); + } +} + static void connection_visible_cb (NMRemoteConnection *remote, gboolean visible, @@ -278,16 +313,14 @@ connection_visible_cb (NMRemoteConnection *remote, /* Connection visible to this user again */ if (g_hash_table_lookup (priv->pending, path)) { /* Move connection from pending to visible hash; emit for clients */ - g_hash_table_insert (priv->connections, g_strdup (path), g_object_ref (remote)); - g_hash_table_remove (priv->pending, path); + move_connection (self, remote, priv->pending, priv->connections); g_signal_emit (self, signals[NEW_CONNECTION], 0, remote); } } else { /* Connection now invisible to this user */ if (g_hash_table_lookup (priv->connections, path)) { /* Move connection to pending hash and wait for it to become visible again */ - g_hash_table_insert (priv->pending, g_strdup (path), g_object_ref (remote)); - g_hash_table_remove (priv->connections, path); + move_connection (self, remote, priv->connections, priv->pending); /* Signal to clients that the connection is gone; but we have to * block our connection removed handler so we don't destroy @@ -308,17 +341,14 @@ connection_inited (GObject *source, GAsyncResult *result, gpointer user_data) NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); AddConnectionInfo *addinfo; const char *path; - GError *error = NULL; - gboolean remove_from_pending = TRUE; + GError *error = NULL, *local; path = nm_connection_get_path (NM_CONNECTION (remote)); addinfo = add_connection_info_find (self, remote); if (g_async_initable_init_finish (G_ASYNC_INITABLE (remote), result, &error)) { - /* ref it when adding to ->connections, since removing it from ->pending - * will unref it. - */ - g_hash_table_insert (priv->connections, g_strdup (path), g_object_ref (remote)); + /* Connection is initialized and visible; expose it to clients */ + move_connection (self, remote, priv->pending, priv->connections); /* If there's a pending AddConnection request, complete that here before * signaling new-connection. @@ -331,23 +361,23 @@ connection_inited (GObject *source, GAsyncResult *result, gpointer user_data) */ g_signal_emit (self, signals[NEW_CONNECTION], 0, remote); } else { - if (dbus_g_error_has_name (error, "org.freedesktop.NetworkManager.Settings.PermissionDenied")) { - /* Connection doesn't exist, or isn't visible to this user */ - remove_from_pending = FALSE; - } - g_error_free (error); - if (addinfo) { - error = g_error_new_literal (NM_REMOTE_SETTINGS_ERROR, + local = g_error_new_literal (NM_REMOTE_SETTINGS_ERROR, NM_REMOTE_SETTINGS_ERROR_CONNECTION_UNAVAILABLE, "Connection not visible or not available"); - add_connection_info_complete (self, addinfo, error); - g_error_free (error); + add_connection_info_complete (self, addinfo, local); + g_error_free (local); } - } - if (remove_from_pending) - g_hash_table_remove (priv->pending, path); + /* PermissionDenied means the connection isn't visible to this user, so + * keep it in priv->pending to be notified later of visibility changes. + * Otherwise forget it. + */ + if (!dbus_g_error_has_name (error, "org.freedesktop.NetworkManager.Settings.PermissionDenied")) + g_hash_table_remove (priv->pending, path); + + g_error_free (error); + } /* Let listeners know that all connections have been found */ priv->init_left--; @@ -373,14 +403,6 @@ new_connection_cb (DBusGProxy *proxy, const char *path, gpointer user_data) /* Create a new connection object for it */ connection = nm_remote_connection_new (priv->bus, path); if (connection) { - g_signal_connect (connection, NM_REMOTE_CONNECTION_REMOVED, - G_CALLBACK (connection_removed_cb), - self); - - g_signal_connect (connection, "visible", - G_CALLBACK (connection_visible_cb), - self); - g_async_initable_init_async (G_ASYNC_INITABLE (connection), G_PRIORITY_DEFAULT, NULL, connection_inited, self); @@ -389,7 +411,8 @@ new_connection_cb (DBusGProxy *proxy, const char *path, gpointer user_data) * it's settings asynchronously over D-Bus. The connection isn't * really valid until it has all its settings, so hide it until it does. */ - g_hash_table_insert (priv->pending, g_strdup (path), connection); + move_connection (self, connection, NULL, priv->pending); + g_object_unref (connection); /* move_connection() takes a ref */ } return connection; } @@ -796,14 +819,25 @@ nm_remote_settings_new_finish (GAsyncResult *result, GError **error) return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple)); } +static void +forget_connection (gpointer user_data) +{ + NMRemoteConnection *remote = NM_REMOTE_CONNECTION (user_data); + + g_signal_handlers_disconnect_matched (remote, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, connection_removed_cb, NULL); + g_signal_handlers_disconnect_matched (remote, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, connection_visible_cb, NULL); + g_object_unref (remote); +} static void nm_remote_settings_init (NMRemoteSettings *self) { NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - priv->pending = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); + priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, forget_connection); + priv->pending = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, forget_connection); } static void @@ -1007,29 +1041,35 @@ dispose (GObject *object) NMRemoteSettings *self = NM_REMOTE_SETTINGS (object); NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - if (priv->disposed) - return; - - priv->disposed = TRUE; - - if (priv->fetch_id) + if (priv->fetch_id) { g_source_remove (priv->fetch_id); + priv->fetch_id = 0; + } while (g_slist_length (priv->add_list)) add_connection_info_dispose (self, (AddConnectionInfo *) priv->add_list->data); - if (priv->connections) + if (priv->connections) { g_hash_table_destroy (priv->connections); + priv->connections = NULL; + } - if (priv->pending) + if (priv->pending) { g_hash_table_destroy (priv->pending); + priv->pending = NULL; + } g_free (priv->hostname); + priv->hostname = NULL; - g_object_unref (priv->dbus_proxy); - g_object_unref (priv->proxy); - g_object_unref (priv->props_proxy); - dbus_g_connection_unref (priv->bus); + g_clear_object (&priv->dbus_proxy); + g_clear_object (&priv->proxy); + g_clear_object (&priv->props_proxy); + + if (priv->bus) { + dbus_g_connection_unref (priv->bus); + priv->bus = NULL; + } G_OBJECT_CLASS (nm_remote_settings_parent_class)->dispose (object); } @@ -1061,6 +1101,8 @@ get_property (GObject *object, guint prop_id, { NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (object); + _nm_remote_settings_ensure_inited (NM_REMOTE_SETTINGS (object)); + switch (prop_id) { case PROP_BUS: g_value_set_boxed (value, priv->bus); diff --git a/libnm-glib/nm-secret-agent.c b/libnm-glib/nm-secret-agent.c index 19f55c0e..ae048d80 100644 --- a/libnm-glib/nm-secret-agent.c +++ b/libnm-glib/nm-secret-agent.c @@ -21,9 +21,12 @@ #include <config.h> #include <ctype.h> #include <string.h> -#include <NetworkManager.h> #include <dbus/dbus-glib-lowlevel.h> +#include "nm-glib-compat.h" + +#include <NetworkManager.h> + #include "nm-secret-agent.h" #include "nm-glib-enum-types.h" #include "nm-glib-marshal.h" @@ -79,8 +82,6 @@ typedef struct { gboolean auto_register; gboolean suppress_auto; gboolean auto_register_id; - - gboolean disposed; } NMSecretAgentPrivate; enum { @@ -878,29 +879,28 @@ dispose (GObject *object) NMSecretAgent *self = NM_SECRET_AGENT (object); NMSecretAgentPrivate *priv = NM_SECRET_AGENT_GET_PRIVATE (self); - if (!priv->disposed) { - priv->disposed = TRUE; + if (priv->registered) + nm_secret_agent_unregister (self); - if (priv->registered) - nm_secret_agent_unregister (self); - - if (priv->auto_register_id) - g_source_remove (priv->auto_register_id); - - g_free (priv->identifier); - g_free (priv->nm_owner); + if (priv->auto_register_id) { + g_source_remove (priv->auto_register_id); + priv->auto_register_id = 0; + } - while (priv->pending_gets) - get_secrets_info_finalize (self, priv->pending_gets->data); + g_free (priv->identifier); + priv->identifier = NULL; + g_free (priv->nm_owner); + priv->nm_owner = NULL; - if (priv->dbus_proxy) - g_object_unref (priv->dbus_proxy); + while (priv->pending_gets) + get_secrets_info_finalize (self, priv->pending_gets->data); - if (priv->manager_proxy) - g_object_unref (priv->manager_proxy); + g_clear_object (&priv->dbus_proxy); + g_clear_object (&priv->manager_proxy); - if (priv->bus) - dbus_g_connection_unref (priv->bus); + if (priv->bus) { + dbus_g_connection_unref (priv->bus); + priv->bus = NULL; } G_OBJECT_CLASS (nm_secret_agent_parent_class)->dispose (object); diff --git a/libnm-glib/nm-secret-agent.h b/libnm-glib/nm-secret-agent.h index c367f916..f96a39c1 100644 --- a/libnm-glib/nm-secret-agent.h +++ b/libnm-glib/nm-secret-agent.h @@ -50,13 +50,18 @@ typedef enum { * secrets from the user. This flag signals that NetworkManager thinks any * existing secrets are invalid or wrong. This flag implies that interaction * is allowed. + * @NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED: set if the request was + * initiated by user-requested action via the D-Bus interface, as opposed to + * automatically initiated by NetworkManager in response to (for example) scan + * results or carrier changes. * * #NMSecretAgentGetSecretsFlags values modify the behavior of a GetSecrets request. */ typedef enum { NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE = 0x0, NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION = 0x1, - NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW = 0x2 + NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW = 0x2, + NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED = 0x4 } NMSecretAgentGetSecretsFlags; #define NM_TYPE_SECRET_AGENT (nm_secret_agent_get_type ()) diff --git a/libnm-glib/nm-vpn-connection.c b/libnm-glib/nm-vpn-connection.c index 53934216..1fe59e5e 100644 --- a/libnm-glib/nm-vpn-connection.c +++ b/libnm-glib/nm-vpn-connection.c @@ -211,6 +211,8 @@ get_property (GObject *object, { NMVPNConnection *self = NM_VPN_CONNECTION (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_VPN_STATE: g_value_set_uint (value, nm_vpn_connection_get_vpn_state (self)); diff --git a/libnm-glib/nm-vpn-plugin-ui-interface.h b/libnm-glib/nm-vpn-plugin-ui-interface.h index 93c5659b..80a5b82e 100644 --- a/libnm-glib/nm-vpn-plugin-ui-interface.h +++ b/libnm-glib/nm-vpn-plugin-ui-interface.h @@ -52,6 +52,7 @@ NMVpnPluginUiInterface *nm_vpn_plugin_ui_factory (GError **error); #define NM_VPN_PLUGIN_UI_CAPABILITY_NONE 0x00 #define NM_VPN_PLUGIN_UI_CAPABILITY_IMPORT 0x01 #define NM_VPN_PLUGIN_UI_CAPABILITY_EXPORT 0x02 +#define NM_VPN_PLUGIN_UI_CAPABILITY_IPV6 0x04 /* Short display name of the VPN plugin */ #define NM_VPN_PLUGIN_UI_INTERFACE_NAME "name" diff --git a/libnm-glib/nm-vpn-plugin-utils.c b/libnm-glib/nm-vpn-plugin-utils.c index 8234a919..b9838df9 100644 --- a/libnm-glib/nm-vpn-plugin-utils.c +++ b/libnm-glib/nm-vpn-plugin-utils.c @@ -24,7 +24,9 @@ #include <string.h> #include "nm-vpn-plugin-utils.h" +#include "nm-vpn-plugin.h" #include "nm-setting-private.h" +#include "nm-dbus-glib-types.h" #define DATA_KEY_TAG "DATA_KEY=" #define DATA_VAL_TAG "DATA_VAL=" @@ -185,4 +187,3 @@ nm_vpn_plugin_utils_get_secret_flags (GHashTable *data, g_free (flag_name); return success; } - diff --git a/libnm-glib/nm-vpn-plugin.c b/libnm-glib/nm-vpn-plugin.c index 23685384..dd4d7b3a 100644 --- a/libnm-glib/nm-vpn-plugin.c +++ b/libnm-glib/nm-vpn-plugin.c @@ -30,24 +30,32 @@ #include "nm-dbus-glib-types.h" static gboolean impl_vpn_plugin_connect (NMVPNPlugin *plugin, - GHashTable *connection, - GError **err); + GHashTable *connection, + GError **err); static gboolean impl_vpn_plugin_need_secrets (NMVPNPlugin *plugin, - GHashTable *connection, - char **service_name, - GError **err); + GHashTable *connection, + char **service_name, + GError **err); static gboolean impl_vpn_plugin_disconnect (NMVPNPlugin *plugin, - GError **err); + GError **err); + +static gboolean impl_vpn_plugin_set_config (NMVPNPlugin *plugin, + GHashTable *config, + GError **err); static gboolean impl_vpn_plugin_set_ip4_config (NMVPNPlugin *plugin, - GHashTable *config, - GError **err); + GHashTable *config, + GError **err); + +static gboolean impl_vpn_plugin_set_ip6_config (NMVPNPlugin *plugin, + GHashTable *config, + GError **err); static gboolean impl_vpn_plugin_set_failure (NMVPNPlugin *plugin, - char *reason, - GError **err); + char *reason, + GError **err); #include "nm-vpn-plugin-glue.h" @@ -63,20 +71,26 @@ typedef struct { DBusGConnection *connection; char *dbus_service_name; - /* GObject-y stuff */ - gboolean disposed; - /* Temporary stuff */ guint connect_timer; guint quit_timer; guint fail_stop_id; + + gboolean got_config; + gboolean has_ip4, got_ip4; + gboolean has_ip6, got_ip6; + + /* Config stuff copied from config to ip4config */ + GValue banner, tundev, gateway, mtu; } NMVPNPluginPrivate; #define NM_VPN_PLUGIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_VPN_PLUGIN, NMVPNPluginPrivate)) enum { STATE_CHANGED, + CONFIG, IP4_CONFIG, + IP6_CONFIG, LOGIN_BANNER, FAILURE, QUIT, @@ -111,7 +125,7 @@ nm_vpn_plugin_error_quark (void) static void nm_vpn_plugin_set_connection (NMVPNPlugin *plugin, - DBusGConnection *connection) + DBusGConnection *connection) { NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (plugin); @@ -146,7 +160,7 @@ nm_vpn_plugin_get_state (NMVPNPlugin *plugin) void nm_vpn_plugin_set_state (NMVPNPlugin *plugin, - NMVPNServiceState state) + NMVPNServiceState state) { NMVPNPluginPrivate *priv; @@ -161,7 +175,7 @@ nm_vpn_plugin_set_state (NMVPNPlugin *plugin, void nm_vpn_plugin_set_login_banner (NMVPNPlugin *plugin, - const char *banner) + const char *banner) { g_return_if_fail (NM_IS_VPN_PLUGIN (plugin)); g_return_if_fail (banner != NULL); @@ -171,7 +185,7 @@ nm_vpn_plugin_set_login_banner (NMVPNPlugin *plugin, void nm_vpn_plugin_failure (NMVPNPlugin *plugin, - NMVPNPluginFailure reason) + NMVPNPluginFailure reason) { g_return_if_fail (NM_IS_VPN_PLUGIN (plugin)); @@ -190,17 +204,17 @@ nm_vpn_plugin_disconnect (NMVPNPlugin *plugin, GError **err) switch (state) { case NM_VPN_SERVICE_STATE_STOPPING: g_set_error (err, - NM_VPN_PLUGIN_ERROR, - NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS, - "%s", - "Could not process the request because the VPN connection is already being stopped."); + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS, + "%s", + "Could not process the request because the VPN connection is already being stopped."); break; case NM_VPN_SERVICE_STATE_STOPPED: g_set_error (err, - NM_VPN_PLUGIN_ERROR, - NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED, - "%s", - "Could not process the request because no VPN connection was active."); + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED, + "%s", + "Could not process the request because no VPN connection was active."); break; case NM_VPN_SERVICE_STATE_STARTING: case NM_VPN_SERVICE_STATE_STARTED: @@ -264,8 +278,8 @@ fail_stop (gpointer data) static gboolean nm_vpn_plugin_connect (NMVPNPlugin *plugin, - NMConnection *connection, - GError **err) + NMConnection *connection, + GError **err) { NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (plugin); gboolean ret = FALSE; @@ -277,24 +291,24 @@ nm_vpn_plugin_connect (NMVPNPlugin *plugin, switch (state) { case NM_VPN_SERVICE_STATE_STARTING: g_set_error (err, - NM_VPN_PLUGIN_ERROR, - NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS, - "%s", - "Could not process the request because the VPN connection is already being started."); + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS, + "%s", + "Could not process the request because the VPN connection is already being started."); break; case NM_VPN_SERVICE_STATE_STARTED: g_set_error (err, - NM_VPN_PLUGIN_ERROR, - NM_VPN_PLUGIN_ERROR_ALREADY_STARTED, - "%s", - "Could not process the request because a VPN connection was already active."); + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_ALREADY_STARTED, + "%s", + "Could not process the request because a VPN connection was already active."); break; case NM_VPN_SERVICE_STATE_STOPPING: g_set_error (err, - NM_VPN_PLUGIN_ERROR, - NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS, - "%s", - "Could not process the request because the VPN connection is being stopped."); + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS, + "%s", + "Could not process the request because the VPN connection is being stopped."); break; case NM_VPN_SERVICE_STATE_STOPPED: case NM_VPN_SERVICE_STATE_INIT: @@ -319,22 +333,124 @@ nm_vpn_plugin_connect (NMVPNPlugin *plugin, } void +nm_vpn_plugin_set_config (NMVPNPlugin *plugin, + GHashTable *config) +{ + NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (plugin); + GValue *val; + + g_return_if_fail (NM_IS_VPN_PLUGIN (plugin)); + g_return_if_fail (config != NULL); + + priv->got_config = TRUE; + + val = g_hash_table_lookup (config, NM_VPN_PLUGIN_CONFIG_HAS_IP4); + if (val && g_value_get_boolean (val)) + priv->has_ip4 = TRUE; + val = g_hash_table_lookup (config, NM_VPN_PLUGIN_CONFIG_HAS_IP6); + if (val && g_value_get_boolean (val)) + priv->has_ip6 = TRUE; + + g_warn_if_fail (priv->has_ip4 || priv->has_ip6); + + /* Record the items that need to also be inserted into the + * ip4config, for compatibility with older daemons. + */ + val = g_hash_table_lookup (config, NM_VPN_PLUGIN_CONFIG_BANNER); + if (val) { + g_value_init (&priv->banner, G_VALUE_TYPE (val)); + g_value_copy (val, &priv->banner); + } + val = g_hash_table_lookup (config, NM_VPN_PLUGIN_CONFIG_TUNDEV); + if (val) { + g_value_init (&priv->tundev, G_VALUE_TYPE (val)); + g_value_copy (val, &priv->tundev); + } + val = g_hash_table_lookup (config, NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY); + if (val) { + g_value_init (&priv->gateway, G_VALUE_TYPE (val)); + g_value_copy (val, &priv->gateway); + } + val = g_hash_table_lookup (config, NM_VPN_PLUGIN_CONFIG_MTU); + if (val) { + g_value_init (&priv->mtu, G_VALUE_TYPE (val)); + g_value_copy (val, &priv->mtu); + } + + g_signal_emit (plugin, signals[CONFIG], 0, config); +} + +void nm_vpn_plugin_set_ip4_config (NMVPNPlugin *plugin, - GHashTable *ip4_config) + GHashTable *ip4_config) { + NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (plugin); + GHashTable *combined_config; + GHashTableIter iter; + gpointer key, value; + g_return_if_fail (NM_IS_VPN_PLUGIN (plugin)); g_return_if_fail (ip4_config != NULL); - g_signal_emit (plugin, signals[IP4_CONFIG], 0, ip4_config); + priv->got_ip4 = TRUE; + + /* Old plugins won't send the "config" signal and thus can't send + * NM_VPN_PLUGIN_CONFIG_HAS_IP4 either. But since they don't support IPv6, + * we can safely assume that, if we don't receive a "config" signal but do + * receive an "ip4-config" signal, the old plugin supports IPv4. + */ + if (!priv->got_config) + priv->has_ip4 = TRUE; + + /* Older NetworkManager daemons expect all config info to be in + * the ip4 config, so they won't even notice the "config" signal + * being emitted. So just copy all of that data into the ip4 + * config too. + */ + combined_config = g_hash_table_new (g_str_hash, g_str_equal); + g_hash_table_iter_init (&iter, ip4_config); + while (g_hash_table_iter_next (&iter, &key, &value)) + g_hash_table_insert (combined_config, key, value); + + if (G_VALUE_TYPE (&priv->banner) != G_TYPE_INVALID) + g_hash_table_insert (combined_config, NM_VPN_PLUGIN_IP4_CONFIG_BANNER, &priv->banner); + if (G_VALUE_TYPE (&priv->tundev) != G_TYPE_INVALID) + g_hash_table_insert (combined_config, NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV, &priv->tundev); + if (G_VALUE_TYPE (&priv->gateway) != G_TYPE_INVALID) + g_hash_table_insert (combined_config, NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY, &priv->gateway); + if (G_VALUE_TYPE (&priv->mtu) != G_TYPE_INVALID) + g_hash_table_insert (combined_config, NM_VPN_PLUGIN_IP4_CONFIG_MTU, &priv->mtu); + + g_signal_emit (plugin, signals[IP4_CONFIG], 0, combined_config); + g_hash_table_destroy (combined_config); + + if ( priv->has_ip4 == priv->got_ip4 + && priv->has_ip6 == priv->got_ip6) + nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED); +} - nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED); +void +nm_vpn_plugin_set_ip6_config (NMVPNPlugin *plugin, + GHashTable *ip6_config) +{ + NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (plugin); + + g_return_if_fail (NM_IS_VPN_PLUGIN (plugin)); + g_return_if_fail (ip6_config != NULL); + + priv->got_ip6 = TRUE; + g_signal_emit (plugin, signals[IP6_CONFIG], 0, ip6_config); + + if ( priv->has_ip4 == priv->got_ip4 + && priv->has_ip6 == priv->got_ip6) + nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED); } static gboolean impl_vpn_plugin_connect (NMVPNPlugin *plugin, - GHashTable *properties, - GError **error) + GHashTable *properties, + GError **error) { NMConnection *connection; gboolean success = FALSE; @@ -410,15 +526,25 @@ out: static gboolean impl_vpn_plugin_disconnect (NMVPNPlugin *plugin, - GError **err) + GError **err) { return nm_vpn_plugin_disconnect (plugin, err); } static gboolean +impl_vpn_plugin_set_config (NMVPNPlugin *plugin, + GHashTable *config, + GError **err) +{ + nm_vpn_plugin_set_config (plugin, config); + + return TRUE; +} + +static gboolean impl_vpn_plugin_set_ip4_config (NMVPNPlugin *plugin, - GHashTable *config, - GError **err) + GHashTable *config, + GError **err) { nm_vpn_plugin_set_ip4_config (plugin, config); @@ -426,9 +552,19 @@ impl_vpn_plugin_set_ip4_config (NMVPNPlugin *plugin, } static gboolean +impl_vpn_plugin_set_ip6_config (NMVPNPlugin *plugin, + GHashTable *config, + GError **err) +{ + nm_vpn_plugin_set_ip6_config (plugin, config); + + return TRUE; +} + +static gboolean impl_vpn_plugin_set_failure (NMVPNPlugin *plugin, - char *reason, - GError **err) + char *reason, + GError **err) { nm_vpn_plugin_failure (plugin, NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG); @@ -461,7 +597,7 @@ setup_unix_signal_handler (void) static void one_plugin_destroyed (gpointer data, - GObject *object) + GObject *object) { active_plugins = g_slist_remove (active_plugins, object); } @@ -477,8 +613,8 @@ nm_vpn_plugin_init (NMVPNPlugin *plugin) static GObject * constructor (GType type, - guint n_construct_params, - GObjectConstructParam *construct_params) + guint n_construct_params, + GObjectConstructParam *construct_params) { GObject *object; NMVPNPlugin *plugin; @@ -503,16 +639,16 @@ constructor (GType type, goto err; proxy = dbus_g_proxy_new_for_name (connection, - "org.freedesktop.DBus", - "/org/freedesktop/DBus", - "org.freedesktop.DBus"); + "org.freedesktop.DBus", + "/org/freedesktop/DBus", + "org.freedesktop.DBus"); if (!dbus_g_proxy_call (proxy, "RequestName", &err, - G_TYPE_STRING, priv->dbus_service_name, - G_TYPE_UINT, 0, - G_TYPE_INVALID, - G_TYPE_UINT, &request_name_result, - G_TYPE_INVALID)) { + G_TYPE_STRING, priv->dbus_service_name, + G_TYPE_UINT, 0, + G_TYPE_INVALID, + G_TYPE_UINT, &request_name_result, + G_TYPE_INVALID)) { g_object_unref (proxy); goto err; } @@ -520,8 +656,8 @@ constructor (GType type, g_object_unref (proxy); dbus_g_connection_register_g_object (connection, - NM_VPN_DBUS_PLUGIN_PATH, - object); + NM_VPN_DBUS_PLUGIN_PATH, + object); plugin = NM_VPN_PLUGIN (object); @@ -544,7 +680,7 @@ constructor (GType type, static void set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) + const GValue *value, GParamSpec *pspec) { NMVPNPluginPrivate *priv = NM_VPN_PLUGIN_GET_PRIVATE (object); @@ -555,7 +691,7 @@ set_property (GObject *object, guint prop_id, break; case PROP_STATE: nm_vpn_plugin_set_state (NM_VPN_PLUGIN (object), - (NMVPNServiceState) g_value_get_uint (value)); + (NMVPNServiceState) g_value_get_uint (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -590,15 +726,10 @@ dispose (GObject *object) NMVPNServiceState state; GError *err = NULL; - if (priv->disposed) { - G_OBJECT_CLASS (nm_vpn_plugin_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - - if (priv->fail_stop_id) + if (priv->fail_stop_id) { g_source_remove (priv->fail_stop_id); + priv->fail_stop_id = 0; + } state = nm_vpn_plugin_get_state (plugin); @@ -623,6 +754,15 @@ finalize (GObject *object) nm_vpn_plugin_set_connection (plugin, NULL); g_free (priv->dbus_service_name); + if (G_IS_VALUE (&priv->banner)) + g_value_unset (&priv->banner); + if (G_IS_VALUE (&priv->tundev)) + g_value_unset (&priv->tundev); + if (G_IS_VALUE (&priv->gateway)) + g_value_unset (&priv->gateway); + if (G_IS_VALUE (&priv->mtu)) + g_value_unset (&priv->mtu); + G_OBJECT_CLASS (nm_vpn_plugin_parent_class)->finalize (object); } @@ -692,7 +832,7 @@ nm_vpn_plugin_class_init (NMVPNPluginClass *plugin_class) g_type_class_add_private (object_class, sizeof (NMVPNPluginPrivate)); dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (plugin_class), - &dbus_glib_nm_vpn_plugin_object_info); + &dbus_glib_nm_vpn_plugin_object_info); /* virtual methods */ object_class->constructor = constructor; @@ -707,75 +847,95 @@ nm_vpn_plugin_class_init (NMVPNPluginClass *plugin_class) g_object_class_install_property (object_class, PROP_DBUS_SERVICE_NAME, g_param_spec_string (NM_VPN_PLUGIN_DBUS_SERVICE_NAME, - "DBus service name", - "DBus service name", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + "DBus service name", + "DBus service name", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_STATE, g_param_spec_uint (NM_VPN_PLUGIN_STATE, - "State", - "Current VPN service state", - NM_VPN_SERVICE_STATE_UNKNOWN, - NM_VPN_SERVICE_STATE_STOPPED, - NM_VPN_SERVICE_STATE_INIT, - G_PARAM_READWRITE)); + "State", + "Current VPN service state", + NM_VPN_SERVICE_STATE_UNKNOWN, + NM_VPN_SERVICE_STATE_STOPPED, + NM_VPN_SERVICE_STATE_INIT, + G_PARAM_READWRITE)); /* signals */ signals[STATE_CHANGED] = g_signal_new ("state-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVPNPluginClass, state_changed), - NULL, NULL, - g_cclosure_marshal_VOID__UINT, - G_TYPE_NONE, 1, - G_TYPE_UINT); + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVPNPluginClass, state_changed), + NULL, NULL, + g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, 1, + G_TYPE_UINT); + + signals[CONFIG] = + g_signal_new ("config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVPNPluginClass, config), + NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, + DBUS_TYPE_G_MAP_OF_VARIANT); signals[IP4_CONFIG] = g_signal_new ("ip4-config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVPNPluginClass, ip4_config), - NULL, NULL, - g_cclosure_marshal_VOID__BOXED, - G_TYPE_NONE, 1, - DBUS_TYPE_G_MAP_OF_VARIANT); + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVPNPluginClass, ip4_config), + NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, + DBUS_TYPE_G_MAP_OF_VARIANT); + + signals[IP6_CONFIG] = + g_signal_new ("ip6-config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVPNPluginClass, ip6_config), + NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, + DBUS_TYPE_G_MAP_OF_VARIANT); signals[LOGIN_BANNER] = g_signal_new ("login-banner", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVPNPluginClass, login_banner), - NULL, NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVPNPluginClass, login_banner), + NULL, NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, 1, + G_TYPE_STRING); signals[FAILURE] = g_signal_new ("failure", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVPNPluginClass, failure), - NULL, NULL, - g_cclosure_marshal_VOID__UINT, - G_TYPE_NONE, 1, - G_TYPE_UINT); + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVPNPluginClass, failure), + NULL, NULL, + g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, 1, + G_TYPE_UINT); signals[QUIT] = g_signal_new ("quit", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVPNPluginClass, quit), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0, - G_TYPE_NONE); + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMVPNPluginClass, quit), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0, + G_TYPE_NONE); dbus_g_error_domain_register (NM_VPN_PLUGIN_ERROR, - NULL, - NM_TYPE_VPN_PLUGIN_ERROR); + NULL, + NM_TYPE_VPN_PLUGIN_ERROR); setup_unix_signal_handler (); } diff --git a/libnm-glib/nm-vpn-plugin.h b/libnm-glib/nm-vpn-plugin.h index 15cbf686..cdd55c15 100644 --- a/libnm-glib/nm-vpn-plugin.h +++ b/libnm-glib/nm-vpn-plugin.h @@ -64,40 +64,44 @@ typedef struct { GObjectClass parent; /* virtual methods */ - gboolean (*connect) (NMVPNPlugin *plugin, - NMConnection *connection, - GError **err); + gboolean (*connect) (NMVPNPlugin *plugin, + NMConnection *connection, + GError **err); gboolean (*need_secrets) (NMVPNPlugin *plugin, - NMConnection *connection, - char **setting_name, - GError **error); + NMConnection *connection, + char **setting_name, + GError **error); - gboolean (*disconnect) (NMVPNPlugin *plugin, - GError **err); + gboolean (*disconnect) (NMVPNPlugin *plugin, + GError **err); /* Signals */ void (*state_changed) (NMVPNPlugin *plugin, - NMVPNServiceState state); + NMVPNServiceState state); void (*ip4_config) (NMVPNPlugin *plugin, - GHashTable *ip4_config); + GHashTable *ip4_config); void (*login_banner) (NMVPNPlugin *plugin, - const char *banner); + const char *banner); void (*failure) (NMVPNPlugin *plugin, - NMVPNPluginFailure reason); + NMVPNPluginFailure reason); void (*quit) (NMVPNPlugin *plugin); + void (*config) (NMVPNPlugin *plugin, + GHashTable *config); + + void (*ip6_config) (NMVPNPlugin *plugin, + GHashTable *config); + /* Padding for future expansion */ void (*_reserved1) (void); void (*_reserved2) (void); void (*_reserved3) (void); void (*_reserved4) (void); - void (*_reserved5) (void); - void (*_reserved6) (void); } NMVPNPluginClass; GType nm_vpn_plugin_get_type (void); @@ -107,19 +111,25 @@ GType nm_vpn_plugin_error_get_type (void); DBusGConnection *nm_vpn_plugin_get_connection (NMVPNPlugin *plugin); NMVPNServiceState nm_vpn_plugin_get_state (NMVPNPlugin *plugin); void nm_vpn_plugin_set_state (NMVPNPlugin *plugin, - NMVPNServiceState state); + NMVPNServiceState state); void nm_vpn_plugin_set_login_banner (NMVPNPlugin *plugin, - const char *banner); + const char *banner); void nm_vpn_plugin_failure (NMVPNPlugin *plugin, - NMVPNPluginFailure reason); + NMVPNPluginFailure reason); + +void nm_vpn_plugin_set_config (NMVPNPlugin *plugin, + GHashTable *config); void nm_vpn_plugin_set_ip4_config (NMVPNPlugin *plugin, - GHashTable *ip4_config); + GHashTable *ip4_config); + +void nm_vpn_plugin_set_ip6_config (NMVPNPlugin *plugin, + GHashTable *ip6_config); gboolean nm_vpn_plugin_disconnect (NMVPNPlugin *plugin, - GError **err); + GError **err); G_END_DECLS diff --git a/libnm-glib/nm-wimax-nsp.c b/libnm-glib/nm-wimax-nsp.c index c3b222df..ce1048be 100644 --- a/libnm-glib/nm-wimax-nsp.c +++ b/libnm-glib/nm-wimax-nsp.c @@ -23,6 +23,8 @@ #include <config.h> #include <string.h> +#include "nm-glib-compat.h" + #include <nm-connection.h> #include <nm-setting-connection.h> #include <nm-setting-wimax.h> @@ -37,7 +39,6 @@ G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp, NM_TYPE_OBJECT) #define NM_WIMAX_NSP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_WIMAX_NSP, NMWimaxNspPrivate)) typedef struct { - gboolean disposed; DBusGProxy *proxy; char *name; @@ -217,14 +218,7 @@ dispose (GObject *object) { NMWimaxNspPrivate *priv = NM_WIMAX_NSP_GET_PRIVATE (object); - if (priv->disposed) { - G_OBJECT_CLASS (nm_wimax_nsp_parent_class)->dispose (object); - return; - } - - priv->disposed = TRUE; - - g_object_unref (priv->proxy); + g_clear_object (&priv->proxy); G_OBJECT_CLASS (nm_wimax_nsp_parent_class)->dispose (object); } @@ -247,6 +241,8 @@ get_property (GObject *object, { NMWimaxNsp *nsp = NM_WIMAX_NSP (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_NAME: g_value_set_string (value, nm_wimax_nsp_get_name (nsp)); diff --git a/libnm-glib/tests/Makefile.in b/libnm-glib/tests/Makefile.in index ad4d1c44..a9840c03 100644 --- a/libnm-glib/tests/Makefile.in +++ b/libnm-glib/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -170,6 +170,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -265,6 +269,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -303,6 +310,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/libnm-util/Makefile.am b/libnm-util/Makefile.am index 4d3afc82..76acd99f 100644 --- a/libnm-util/Makefile.am +++ b/libnm-util/Makefile.am @@ -16,6 +16,7 @@ libnm_util_include_HEADERS = \ nm-connection.h \ nm-setting.h \ nm-setting-8021x.h \ + nm-setting-adsl.h \ nm-setting-bluetooth.h \ nm-setting-bond.h \ nm-setting-connection.h \ @@ -49,6 +50,7 @@ libnm_util_la_csources = \ nm-param-spec-specialized.c \ nm-setting.c \ nm-setting-8021x.c \ + nm-setting-adsl.c \ nm-setting-bluetooth.c \ nm-setting-bond.c \ nm-setting-connection.c \ @@ -147,10 +149,11 @@ introspection_sources = $(libnm_util_include_HEADERS) $(libnm_util_la_csources) NetworkManager-1.0.gir: libnm-util.la NetworkManager_1_0_gir_INCLUDES = GObject-2.0 DBusGLib-1.0 NetworkManager_1_0_gir_PACKAGES = gobject-2.0 dbus-glib-1 +NetworkManager_1_0_gir_EXPORT_PACKAGES = libnm-util NetworkManager_1_0_gir_CFLAGS = $(INCLUDES) -I$(top_srcdir)/libnm-util NetworkManager_1_0_gir_LIBS = libnm-util.la NetworkManager_1_0_gir_FILES = $(introspection_sources) -NetworkManager_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm_ +NetworkManager_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm INTROSPECTION_GIRS += NetworkManager-1.0.gir girdir = $(datadir)/gir-1.0 diff --git a/libnm-util/Makefile.in b/libnm-util/Makefile.in index e17da224..dcff0c62 100644 --- a/libnm-util/Makefile.in +++ b/libnm-util/Makefile.in @@ -64,7 +64,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -105,7 +105,7 @@ libnm_util_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) am__libnm_util_la_SOURCES_DIST = crypto.c nm-connection.c \ nm-param-spec-specialized.c nm-setting.c nm-setting-8021x.c \ - nm-setting-bluetooth.c nm-setting-bond.c \ + nm-setting-adsl.c nm-setting-bluetooth.c nm-setting-bond.c \ nm-setting-connection.c nm-setting-infiniband.c \ nm-setting-ip4-config.c nm-setting-vlan.c \ nm-setting-ip6-config.c nm-setting-ppp.c nm-setting-pppoe.c \ @@ -118,6 +118,7 @@ am__libnm_util_la_SOURCES_DIST = crypto.c nm-connection.c \ am__objects_1 = libnm_util_la-crypto.lo libnm_util_la-nm-connection.lo \ libnm_util_la-nm-param-spec-specialized.lo \ libnm_util_la-nm-setting.lo libnm_util_la-nm-setting-8021x.lo \ + libnm_util_la-nm-setting-adsl.lo \ libnm_util_la-nm-setting-bluetooth.lo \ libnm_util_la-nm-setting-bond.lo \ libnm_util_la-nm-setting-connection.lo \ @@ -302,6 +303,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -397,6 +402,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -435,6 +443,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -464,6 +474,7 @@ libnm_util_include_HEADERS = \ nm-connection.h \ nm-setting.h \ nm-setting-8021x.h \ + nm-setting-adsl.h \ nm-setting-bluetooth.h \ nm-setting-bond.h \ nm-setting-connection.h \ @@ -497,6 +508,7 @@ libnm_util_la_csources = \ nm-param-spec-specialized.c \ nm-setting.c \ nm-setting-8021x.c \ + nm-setting-adsl.c \ nm-setting-bluetooth.c \ nm-setting-bond.c \ nm-setting-connection.c \ @@ -554,10 +566,11 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) @HAVE_INTROSPECTION_TRUE@introspection_sources = $(libnm_util_include_HEADERS) $(libnm_util_la_csources) $(top_srcdir)/include/NetworkManager.h $(top_srcdir)/include/NetworkManagerVPN.h @HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_INCLUDES = GObject-2.0 DBusGLib-1.0 @HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_PACKAGES = gobject-2.0 dbus-glib-1 +@HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_EXPORT_PACKAGES = libnm-util @HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_CFLAGS = $(INCLUDES) -I$(top_srcdir)/libnm-util @HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_LIBS = libnm-util.la @HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_FILES = $(introspection_sources) -@HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm_ +@HAVE_INTROSPECTION_TRUE@NetworkManager_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm @HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0 @HAVE_INTROSPECTION_TRUE@gir_DATA = $(INTROSPECTION_GIRS) @HAVE_INTROSPECTION_TRUE@typelibdir = $(libdir)/girepository-1.0 @@ -656,6 +669,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_util_la-nm-connection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_util_la-nm-param-spec-specialized.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_util_la-nm-setting-8021x.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_util_la-nm-setting-adsl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_util_la-nm-setting-bluetooth.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_util_la-nm-setting-bond.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_util_la-nm-setting-cdma.Plo@am__quote@ @@ -748,6 +762,14 @@ libnm_util_la-nm-setting-8021x.lo: nm-setting-8021x.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) $(libnm_util_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_util_la-nm-setting-8021x.lo `test -f 'nm-setting-8021x.c' || echo '$(srcdir)/'`nm-setting-8021x.c +libnm_util_la-nm-setting-adsl.lo: nm-setting-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_util_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_util_la-nm-setting-adsl.lo -MD -MP -MF $(DEPDIR)/libnm_util_la-nm-setting-adsl.Tpo -c -o libnm_util_la-nm-setting-adsl.lo `test -f 'nm-setting-adsl.c' || echo '$(srcdir)/'`nm-setting-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_util_la-nm-setting-adsl.Tpo $(DEPDIR)/libnm_util_la-nm-setting-adsl.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-setting-adsl.c' object='libnm_util_la-nm-setting-adsl.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) $(libnm_util_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_util_la-nm-setting-adsl.lo `test -f 'nm-setting-adsl.c' || echo '$(srcdir)/'`nm-setting-adsl.c + libnm_util_la-nm-setting-bluetooth.lo: nm-setting-bluetooth.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_util_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_util_la-nm-setting-bluetooth.lo -MD -MP -MF $(DEPDIR)/libnm_util_la-nm-setting-bluetooth.Tpo -c -o libnm_util_la-nm-setting-bluetooth.lo `test -f 'nm-setting-bluetooth.c' || echo '$(srcdir)/'`nm-setting-bluetooth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_util_la-nm-setting-bluetooth.Tpo $(DEPDIR)/libnm_util_la-nm-setting-bluetooth.Plo diff --git a/libnm-util/libnm-util.ver b/libnm-util/libnm-util.ver index eb3f1f32..9eec05cf 100644 --- a/libnm-util/libnm-util.ver +++ b/libnm-util/libnm-util.ver @@ -15,6 +15,7 @@ global: nm_connection_get_path; nm_connection_get_setting; nm_connection_get_setting_802_1x; + nm_connection_get_setting_adsl; nm_connection_get_setting_bluetooth; nm_connection_get_setting_bond; nm_connection_get_setting_by_name; @@ -171,6 +172,17 @@ global: nm_setting_802_1x_set_phase2_client_cert; nm_setting_802_1x_set_phase2_private_key; nm_setting_802_1x_set_private_key; + nm_setting_adsl_error_get_type; + nm_setting_adsl_error_quark; + nm_setting_adsl_get_encapsulation; + nm_setting_adsl_get_password; + nm_setting_adsl_get_password_flags; + nm_setting_adsl_get_protocol; + nm_setting_adsl_get_type; + nm_setting_adsl_get_username; + nm_setting_adsl_get_vci; + nm_setting_adsl_get_vpi; + nm_setting_adsl_new; nm_setting_bluetooth_error_get_type; nm_setting_bluetooth_error_quark; nm_setting_bluetooth_get_bdaddr; @@ -435,6 +447,7 @@ global: nm_setting_wireless_get_bssid; nm_setting_wireless_get_channel; nm_setting_wireless_get_cloned_mac_address; + nm_setting_wireless_get_hidden; nm_setting_wireless_get_mac_address; nm_setting_wireless_get_mac_address_blacklist; nm_setting_wireless_get_mode; diff --git a/libnm-util/nm-connection.c b/libnm-util/nm-connection.c index 13099998..80a4996d 100644 --- a/libnm-util/nm-connection.c +++ b/libnm-util/nm-connection.c @@ -41,6 +41,7 @@ #include "nm-setting-pppoe.h" #include "nm-setting-wimax.h" #include "nm-setting-wired.h" +#include "nm-setting-adsl.h" #include "nm-setting-wireless.h" #include "nm-setting-wireless-security.h" #include "nm-setting-serial.h" @@ -117,7 +118,7 @@ static guint signals[LAST_SIGNAL] = { 0 }; static GHashTable *registered_settings = NULL; -#define DEFAULT_MAP_SIZE 19 +#define DEFAULT_MAP_SIZE 20 static struct SettingInfo { const char *name; @@ -259,6 +260,11 @@ register_default_settings (void) NM_SETTING_PPPOE_ERROR, 3, TRUE); + register_one_setting (NM_SETTING_ADSL_SETTING_NAME, + NM_TYPE_SETTING_ADSL, + NM_SETTING_ADSL_ERROR, + 3, TRUE); + register_one_setting (NM_SETTING_802_1X_SETTING_NAME, NM_TYPE_SETTING_802_1X, NM_SETTING_802_1X_ERROR, @@ -1625,6 +1631,23 @@ nm_connection_get_setting_wired (NMConnection *connection) } /** + * nm_connection_get_setting_adsl: + * @connection: the #NMConnection + * + * A shortcut to return any #NMSettingAdsl the connection might contain. + * + * Returns: (transfer none): an #NMSettingAdsl if the connection contains one, otherwise NULL + **/ +NMSettingAdsl * +nm_connection_get_setting_adsl (NMConnection *connection) +{ + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + + return (NMSettingAdsl *) nm_connection_get_setting (connection, NM_TYPE_SETTING_ADSL); +} + +/** * nm_connection_get_setting_wireless: * @connection: the #NMConnection * diff --git a/libnm-util/nm-connection.h b/libnm-util/nm-connection.h index 6df74f57..ca29d157 100644 --- a/libnm-util/nm-connection.h +++ b/libnm-util/nm-connection.h @@ -46,6 +46,7 @@ #include <nm-setting-vpn.h> #include <nm-setting-wimax.h> #include <nm-setting-wired.h> +#include <nm-setting-adsl.h> #include <nm-setting-wireless.h> #include <nm-setting-wireless-security.h> #include <nm-setting-vlan.h> @@ -199,6 +200,7 @@ NMSettingPPPOE * nm_connection_get_setting_pppoe (NMConnec NMSettingSerial * nm_connection_get_setting_serial (NMConnection *connection); NMSettingVPN * nm_connection_get_setting_vpn (NMConnection *connection); NMSettingWimax * nm_connection_get_setting_wimax (NMConnection *connection); +NMSettingAdsl * nm_connection_get_setting_adsl (NMConnection *connection); NMSettingWired * nm_connection_get_setting_wired (NMConnection *connection); NMSettingWireless * nm_connection_get_setting_wireless (NMConnection *connection); NMSettingWirelessSecurity *nm_connection_get_setting_wireless_security (NMConnection *connection); diff --git a/libnm-util/nm-setting-adsl.c b/libnm-util/nm-setting-adsl.c new file mode 100644 index 00000000..9e31c423 --- /dev/null +++ b/libnm-util/nm-setting-adsl.c @@ -0,0 +1,461 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ + +/* + * Dan Williams <dcbw@redhat.com> + * Hicham HAOUARI <hicham.haouari@gmail.com> + * Pantelis Koukousoulas <pktoss@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2008 Red Hat, Inc. + */ + +#include "nm-setting-adsl.h" +#include "nm-setting-ppp.h" +#include "nm-setting-private.h" +#include "nm-utils.h" +#include <string.h> + +/** + * SECTION:nm-setting-adsl + * @short_description: Describes ADSL-based properties + * @include: nm-setting-adsl.h + * + * The #NMSettingAdsl object is a #NMSetting subclass that describes + * properties of ADSL connections. + */ + +/** + * nm_setting_adsl_error_quark: + * + * Registers an error quark for #NMSettingAdsl if necessary. + * + * Returns: the error quark used for #NMSettingAdsl errors. + **/ +GQuark +nm_setting_adsl_error_quark (void) +{ + static GQuark quark; + + if (G_UNLIKELY (!quark)) + quark = g_quark_from_static_string ("nm-setting-adsl-error-quark"); + return quark; +} + +G_DEFINE_TYPE (NMSettingAdsl, nm_setting_adsl, NM_TYPE_SETTING) + +#define NM_SETTING_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_ADSL, NMSettingAdslPrivate)) + +typedef struct { + char * username; + char * password; + NMSettingSecretFlags password_flags; + char * protocol; + char * encapsulation; + guint32 vpi; + guint32 vci; +} NMSettingAdslPrivate; + +enum { + PROP_0, + PROP_USERNAME, + PROP_PASSWORD, + PROP_PASSWORD_FLAGS, + PROP_PROTOCOL, + PROP_ENCAPSULATION, + PROP_VPI, + PROP_VCI, + + LAST_PROP +}; + +/** + * nm_setting_adsl_new: + * + * Creates a new #NMSettingAdsl object with default values. + * + * Returns: the new empty #NMSettingAdsl object + **/ +NMSetting * +nm_setting_adsl_new (void) +{ + return (NMSetting *) g_object_new (NM_TYPE_SETTING_ADSL, NULL); +} + +/** + * nm_setting_adsl_get_username: + * @setting: the #NMSettingAdsl + * + * Returns: the #NMSettingAdsl:username property of the setting + **/ +const char * +nm_setting_adsl_get_username (NMSettingAdsl *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_ADSL (setting), NULL); + + return NM_SETTING_ADSL_GET_PRIVATE (setting)->username; +} + +/** + * nm_setting_adsl_get_password: + * @setting: the #NMSettingAdsl + * + * Returns: the #NMSettingAdsl:password property of the setting + **/ +const char * +nm_setting_adsl_get_password (NMSettingAdsl *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_ADSL (setting), NULL); + + return NM_SETTING_ADSL_GET_PRIVATE (setting)->password; +} + +/** + * nm_setting_adsl_get_password_flags: + * @setting: the #NMSettingAdsl + * + * Returns: the #NMSettingSecretFlags pertaining to the #NMSettingAdsl:password + **/ +NMSettingSecretFlags +nm_setting_adsl_get_password_flags (NMSettingAdsl *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_ADSL (setting), NM_SETTING_SECRET_FLAG_NONE); + + return NM_SETTING_ADSL_GET_PRIVATE (setting)->password_flags; +} + +/** + * nm_setting_adsl_get_protocol: + * @setting: the #NMSettingAdsl + * + * Returns: the #NMSettingAdsl:protocol property of the setting + **/ +const char * +nm_setting_adsl_get_protocol (NMSettingAdsl *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_ADSL (setting), NULL); + + return NM_SETTING_ADSL_GET_PRIVATE (setting)->protocol; +} + +/** + * nm_setting_adsl_get_encapsulation: + * @setting: the #NMSettingAdsl + * + * Returns: the #NMSettingAdsl:encapsulation property of the setting + **/ +const char * +nm_setting_adsl_get_encapsulation (NMSettingAdsl *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_ADSL (setting), NULL); + + return NM_SETTING_ADSL_GET_PRIVATE (setting)->encapsulation; +} + +/** + * nm_setting_adsl_get_vpi: + * @setting: the #NMSettingAdsl + * + * Returns: the #NMSettingAdsl:vpi property of the setting + **/ +guint32 +nm_setting_adsl_get_vpi (NMSettingAdsl *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_ADSL (setting), 0); + + return NM_SETTING_ADSL_GET_PRIVATE (setting)->vpi; +} + +/** + * nm_setting_adsl_get_vci: + * @setting: the #NMSettingAdsl + * + * Returns: the #NMSettingAdsl:vci property of the setting + **/ +guint32 +nm_setting_adsl_get_vci (NMSettingAdsl *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_ADSL (setting), 0); + + return NM_SETTING_ADSL_GET_PRIVATE (setting)->vci; +} + +static gboolean +verify (NMSetting *setting, GSList *all_settings, GError **error) +{ + NMSettingAdslPrivate *priv = NM_SETTING_ADSL_GET_PRIVATE (setting); + + if (!priv->username) { + g_set_error (error, + NM_SETTING_ADSL_ERROR, + NM_SETTING_ADSL_ERROR_MISSING_PROPERTY, + NM_SETTING_ADSL_USERNAME); + return FALSE; + } else if (!strlen (priv->username)) { + g_set_error (error, + NM_SETTING_ADSL_ERROR, + NM_SETTING_ADSL_ERROR_INVALID_PROPERTY, + NM_SETTING_ADSL_USERNAME); + return FALSE; + } + + if (priv->password && !strlen (priv->password)) { + g_set_error (error, + NM_SETTING_ADSL_ERROR, + NM_SETTING_ADSL_ERROR_INVALID_PROPERTY, + NM_SETTING_ADSL_PASSWORD); + return FALSE; + } + + if (strcmp (priv->protocol, NM_SETTING_ADSL_PROTOCOL_PPPOA) && + strcmp (priv->protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE) && + strcmp (priv->protocol, NM_SETTING_ADSL_PROTOCOL_IPOATM)) { + g_set_error (error, + NM_SETTING_ADSL_ERROR, + NM_SETTING_ADSL_ERROR_INVALID_PROPERTY, + NM_SETTING_ADSL_PROTOCOL); + return FALSE; + } + + if (strcmp (priv->encapsulation, NM_SETTING_ADSL_ENCAPSULATION_VCMUX) && + strcmp (priv->encapsulation, NM_SETTING_ADSL_ENCAPSULATION_LLC) ) { + g_set_error (error, + NM_SETTING_ADSL_ERROR, + NM_SETTING_ADSL_ERROR_INVALID_PROPERTY, + NM_SETTING_ADSL_ENCAPSULATION); + return FALSE; + } + + return TRUE; +} + +static GPtrArray * +need_secrets (NMSetting *setting) +{ + NMSettingAdslPrivate *priv = NM_SETTING_ADSL_GET_PRIVATE (setting); + GPtrArray *secrets = NULL; + + if (priv->password) + return NULL; + + if (!(priv->password_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED)) { + secrets = g_ptr_array_sized_new (1); + g_ptr_array_add (secrets, NM_SETTING_ADSL_PASSWORD); + } + + return secrets; +} + +static void +nm_setting_adsl_init (NMSettingAdsl *setting) +{ + g_object_set (setting, NM_SETTING_NAME, NM_SETTING_ADSL_SETTING_NAME, NULL); +} + +static void +finalize (GObject *object) +{ + NMSettingAdslPrivate *priv = NM_SETTING_ADSL_GET_PRIVATE (object); + + g_free (priv->username); + g_free (priv->password); + g_free (priv->protocol); + g_free (priv->encapsulation); + + G_OBJECT_CLASS (nm_setting_adsl_parent_class)->finalize (object); +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMSettingAdslPrivate *priv = NM_SETTING_ADSL_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_USERNAME: + g_free (priv->username); + priv->username = g_value_dup_string (value); + break; + case PROP_PASSWORD: + g_free (priv->password); + priv->password = g_value_dup_string (value); + break; + case PROP_PASSWORD_FLAGS: + priv->password_flags = g_value_get_uint (value); + break; + case PROP_PROTOCOL: + g_free (priv->protocol); + priv->protocol = g_ascii_strdown (g_value_get_string (value), -1); + break; + case PROP_ENCAPSULATION: + g_free (priv->encapsulation); + priv->encapsulation = g_ascii_strdown (g_value_get_string (value), -1); + break; + case PROP_VPI: + priv->vpi = g_value_get_uint (value); + break; + case PROP_VCI: + priv->vci = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMSettingAdsl *setting = NM_SETTING_ADSL (object); + + switch (prop_id) { + case PROP_USERNAME: + g_value_set_string (value, nm_setting_adsl_get_username (setting)); + break; + case PROP_PASSWORD: + g_value_set_string (value, nm_setting_adsl_get_password (setting)); + break; + case PROP_PASSWORD_FLAGS: + g_value_set_uint (value, nm_setting_adsl_get_password_flags (setting)); + break; + case PROP_PROTOCOL: + g_value_set_string (value, nm_setting_adsl_get_protocol (setting)); + break; + case PROP_ENCAPSULATION: + g_value_set_string (value, nm_setting_adsl_get_encapsulation (setting)); + break; + case PROP_VPI: + g_value_set_uint (value, nm_setting_adsl_get_vpi (setting)); + break; + case PROP_VCI: + g_value_set_uint (value, nm_setting_adsl_get_vci (setting)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +nm_setting_adsl_class_init (NMSettingAdslClass *setting_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (setting_class); + NMSettingClass *parent_class = NM_SETTING_CLASS (setting_class); + + g_type_class_add_private (setting_class, sizeof (NMSettingAdslPrivate)); + + /* virtual methods */ + object_class->set_property = set_property; + object_class->get_property = get_property; + object_class->finalize = finalize; + parent_class->verify = verify; + parent_class->need_secrets = need_secrets; + + /* Properties */ + + /** + * NMSettingAdsl:username: + * + * Username used to authenticate with the ADSL service. + **/ + g_object_class_install_property + (object_class, PROP_USERNAME, + g_param_spec_string (NM_SETTING_ADSL_USERNAME, + "Username", + "Username used to authenticate with the pppoa service.", + NULL, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + /** + * NMSettingADSL:password: + * + * Password used to authenticate with the ADSL service. + **/ + g_object_class_install_property + (object_class, PROP_PASSWORD, + g_param_spec_string (NM_SETTING_ADSL_PASSWORD, + "Password", + "Password used to authenticate with the pppoa service.", + NULL, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE | NM_SETTING_PARAM_SECRET)); + + /** + * NMSettingAdsl:password-flags: + * + * Flags indicating how to handle #NMSettingAdsl:password:. + **/ + g_object_class_install_property (object_class, PROP_PASSWORD_FLAGS, + g_param_spec_uint (NM_SETTING_ADSL_PASSWORD_FLAGS, + "Password Flags", + "Flags indicating how to handle the ADSL password.", + NM_SETTING_SECRET_FLAG_NONE, + NM_SETTING_SECRET_FLAGS_ALL, + NM_SETTING_SECRET_FLAG_NONE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + /** + * NMSettingAdsl:protocol: + * + * ADSL connection protocol, can be pppoa, pppoe or ipoatm. + **/ + g_object_class_install_property + (object_class, PROP_PROTOCOL, + g_param_spec_string (NM_SETTING_ADSL_PROTOCOL, + "Protocol", + "ADSL connection protocol.", + NULL, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + /** + * NMSettingAdsl:encapsulation: + * + * ADSL connection encapsulation, can be vcmux or llc. + **/ + g_object_class_install_property + (object_class, PROP_ENCAPSULATION, + g_param_spec_string (NM_SETTING_ADSL_ENCAPSULATION, + "Encapsulation", + "Encapsulation of ADSL connection", + NULL, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + /** + * NMSettingAdsl:vpi: + * + * ADSL connection vpi. + **/ + g_object_class_install_property + (object_class, PROP_VPI, + g_param_spec_uint (NM_SETTING_ADSL_VPI, + "VPI", + "VPI of ADSL connection", + 0, 65536, 0, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + /** + * NMSettingAdsl:vci: + * + * ADSL connection vci. + **/ + g_object_class_install_property + (object_class, PROP_VCI, + g_param_spec_uint (NM_SETTING_ADSL_VCI, + "VCI", + "VCI of ADSL connection", + 0, 65536, 0, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); +} diff --git a/libnm-util/nm-setting-adsl.h b/libnm-util/nm-setting-adsl.h new file mode 100644 index 00000000..f233c7ed --- /dev/null +++ b/libnm-util/nm-setting-adsl.h @@ -0,0 +1,100 @@ +/* -*- mode: c; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ + +/* + * Dan Williams <dcbw@redhat.com> + * Hicham HAOUARI <hicham.haouari@gmail.com> + * Pantelis Koukousoulas <pantelis@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * (C) Copyright 2007 - 2008 Red Hat, Inc. + */ + +#ifndef NM_SETTING_ADSL_H +#define NM_SETTING_ADSL_H + +#include <nm-setting.h> + +G_BEGIN_DECLS + +#define NM_TYPE_SETTING_ADSL (nm_setting_adsl_get_type ()) +#define NM_SETTING_ADSL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SETTING_ADSL, NMSettingAdsl)) +#define NM_SETTING_ADSL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SETTING_ADSL, NMSettingAdslClass)) +#define NM_IS_SETTING_ADSL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SETTING_ADSL)) +#define NM_IS_SETTING_ADSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_SETTING_ADSL)) +#define NM_SETTING_ADSL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SETTING_ADSL, NMSettingAdslClass)) + +#define NM_SETTING_ADSL_SETTING_NAME "adsl" + +/** + * NMSettingAdslError: + * @NM_SETTING_ADSL_ERROR_UNKNOWN: unknown or unclassified error + * @NM_SETTING_ADSL_ERROR_INVALID_PROPERTY: the property was invalid + * @NM_SETTING_ADSL_ERROR_MISSING_PROPERTY: the property was missing and is + * required + */ +typedef enum { + NM_SETTING_ADSL_ERROR_UNKNOWN = 0, /*< nick=UnknownError >*/ + NM_SETTING_ADSL_ERROR_INVALID_PROPERTY, /*< nick=InvalidProperty >*/ + NM_SETTING_ADSL_ERROR_MISSING_PROPERTY /*< nick=MissingProperty >*/ +} NMSettingAdslError; + +#define NM_SETTING_ADSL_ERROR nm_setting_adsl_error_quark () +GQuark nm_setting_adsl_error_quark (void); + +#define NM_SETTING_ADSL_USERNAME "username" +#define NM_SETTING_ADSL_PASSWORD "password" +#define NM_SETTING_ADSL_PASSWORD_FLAGS "password-flags" +#define NM_SETTING_ADSL_PROTOCOL "protocol" +#define NM_SETTING_ADSL_ENCAPSULATION "encapsulation" +#define NM_SETTING_ADSL_VPI "vpi" +#define NM_SETTING_ADSL_VCI "vci" + +#define NM_SETTING_ADSL_PROTOCOL_PPPOA "pppoa" +#define NM_SETTING_ADSL_PROTOCOL_PPPOE "pppoe" +#define NM_SETTING_ADSL_PROTOCOL_IPOATM "ipoatm" + +#define NM_SETTING_ADSL_ENCAPSULATION_VCMUX "vcmux" +#define NM_SETTING_ADSL_ENCAPSULATION_LLC "llc" + +typedef struct { + NMSetting parent; +} NMSettingAdsl; + +typedef struct { + NMSettingClass parent; + + /* Padding for future expansion */ + void (*_reserved1) (void); + void (*_reserved2) (void); + void (*_reserved3) (void); + void (*_reserved4) (void); +} NMSettingAdslClass; + +GType nm_setting_adsl_get_type (void); + +NMSetting *nm_setting_adsl_new (void); +const char *nm_setting_adsl_get_username (NMSettingAdsl *setting); +const char *nm_setting_adsl_get_password (NMSettingAdsl *setting); +const char *nm_setting_adsl_get_protocol (NMSettingAdsl *setting); +const char *nm_setting_adsl_get_encapsulation (NMSettingAdsl *setting); +guint32 nm_setting_adsl_get_vpi (NMSettingAdsl *setting); +guint32 nm_setting_adsl_get_vci (NMSettingAdsl *setting); +NMSettingSecretFlags nm_setting_adsl_get_password_flags (NMSettingAdsl *setting); + +G_END_DECLS + +#endif /* NM_SETTING_ADSL_H */ diff --git a/libnm-util/nm-setting-bluetooth.c b/libnm-util/nm-setting-bluetooth.c index 6a2fed74..52f0b81e 100644 --- a/libnm-util/nm-setting-bluetooth.c +++ b/libnm-util/nm-setting-bluetooth.c @@ -104,7 +104,7 @@ NMSetting *nm_setting_bluetooth_new (void) const char * nm_setting_bluetooth_get_connection_type (NMSettingBluetooth *setting) { - g_return_val_if_fail (NM_IS_SETTING_BLUETOOTH (setting), 0); + g_return_val_if_fail (NM_IS_SETTING_BLUETOOTH (setting), NULL); return NM_SETTING_BLUETOOTH_GET_PRIVATE (setting)->type; } diff --git a/libnm-util/nm-setting-bond.c b/libnm-util/nm-setting-bond.c index 9f9f4389..b7994f4a 100644 --- a/libnm-util/nm-setting-bond.c +++ b/libnm-util/nm-setting-bond.c @@ -103,7 +103,7 @@ nm_setting_bond_new (void) } /** - * nm_setting_bond_get_interface_name + * nm_setting_bond_get_interface_name: * @setting: the #NMSettingBond * * Returns: the #NMSettingBond:interface-name property of the setting @@ -111,7 +111,7 @@ nm_setting_bond_new (void) const char * nm_setting_bond_get_interface_name (NMSettingBond *setting) { - g_return_val_if_fail (NM_IS_SETTING_BOND (setting), 0); + g_return_val_if_fail (NM_IS_SETTING_BOND (setting), NULL); return NM_SETTING_BOND_GET_PRIVATE (setting)->interface_name; } @@ -288,7 +288,7 @@ nm_setting_bond_remove_option (NMSettingBond *setting, * * Returns a list of valid bond options. * - * Returns: a NULL-terminated array of strings of valid bond options. + * Returns: (transfer none): a NULL-terminated array of strings of valid bond options. **/ const char ** nm_setting_bond_get_valid_options (NMSettingBond *setting) @@ -402,10 +402,10 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) || !value[0] || (strlen (value) > 200) || strchr (value, ' ')) { - g_set_error (error, - NM_SETTING_BOND_ERROR, - NM_SETTING_BOND_ERROR_INVALID_OPTION, - key); + g_set_error_literal (error, + NM_SETTING_BOND_ERROR, + NM_SETTING_BOND_ERROR_INVALID_OPTION, + key); return FALSE; } } diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c index 45e3e635..67c101dc 100644 --- a/libnm-util/nm-setting-ip6-config.c +++ b/libnm-util/nm-setting-ip6-config.c @@ -149,7 +149,7 @@ nm_setting_ip6_config_get_dns (NMSettingIP6Config *setting, guint32 i) NMSettingIP6ConfigPrivate *priv; - g_return_val_if_fail (NM_IS_SETTING_IP6_CONFIG (setting), 0); + g_return_val_if_fail (NM_IS_SETTING_IP6_CONFIG (setting), NULL); priv = NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting); g_return_val_if_fail (i <= g_slist_length (priv->dns), NULL); @@ -631,7 +631,7 @@ nm_setting_ip6_config_get_may_fail (NMSettingIP6Config *setting) NMSettingIP6ConfigPrivacy nm_setting_ip6_config_get_ip6_privacy (NMSettingIP6Config *setting) { - g_return_val_if_fail (NM_IS_SETTING_IP6_CONFIG (setting), FALSE); + g_return_val_if_fail (NM_IS_SETTING_IP6_CONFIG (setting), NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN); return NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->ip6_privacy; } @@ -1210,8 +1210,8 @@ nm_ip6_address_compare (NMIP6Address *address, NMIP6Address *other) const struct in6_addr * nm_ip6_address_get_address (NMIP6Address *address) { - g_return_val_if_fail (address != NULL, 0); - g_return_val_if_fail (address->refcount > 0, 0); + g_return_val_if_fail (address != NULL, NULL); + g_return_val_if_fail (address->refcount > 0, NULL); return &address->address; } @@ -1279,8 +1279,8 @@ nm_ip6_address_set_prefix (NMIP6Address *address, guint32 prefix) const struct in6_addr * nm_ip6_address_get_gateway (NMIP6Address *address) { - g_return_val_if_fail (address != NULL, 0); - g_return_val_if_fail (address->refcount > 0, 0); + g_return_val_if_fail (address != NULL, NULL); + g_return_val_if_fail (address->refcount > 0, NULL); return &address->gateway; } @@ -1427,8 +1427,8 @@ nm_ip6_route_compare (NMIP6Route *route, NMIP6Route *other) const struct in6_addr * nm_ip6_route_get_dest (NMIP6Route *route) { - g_return_val_if_fail (route != NULL, 0); - g_return_val_if_fail (route->refcount > 0, 0); + g_return_val_if_fail (route != NULL, NULL); + g_return_val_if_fail (route->refcount > 0, NULL); return &route->dest; } @@ -1496,8 +1496,8 @@ nm_ip6_route_set_prefix (NMIP6Route *route, guint32 prefix) const struct in6_addr * nm_ip6_route_get_next_hop (NMIP6Route *route) { - g_return_val_if_fail (route != NULL, 0); - g_return_val_if_fail (route->refcount > 0, 0); + g_return_val_if_fail (route != NULL, NULL); + g_return_val_if_fail (route->refcount > 0, NULL); return &route->next_hop; } diff --git a/libnm-util/nm-setting-ppp.c b/libnm-util/nm-setting-ppp.c index 6b1fd5ac..ee9b5f59 100644 --- a/libnm-util/nm-setting-ppp.c +++ b/libnm-util/nm-setting-ppp.c @@ -117,7 +117,7 @@ nm_setting_ppp_new (void) } /** - * nm_setting_wired_get_noauth: + * nm_setting_ppp_get_noauth: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:noauth property of the setting @@ -131,7 +131,7 @@ nm_setting_ppp_get_noauth (NMSettingPPP *setting) } /** - * nm_setting_wired_get_refuse_eap: + * nm_setting_ppp_get_refuse_eap: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:refuse-eap property of the setting @@ -145,7 +145,7 @@ nm_setting_ppp_get_refuse_eap (NMSettingPPP *setting) } /** - * nm_setting_wired_get_refuse_pap: + * nm_setting_ppp_get_refuse_pap: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:refuse-pap property of the setting @@ -159,7 +159,7 @@ nm_setting_ppp_get_refuse_pap (NMSettingPPP *setting) } /** - * nm_setting_wired_get_refuse_chap: + * nm_setting_ppp_get_refuse_chap: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:refuse-chap property of the setting @@ -173,7 +173,7 @@ nm_setting_ppp_get_refuse_chap (NMSettingPPP *setting) } /** - * nm_setting_wired_get_refuse_mschap: + * nm_setting_ppp_get_refuse_mschap: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:refuse-mschap property of the setting @@ -187,7 +187,7 @@ nm_setting_ppp_get_refuse_mschap (NMSettingPPP *setting) } /** - * nm_setting_wired_get_refuse_mschapv2: + * nm_setting_ppp_get_refuse_mschapv2: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:refuse-mschapv2 property of the setting @@ -201,7 +201,7 @@ nm_setting_ppp_get_refuse_mschapv2 (NMSettingPPP *setting) } /** - * nm_setting_wired_get_nobsdcomp: + * nm_setting_ppp_get_nobsdcomp: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:nobsdcomp property of the setting @@ -215,7 +215,7 @@ nm_setting_ppp_get_nobsdcomp (NMSettingPPP *setting) } /** - * nm_setting_wired_get_nodeflate: + * nm_setting_ppp_get_nodeflate: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:nodeflate property of the setting @@ -229,7 +229,7 @@ nm_setting_ppp_get_nodeflate (NMSettingPPP *setting) } /** - * nm_setting_wired_get_no_vj_comp: + * nm_setting_ppp_get_no_vj_comp: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:no-vj-comp property of the setting @@ -243,7 +243,7 @@ nm_setting_ppp_get_no_vj_comp (NMSettingPPP *setting) } /** - * nm_setting_wired_get_require_mppe: + * nm_setting_ppp_get_require_mppe: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:require-mppe property of the setting @@ -257,7 +257,7 @@ nm_setting_ppp_get_require_mppe (NMSettingPPP *setting) } /** - * nm_setting_wired_get_require_mppe_128: + * nm_setting_ppp_get_require_mppe_128: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:require-mppe-128 property of the setting @@ -271,7 +271,7 @@ nm_setting_ppp_get_require_mppe_128 (NMSettingPPP *setting) } /** - * nm_setting_wired_get_mppe_stateful: + * nm_setting_ppp_get_mppe_stateful: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:mppe-stateful property of the setting @@ -285,7 +285,7 @@ nm_setting_ppp_get_mppe_stateful (NMSettingPPP *setting) } /** - * nm_setting_wired_get_crtscts: + * nm_setting_ppp_get_crtscts: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:crtscts property of the setting @@ -299,7 +299,7 @@ nm_setting_ppp_get_crtscts (NMSettingPPP *setting) } /** - * nm_setting_wired_get_baud: + * nm_setting_ppp_get_baud: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:baud property of the setting @@ -313,7 +313,7 @@ nm_setting_ppp_get_baud (NMSettingPPP *setting) } /** - * nm_setting_wired_get_mru: + * nm_setting_ppp_get_mru: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:mru property of the setting @@ -327,7 +327,7 @@ nm_setting_ppp_get_mru (NMSettingPPP *setting) } /** - * nm_setting_wired_get_mtu: + * nm_setting_ppp_get_mtu: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:mtu property of the setting @@ -341,7 +341,7 @@ nm_setting_ppp_get_mtu (NMSettingPPP *setting) } /** - * nm_setting_wired_get_lcp_echo_failure: + * nm_setting_ppp_get_lcp_echo_failure: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:lcp-echo-failure property of the setting @@ -355,7 +355,7 @@ nm_setting_ppp_get_lcp_echo_failure (NMSettingPPP *setting) } /** - * nm_setting_wired_get_lcp_echo_interval: + * nm_setting_ppp_get_lcp_echo_interval: * @setting: the #NMSettingPPP * * Returns: the #NMSettingPPP:lcp-echo-interval property of the setting diff --git a/libnm-util/nm-setting-pppoe.c b/libnm-util/nm-setting-pppoe.c index e25c0926..62c42f01 100644 --- a/libnm-util/nm-setting-pppoe.c +++ b/libnm-util/nm-setting-pppoe.c @@ -105,7 +105,7 @@ nm_setting_pppoe_get_service (NMSettingPPPOE *setting) } /** - * nm_setting_pppoe_get_service: + * nm_setting_pppoe_get_username: * @setting: the #NMSettingPPPOE * * Returns: the #NMSettingPPPOE:username property of the setting @@ -119,7 +119,7 @@ nm_setting_pppoe_get_username (NMSettingPPPOE *setting) } /** - * nm_setting_pppoe_get_service: + * nm_setting_pppoe_get_password: * @setting: the #NMSettingPPPOE * * Returns: the #NMSettingPPPOE:password property of the setting diff --git a/libnm-util/nm-setting-vlan.c b/libnm-util/nm-setting-vlan.c index 71760dca..b65b6197 100644 --- a/libnm-util/nm-setting-vlan.c +++ b/libnm-util/nm-setting-vlan.c @@ -88,6 +88,7 @@ typedef struct { /** * nm_setting_vlan_new: + * * Creates a new #NMSettingVlan object with default values. * * Returns: (transfer full): the new empty #NMSettingVlan object @@ -220,7 +221,7 @@ set_map (NMSettingVlan *self, NMVlanPriorityMap map, GSList *list) } /** - * nm_setting_vlan_add_priority_str + * nm_setting_vlan_add_priority_str: * @setting: the #NMSettingVlan * @map: the type of priority map * @str: the string which contains a priority map, like "3:7" @@ -460,7 +461,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) return FALSE; } - if (priv->flags & !(NM_VLAN_FLAG_REORDER_HEADERS | + if (priv->flags & ~(NM_VLAN_FLAG_REORDER_HEADERS | NM_VLAN_FLAG_GVRP | NM_VLAN_FLAG_LOOSE_BINDING)) { g_set_error (error, diff --git a/libnm-util/nm-setting-wireless-security.c b/libnm-util/nm-setting-wireless-security.c index 98473120..336773c8 100644 --- a/libnm-util/nm-setting-wireless-security.c +++ b/libnm-util/nm-setting-wireless-security.c @@ -59,7 +59,7 @@ **/ /** - * nm_setting_wired_error_quark: + * nm_setting_wireless_security_error_quark: * * Registers an error quark for #NMSettingWired if necessary. * diff --git a/libnm-util/nm-setting-wireless.c b/libnm-util/nm-setting-wireless.c index 31882516..f9ed3108 100644 --- a/libnm-util/nm-setting-wireless.c +++ b/libnm-util/nm-setting-wireless.c @@ -19,7 +19,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * (C) Copyright 2007 - 2011 Red Hat, Inc. + * (C) Copyright 2007 - 2012 Red Hat, Inc. * (C) Copyright 2007 - 2008 Novell, Inc. */ @@ -80,6 +80,7 @@ typedef struct { guint32 mtu; GSList *seen_bssids; char *security; + gboolean hidden; } NMSettingWirelessPrivate; enum { @@ -97,6 +98,7 @@ enum { PROP_MTU, PROP_SEEN_BSSIDS, PROP_SEC, + PROP_HIDDEN, LAST_PROP }; @@ -482,6 +484,20 @@ nm_setting_wireless_get_security (NMSettingWireless *setting) } /** + * nm_setting_wireless_get_hidden: + * @setting: the #NMSettingWireless + * + * Returns: the #NMSettingWireless:hidden property of the setting + **/ +gboolean +nm_setting_wireless_get_hidden (NMSettingWireless *setting) +{ + g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), FALSE); + + return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->hidden; +} + +/** * nm_setting_wireless_add_seen_bssid: * @setting: the #NMSettingWireless * @bssid: the new BSSID to add to the list @@ -770,6 +786,9 @@ set_property (GObject *object, guint prop_id, g_free (priv->security); priv->security = g_value_dup_string (value); break; + case PROP_HIDDEN: + priv->hidden = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -822,6 +841,9 @@ get_property (GObject *object, guint prop_id, case PROP_SEC: g_value_set_string (value, nm_setting_wireless_get_security (setting)); break; + case PROP_HIDDEN: + g_value_set_boolean (value, nm_setting_wireless_get_hidden (setting)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1082,4 +1104,27 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) NM_SETTING_WIRELESS_SECURITY_SETTING_NAME " setting.", NULL, G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + /** + * NMSettingWireless:hidden: + * + * If %TRUE, indicates this network is a non-broadcasting network that + * hides its SSID. In this case various workarounds may take place, such + * as probe-scanning the SSID for more reliable network discovery. However, + * these workarounds expose inherent insecurities with hidden SSID networks, + * and thus hidden SSID networks should be used with caution. + **/ + g_object_class_install_property + (object_class, PROP_HIDDEN, + g_param_spec_boolean (NM_SETTING_WIRELESS_HIDDEN, + "Hidden", + "If TRUE, indicates this network is a non-broadcasting " + "network that hides its SSID. In this case various " + "workarounds may take place, such as probe-scanning " + "the SSID for more reliable network discovery. " + "However, these workarounds expose inherent " + "insecurities with hidden SSID networks, and thus " + "hidden SSID networks should be used with caution.", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); } diff --git a/libnm-util/nm-setting-wireless.h b/libnm-util/nm-setting-wireless.h index 3182f419..abbf231a 100644 --- a/libnm-util/nm-setting-wireless.h +++ b/libnm-util/nm-setting-wireless.h @@ -76,6 +76,7 @@ GQuark nm_setting_wireless_error_quark (void); #define NM_SETTING_WIRELESS_MTU "mtu" #define NM_SETTING_WIRELESS_SEEN_BSSIDS "seen-bssids" #define NM_SETTING_WIRELESS_SEC "security" +#define NM_SETTING_WIRELESS_HIDDEN "hidden" /** * NM_SETTING_WIRELESS_MODE_ADHOC: @@ -85,7 +86,7 @@ GQuark nm_setting_wireless_error_quark (void); #define NM_SETTING_WIRELESS_MODE_ADHOC "adhoc" /** - * NM_SETTING_WIRELESS_MODE_INFRA + * NM_SETTING_WIRELESS_MODE_INFRA: * * Indicates infrastructure mode where an access point is expected to be present * for this connection. @@ -122,6 +123,7 @@ const GByteArray *nm_setting_wireless_get_cloned_mac_address (NMSettingWireless const GSList *nm_setting_wireless_get_mac_address_blacklist (NMSettingWireless *setting); guint32 nm_setting_wireless_get_mtu (NMSettingWireless *setting); const char *nm_setting_wireless_get_security (NMSettingWireless *setting); +gboolean nm_setting_wireless_get_hidden (NMSettingWireless *setting); gboolean nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting, const char *bssid); diff --git a/libnm-util/nm-utils-enum-types.c b/libnm-util/nm-utils-enum-types.c index dcf51dee..332eb98b 100644 --- a/libnm-util/nm-utils-enum-types.c +++ b/libnm-util/nm-utils-enum-types.c @@ -8,6 +8,7 @@ #include "nm-connection.h" #include "nm-setting.h" #include "nm-setting-8021x.h" +#include "nm-setting-adsl.h" #include "nm-setting-bluetooth.h" #include "nm-setting-bond.h" #include "nm-setting-connection.h" @@ -216,6 +217,26 @@ nm_setting_802_1x_error_get_type (void) return g_define_type_id__volatile; } GType +nm_setting_adsl_error_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GEnumValue values[] = { + { NM_SETTING_ADSL_ERROR_UNKNOWN, "NM_SETTING_ADSL_ERROR_UNKNOWN", "UnknownError" }, + { NM_SETTING_ADSL_ERROR_INVALID_PROPERTY, "NM_SETTING_ADSL_ERROR_INVALID_PROPERTY", "InvalidProperty" }, + { NM_SETTING_ADSL_ERROR_MISSING_PROPERTY, "NM_SETTING_ADSL_ERROR_MISSING_PROPERTY", "MissingProperty" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_enum_register_static (g_intern_static_string ("NMSettingAdslError"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} +GType nm_setting_bluetooth_error_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; diff --git a/libnm-util/nm-utils-enum-types.h b/libnm-util/nm-utils-enum-types.h index d3bcf049..d88fda24 100644 --- a/libnm-util/nm-utils-enum-types.h +++ b/libnm-util/nm-utils-enum-types.h @@ -27,6 +27,8 @@ GType nm_setting_802_1x_ck_scheme_get_type (void) G_GNUC_CONST; #define NM_TYPE_SETTING_802_1X_CK_SCHEME (nm_setting_802_1x_ck_scheme_get_type ()) GType nm_setting_802_1x_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_SETTING_802_1X_ERROR (nm_setting_802_1x_error_get_type ()) +GType nm_setting_adsl_error_get_type (void) G_GNUC_CONST; +#define NM_TYPE_SETTING_ADSL_ERROR (nm_setting_adsl_error_get_type ()) GType nm_setting_bluetooth_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_SETTING_BLUETOOTH_ERROR (nm_setting_bluetooth_error_get_type ()) GType nm_setting_bond_error_get_type (void) G_GNUC_CONST; diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c index a8806206..f76d0e10 100644 --- a/libnm-util/nm-utils.c +++ b/libnm-util/nm-utils.c @@ -1889,7 +1889,7 @@ nm_utils_ip6_routes_to_gvalue (GSList *list, GValue *value) /* FIXME: the Posix namespace does not exist, and thus neither does the in6_addr struct. Marking (skip) for now */ /** - * nm_utils_ip6_dns_from_gvalue: (skip): + * nm_utils_ip6_dns_from_gvalue: (skip) * @value: a #GValue * * Converts a #GValue containing a #GPtrArray of IP6 DNS, represented as @@ -1925,7 +1925,7 @@ nm_utils_ip6_dns_from_gvalue (const GValue *value) } /** - * nm_utils_ip6_dns_to_gvalue: (skip): + * nm_utils_ip6_dns_to_gvalue: (skip) * @list: a list of #NMIP6Route objects * @value: a pointer to a #GValue into which to place the converted DNS server * addresses, which should be unset by the caller (when no longer needed) with diff --git a/libnm-util/tests/Makefile.in b/libnm-util/tests/Makefile.in index 10a1e20f..fb60d5f4 100644 --- a/libnm-util/tests/Makefile.in +++ b/libnm-util/tests/Makefile.in @@ -50,7 +50,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -232,6 +232,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -327,6 +331,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -365,6 +372,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/libnm-util/tests/certs/Makefile.in b/libnm-util/tests/certs/Makefile.in index 17289f48..4f0bab76 100644 --- a/libnm-util/tests/certs/Makefile.in +++ b/libnm-util/tests/certs/Makefile.in @@ -55,7 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -143,6 +143,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -238,6 +242,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -276,6 +283,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c index 1eed8887..2acb31b3 100644 --- a/libnm-util/tests/test-general.c +++ b/libnm-util/tests/test-general.c @@ -783,7 +783,7 @@ new_test_connection (void) NMConnection *connection; NMSetting *setting; char *uuid; - gulong timestamp = time (NULL); + guint64 timestamp = time (NULL); connection = nm_connection_new (); diff --git a/m4/intltool.m4 b/m4/intltool.m4 index 839e8553..33353eda 100644 --- a/m4/intltool.m4 +++ b/m4/intltool.m4 @@ -23,7 +23,7 @@ ## the same distribution terms that you use for the rest of that program. dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) -# serial 40 IT_PROG_INTLTOOL +# serial 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl @@ -36,13 +36,11 @@ case "$am__api_version" in ;; esac +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) @@ -55,25 +53,48 @@ if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi +AC_SUBST([AM_DEFAULT_VERBOSITY]) + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' +AC_SUBST(INTLTOOL_V_MERGE) +AC_SUBST(INTLTOOL__v_MERGE_) +AC_SUBST(INTLTOOL__v_MERGE_0) + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' +AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) +AC_SUBST(intltool__v_merge_options_) +AC_SUBST(intltool__v_merge_options_0) + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) @@ -119,7 +140,7 @@ $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then diff --git a/m4/vapigen.m4 b/m4/vapigen.m4 new file mode 100644 index 00000000..48051078 --- /dev/null +++ b/m4/vapigen.m4 @@ -0,0 +1,88 @@ +dnl vala.m4 +dnl +dnl Copyright 2012 Evan Nemerson +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License, or (at your option) any later version. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION]) +# -------------------------------------- +# Check that vapigen existence and version +# +# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation +AC_DEFUN([VAPIGEN_CHECK], +[ + AC_BEFORE([GOBJECT_INTROSPECTION_CHECK],[$0]) + AC_BEFORE([GOBJECT_INTROSPECTION_REQUIRE],[$0]) + + AC_ARG_ENABLE([vala], + AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]], + [build Vala bindings [[default=auto]]]),, + [enable_vala=auto]) + + AS_CASE([$enable_vala], [no], [], + [yes], [ + AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [ + AC_MSG_ERROR([Vala bindings require GObject Introspection]) + ]) + ], [auto], [ + AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [ + enable_vala=no + ]) + ], [ + AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@]) + ]) + + AS_IF([test "x$2" = "x"], [ + vapigen_pkg_name=vapigen + ], [ + vapigen_pkg_name=vapigen-$2 + ]) + AS_IF([test "x$1" = "x"], [ + vapigen_pkg="$vapigen_pkg_name" + ], [ + vapigen_pkg="$vapigen_pkg_name >= $1" + ]) + + PKG_PROG_PKG_CONFIG + + PKG_CHECK_EXISTS([$vapigen_pkg], [ + AS_IF([test "$enable_vala" = "auto"], [ + enable_vala=yes + ]) + ], [ + AS_CASE([$enable_vala], [yes], [ + AC_MSG_ERROR([$vapigen_pkg not found]) + ], [auto], [ + enable_vala=no + ]) + ]) + + AS_CASE([$enable_vala], + [yes], [ + VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen + AS_IF([test "x$2" = "x"], [ + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen` + ], [ + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen` + ]) + ]) + + AC_SUBST([VAPIGEN]) + AC_SUBST([VAPIGEN_VAPIDIR]) + AC_SUBST([VAPIGEN_MAKEFILE]) + + AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes") +]) diff --git a/man/Makefile.in b/man/Makefile.in index 89bb3c89..bf3f5217 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -50,7 +50,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -167,6 +167,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -262,6 +266,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -300,6 +307,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/man/nmcli.1 b/man/nmcli.1 index 03ed664c..bd84edb7 100644 --- a/man/nmcli.1 +++ b/man/nmcli.1 @@ -20,12 +20,12 @@ .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. .\" -.\" Copyright (C) 2010 - 2011 Red Hat, Inc. +.\" Copyright (C) 2010 - 2012 Red Hat, Inc. .\" -.TH NMCLI "1" "6 September 2011" +.TH NMCLI "1" "29 May 2012" .SH NAME -nmcli \- command-line tool for controlling NetworkManager +nmcli \(en command\(hyline tool for controlling NetworkManager .SH SYNOPSIS .ad l .B nmcli @@ -57,26 +57,26 @@ nmcli \- command-line tool for controlling NetworkManager .SH DESCRIPTION .B nmcli -is a command-line tool for controlling NetworkManager and getting its status. -It is not meant as a replacement of \fInm-applet\fP or other similar clients. -Rather it's a complementary utility to these programs. -The main \fInmcli\fP's usage is on servers, headless machines or just for -power users who prefer the command line. +is a command\(hyline tool for controlling NetworkManager and reporting on its status. +It is not meant as a full replacement for \fInm\(hyapplet\fP or other similar clients +but as a complementary utility to those programs. +The main usage for \fInmcli\fP is on servers, headless machines or for power users +who prefer the command line. .P -The use cases comprise: +Typical applications include: .IP \(em 4 Initscripts: ifup/ifdown can utilize NetworkManager via \fInmcli\fP instead of having to manage connections itself and possibly interfere with NetworkManager. .IP \(em 4 Servers, headless machines: No GUI is available; then \fInmcli\fP can be used to activate/deactivate connections. However, if a connection requires a secret -to activate and if that secret is not stored at the system level, \fInmcli\fP -will not be able to activate it; it is currently unable to supply the needed -secrets to NetworkManager. +in order to activate and if that secret is not stored at the system level, +\fInmcli\fP will not be able to activate it; it is currently unable to supply +the secrets to NetworkManager. .IP \(em 4 -User sessions: \fInmcli\fP can be used activate/deactivate connections from the -command line, but a full NetworkManager client (like \fInm-applet\fP) is used -for supplying secrets not stored at the system level. Keyring dialogs and +User sessions: \fInmcli\fP can be used to activate/deactivate connections from +the command line, but a client with a secret agent (like \fInm\(hyapplet\fP) is needed +for supplying secrets not stored at the system level. Keyring dialogs and password prompts may appear if this happens. .SS \fIOPTIONS\fP .TP @@ -85,12 +85,12 @@ Output is terse. This mode is designed and suitable for computer (script) processing. .TP .B \-p, \-\-pretty -Output is pretty. This causes \fInmcli\fP to produce easy readable outputs +Output is pretty. This causes \fInmcli\fP to produce easily readable outputs for humans, i.e. values are aligned, headers are printed, etc. .TP .B \-m, \-\-mode tabular | multiline Switch between \fItabular\fP and \fImultiline\fP output. -If omitted, default is \fItabular\fP for most commands. For the commands +If omitted, default is \fItabular\fP for most commands. For the commands producing more structured information, that cannot be displayed on a single line, default is \fImultiline\fP. Currenly, they are: .br @@ -98,21 +98,21 @@ line, default is \fImultiline\fP. Currenly, they are: 'nmcli con list id|uuid <name>' 'nmcli dev list' .fi -\fItabular\fP - Output is a table where each line describes a single entry. +\fItabular\fP \(en Output is a table where each line describes a single entry. Columns define particular properties of the entry. .br -\fImultiline\fP - Each entry comprises more lines, each property on its own line. -The values are prefixed with the property name. +\fImultiline\fP \(en Each entry comprises multiple lines, each property on its own +line. The values are prefixed with the property name. .TP .B \-f, \-\-fields <field1,field2,...> | all | common This option is used to specify what fields (column names) should be printed. Valid field names differ for specific commands. List available fields by -providing an invalid value to the \fI--fields\fP option. +providing an invalid value to the \fI\-\-fields\fP option. .br \fIall\fP is used to print all valid field values of the command. \fIcommon\fP is used to print common field values of the command. If omitted, default is \fIcommon\fP. -The option is mandatory when \fI--terse\fP is used. In this case, generic +The option is mandatory when \fI\-\-terse\fP is used. In this case, generic values \fIall\fP and \fIcommon\fP cannot be used. (This is to maintain compatibility when new fields are added in the future). .TP @@ -133,28 +133,41 @@ NetworkManager .br Use this object to inquire and change state of NetworkManager. .TP -.SS \fICOMMAND\fP := { status | enable | sleep | wifi | wwan } +.SS \fICOMMAND\fP := { status | permissions | enable | sleep | wifi | wwan | wimax } .sp .RS .TP .B status .br -Show overall status of NetworkManager. This is the default action, when no +Show overall status of NetworkManager. This is the default action, when no command is provided to \fInm\fP object. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP +.B permissions +.br +Show the permissions a caller has for various authenticated operations that +NetworkManager provides, like enable/disable networking, changing Wi\(hyFi, WWAN, +and WiMAX state, modifying connections, etc. +.br +.nf +\fBReference to D\(hyBus:\fP +interface: org.freedesktop.NetworkManager +method: GetPermissions +arguments: none +.fi +.TP .B enable [true|false] .br -Get networking-enabled status or enable/disable networking by NetworkManager. +Get networking\(hyenabled status or enable/disable networking by NetworkManager. All interfaces managed by NetworkManager are deactivated when networking has been disabled. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: Enable arguments: TRUE or FALSE @@ -162,13 +175,14 @@ arguments: TRUE or FALSE .TP .B sleep [true|false] .br -Get sleep status or put to sleep/awake NetworkManager. All interfaces managed by NetworkManager -are deactivated when it falls asleep. This command is not meant for user to enable/disable -networking, use \fIenable\fP for that. D-Bus \fISleep\fP method is designed -to put NetworkManager to sleep or awake for suspending/resuming computer. +Get sleep status or put to sleep/awake NetworkManager. All interfaces managed +by NetworkManager are deactivated when it falls asleep. This command is not +meant for user to enable/disable networking, use \fIenable\fP for that. D\(hyBus +\fISleep\fP method is designed to put NetworkManager to sleep or awake for +suspending/resuming the computer. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: Sleep arguments: TRUE or FALSE @@ -176,21 +190,33 @@ arguments: TRUE or FALSE .TP .B wifi [on|off] .br -Inquire or set status of WiFi in NetworkManager. Without any further argument, -WiFi status is printed; \fIon\fP enables WiFi; \fIoff\fP disables WiFi. +Inquire or set status of Wi\(hyFi in NetworkManager. If no arguments are supplied, +Wi\(hyFi status is printed; \fIon\fP enables Wi\(hyFi; \fIoff\fP disables Wi\(hyFi. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP .B wwan [on|off] .br -Inquire or set status of WWAN in NetworkManager. Without any further argument, +Inquire or set status of WWAN in NetworkManager. If no arguments are supplied, WWAN status is printed; \fIon\fP enables WWAN; \fIoff\fP disables WWAN. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP +No simple reference. +.fi +.TP +.B wimax [on|off] +.br +Inquire or set status of WiMAX in NetworkManager. If no arguments are supplied, +WiMAX status is printed; \fIon\fP enables WiMAX; \fIoff\fP disables WiMAX. +.br +Note: WiMAX support is a compile\(hytime decision, so it may be unavailable on some +installations. +.nf +\fBReference to D\(hyBus:\fP No simple reference. .fi .RE @@ -213,7 +239,7 @@ name or \fIuuid\fP with connection's UUID shall be specified. When no command is given to the \fIcon\fP object, the default action is 'nmcli con list'. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP @@ -222,26 +248,41 @@ No simple reference. Print status of active connections. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP -.B up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [\-\-nowait] [\-\-timeout <timeout>] +.B up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [\-\-nowait] [\-\-timeout <timeout>] .br Activate a connection. The connection is identified by its name using \fIid\fP -or UUID using \fIuuid\fP. For requiring particular device to activate -the connection on, \fIiface\fP option with interface name should be given. -\fIap\fP option can further concretize what AP should be used in case of WiFi -connection. \fI\-\-nowait\fP option causes \fInmcli\fP to exit immediately and -not to wait for command completion. \fI\-\-timeout\fP option provides a means -to specify how long to wait for operation completion. +or UUID using \fIuuid\fP. When requiring a particular device to activate the +connection on, the \fIiface\fP option with interface name should be given. In +case of a VPN connection, the \fIiface\fP option specify the device of the base +connection. The \fIap\fP option specify what particular AP should be used in case +of a Wi\(hyFi connection. +.RS +.PP +Available options are: +.IP \fIiface\fP 13 +\(en interface that will be used for activation +.IP \fIap\fP 13 +\(en BSSID of the AP which the command should connect to (for Wi\(hyFi connections) +.IP \fInsp\fP 13 +\(en NSP (Network Service Provider) which the command should connect to (for WiMAX connections) +.IP \fI\-\-nowait\fP 13 +\(en exit immediately without waiting for command completion +.IP \fI\-\-timeout\fP 13 +\(en how long to wait for command completion (default is 90 s) +.PP .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: ActivateConnection arguments: according to arguments .fi +.RE + .TP .B down id <id> | uuid <id> .br @@ -250,7 +291,7 @@ The connection is identified by its name using \fIid\fP or UUID using \fIuuid\fP. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: DeactivateConnection arguments: according to arguments @@ -258,11 +299,11 @@ arguments: according to arguments .TP .B delete id <id> | uuid <id> .br -Delete a configured connection. The connection to delete is specified with +Delete a configured connection. The connection to delete is specified with \fIid\fP (connection name) or \fIuuid\fP (connection UUID). .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager.Settings.Connection method: Delete arguments: none @@ -285,64 +326,108 @@ Print status of devices. This is the default action, when no command is specified to \fIdev\fP object. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP .B list [iface <iface>] .br Get detailed information about devices. Without an argument, all devices are -examined. To get information for a specific device, \fIiface\fP argument +examined. To get information for a specific device, the \fIiface\fP argument with the interface name should be provided. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP .B disconnect iface <iface> [\-\-nowait] [\-\-timeout <timeout>] .br Disconnect a device and prevent the device from automatically activating further -connections without user/manual intervention. \fI\-\-nowait\fP option causes -\fInmcli\fP to exit immediately and not to wait for command completion. -\fI\-\-timeout\fP option provides a means to specify how long to wait for -operation completion. +connections without user/manual intervention. +.RS +.PP +Available options are: +.IP \fI\-\-nowait\fP 13 +\(en exit immediately without waiting for command completion +.IP \fI\-\-timeout\fP 13 +\(en how long to wait for command completion (default is 10 s) +.PP .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager.Device method: Disconnect arguments: none .fi +.RE .TP .B wifi [list [iface <iface>] [bssid <BSSID>]] .br -List available WiFi access points. \fIiface\fP and \fIbssid\fP options -can be used to get just APs for particular interface or specific AP, +List available Wi\(hyFi access points. The \fIiface\fP and \fIbssid\fP options +can be used to list APs for a particular interface or with a specific BSSID, respectively. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi +.TP +.B wifi connect <(B)SSID> [password <password>] [wep\-key\-type key|phrase] [iface <iface>] [bssid <BSSID>] [name <name>] [\-\-private] [\-\-nowait] [\-\-timeout <timeout>] +.br +Connect to a Wi\(hyFi network specified by SSID or BSSID. The command creates a new +connection and then activates it on a device. This is a command\(hyline counterpart +of clicking an SSID in a GUI client. The command always creates a new connection +and thus it is mainly useful for connecting to new Wi\(hyFi networks. If a connection +for the network already exists, it's better to connect through it using +\fInmcli con up id <name>\fP. Note that only open, WEP and WPA\(hyPSK networks are +supported at the moment. It is also supposed that IP configuration is obtained via +DHCP. +.RS +.PP +Available options are: +.IP \fIpassword\fP 13 +\(en password for secured networks (WEP or WPA) +.IP \fIwep\-key\-type\fP 13 +\(en type of WEP secret, either \fIkey\fP for ASCII/HEX key or \fIphrase\fP for passphrase +.IP \fIiface\fP 13 +\(en interface that will be used for activation +.IP \fIbssid\fP 13 +\(en if specified, the created connection will be restricted just for the BSSID +.IP \fIname\fP 13 +\(en if specified, the connection will use the name (else NM creates a name itself) +.IP \fI\-\-private\fP 13 +\(en the connection will only be visible to the user who created it (else the connection is system\(hywide) +.IP \fI\-\-nowait\fP 13 +\(en exit immediately without waiting for command completion +.IP \fI\-\-timeout\fP 13 +\(en how long to wait for command completion (default is 90 s) +.PP +.br +.nf +\fBReference to D\(hyBus:\fP +interface: org.freedesktop.NetworkManager +method: AddAndActivateConnection +arguments: according to arguments +.fi .RE .SH ENVIRONMENT VARIABLES \fInmcli\fP's behavior is affected by the following environment variables. .IP "LC_ALL" 13 -If set to a non-empty string value, override the values of all the other +If set to a non\(hyempty string value, it overrides the values of all the other internationalization variables. .IP "LC_MESSAGES" 13 -Determines the locale to be used for internationalised messages. +Determines the locale to be used for internationalized messages. .IP "LANG" 13 Provides a default value for the internationalization variables that are unset or null. .RE -Notes about localization: +Internationalization notes: .br Be aware that \fInmcli\fP is localized and that's why the output depends on -your environment. It's important to realize that especially when you parse the +your environment. This is important to realize especially when you parse the output. .br Call \fInmcli\fP as \fBLC_ALL=C nmcli\fP to be sure the locale is @@ -354,9 +439,10 @@ uses for messages. The "C" locale is used if none of these variables are set, and this locale uses English messages. .SH EXIT STATUS -\fInmcli\fP exits with status 0 if it succeeds, a value greater than 0 is returned if errors occur. +\fInmcli\fP exits with status 0 if it succeeds, a value greater than 0 is +returned if an error occurs. .IP "0" 4 -Success - indicates the operation succeeded +Success \(en indicates the operation succeeded .IP "1" 4 Unknown or unspecified error .IP "2" 4 @@ -370,9 +456,70 @@ Connection deactivation failed .IP "6" 4 Disconnecting device failed +.SH EXAMPLES +.IP "\fB\f(CWnmcli \-t \-f RUNNING nm\fP\fP" +.IP +tells you whether NetworkManager is running or not. + +.IP "\fB\f(CWnmcli \-t \-f STATE nm\fP\fP" +.IP +shows the overall status of NetworkManager. + +.IP "\fB\f(CWnmcli nm wifi off\fP\fP" +.IP +switches Wi\(hyFi off. + +.IP "\fB\f(CWnmcli \-p con list\fP\fP" +.IP +lists all connections NetworkManager has. + +.IP "\fB\f(CWnmcli \-f name,autoconnect con list\fP\fP" +.IP +lists all connections' names and their autoconnect settings. + +.IP "\fB\f(CWnmcli con list id \(dq\&My wired connection\(dq\&\fP\fP" +.IP +lists all details of the connection with "My wired connection" name. + +.IP "\fB\f(CWnmcli \-p con up id \(dq\&My wired connection\(dq\& iface eth0\fP\fP" +.IP +activates the connection with name "My wired connection" on interface eth0. +The \-p option makes nmcli show progress of the activation. + +.IP "\fB\f(CWnmcli con up uuid 6b028a27\-6dc9\-4411\-9886\-e9ad1dd43761 ap 00:3A:98:7C:42:D3\fP\fP" +.IP +connects the Wi\(hyFi connection with UUID 6b028a27\-6dc9\-4411\-9886\-e9ad1dd43761 to the AP +with BSSID 00:3A:98:7C:42:D3. + +.IP "\fB\f(CWnmcli dev status\fP\fP" +.IP +shows the status for all devices. + +.IP "\fB\f(CWnmcli dev disconnect iface em2\fP\fP" +.IP +disconnects a connection on interface em2 and marks the device as unavailable for +auto\(hyconnecting. That's why no connection will automatically be activated on the +device until the device's "autoconnect" is set to TRUE or user manually activates +a connection. + +.IP "\fB\f(CWnmcli \-f GENERAL,WIFI\-PROPERTIES dev list iface wlan0\fP\fP" +.IP +lists details for wlan0 interface; only GENERAL and WIFI\-PROPERTIES sections will be shown. + +.IP "\fB\f(CWnmcli dev wifi\fP\fP" +.IP +lists available Wi\(hyFi access points known to NetworkManager. + +.IP "\fB\f(CWnmcli dev wifi con \(dq\&Cafe Hotspot 1\(dq\& password caffeine name \(dq\&My cafe\(dq\&\fP\fP" +.IP +creates a new connection named "My cafe" and then connects it to "Cafe Hotspot 1" SSID +using "caffeine" password. This is mainly useful when connecting to "Cafe Hotspot 1" for +the first time. Next time, it is better to use 'nmcli con up id "My cafe"' so that the +existing connection profile can be used and no additional is created. + .SH BUGS -There are probably some. If you find a bug, please report to -https://bugzilla.gnome.org/ \- product \fINetworkManager\fP. +There are probably some bugs. If you find a bug, please report it to +https://bugzilla.gnome.org/ \(em product \fINetworkManager\fP. .SH SEE ALSO .BR nm\-tool (1), diff --git a/man/nmcli.1.in b/man/nmcli.1.in index 03ed664c..bd84edb7 100644 --- a/man/nmcli.1.in +++ b/man/nmcli.1.in @@ -20,12 +20,12 @@ .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. .\" -.\" Copyright (C) 2010 - 2011 Red Hat, Inc. +.\" Copyright (C) 2010 - 2012 Red Hat, Inc. .\" -.TH NMCLI "1" "6 September 2011" +.TH NMCLI "1" "29 May 2012" .SH NAME -nmcli \- command-line tool for controlling NetworkManager +nmcli \(en command\(hyline tool for controlling NetworkManager .SH SYNOPSIS .ad l .B nmcli @@ -57,26 +57,26 @@ nmcli \- command-line tool for controlling NetworkManager .SH DESCRIPTION .B nmcli -is a command-line tool for controlling NetworkManager and getting its status. -It is not meant as a replacement of \fInm-applet\fP or other similar clients. -Rather it's a complementary utility to these programs. -The main \fInmcli\fP's usage is on servers, headless machines or just for -power users who prefer the command line. +is a command\(hyline tool for controlling NetworkManager and reporting on its status. +It is not meant as a full replacement for \fInm\(hyapplet\fP or other similar clients +but as a complementary utility to those programs. +The main usage for \fInmcli\fP is on servers, headless machines or for power users +who prefer the command line. .P -The use cases comprise: +Typical applications include: .IP \(em 4 Initscripts: ifup/ifdown can utilize NetworkManager via \fInmcli\fP instead of having to manage connections itself and possibly interfere with NetworkManager. .IP \(em 4 Servers, headless machines: No GUI is available; then \fInmcli\fP can be used to activate/deactivate connections. However, if a connection requires a secret -to activate and if that secret is not stored at the system level, \fInmcli\fP -will not be able to activate it; it is currently unable to supply the needed -secrets to NetworkManager. +in order to activate and if that secret is not stored at the system level, +\fInmcli\fP will not be able to activate it; it is currently unable to supply +the secrets to NetworkManager. .IP \(em 4 -User sessions: \fInmcli\fP can be used activate/deactivate connections from the -command line, but a full NetworkManager client (like \fInm-applet\fP) is used -for supplying secrets not stored at the system level. Keyring dialogs and +User sessions: \fInmcli\fP can be used to activate/deactivate connections from +the command line, but a client with a secret agent (like \fInm\(hyapplet\fP) is needed +for supplying secrets not stored at the system level. Keyring dialogs and password prompts may appear if this happens. .SS \fIOPTIONS\fP .TP @@ -85,12 +85,12 @@ Output is terse. This mode is designed and suitable for computer (script) processing. .TP .B \-p, \-\-pretty -Output is pretty. This causes \fInmcli\fP to produce easy readable outputs +Output is pretty. This causes \fInmcli\fP to produce easily readable outputs for humans, i.e. values are aligned, headers are printed, etc. .TP .B \-m, \-\-mode tabular | multiline Switch between \fItabular\fP and \fImultiline\fP output. -If omitted, default is \fItabular\fP for most commands. For the commands +If omitted, default is \fItabular\fP for most commands. For the commands producing more structured information, that cannot be displayed on a single line, default is \fImultiline\fP. Currenly, they are: .br @@ -98,21 +98,21 @@ line, default is \fImultiline\fP. Currenly, they are: 'nmcli con list id|uuid <name>' 'nmcli dev list' .fi -\fItabular\fP - Output is a table where each line describes a single entry. +\fItabular\fP \(en Output is a table where each line describes a single entry. Columns define particular properties of the entry. .br -\fImultiline\fP - Each entry comprises more lines, each property on its own line. -The values are prefixed with the property name. +\fImultiline\fP \(en Each entry comprises multiple lines, each property on its own +line. The values are prefixed with the property name. .TP .B \-f, \-\-fields <field1,field2,...> | all | common This option is used to specify what fields (column names) should be printed. Valid field names differ for specific commands. List available fields by -providing an invalid value to the \fI--fields\fP option. +providing an invalid value to the \fI\-\-fields\fP option. .br \fIall\fP is used to print all valid field values of the command. \fIcommon\fP is used to print common field values of the command. If omitted, default is \fIcommon\fP. -The option is mandatory when \fI--terse\fP is used. In this case, generic +The option is mandatory when \fI\-\-terse\fP is used. In this case, generic values \fIall\fP and \fIcommon\fP cannot be used. (This is to maintain compatibility when new fields are added in the future). .TP @@ -133,28 +133,41 @@ NetworkManager .br Use this object to inquire and change state of NetworkManager. .TP -.SS \fICOMMAND\fP := { status | enable | sleep | wifi | wwan } +.SS \fICOMMAND\fP := { status | permissions | enable | sleep | wifi | wwan | wimax } .sp .RS .TP .B status .br -Show overall status of NetworkManager. This is the default action, when no +Show overall status of NetworkManager. This is the default action, when no command is provided to \fInm\fP object. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP +.B permissions +.br +Show the permissions a caller has for various authenticated operations that +NetworkManager provides, like enable/disable networking, changing Wi\(hyFi, WWAN, +and WiMAX state, modifying connections, etc. +.br +.nf +\fBReference to D\(hyBus:\fP +interface: org.freedesktop.NetworkManager +method: GetPermissions +arguments: none +.fi +.TP .B enable [true|false] .br -Get networking-enabled status or enable/disable networking by NetworkManager. +Get networking\(hyenabled status or enable/disable networking by NetworkManager. All interfaces managed by NetworkManager are deactivated when networking has been disabled. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: Enable arguments: TRUE or FALSE @@ -162,13 +175,14 @@ arguments: TRUE or FALSE .TP .B sleep [true|false] .br -Get sleep status or put to sleep/awake NetworkManager. All interfaces managed by NetworkManager -are deactivated when it falls asleep. This command is not meant for user to enable/disable -networking, use \fIenable\fP for that. D-Bus \fISleep\fP method is designed -to put NetworkManager to sleep or awake for suspending/resuming computer. +Get sleep status or put to sleep/awake NetworkManager. All interfaces managed +by NetworkManager are deactivated when it falls asleep. This command is not +meant for user to enable/disable networking, use \fIenable\fP for that. D\(hyBus +\fISleep\fP method is designed to put NetworkManager to sleep or awake for +suspending/resuming the computer. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: Sleep arguments: TRUE or FALSE @@ -176,21 +190,33 @@ arguments: TRUE or FALSE .TP .B wifi [on|off] .br -Inquire or set status of WiFi in NetworkManager. Without any further argument, -WiFi status is printed; \fIon\fP enables WiFi; \fIoff\fP disables WiFi. +Inquire or set status of Wi\(hyFi in NetworkManager. If no arguments are supplied, +Wi\(hyFi status is printed; \fIon\fP enables Wi\(hyFi; \fIoff\fP disables Wi\(hyFi. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP .B wwan [on|off] .br -Inquire or set status of WWAN in NetworkManager. Without any further argument, +Inquire or set status of WWAN in NetworkManager. If no arguments are supplied, WWAN status is printed; \fIon\fP enables WWAN; \fIoff\fP disables WWAN. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP +No simple reference. +.fi +.TP +.B wimax [on|off] +.br +Inquire or set status of WiMAX in NetworkManager. If no arguments are supplied, +WiMAX status is printed; \fIon\fP enables WiMAX; \fIoff\fP disables WiMAX. +.br +Note: WiMAX support is a compile\(hytime decision, so it may be unavailable on some +installations. +.nf +\fBReference to D\(hyBus:\fP No simple reference. .fi .RE @@ -213,7 +239,7 @@ name or \fIuuid\fP with connection's UUID shall be specified. When no command is given to the \fIcon\fP object, the default action is 'nmcli con list'. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP @@ -222,26 +248,41 @@ No simple reference. Print status of active connections. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP -.B up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [\-\-nowait] [\-\-timeout <timeout>] +.B up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [\-\-nowait] [\-\-timeout <timeout>] .br Activate a connection. The connection is identified by its name using \fIid\fP -or UUID using \fIuuid\fP. For requiring particular device to activate -the connection on, \fIiface\fP option with interface name should be given. -\fIap\fP option can further concretize what AP should be used in case of WiFi -connection. \fI\-\-nowait\fP option causes \fInmcli\fP to exit immediately and -not to wait for command completion. \fI\-\-timeout\fP option provides a means -to specify how long to wait for operation completion. +or UUID using \fIuuid\fP. When requiring a particular device to activate the +connection on, the \fIiface\fP option with interface name should be given. In +case of a VPN connection, the \fIiface\fP option specify the device of the base +connection. The \fIap\fP option specify what particular AP should be used in case +of a Wi\(hyFi connection. +.RS +.PP +Available options are: +.IP \fIiface\fP 13 +\(en interface that will be used for activation +.IP \fIap\fP 13 +\(en BSSID of the AP which the command should connect to (for Wi\(hyFi connections) +.IP \fInsp\fP 13 +\(en NSP (Network Service Provider) which the command should connect to (for WiMAX connections) +.IP \fI\-\-nowait\fP 13 +\(en exit immediately without waiting for command completion +.IP \fI\-\-timeout\fP 13 +\(en how long to wait for command completion (default is 90 s) +.PP .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: ActivateConnection arguments: according to arguments .fi +.RE + .TP .B down id <id> | uuid <id> .br @@ -250,7 +291,7 @@ The connection is identified by its name using \fIid\fP or UUID using \fIuuid\fP. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager method: DeactivateConnection arguments: according to arguments @@ -258,11 +299,11 @@ arguments: according to arguments .TP .B delete id <id> | uuid <id> .br -Delete a configured connection. The connection to delete is specified with +Delete a configured connection. The connection to delete is specified with \fIid\fP (connection name) or \fIuuid\fP (connection UUID). .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager.Settings.Connection method: Delete arguments: none @@ -285,64 +326,108 @@ Print status of devices. This is the default action, when no command is specified to \fIdev\fP object. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP .B list [iface <iface>] .br Get detailed information about devices. Without an argument, all devices are -examined. To get information for a specific device, \fIiface\fP argument +examined. To get information for a specific device, the \fIiface\fP argument with the interface name should be provided. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi .TP .B disconnect iface <iface> [\-\-nowait] [\-\-timeout <timeout>] .br Disconnect a device and prevent the device from automatically activating further -connections without user/manual intervention. \fI\-\-nowait\fP option causes -\fInmcli\fP to exit immediately and not to wait for command completion. -\fI\-\-timeout\fP option provides a means to specify how long to wait for -operation completion. +connections without user/manual intervention. +.RS +.PP +Available options are: +.IP \fI\-\-nowait\fP 13 +\(en exit immediately without waiting for command completion +.IP \fI\-\-timeout\fP 13 +\(en how long to wait for command completion (default is 10 s) +.PP .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP interface: org.freedesktop.NetworkManager.Device method: Disconnect arguments: none .fi +.RE .TP .B wifi [list [iface <iface>] [bssid <BSSID>]] .br -List available WiFi access points. \fIiface\fP and \fIbssid\fP options -can be used to get just APs for particular interface or specific AP, +List available Wi\(hyFi access points. The \fIiface\fP and \fIbssid\fP options +can be used to list APs for a particular interface or with a specific BSSID, respectively. .br .nf -\fBReference to D-Bus:\fP +\fBReference to D\(hyBus:\fP No simple reference. .fi +.TP +.B wifi connect <(B)SSID> [password <password>] [wep\-key\-type key|phrase] [iface <iface>] [bssid <BSSID>] [name <name>] [\-\-private] [\-\-nowait] [\-\-timeout <timeout>] +.br +Connect to a Wi\(hyFi network specified by SSID or BSSID. The command creates a new +connection and then activates it on a device. This is a command\(hyline counterpart +of clicking an SSID in a GUI client. The command always creates a new connection +and thus it is mainly useful for connecting to new Wi\(hyFi networks. If a connection +for the network already exists, it's better to connect through it using +\fInmcli con up id <name>\fP. Note that only open, WEP and WPA\(hyPSK networks are +supported at the moment. It is also supposed that IP configuration is obtained via +DHCP. +.RS +.PP +Available options are: +.IP \fIpassword\fP 13 +\(en password for secured networks (WEP or WPA) +.IP \fIwep\-key\-type\fP 13 +\(en type of WEP secret, either \fIkey\fP for ASCII/HEX key or \fIphrase\fP for passphrase +.IP \fIiface\fP 13 +\(en interface that will be used for activation +.IP \fIbssid\fP 13 +\(en if specified, the created connection will be restricted just for the BSSID +.IP \fIname\fP 13 +\(en if specified, the connection will use the name (else NM creates a name itself) +.IP \fI\-\-private\fP 13 +\(en the connection will only be visible to the user who created it (else the connection is system\(hywide) +.IP \fI\-\-nowait\fP 13 +\(en exit immediately without waiting for command completion +.IP \fI\-\-timeout\fP 13 +\(en how long to wait for command completion (default is 90 s) +.PP +.br +.nf +\fBReference to D\(hyBus:\fP +interface: org.freedesktop.NetworkManager +method: AddAndActivateConnection +arguments: according to arguments +.fi .RE .SH ENVIRONMENT VARIABLES \fInmcli\fP's behavior is affected by the following environment variables. .IP "LC_ALL" 13 -If set to a non-empty string value, override the values of all the other +If set to a non\(hyempty string value, it overrides the values of all the other internationalization variables. .IP "LC_MESSAGES" 13 -Determines the locale to be used for internationalised messages. +Determines the locale to be used for internationalized messages. .IP "LANG" 13 Provides a default value for the internationalization variables that are unset or null. .RE -Notes about localization: +Internationalization notes: .br Be aware that \fInmcli\fP is localized and that's why the output depends on -your environment. It's important to realize that especially when you parse the +your environment. This is important to realize especially when you parse the output. .br Call \fInmcli\fP as \fBLC_ALL=C nmcli\fP to be sure the locale is @@ -354,9 +439,10 @@ uses for messages. The "C" locale is used if none of these variables are set, and this locale uses English messages. .SH EXIT STATUS -\fInmcli\fP exits with status 0 if it succeeds, a value greater than 0 is returned if errors occur. +\fInmcli\fP exits with status 0 if it succeeds, a value greater than 0 is +returned if an error occurs. .IP "0" 4 -Success - indicates the operation succeeded +Success \(en indicates the operation succeeded .IP "1" 4 Unknown or unspecified error .IP "2" 4 @@ -370,9 +456,70 @@ Connection deactivation failed .IP "6" 4 Disconnecting device failed +.SH EXAMPLES +.IP "\fB\f(CWnmcli \-t \-f RUNNING nm\fP\fP" +.IP +tells you whether NetworkManager is running or not. + +.IP "\fB\f(CWnmcli \-t \-f STATE nm\fP\fP" +.IP +shows the overall status of NetworkManager. + +.IP "\fB\f(CWnmcli nm wifi off\fP\fP" +.IP +switches Wi\(hyFi off. + +.IP "\fB\f(CWnmcli \-p con list\fP\fP" +.IP +lists all connections NetworkManager has. + +.IP "\fB\f(CWnmcli \-f name,autoconnect con list\fP\fP" +.IP +lists all connections' names and their autoconnect settings. + +.IP "\fB\f(CWnmcli con list id \(dq\&My wired connection\(dq\&\fP\fP" +.IP +lists all details of the connection with "My wired connection" name. + +.IP "\fB\f(CWnmcli \-p con up id \(dq\&My wired connection\(dq\& iface eth0\fP\fP" +.IP +activates the connection with name "My wired connection" on interface eth0. +The \-p option makes nmcli show progress of the activation. + +.IP "\fB\f(CWnmcli con up uuid 6b028a27\-6dc9\-4411\-9886\-e9ad1dd43761 ap 00:3A:98:7C:42:D3\fP\fP" +.IP +connects the Wi\(hyFi connection with UUID 6b028a27\-6dc9\-4411\-9886\-e9ad1dd43761 to the AP +with BSSID 00:3A:98:7C:42:D3. + +.IP "\fB\f(CWnmcli dev status\fP\fP" +.IP +shows the status for all devices. + +.IP "\fB\f(CWnmcli dev disconnect iface em2\fP\fP" +.IP +disconnects a connection on interface em2 and marks the device as unavailable for +auto\(hyconnecting. That's why no connection will automatically be activated on the +device until the device's "autoconnect" is set to TRUE or user manually activates +a connection. + +.IP "\fB\f(CWnmcli \-f GENERAL,WIFI\-PROPERTIES dev list iface wlan0\fP\fP" +.IP +lists details for wlan0 interface; only GENERAL and WIFI\-PROPERTIES sections will be shown. + +.IP "\fB\f(CWnmcli dev wifi\fP\fP" +.IP +lists available Wi\(hyFi access points known to NetworkManager. + +.IP "\fB\f(CWnmcli dev wifi con \(dq\&Cafe Hotspot 1\(dq\& password caffeine name \(dq\&My cafe\(dq\&\fP\fP" +.IP +creates a new connection named "My cafe" and then connects it to "Cafe Hotspot 1" SSID +using "caffeine" password. This is mainly useful when connecting to "Cafe Hotspot 1" for +the first time. Next time, it is better to use 'nmcli con up id "My cafe"' so that the +existing connection profile can be used and no additional is created. + .SH BUGS -There are probably some. If you find a bug, please report to -https://bugzilla.gnome.org/ \- product \fINetworkManager\fP. +There are probably some bugs. If you find a bug, please report it to +https://bugzilla.gnome.org/ \(em product \fINetworkManager\fP. .SH SEE ALSO .BR nm\-tool (1), diff --git a/po/Makefile.in.in b/po/Makefile.in.in index cc8a2227..06a8cfe9 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -49,8 +49,8 @@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot +MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist +GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ @@ -73,15 +73,20 @@ CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$l .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) +INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; + .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: - $(MSGFMT) -o $@ $< + $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ + $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: diff --git a/po/POTFILES.in b/po/POTFILES.in index bfc65ac2..cce778fb 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -22,6 +22,7 @@ src/logging/nm-logging.c src/modem-manager/nm-modem-cdma.c src/modem-manager/nm-modem-gsm.c src/nm-device-bond.c +src/nm-device-adsl.c src/nm-device-bt.c src/nm-device-ethernet.c src/nm-device-infiniband.c diff --git a/po/de.po b/po/de.po index 0aa41eea..18248740 100644 --- a/po/de.po +++ b/po/de.po @@ -8,460 +8,847 @@ # Andre Klapper <ak-47@gmx.net>, 2007. # Hauke Mehrtens <hauke@hauke-m.de>, 2008. # Daniel Schury <Daniel.Schury@physik.uni-giessen.de>, 2010. -# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009, 2010, 2011. +# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009, 2010, 2011, 2012. +# Daniel Winzen <d@winzen4.de>, 2012. +# Mario Blättermann <mario.blaettermann@gmail.com>, 2012. # msgid "" msgstr "" "Project-Id-Version: NetworkManager HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-08-20 15:25+0000\n" -"PO-Revision-Date: 2011-08-31 13:16+0100\n" -"Last-Translator: Christian Kirbach <Christian.Kirbach@googlemail.com>\n" +"POT-Creation-Date: 2012-05-17 03:25+0000\n" +"PO-Revision-Date: 2012-05-12 20:02+0100\n" +"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n" "Language-Team: Deutsch <gnome-de@gnome.org>\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:64 ../cli/src/connections.c:78 -#: ../cli/src/devices.c:101 ../cli/src/devices.c:114 ../cli/src/devices.c:124 -#: ../cli/src/devices.c:134 ../cli/src/devices.c:148 ../cli/src/devices.c:162 -#: ../cli/src/devices.c:173 ../cli/src/devices.c:184 ../cli/src/devices.c:193 -#: ../cli/src/devices.c:202 ../cli/src/devices.c:224 -msgid "NAME" -msgstr "NAME" +#: ../cli/src/common.c:32 ../cli/src/common.c:44 ../cli/src/common.c:52 +#: ../cli/src/common.c:63 ../cli/src/connections.c:125 +#: ../cli/src/connections.c:159 +msgid "GROUP" +msgstr "GRUPPE" #. 0 -#: ../cli/src/connections.c:65 ../cli/src/connections.c:79 -msgid "UUID" -msgstr "UUID" +#: ../cli/src/common.c:33 ../cli/src/common.c:53 +msgid "ADDRESS" +msgstr "ADRESSE" #. 1 -#: ../cli/src/connections.c:66 -msgid "DEVICES" -msgstr "GERÄTE" +#: ../cli/src/common.c:34 ../cli/src/common.c:54 +msgid "ROUTE" +msgstr "ROUTE" #. 2 -#: ../cli/src/connections.c:67 -msgid "DEFAULT" -msgstr "VORGABE" +#: ../cli/src/common.c:35 ../cli/src/common.c:55 +msgid "DNS" +msgstr "DNS" #. 3 -#: ../cli/src/connections.c:68 -msgid "SPEC-OBJECT" -msgstr "SPEC-OBJECT" +#: ../cli/src/common.c:36 ../cli/src/common.c:56 +msgid "DOMAIN" +msgstr "DOMAIN" #. 4 -#: ../cli/src/connections.c:69 -msgid "VPN" -msgstr "VPN" +#: ../cli/src/common.c:37 +msgid "WINS" +msgstr "WINS" -#. 5 -#. 6 -#. 2 -#. 11 -#. 5 -#: ../cli/src/connections.c:70 ../cli/src/connections.c:85 -#: ../cli/src/devices.c:69 ../cli/src/devices.c:214 ../cli/src/devices.c:230 -msgid "DBUS-PATH" -msgstr "DBUS-PFAD" +#. 0 +#: ../cli/src/common.c:45 ../cli/src/common.c:64 +msgid "OPTION" +msgstr "OPTION" + +#: ../cli/src/common.c:366 +msgid "unmanaged" +msgstr "nicht verwaltet" + +#: ../cli/src/common.c:368 +msgid "unavailable" +msgstr "nicht verfügbar" + +#: ../cli/src/common.c:370 ../cli/src/network-manager.c:120 +msgid "disconnected" +msgstr "nicht verbunden" + +#: ../cli/src/common.c:372 +msgid "connecting (prepare)" +msgstr "wird verbunden (wird vorbereitet)" + +#: ../cli/src/common.c:374 +msgid "connecting (configuring)" +msgstr "wird verbunden (wird eingerichtet)" + +#: ../cli/src/common.c:376 +msgid "connecting (need authentication)" +msgstr "wird verbunden (Legitimierung wird benötigt)" + +#: ../cli/src/common.c:378 +msgid "connecting (getting IP configuration)" +msgstr "wird verbunden (IP-Einstellungen werden ermittelt)" + +#: ../cli/src/common.c:380 +msgid "connecting (checking IP connectivity)" +msgstr "wird verbunden (IP-Funktionalität wird geprüft)" + +#: ../cli/src/common.c:382 +msgid "connecting (starting secondary connections)" +msgstr "wird verbunden (Zweitverbindungen werden gestartet)" + +#: ../cli/src/common.c:384 ../cli/src/network-manager.c:116 +msgid "connected" +msgstr "verbunden" + +#: ../cli/src/common.c:386 ../cli/src/connections.c:621 +msgid "deactivating" +msgstr "wird deaktiviert" + +#: ../cli/src/common.c:388 +msgid "connection failed" +msgstr "Verbindung gescheitert" + +#: ../cli/src/common.c:390 ../cli/src/connections.c:624 +#: ../cli/src/connections.c:647 ../cli/src/connections.c:1333 +#: ../cli/src/devices.c:612 ../cli/src/network-manager.c:123 +#: ../cli/src/network-manager.c:185 ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:197 ../cli/src/network-manager.c:257 +#: ../cli/src/network-manager.c:273 ../cli/src/network-manager.c:431 +#: ../cli/src/network-manager.c:486 ../cli/src/network-manager.c:524 +#: ../cli/src/network-manager.c:563 ../cli/src/settings.c:563 +#: ../cli/src/settings.c:591 ../cli/src/utils.c:531 ../src/main.c:458 +#: ../src/main.c:477 +msgid "unknown" +msgstr "unbekannt" + +#: ../cli/src/common.c:399 +msgid "No reason given" +msgstr "Kein Grund angegeben" + +#: ../cli/src/common.c:402 +msgid "Unknown error" +msgstr "Unbekannter Fehler" + +#: ../cli/src/common.c:405 +msgid "Device is now managed" +msgstr "Gerät wird nun verwaltet" + +#: ../cli/src/common.c:408 +msgid "Device is now unmanaged" +msgstr "Gerät wird nun nicht mehr verwaltet" + +#: ../cli/src/common.c:411 +msgid "The device could not be readied for configuration" +msgstr "Das Gerät konnte nicht für die Konfiguration vorbereitet werden" + +#: ../cli/src/common.c:414 +msgid "" +"IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "" +"IP-Konfiguration konnte nicht bezogen werden (Adresse nicht verfügbar, " +"Zeitüberschreitung usw.)" + +#: ../cli/src/common.c:417 +msgid "The IP configuration is no longer valid" +msgstr "Die IP-Konfiguration ist nicht mehr gültig" + +#: ../cli/src/common.c:420 +msgid "Secrets were required, but not provided" +msgstr "Geheimdaten waren erforderlich, wurden aber nicht angegeben" + +#: ../cli/src/common.c:423 +msgid "802.1X supplicant disconnected" +msgstr "802.1X-Supplicant getrennt" + +#: ../cli/src/common.c:426 +msgid "802.1X supplicant configuration failed" +msgstr "Einrichtung des 802.1X-Supplicant fehlgeschlagen" + +#: ../cli/src/common.c:429 +msgid "802.1X supplicant failed" +msgstr "802.1X-Supplicant fehlgeschlagen" + +#: ../cli/src/common.c:432 +msgid "802.1X supplicant took too long to authenticate" +msgstr "802.1X-Supplicant brauchte zu lange für die Legitimierung" + +#: ../cli/src/common.c:435 +msgid "PPP service failed to start" +msgstr "PPP-Dienst konnte nicht gestartet werden" + +#: ../cli/src/common.c:438 +msgid "PPP service disconnected" +msgstr "PPP-Dienst getrennt" + +#: ../cli/src/common.c:441 +msgid "PPP failed" +msgstr "PPP fehlgeschlagen" + +#: ../cli/src/common.c:444 +msgid "DHCP client failed to start" +msgstr "DHCP-Client konnte nicht gestartet werden" + +#: ../cli/src/common.c:447 +msgid "DHCP client error" +msgstr "DHCP-Client-Fehler" + +#: ../cli/src/common.c:450 +msgid "DHCP client failed" +msgstr "DHCP-Client fehlgeschlagen" + +#: ../cli/src/common.c:453 +msgid "Shared connection service failed to start" +msgstr "" +"Dienst für gemeinsam verwendete Verbindung konnte nicht gestartet werden" + +#: ../cli/src/common.c:456 +msgid "Shared connection service failed" +msgstr "Dienst für gemeinsam verwendete Verbindung fehlgeschlagen" + +#: ../cli/src/common.c:459 +msgid "AutoIP service failed to start" +msgstr "Start des AutoIP-Diensts fehlgeschlagen" + +#: ../cli/src/common.c:462 +msgid "AutoIP service error" +msgstr "Fehler des AutoIP-Diensts" + +#: ../cli/src/common.c:465 +msgid "AutoIP service failed" +msgstr "AutoIP-Dienst fehlgeschlagen" + +#: ../cli/src/common.c:468 +msgid "The line is busy" +msgstr "Die Leitung ist besetzt" + +#: ../cli/src/common.c:471 +msgid "No dial tone" +msgstr "Kein Freizeichen" + +#: ../cli/src/common.c:474 +msgid "No carrier could be established" +msgstr "Es konnte kein Trägersignal aufgebaut werden" + +#: ../cli/src/common.c:477 +msgid "The dialing request timed out" +msgstr "Der Einwahlvorgang benötigte zu viel Zeit" + +#: ../cli/src/common.c:480 +msgid "The dialing attempt failed" +msgstr "Der Einwahlversuch ist fehlgeschlagen" + +#: ../cli/src/common.c:483 +msgid "Modem initialization failed" +msgstr "Modeminitialisierung fehlgeschlagen" + +#: ../cli/src/common.c:486 +msgid "Failed to select the specified APN" +msgstr "Angegebener APN konnte nicht ausgewählt werden" + +#: ../cli/src/common.c:489 +msgid "Not searching for networks" +msgstr "Es wird nicht nach Netzwerken gesucht" + +#: ../cli/src/common.c:492 +msgid "Network registration denied" +msgstr "Netzwerkanmeldung abgelehnt" + +#: ../cli/src/common.c:495 +msgid "Network registration timed out" +msgstr "Netzwerkanmeldung benötigte zu viel Zeit" + +#: ../cli/src/common.c:498 +msgid "Failed to register with the requested network" +msgstr "Anmeldung an dem angeforderten Netzwerk fehlgeschlagen" + +#: ../cli/src/common.c:501 +msgid "PIN check failed" +msgstr "PIN-Überprüfung fehlgeschlagen" + +#: ../cli/src/common.c:504 +msgid "Necessary firmware for the device may be missing" +msgstr "Notwendige Firmware des Geräts fehlt möglicherweise" + +#: ../cli/src/common.c:507 +msgid "The device was removed" +msgstr "Das Gerät wurde entfernt" + +#: ../cli/src/common.c:510 +msgid "NetworkManager went to sleep" +msgstr "NetworkManager ging in den Schlafmodus" + +#: ../cli/src/common.c:513 +msgid "The device's active connection disappeared" +msgstr "Die aktive Verbindung des Geräts verschwand" + +#: ../cli/src/common.c:516 +msgid "Device disconnected by user or client" +msgstr "Das Gerät wurde durch den Benutzer oder Client getrennt" + +#: ../cli/src/common.c:519 +msgid "Carrier/link changed" +msgstr "Trägersignal/Verbindung geändert" + +#: ../cli/src/common.c:522 +msgid "The device's existing connection was assumed" +msgstr "Die bestehende Verbindung des Geräts wurde angenommen" + +#: ../cli/src/common.c:525 +msgid "The supplicant is now available" +msgstr "Der Supplicant ist nun verfügbar" + +#: ../cli/src/common.c:528 +msgid "The modem could not be found" +msgstr "Das Modem wurde nicht gefunden" + +#: ../cli/src/common.c:531 +msgid "The Bluetooth connection failed or timed out" +msgstr "" +"Die Bluetooth-Verbindung ist fehlgeschlagen oder benötigte zu viel Zeit" + +#: ../cli/src/common.c:534 +msgid "GSM Modem's SIM card not inserted" +msgstr "SIM-Karte des GSM-Modems ist nicht eingesteckt" + +#: ../cli/src/common.c:537 +msgid "GSM Modem's SIM PIN required" +msgstr "PIN der SIM-Karte des GSM-Modems erforderlich" + +#: ../cli/src/common.c:540 +msgid "GSM Modem's SIM PUK required" +msgstr "PUK der SIM-Karte des GSM-Modems erforderlich" + +#: ../cli/src/common.c:543 +msgid "GSM Modem's SIM wrong" +msgstr "SIM-Karte des GSM-Modems ist falsch" + +#: ../cli/src/common.c:546 +msgid "InfiniBand device does not support connected mode" +msgstr "Das InfiniBand-Gerät unterstützt keinen »Connected«-Modus" + +#: ../cli/src/common.c:549 +msgid "A dependency of the connection failed" +msgstr "Eine Abhängigkeit der Verbindung ist gescheitert" + +#: ../cli/src/common.c:551 ../cli/src/devices.c:267 ../cli/src/devices.c:283 +#: ../cli/src/devices.c:403 ../cli/src/devices.c:447 +msgid "Unknown" +msgstr "Unbekannt" + +#. 0 +#. used only for 'GENERAL' group listing +#: ../cli/src/connections.c:58 ../cli/src/connections.c:126 +#: ../cli/src/devices.c:103 ../cli/src/devices.c:124 ../cli/src/devices.c:134 +#: ../cli/src/devices.c:144 ../cli/src/devices.c:158 ../cli/src/devices.c:172 +#: ../cli/src/devices.c:194 +msgid "NAME" +msgstr "NAME" + +#. 0 +#. 1 +#: ../cli/src/connections.c:59 ../cli/src/connections.c:127 +msgid "UUID" +msgstr "UUID" #. 1 #. 0 #. 1 #. 2 -#: ../cli/src/connections.c:80 ../cli/src/devices.c:67 -#: ../cli/src/devices.c:103 ../cli/src/devices.c:227 +#: ../cli/src/connections.c:60 ../cli/src/connections.c:160 +#: ../cli/src/devices.c:69 ../cli/src/devices.c:105 ../cli/src/devices.c:197 msgid "TYPE" msgstr "TYP" #. 2 -#: ../cli/src/connections.c:81 +#: ../cli/src/connections.c:61 msgid "TIMESTAMP" msgstr "ZEITSTEMPEL" #. 3 -#: ../cli/src/connections.c:82 +#: ../cli/src/connections.c:62 msgid "TIMESTAMP-REAL" msgstr "ZEITSTEMPEL-ECHT" #. 4 -#: ../cli/src/connections.c:83 +#: ../cli/src/connections.c:63 msgid "AUTOCONNECT" msgstr "AUTO-VERBINDEN" #. 5 -#: ../cli/src/connections.c:84 +#: ../cli/src/connections.c:64 msgid "READONLY" msgstr "NUR-LESEN" -#: ../cli/src/connections.c:167 +#. 6 +#. 8 +#. 2 +#. 11 +#. 5 +#: ../cli/src/connections.c:65 ../cli/src/connections.c:134 +#: ../cli/src/devices.c:71 ../cli/src/devices.c:184 ../cli/src/devices.c:200 +msgid "DBUS-PATH" +msgstr "DBUS-PFAD" + +#. 2 +#: ../cli/src/connections.c:128 +msgid "DEVICES" +msgstr "GERÄTE" + +#. 3 +#. 1 +#. 6 +#. 1 +#: ../cli/src/connections.c:129 ../cli/src/devices.c:70 +#: ../cli/src/devices.c:110 ../cli/src/network-manager.c:39 +msgid "STATE" +msgstr "STATUS" + +#. 4 +#: ../cli/src/connections.c:130 +msgid "DEFAULT" +msgstr "VORGABE" + +#. 5 +#: ../cli/src/connections.c:131 +msgid "DEFAULT6" +msgstr "STANDARD6" + +#. 6 +#: ../cli/src/connections.c:132 +msgid "SPEC-OBJECT" +msgstr "SPEC-OBJECT" + +#. 7 +#. 1 +#: ../cli/src/connections.c:133 ../cli/src/connections.c:147 +msgid "VPN" +msgstr "VPN" + +#. 9 +#: ../cli/src/connections.c:135 +msgid "CON-PATH" +msgstr "CON-PFAD" + +#. 10 +#: ../cli/src/connections.c:136 +msgid "ZONE" +msgstr "ZONE" + +#. 11 +#: ../cli/src/connections.c:137 +msgid "MASTER-PATH" +msgstr "MASTER-PFAD" + +#: ../cli/src/connections.c:145 ../cli/src/devices.c:80 +msgid "GENERAL" +msgstr "ALLGEMEIN" + +#. 0 +#: ../cli/src/connections.c:146 +msgid "IP" +msgstr "IP" + +#. 1 +#: ../cli/src/connections.c:161 +msgid "USERNAME" +msgstr "BENUTZERNAME" + +#. 2 +#: ../cli/src/connections.c:162 +msgid "GATEWAY" +msgstr "GATEWAY" + +#. 3 +#: ../cli/src/connections.c:163 +msgid "BANNER" +msgstr "BANNER" + +#. 4 +#: ../cli/src/connections.c:164 +msgid "VPN-STATE" +msgstr "VPN-STATUS" + +#. 5 +#: ../cli/src/connections.c:165 +msgid "CFG" +msgstr "CFG" + +#: ../cli/src/connections.c:187 #, c-format msgid "" "Usage: nmcli con { COMMAND | help }\n" -" COMMAND := { list | status | up | down }\n" +" COMMAND := { list | status | up | down | delete }\n" "\n" " list [id <id> | uuid <id>]\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--" "nowait] [--timeout <timeout>]\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout " +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout " "<timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" msgstr "" "Aufruf: nmcli con { BEFEHL | help }\n" -" BEFEHL := { list | status | up | down }\n" +" BEFEHL := { list | status | up | down | delete }\n" "\n" " list [id <Kennung> | uuid <Kennung>]\n" -" status\n" -" up id <Kennung> | uuid <Kennung> [iface <Schnittstelle>] [ap <hwaddr>] " -"[nsp <Name>] [--nowait] [--timeout <timeout>]\n" -" up id <Kennung> | uuid <Kennung> [iface <Schnittstelle>] [ap <hwaddr>] [--" +" status [id <Kennung> | uuid <Kennung> | path <Pfad>]\n" +" up id <Kennung> | uuid <Kennung> [iface <Schnittstelle>] [ap <BSSID>] [nsp " +"<Name>] [--nowait] [--timeout <timeout>]\n" +" up id <Kennung> | uuid <Kennung> [iface <Schnittstelle>] [ap <BSSID>] [--" "nowait] [--timeout <timeout>]\n" " down id <Kennung> | uuid <Kennung>\n" +" delete id <Kennung> | uuid <Kennung>\n" -#: ../cli/src/connections.c:220 ../cli/src/connections.c:544 +#: ../cli/src/connections.c:246 ../cli/src/connections.c:597 #, c-format msgid "Error: 'con list': %s" msgstr "Fehler: »Verb. Liste«: %s" -#: ../cli/src/connections.c:222 ../cli/src/connections.c:546 +#: ../cli/src/connections.c:248 ../cli/src/connections.c:599 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Fehler: »Verb. Liste«: %s; erlaubte Felder: %s" -#: ../cli/src/connections.c:230 +#: ../cli/src/connections.c:256 msgid "Connection details" msgstr "Verbindungsinformationen" -#: ../cli/src/connections.c:419 +#: ../cli/src/connections.c:472 msgid "never" msgstr "nie" #. "CAPABILITIES" #. Print header #. "WIFI-PROPERTIES" -#: ../cli/src/connections.c:420 ../cli/src/connections.c:421 -#: ../cli/src/connections.c:599 ../cli/src/connections.c:601 -#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520 -#: ../cli/src/settings.c:563 ../cli/src/settings.c:663 -#: ../cli/src/settings.c:937 ../cli/src/settings.c:938 -#: ../cli/src/settings.c:940 ../cli/src/settings.c:942 -#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1068 -#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1148 -#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1150 -#: ../cli/src/settings.c:1151 ../cli/src/settings.c:1152 -#: ../cli/src/settings.c:1153 ../cli/src/settings.c:1154 -#: ../cli/src/settings.c:1155 ../cli/src/settings.c:1156 -#: ../cli/src/settings.c:1157 ../cli/src/settings.c:1158 -#: ../cli/src/settings.c:1159 ../cli/src/settings.c:1160 -#: ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:473 ../cli/src/connections.c:474 +#: ../cli/src/connections.c:711 ../cli/src/connections.c:712 +#: ../cli/src/connections.c:714 ../cli/src/devices.c:411 +#: ../cli/src/devices.c:464 ../cli/src/devices.c:578 ../cli/src/devices.c:579 +#: ../cli/src/devices.c:611 ../cli/src/devices.c:637 ../cli/src/devices.c:638 +#: ../cli/src/devices.c:639 ../cli/src/devices.c:640 ../cli/src/devices.c:641 +#: ../cli/src/network-manager.c:267 ../cli/src/settings.c:657 +#: ../cli/src/settings.c:727 ../cli/src/settings.c:847 +#: ../cli/src/settings.c:1129 ../cli/src/settings.c:1130 +#: ../cli/src/settings.c:1132 ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1135 ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1266 ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 ../cli/src/settings.c:1353 +#: ../cli/src/settings.c:1424 msgid "yes" msgstr "ja" -#: ../cli/src/connections.c:420 ../cli/src/connections.c:421 -#: ../cli/src/connections.c:599 ../cli/src/connections.c:601 -#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520 -#: ../cli/src/settings.c:522 ../cli/src/settings.c:563 -#: ../cli/src/settings.c:663 ../cli/src/settings.c:937 -#: ../cli/src/settings.c:938 ../cli/src/settings.c:940 -#: ../cli/src/settings.c:942 ../cli/src/settings.c:1067 -#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069 -#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149 -#: ../cli/src/settings.c:1150 ../cli/src/settings.c:1151 -#: ../cli/src/settings.c:1152 ../cli/src/settings.c:1153 -#: ../cli/src/settings.c:1154 ../cli/src/settings.c:1155 -#: ../cli/src/settings.c:1156 ../cli/src/settings.c:1157 -#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1159 -#: ../cli/src/settings.c:1160 ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:473 ../cli/src/connections.c:474 +#: ../cli/src/connections.c:711 ../cli/src/connections.c:712 +#: ../cli/src/connections.c:714 ../cli/src/devices.c:411 +#: ../cli/src/devices.c:464 ../cli/src/devices.c:578 ../cli/src/devices.c:579 +#: ../cli/src/devices.c:611 ../cli/src/devices.c:637 ../cli/src/devices.c:638 +#: ../cli/src/devices.c:639 ../cli/src/devices.c:640 ../cli/src/devices.c:641 +#: ../cli/src/network-manager.c:269 ../cli/src/settings.c:657 +#: ../cli/src/settings.c:659 ../cli/src/settings.c:727 +#: ../cli/src/settings.c:847 ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1130 ../cli/src/settings.c:1132 +#: ../cli/src/settings.c:1134 ../cli/src/settings.c:1135 +#: ../cli/src/settings.c:1263 ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 ../cli/src/settings.c:1266 +#: ../cli/src/settings.c:1341 ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1353 ../cli/src/settings.c:1424 msgid "no" msgstr "nein" -#: ../cli/src/connections.c:495 +#: ../cli/src/connections.c:548 msgid "Connection list" msgstr "Verbindungsliste" -#: ../cli/src/connections.c:508 ../cli/src/connections.c:1368 -#: ../cli/src/connections.c:1383 ../cli/src/connections.c:1392 -#: ../cli/src/connections.c:1402 ../cli/src/connections.c:1414 -#: ../cli/src/connections.c:1509 ../cli/src/devices.c:1190 -#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314 -#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1534 -#: ../cli/src/devices.c:1541 +#: ../cli/src/connections.c:561 ../cli/src/connections.c:1094 +#: ../cli/src/connections.c:1630 ../cli/src/connections.c:1645 +#: ../cli/src/connections.c:1654 ../cli/src/connections.c:1664 +#: ../cli/src/connections.c:1676 ../cli/src/connections.c:1784 +#: ../cli/src/connections.c:1886 ../cli/src/devices.c:1031 +#: ../cli/src/devices.c:1041 ../cli/src/devices.c:1159 +#: ../cli/src/devices.c:1167 ../cli/src/devices.c:1531 +#: ../cli/src/devices.c:1538 ../cli/src/devices.c:1552 +#: ../cli/src/devices.c:1559 ../cli/src/devices.c:1576 +#: ../cli/src/devices.c:1587 ../cli/src/devices.c:1808 +#: ../cli/src/devices.c:1815 #, c-format msgid "Error: %s argument is missing." msgstr "Fehler: Argument %s fehlt." -#: ../cli/src/connections.c:521 +#: ../cli/src/connections.c:574 #, c-format msgid "Error: %s - no such connection." msgstr "Fehler: Verbindung %s existiert nicht." -#: ../cli/src/connections.c:527 ../cli/src/connections.c:1427 -#: ../cli/src/connections.c:1526 ../cli/src/devices.c:987 -#: ../cli/src/devices.c:1067 ../cli/src/devices.c:1214 -#: ../cli/src/devices.c:1327 ../cli/src/devices.c:1547 +#: ../cli/src/connections.c:580 ../cli/src/connections.c:1689 +#: ../cli/src/connections.c:1801 ../cli/src/connections.c:1893 +#: ../cli/src/devices.c:815 ../cli/src/devices.c:895 ../cli/src/devices.c:1055 +#: ../cli/src/devices.c:1173 ../cli/src/devices.c:1600 +#: ../cli/src/devices.c:1821 #, c-format msgid "Unknown parameter: %s\n" msgstr "Unbekannter Parameter: %s\n" -#: ../cli/src/connections.c:536 +#: ../cli/src/connections.c:589 #, c-format msgid "Error: no valid parameter specified." msgstr "Fehler: Es wurde kein gültiger Parameter angegeben." -#: ../cli/src/connections.c:551 ../cli/src/connections.c:1617 -#: ../cli/src/devices.c:1755 ../cli/src/network-manager.c:463 +#: ../cli/src/connections.c:604 ../cli/src/connections.c:1986 +#: ../cli/src/devices.c:2029 ../cli/src/network-manager.c:596 #, c-format msgid "Error: %s." msgstr "Fehler: %s." +#: ../cli/src/connections.c:617 +msgid "activating" +msgstr "wird aktiviert" + +#: ../cli/src/connections.c:619 +msgid "activated" +msgstr "aktiviert" + +#: ../cli/src/connections.c:633 +msgid "VPN connecting (prepare)" +msgstr "VPN wird verbunden (wird vorbereitet)" + +#: ../cli/src/connections.c:635 +msgid "VPN connecting (need authentication)" +msgstr "VPN wird verbunden (Legitimierung wird benötigt)" + +#: ../cli/src/connections.c:637 +msgid "VPN connecting" +msgstr "VPN wird verbunden" + #: ../cli/src/connections.c:639 +msgid "VPN connecting (getting IP configuration)" +msgstr "VPN wird verbunden (IP-Einstellungen werden ermittelt)" + +#: ../cli/src/connections.c:641 +msgid "VPN connected" +msgstr "VPN verbunden" + +#: ../cli/src/connections.c:643 +msgid "VPN connection failed" +msgstr "VPN-Verbindung gescheitert" + +#: ../cli/src/connections.c:645 +msgid "VPN disconnected" +msgstr "VPN getrennt" + +#: ../cli/src/connections.c:898 ../cli/src/connections.c:1122 #, c-format msgid "Error: 'con status': %s" msgstr "Fehler: »Verb. Status«: %s" -#: ../cli/src/connections.c:641 +#: ../cli/src/connections.c:900 ../cli/src/connections.c:1124 #, c-format msgid "Error: 'con status': %s; allowed fields: %s" msgstr "Fehler: »Verb. Status«: %s; erlaubte Felder: %s" -#: ../cli/src/connections.c:649 ../cli/src/connections.c:1442 -#: ../cli/src/connections.c:1541 ../cli/src/devices.c:1014 -#: ../cli/src/devices.c:1076 ../cli/src/devices.c:1229 -#: ../cli/src/devices.c:1357 ../cli/src/devices.c:1576 +#: ../cli/src/connections.c:908 +msgid "Active connection details" +msgstr "Einzelheiten zur aktiven Verbindung" + +#: ../cli/src/connections.c:1044 ../cli/src/connections.c:1704 +#: ../cli/src/connections.c:1816 ../cli/src/connections.c:1907 +#: ../cli/src/devices.c:842 ../cli/src/devices.c:904 ../cli/src/devices.c:1070 +#: ../cli/src/devices.c:1203 ../cli/src/devices.c:1622 +#: ../cli/src/devices.c:1850 ../cli/src/network-manager.c:311 #, c-format msgid "Error: Can't find out if NetworkManager is running: %s." msgstr "" "Fehler: Es kann nicht erkannt werden, ob NetworkManager ausgeführt wird: %s." -#: ../cli/src/connections.c:653 ../cli/src/connections.c:1446 -#: ../cli/src/connections.c:1545 ../cli/src/devices.c:1018 -#: ../cli/src/devices.c:1080 ../cli/src/devices.c:1233 -#: ../cli/src/devices.c:1361 ../cli/src/devices.c:1580 +#: ../cli/src/connections.c:1048 ../cli/src/connections.c:1708 +#: ../cli/src/connections.c:1820 ../cli/src/connections.c:1911 +#: ../cli/src/devices.c:846 ../cli/src/devices.c:908 ../cli/src/devices.c:1074 +#: ../cli/src/devices.c:1207 ../cli/src/devices.c:1626 +#: ../cli/src/devices.c:1854 ../cli/src/network-manager.c:315 #, c-format msgid "Error: NetworkManager is not running." msgstr "Fehler: NetworkManager wird nicht ausgeführt" -#: ../cli/src/connections.c:661 +#: ../cli/src/connections.c:1080 msgid "Active connections" msgstr "Aktive Verbindungen" -#: ../cli/src/connections.c:1085 +#: ../cli/src/connections.c:1105 +#, c-format +msgid "Error: '%s' is not an active connection." +msgstr "Fehler: »%s« ist keine aktive Verbindung." + +#: ../cli/src/connections.c:1110 +#, c-format +msgid "Error: unknown parameter: %s" +msgstr "Fehler: unbekannter Parameter: %s" + +#: ../cli/src/connections.c:1217 #, c-format msgid "no active connection on device '%s'" msgstr "Keine aktive Verbindung auf Gerät »%s«" -#: ../cli/src/connections.c:1093 +#: ../cli/src/connections.c:1225 #, c-format msgid "no active connection or device" msgstr "Keine aktive Verbindung oder Gerät" -#: ../cli/src/connections.c:1164 +#: ../cli/src/connections.c:1296 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "Gerät »%s« ist nicht mit der Verbindung »%s« kompatibel" -#: ../cli/src/connections.c:1166 +#: ../cli/src/connections.c:1298 #, c-format msgid "no device found for connection '%s'" msgstr "Für die Verbindung »%s« wurde kein Gerät gefunden" -#: ../cli/src/connections.c:1177 -msgid "activating" -msgstr "wird aktiviert" - -#: ../cli/src/connections.c:1179 -msgid "activated" -msgstr "aktiviert" - -#: ../cli/src/connections.c:1181 ../cli/src/devices.c:304 -msgid "deactivating" -msgstr "wird deaktiviert" - -#: ../cli/src/connections.c:1184 ../cli/src/connections.c:1207 -#: ../cli/src/connections.c:1240 ../cli/src/devices.c:308 -#: ../cli/src/devices.c:688 ../cli/src/network-manager.c:118 -#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:183 -#: ../cli/src/network-manager.c:192 ../cli/src/network-manager.c:298 -#: ../cli/src/network-manager.c:353 ../cli/src/network-manager.c:391 -#: ../cli/src/network-manager.c:430 ../cli/src/settings.c:485 -#: ../cli/src/utils.c:396 -msgid "unknown" -msgstr "unbekannt" - -#: ../cli/src/connections.c:1193 -msgid "VPN connecting (prepare)" -msgstr "VPN wird verbunden (wird vorbereitet)" - -#: ../cli/src/connections.c:1195 -msgid "VPN connecting (need authentication)" -msgstr "VPN wird verbunden (Legitimierung wird benötigt)" - -#: ../cli/src/connections.c:1197 -msgid "VPN connecting" -msgstr "VPN wird verbunden" - -#: ../cli/src/connections.c:1199 -msgid "VPN connecting (getting IP configuration)" -msgstr "VPN wird verbunden (IP-Einstellungen werden ermittelt)" - -#: ../cli/src/connections.c:1201 -msgid "VPN connected" -msgstr "VPN verbunden" - -#: ../cli/src/connections.c:1203 -msgid "VPN connection failed" -msgstr "VPN-Verbindung gescheitert" - -#: ../cli/src/connections.c:1205 -msgid "VPN disconnected" -msgstr "VPN getrennt" - -#: ../cli/src/connections.c:1216 +#: ../cli/src/connections.c:1309 msgid "unknown reason" msgstr "unbekannter Grund" -#: ../cli/src/connections.c:1218 +#: ../cli/src/connections.c:1311 msgid "none" msgstr "kein" -#: ../cli/src/connections.c:1220 +#: ../cli/src/connections.c:1313 msgid "the user was disconnected" msgstr "Der Benutzer wurde getrennt" -#: ../cli/src/connections.c:1222 +#: ../cli/src/connections.c:1315 msgid "the base network connection was interrupted" msgstr "Die Basisverbindung wurde unterbrochen" -#: ../cli/src/connections.c:1224 +#: ../cli/src/connections.c:1317 msgid "the VPN service stopped unexpectedly" msgstr "Der VPN-Dienst wurde unerwartet gestoppt" -#: ../cli/src/connections.c:1226 +#: ../cli/src/connections.c:1319 msgid "the VPN service returned invalid configuration" msgstr "Der VPN-Dienst gab ungültige Einstellungen zurück" -#: ../cli/src/connections.c:1228 +#: ../cli/src/connections.c:1321 msgid "the connection attempt timed out" msgstr "Der Verbindungsversuch benötigte zu viel Zeit" -#: ../cli/src/connections.c:1230 +#: ../cli/src/connections.c:1323 msgid "the VPN service did not start in time" msgstr "Der VPN-Dienst wurde nicht rechtzeitig gestartet" -#: ../cli/src/connections.c:1232 +#: ../cli/src/connections.c:1325 msgid "the VPN service failed to start" msgstr "Der VPN-Dienst konnte nicht gestartet werden" -#: ../cli/src/connections.c:1234 +#: ../cli/src/connections.c:1327 msgid "no valid VPN secrets" msgstr "Keine gültigen VPN-Schlüssel" -#: ../cli/src/connections.c:1236 +#: ../cli/src/connections.c:1329 msgid "invalid VPN secrets" msgstr "Ungültige VPN-Schlüssel" -#: ../cli/src/connections.c:1238 +#: ../cli/src/connections.c:1331 msgid "the connection was removed" msgstr "Die Verbindung wurde entfernt" -#: ../cli/src/connections.c:1252 -#, c-format -msgid "state: %s\n" -msgstr "Status: %s\n" - -#: ../cli/src/connections.c:1255 ../cli/src/connections.c:1281 +#: ../cli/src/connections.c:1348 ../cli/src/connections.c:1553 #, c-format -msgid "Connection activated\n" -msgstr "Verbindung aktiviert\n" +msgid "Connection successfully activated (D-Bus active path: %s)\n" +msgstr "Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: %s)\n" -#: ../cli/src/connections.c:1258 +#. Active connection failed and dissapeared, quit. +#: ../cli/src/connections.c:1353 ../cli/src/connections.c:1454 #, c-format msgid "Error: Connection activation failed." msgstr "Fehler: Aktivierung der Verbindung ist gescheitert." -#: ../cli/src/connections.c:1277 +#: ../cli/src/connections.c:1378 #, c-format -msgid "state: %s (%d)\n" -msgstr "Status: %s (%d)\n" +msgid "VPN connection successfully activated (D-Bus active path: %s)\n" +msgstr "VPN-Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: %s)\n" -#: ../cli/src/connections.c:1287 +#: ../cli/src/connections.c:1386 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Fehler: Aktivierung der Verbindung ist gescheitert: %s." -#: ../cli/src/connections.c:1304 ../cli/src/devices.c:1136 +#: ../cli/src/connections.c:1483 ../cli/src/devices.c:964 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Fehler: Zeitbeschränkung von %d Sekunden ist abgelaufen." -#: ../cli/src/connections.c:1317 +#: ../cli/src/connections.c:1544 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Fehler: Aktivierung der Verbindung ist gescheitert: %s" -#: ../cli/src/connections.c:1323 -#, c-format -msgid "Active connection state: %s\n" -msgstr "Status der aktiven Verbindung: %s\n" - -#: ../cli/src/connections.c:1324 -#, c-format -msgid "Active connection path: %s\n" -msgstr "Pfad der aktiven Verbindung: %s\n" - -#: ../cli/src/connections.c:1376 ../cli/src/connections.c:1517 +#: ../cli/src/connections.c:1638 ../cli/src/connections.c:1792 +#: ../cli/src/connections.c:1920 #, c-format msgid "Error: Unknown connection: %s." msgstr "Fehler: Unbekannte Verbindung: %s." -#: ../cli/src/connections.c:1422 ../cli/src/devices.c:1208 +#: ../cli/src/connections.c:1684 ../cli/src/devices.c:1049 +#: ../cli/src/devices.c:1595 #, c-format msgid "Error: timeout value '%s' is not valid." msgstr "Fehler: Der Wert »%s« ist keine gültige Zeitangabe." -#: ../cli/src/connections.c:1435 ../cli/src/connections.c:1534 +#: ../cli/src/connections.c:1697 ../cli/src/connections.c:1809 +#: ../cli/src/connections.c:1900 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Fehler: id oder uuid müssen angegeben werden." -#: ../cli/src/connections.c:1463 +#: ../cli/src/connections.c:1729 #, c-format msgid "Error: No suitable device found: %s." msgstr "Fehler: Es wurde kein passendes Gerät gefunden: %s." -#: ../cli/src/connections.c:1465 +#: ../cli/src/connections.c:1731 #, c-format msgid "Error: No suitable device found." msgstr "Fehler: Es wurde kein passendes Gerät gefunden." -#: ../cli/src/connections.c:1570 +#: ../cli/src/connections.c:1845 #, c-format msgid "Warning: Connection not active\n" msgstr "Warnung: Verbindung ist nicht aktiv\n" -#: ../cli/src/connections.c:1608 +#: ../cli/src/connections.c:1859 +#, c-format +msgid "Error: Connection deletion failed: %s" +msgstr "Fehler: Löschen der Verbindung fehlgeschlagen: %s" + +#: ../cli/src/connections.c:1977 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Fehler: Der »con«-Befehl »%s« ist ungültig." -#: ../cli/src/connections.c:1673 +#: ../cli/src/connections.c:2045 #, c-format msgid "Error: could not connect to D-Bus." msgstr "Fehler: Verbindung zu D-Bus konnte nicht hergestellt werden." -#: ../cli/src/connections.c:1680 +#: ../cli/src/connections.c:2053 #, c-format msgid "Error: Could not get system settings." msgstr "Fehler: Systemeinstellungen konnten nicht ermittelt werden." -#: ../cli/src/connections.c:1690 +#: ../cli/src/connections.c:2063 #, c-format msgid "Error: Can't obtain connections: settings service is not running." msgstr "" @@ -471,222 +858,230 @@ msgstr "" #. 0 #. 9 #. 3 -#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:212 -#: ../cli/src/devices.c:228 +#: ../cli/src/devices.c:68 ../cli/src/devices.c:104 ../cli/src/devices.c:182 +#: ../cli/src/devices.c:198 msgid "DEVICE" msgstr "GERÄT" -#. 1 -#. 4 -#. 1 -#: ../cli/src/devices.c:68 ../cli/src/devices.c:106 -#: ../cli/src/network-manager.c:39 -msgid "STATE" -msgstr "STATUS" - -#: ../cli/src/devices.c:78 -msgid "GENERAL" -msgstr "ALLGEMEIN" - #. 0 -#: ../cli/src/devices.c:79 +#: ../cli/src/devices.c:81 msgid "CAPABILITIES" msgstr "RESSOURCEN" #. 1 -#: ../cli/src/devices.c:80 +#: ../cli/src/devices.c:82 msgid "WIFI-PROPERTIES" msgstr "WLAN-EIGENSCHAFTEN" #. 2 -#: ../cli/src/devices.c:81 +#: ../cli/src/devices.c:83 msgid "AP" msgstr "AP" #. 3 -#: ../cli/src/devices.c:82 +#: ../cli/src/devices.c:84 msgid "WIRED-PROPERTIES" msgstr "KABEL-EIGENSCHAFTEN" #. 4 -#: ../cli/src/devices.c:83 +#: ../cli/src/devices.c:85 msgid "WIMAX-PROPERTIES" msgstr "WIMAX-EIGENSCHAFTEN" #. 5 #. 0 -#: ../cli/src/devices.c:84 ../cli/src/devices.c:225 +#: ../cli/src/devices.c:86 ../cli/src/devices.c:195 msgid "NSP" msgstr "NSP" #. 6 -#: ../cli/src/devices.c:85 -msgid "IP4-SETTINGS" -msgstr "IP4-EINSTELLUNGEN" +#: ../cli/src/devices.c:87 +msgid "IP4" +msgstr "IP4" #. 7 -#: ../cli/src/devices.c:86 -msgid "IP4-DNS" -msgstr "IP4-DNS" +#: ../cli/src/devices.c:88 +msgid "DHCP4" +msgstr "DHCP4" #. 8 -#: ../cli/src/devices.c:87 -msgid "IP6-SETTINGS" -msgstr "IP6-EINSTELLUNGEN" +#: ../cli/src/devices.c:89 +msgid "IP6" +msgstr "IP6" #. 9 -#: ../cli/src/devices.c:88 -msgid "IP6-DNS" -msgstr "IP6-DNS" +#: ../cli/src/devices.c:90 +msgid "DHCP6" +msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:106 +msgid "VENDOR" +msgstr "HERSTELLER" + +#. 3 +#: ../cli/src/devices.c:107 +msgid "PRODUCT" +msgstr "PRODUKT" + +#. 4 +#: ../cli/src/devices.c:108 msgid "DRIVER" msgstr "TREIBER" -#. 3 -#: ../cli/src/devices.c:105 +#. 5 +#: ../cli/src/devices.c:109 msgid "HWADDR" msgstr "HWADDR" -#. 0 +#. 7 +#: ../cli/src/devices.c:111 +msgid "REASON" +msgstr "GRUND" + +#. 8 +#: ../cli/src/devices.c:112 +msgid "UDI" +msgstr "UDI" + +#. 9 +#: ../cli/src/devices.c:113 +msgid "IP-IFACE" +msgstr "IP-IFACE" + +#. 10 +#: ../cli/src/devices.c:114 +msgid "NM-MANAGED" +msgstr "NM-VERWALTET" + +#. 11 #: ../cli/src/devices.c:115 +msgid "FIRMWARE-MISSING" +msgstr "FIRMWARE-FEHLT" + +#. 12 +#: ../cli/src/devices.c:116 +msgid "CONNECTION" +msgstr "VERBINDUNG" + +#. 0 +#: ../cli/src/devices.c:125 msgid "CARRIER-DETECT" msgstr "TRÄGERFREQUENZERKENNUNG" #. 1 -#: ../cli/src/devices.c:116 +#: ../cli/src/devices.c:126 msgid "SPEED" msgstr "GESCHWINDIGKEIT" #. 0 -#: ../cli/src/devices.c:125 +#: ../cli/src/devices.c:135 msgid "CARRIER" msgstr "TRÄGERFREQUENZ" #. 0 -#: ../cli/src/devices.c:135 +#: ../cli/src/devices.c:145 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:136 +#: ../cli/src/devices.c:146 msgid "WPA" msgstr "WPA" #. 2 -#: ../cli/src/devices.c:137 +#: ../cli/src/devices.c:147 msgid "WPA2" msgstr "WPA2" #. 3 -#: ../cli/src/devices.c:138 +#: ../cli/src/devices.c:148 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:139 +#: ../cli/src/devices.c:149 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:149 +#: ../cli/src/devices.c:159 msgid "CTR-FREQ" msgstr "CTR-FREQUENZ" #. 1 -#: ../cli/src/devices.c:150 +#: ../cli/src/devices.c:160 msgid "RSSI" msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:151 +#: ../cli/src/devices.c:161 msgid "CINR" msgstr "CINR" #. 3 -#: ../cli/src/devices.c:152 +#: ../cli/src/devices.c:162 msgid "TX-POW" msgstr "TX-POW" #. 4 -#: ../cli/src/devices.c:153 +#: ../cli/src/devices.c:163 msgid "BSID" msgstr "BSID" #. 0 -#: ../cli/src/devices.c:163 ../cli/src/devices.c:174 -msgid "ADDRESS" -msgstr "ADRESSE" - -#. 1 -#: ../cli/src/devices.c:164 ../cli/src/devices.c:175 -msgid "PREFIX" -msgstr "PRÄFIX" - -#. 2 -#: ../cli/src/devices.c:165 ../cli/src/devices.c:176 -msgid "GATEWAY" -msgstr "GATEWAY" - -#. 0 -#: ../cli/src/devices.c:185 ../cli/src/devices.c:194 -msgid "DNS" -msgstr "DNS" - -#. 0 -#: ../cli/src/devices.c:203 +#: ../cli/src/devices.c:173 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:204 +#: ../cli/src/devices.c:174 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:205 +#: ../cli/src/devices.c:175 msgid "MODE" msgstr "MODUS" #. 3 -#: ../cli/src/devices.c:206 +#: ../cli/src/devices.c:176 msgid "FREQ" msgstr "FREQUENZ" #. 4 -#: ../cli/src/devices.c:207 +#: ../cli/src/devices.c:177 msgid "RATE" msgstr "RATE" #. 5 #. 1 -#: ../cli/src/devices.c:208 ../cli/src/devices.c:226 +#: ../cli/src/devices.c:178 ../cli/src/devices.c:196 msgid "SIGNAL" msgstr "SIGNAL" #. 6 -#: ../cli/src/devices.c:209 +#: ../cli/src/devices.c:179 msgid "SECURITY" msgstr "SICHERHEIT" #. 7 -#: ../cli/src/devices.c:210 +#: ../cli/src/devices.c:180 msgid "WPA-FLAGS" msgstr "WPA-SCHALTER" #. 8 -#: ../cli/src/devices.c:211 +#: ../cli/src/devices.c:181 msgid "RSN-FLAGS" msgstr "RSN-SCHALTER" #. 10 #. 4 -#: ../cli/src/devices.c:213 ../cli/src/devices.c:229 +#: ../cli/src/devices.c:183 ../cli/src/devices.c:199 msgid "ACTIVE" msgstr "AKTIV" -#: ../cli/src/devices.c:256 +#: ../cli/src/devices.c:218 #, c-format msgid "" "Usage: nmcli dev { COMMAND | help }\n" @@ -698,7 +1093,10 @@ msgid "" " status\n" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" -" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] " +"[iface <iface>] [bssid <BSSID>] [name <name>]\n" +" [--private] [--nowait] [--timeout <timeout>]\n" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" @@ -711,262 +1109,290 @@ msgstr "" " status\n" " list [iface <Schnittstelle>]\n" " disconnect iface <Schnittstelle> [--nowait] [--timeout <timeout>]\n" -" wifi [list [iface <Schnittstelle>] [hwaddr <hwaddr>]]\n" +" wifi [list [iface <Schnittstelle>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <Passwort>] [wep-key-type key|phrase] " +"[iface <Schnittstelle>] [bssid <BSSID>] [name <Name>]\n" +" [--private] [--nowait] [--timeout <timeout>]\n" " wimax [list [iface <Schnittstelle>] [nsp <Name>]]\n" "\n" -#: ../cli/src/devices.c:284 -msgid "unmanaged" -msgstr "nicht verwaltet" - -#: ../cli/src/devices.c:286 -msgid "unavailable" -msgstr "nicht verfügbar" - -#: ../cli/src/devices.c:288 ../cli/src/network-manager.c:115 -msgid "disconnected" -msgstr "nicht verbunden" - -#: ../cli/src/devices.c:290 -msgid "connecting (prepare)" -msgstr "wird verbunden (wird vorbereitet)" - -#: ../cli/src/devices.c:292 -msgid "connecting (configuring)" -msgstr "wird verbunden (wird eingerichtet)" - -#: ../cli/src/devices.c:294 -msgid "connecting (need authentication)" -msgstr "wird verbunden (Legitimierung wird benötigt)" - -#: ../cli/src/devices.c:296 -msgid "connecting (getting IP configuration)" -msgstr "wird verbunden (IP-Einstellungen werden ermittelt)" - -#: ../cli/src/devices.c:298 -msgid "connecting (checking IP connectivity)" -msgstr "wird verbunden (IP-Funktionalität wird geprüft)" - -#: ../cli/src/devices.c:300 -msgid "connecting (starting secondary connections)" -msgstr "wird verbunden (Zweitverbindungen werden gestartet)" - -#: ../cli/src/devices.c:302 ../cli/src/network-manager.c:111 -msgid "connected" -msgstr "verbunden" - -#: ../cli/src/devices.c:306 -msgid "connection failed" -msgstr "Verbindung gescheitert" - -#: ../cli/src/devices.c:331 ../cli/src/devices.c:341 ../cli/src/devices.c:501 -#: ../cli/src/devices.c:545 -msgid "Unknown" -msgstr "Unbekannt" - -#: ../cli/src/devices.c:374 +#: ../cli/src/devices.c:316 msgid "(none)" msgstr "(keine)" -#: ../cli/src/devices.c:399 -#, c-format -msgid "%s: error converting IP4 address 0x%X" -msgstr "%s: Fehler bei Umwandlung der IPv4-Addresse 0x%X" - -#: ../cli/src/devices.c:470 +#: ../cli/src/devices.c:372 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:471 +#: ../cli/src/devices.c:373 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:480 +#: ../cli/src/devices.c:382 msgid "Encrypted: " msgstr "Verschlüsselt: " -#: ../cli/src/devices.c:485 +#: ../cli/src/devices.c:387 msgid "WEP " msgstr "WEP" -#: ../cli/src/devices.c:487 +#: ../cli/src/devices.c:389 msgid "WPA " msgstr "WPA" -#: ../cli/src/devices.c:489 +#: ../cli/src/devices.c:391 msgid "WPA2 " msgstr "WPA2" # Das ergibt z.B. WPA-Enterprise, klingt komisch mit »Unternehmen« -#: ../cli/src/devices.c:492 +#: ../cli/src/devices.c:394 msgid "Enterprise " msgstr "Enterprise" -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:403 msgid "Ad-Hoc" msgstr "Ad-Hoc" -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:403 msgid "Infrastructure" msgstr "Infrastuktur" -#: ../cli/src/devices.c:536 +#: ../cli/src/devices.c:438 msgid "Home" msgstr "Zu Hause" -#: ../cli/src/devices.c:539 +#: ../cli/src/devices.c:441 msgid "Partner" msgstr "Partner" -#: ../cli/src/devices.c:542 +#: ../cli/src/devices.c:444 msgid "Roaming" msgstr "Bereiche wechselnd" -#: ../cli/src/devices.c:612 +#: ../cli/src/devices.c:516 #, c-format msgid "Error: 'dev list': %s" msgstr "Fehler: »Geräteliste«: %s" -#: ../cli/src/devices.c:614 +#: ../cli/src/devices.c:518 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Fehler: »Geräteliste«: %s; erlaubte Felder: %s" -#: ../cli/src/devices.c:623 +#: ../cli/src/devices.c:527 msgid "Device details" msgstr "Geräteinformationen" -#: ../cli/src/devices.c:657 ../cli/src/devices.c:1152 ../cli/src/utils.c:342 +#: ../cli/src/devices.c:572 ../cli/src/devices.c:573 ../cli/src/devices.c:990 +#: ../cli/src/utils.c:477 msgid "(unknown)" msgstr "(unbekannt)" -#: ../cli/src/devices.c:658 -msgid "unknown)" -msgstr "unbekannt)" +#: ../cli/src/devices.c:581 +msgid "not connected" +msgstr "nicht verbunden" -#: ../cli/src/devices.c:684 +#: ../cli/src/devices.c:608 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:681 msgid "on" msgstr "an" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:681 msgid "off" msgstr "aus" -#: ../cli/src/devices.c:1004 +#: ../cli/src/devices.c:832 #, c-format msgid "Error: 'dev status': %s" msgstr "Fehler: »Gerätestatus«: %s" -#: ../cli/src/devices.c:1006 +#: ../cli/src/devices.c:834 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Fehler: »Gerätestatus«: %s; erlaubte Felder: %s" -#: ../cli/src/devices.c:1029 +#: ../cli/src/devices.c:857 msgid "Status of devices" msgstr "Status der Geräte" -#: ../cli/src/devices.c:1060 +#: ../cli/src/devices.c:888 #, c-format msgid "Error: '%s' argument is missing." msgstr "Fehler: Argument »%s« fehlt." -#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253 -#: ../cli/src/devices.c:1389 ../cli/src/devices.c:1608 +#: ../cli/src/devices.c:929 ../cli/src/devices.c:1094 +#: ../cli/src/devices.c:1235 ../cli/src/devices.c:1882 #, c-format msgid "Error: Device '%s' not found." msgstr "Fehler: Gerät »%s« wurde nicht gefunden." -#: ../cli/src/devices.c:1124 +#: ../cli/src/devices.c:952 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Erfolg: Gerät »%s« wurde erfolgreich getrennt." -#: ../cli/src/devices.c:1149 +#: ../cli/src/devices.c:987 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Fehler: Trennung des Gerätes »%s« (%s) ist gescheitert: %s" -#: ../cli/src/devices.c:1157 +#: ../cli/src/devices.c:1000 #, c-format -msgid "Device state: %d (%s)\n" -msgstr "Gerätezustand: %d (%s)\n" +msgid "Device '%s' has been disconnected.\n" +msgstr "Gerät »%s« wurde getrennt.\n" -#: ../cli/src/devices.c:1222 +#: ../cli/src/devices.c:1063 #, c-format msgid "Error: iface has to be specified." msgstr "Fehler: Es muss eine Schnittstelle angegeben werden." -#: ../cli/src/devices.c:1347 +#: ../cli/src/devices.c:1193 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Fehler: »Geräte-WLAN«: %s" -#: ../cli/src/devices.c:1349 +#: ../cli/src/devices.c:1195 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Fehler: »Geräte-WLAN«: %s; erlaubte Felder: %s" -#: ../cli/src/devices.c:1372 +#: ../cli/src/devices.c:1218 msgid "WiFi scan list" msgstr "Suchliste des WLAN" -#: ../cli/src/devices.c:1409 ../cli/src/devices.c:1463 -#: ../cli/src/devices.c:1670 +#: ../cli/src/devices.c:1255 ../cli/src/devices.c:1309 #, c-format -msgid "Error: Access point with hwaddr '%s' not found." -msgstr "" -"Fehler: Der Zugangspunkt mit der Hardware-Adresse »%s« wurde nicht gefunden." +msgid "Error: Access point with bssid '%s' not found." +msgstr "Fehler: Zugangspunkt mit der BSSID »%s« nicht gefunden." -#: ../cli/src/devices.c:1426 +#: ../cli/src/devices.c:1272 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Fehler: Gerät »%s« ist kein WLAN-Gerät." -#: ../cli/src/devices.c:1490 +#: ../cli/src/devices.c:1340 ../cli/src/devices.c:1386 +#, c-format +msgid "Connection with UUID '%s' created and activated on device '%s'\n" +msgstr "" +"Verbindung mit der UUID »%s« wurde erstellt und auf dem Gerät »%s« aktiviert\n" + +#: ../cli/src/devices.c:1345 +#, c-format +msgid "Error: Connection activation failed: (%d) %s." +msgstr "Fehler: Aktivierung der Verbindung ist gescheitert: (%d) %s." + +#: ../cli/src/devices.c:1370 +#, c-format +msgid "Error: Failed to add/activate new connection: (%d) %s" +msgstr "" +"Fehler: Neue Verbindung konnte nicht hinzugefügt und aktiviert werden: (%d) %" +"s" + +#: ../cli/src/devices.c:1378 +#, c-format +msgid "Error: Failed to add/activate new connection: Unknown error" +msgstr "" +"Fehler: Neue Verbindung konnte nicht hinzugefügt und aktiviert werden: " +"Unbekannter Fehler" + +#: ../cli/src/devices.c:1522 +#, c-format +msgid "Error: SSID or BSSID are missing." +msgstr "Fehler: SSID oder BSSID fehlt." + +#: ../cli/src/devices.c:1545 +#, c-format +msgid "Error: bssid argument value '%s' is not a valid BSSID." +msgstr "Fehler: Der Wert »%s« des BSSID-Arguments ist keine gültige BSSID." + +#: ../cli/src/devices.c:1569 +#, c-format +msgid "" +"Error: wep-key-type argument value '%s' is invalid, use 'key' or 'phrase'." +msgstr "" +"Fehler: Wert des Arguments wep-key-type »%s« ist ungültig, verwenden Sie " +"stattdessen »key« oder »phrase«" + +#: ../cli/src/devices.c:1609 +#, c-format +msgid "Error: BSSID to connect to (%s) differs from bssid argument (%s)." +msgstr "" +"Fehler: BSSID für die Verbindung (%s) entspricht nicht dem bssid-Argument (%" +"s)." + +#: ../cli/src/devices.c:1615 +#, c-format +msgid "Error: Parameter '%s' is neither SSID nor BSSID." +msgstr "Fehler: Parameter »%s« ist weder SSID noch BSSID." + +#: ../cli/src/devices.c:1644 +#, c-format +msgid "Error: Device '%s' is not a Wi-Fi device." +msgstr "Fehler: Gerät »%s« ist kein WLAN-Gerät." + +#: ../cli/src/devices.c:1646 +#, c-format +msgid "Error: No Wi-Fi device found." +msgstr "Fehler: Es wurde kein WLAN-Gerät gefunden." + +#: ../cli/src/devices.c:1664 +#, c-format +msgid "Error: No network with SSID '%s' found." +msgstr "Fehler: Es wurde kein Netzwerk mit SSID »%s« gefunden." + +#: ../cli/src/devices.c:1666 +#, c-format +msgid "Error: No access point with BSSID '%s' found." +msgstr "Fehler: Es wurde kein Zugangspunkt mit BSSID »%s« gefunden." + +#: ../cli/src/devices.c:1764 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Fehler: Der Befehl »%s« für »dev wifi« ist ungültig." -#: ../cli/src/devices.c:1566 +#: ../cli/src/devices.c:1840 #, c-format msgid "Error: 'dev wimax': %s" msgstr "Fehler: »Gerät Wimax«: %s" -#: ../cli/src/devices.c:1568 +#: ../cli/src/devices.c:1842 #, c-format msgid "Error: 'dev wimax': %s; allowed fields: %s" msgstr "Fehler: »Gerät Wimax«: %s; erlaubte Felder: %s" -#: ../cli/src/devices.c:1591 +#: ../cli/src/devices.c:1865 msgid "WiMAX NSP list" msgstr "WiMAX NSP-Liste" -#: ../cli/src/devices.c:1628 +#: ../cli/src/devices.c:1902 #, c-format msgid "Error: NSP with name '%s' not found." msgstr "Fehler: NSP namens »%s« wurde nicht gefunden." -#: ../cli/src/devices.c:1639 +#: ../cli/src/devices.c:1913 #, c-format msgid "Error: Device '%s' is not a WiMAX device." msgstr "Fehler: Gerät »%s« ist kein WiMAX-Gerät." -#: ../cli/src/devices.c:1697 +#: ../cli/src/devices.c:1944 +#, c-format +msgid "Error: Access point with nsp '%s' not found." +msgstr "Fehler: Zugangspunkt mit NSP »%s« nicht gefunden." + +#: ../cli/src/devices.c:1971 #, c-format msgid "Error: 'dev wimax' command '%s' is not valid." msgstr "Fehler: Der Befehl »%s« für »dev wimax« ist ungültig." -#: ../cli/src/devices.c:1747 +#: ../cli/src/devices.c:2021 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Fehler: Der Befehl »%s« für »dev« ist ungültig." @@ -1015,16 +1441,27 @@ msgstr "WIMAX-HARDWARE" msgid "WIMAX" msgstr "WIMAX" -#: ../cli/src/network-manager.c:74 +#: ../cli/src/network-manager.c:62 +msgid "PERMISSION" +msgstr "BEFUGNIS" + +#. 0 +#: ../cli/src/network-manager.c:63 +msgid "VALUE" +msgstr "WERT" + +#: ../cli/src/network-manager.c:77 #, c-format msgid "" "Usage: nmcli nm { COMMAND | help }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan | " +"wimax }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan }\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" @@ -1034,11 +1471,12 @@ msgid "" msgstr "" "Aufruf: nmcli nm { BEFEHL | help }\n" "\n" -" BEFEHL := { status | enable | sleep | wifi | wwan | wimax }\n" +" BEFEHL := { status | permissions | enable | sleep | wifi | wwan | wimax }\n" "\n" -" BEFEHL := { status | enable | sleep | wifi | wwan }\n" +" BEFEHL := { status | permissions | enable | sleep | wifi | wwan }\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" @@ -1046,142 +1484,164 @@ msgstr "" " wimax [on|off]\n" "\n" -#: ../cli/src/network-manager.c:103 +#: ../cli/src/network-manager.c:108 msgid "asleep" msgstr "schlafend" -#: ../cli/src/network-manager.c:105 +#: ../cli/src/network-manager.c:110 msgid "connecting" msgstr "wird verbunden" -#: ../cli/src/network-manager.c:107 +#: ../cli/src/network-manager.c:112 msgid "connected (local only)" msgstr "verbunden (nur lokal)" -#: ../cli/src/network-manager.c:109 +#: ../cli/src/network-manager.c:114 msgid "connected (site only)" msgstr "verbunden (nur Gelände)" -#: ../cli/src/network-manager.c:113 +#: ../cli/src/network-manager.c:118 msgid "disconnecting" msgstr "wird getrennt" -#: ../cli/src/network-manager.c:153 +#: ../cli/src/network-manager.c:158 #, c-format msgid "Error: 'nm status': %s" msgstr "Fehler: »NM-Status«: %s" -#: ../cli/src/network-manager.c:155 +#: ../cli/src/network-manager.c:160 #, c-format msgid "Error: 'nm status': %s; allowed fields: %s" msgstr "Fehler: »NM-Status«: %s; erlaubte Felder: %s" #. create NMClient -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174 -#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:174 +#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "enabled" msgstr "aktiviert" -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174 -#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:174 +#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "disabled" msgstr "deaktiviert" -#: ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:193 msgid "NetworkManager status" msgstr "Status von NetworkManager" #. Print header -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:196 msgid "running" msgstr "wird ausgeführt" -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:196 msgid "not running" msgstr "wird nicht ausgeführt" -#: ../cli/src/network-manager.c:222 ../cli/src/utils.c:322 +# Könnte auch Legitimierung sein. Der kontext entscheidet. -ck +# Sieht entweder nach lausigen Englischkenntnissen oder nach einem irrtümlicherweise als übersetzbar markierten String aus. +#: ../cli/src/network-manager.c:271 +#, fuzzy +#| msgid "auto" +msgid "auth" +msgstr "auth" + +#: ../cli/src/network-manager.c:301 +#, c-format +msgid "Error: 'nm permissions': %s" +msgstr "Fehler: »nm permissions«: %s" + +#: ../cli/src/network-manager.c:303 +#, c-format +msgid "Error: 'nm permissions': %s; allowed fields: %s" +msgstr "Fehler: »nm permissions«: %s; erlaubte Felder: %s" + +#: ../cli/src/network-manager.c:324 +msgid "NetworkManager permissions" +msgstr "Befugnisse von NetworkManager" + +#: ../cli/src/network-manager.c:350 ../cli/src/utils.c:457 #, c-format msgid "Error: Couldn't connect to system bus: %s" msgstr "Fehler: Verbindung zum Systembus konnte nicht hergestellt werden: %s" -#: ../cli/src/network-manager.c:233 +#: ../cli/src/network-manager.c:361 #, c-format msgid "Error: Couldn't create D-Bus object proxy." msgstr "Fehler: D-Bus-Objektproxy konnte nicht erstellt werden." -#: ../cli/src/network-manager.c:239 +#: ../cli/src/network-manager.c:367 #, c-format msgid "Error in sleep: %s" msgstr "Fehler beim schlafen gehen: %s" -#: ../cli/src/network-manager.c:283 ../cli/src/network-manager.c:338 -#: ../cli/src/network-manager.c:376 ../cli/src/network-manager.c:415 +#: ../cli/src/network-manager.c:416 ../cli/src/network-manager.c:471 +#: ../cli/src/network-manager.c:509 ../cli/src/network-manager.c:548 #, c-format msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s" msgstr "" "Fehler: Der Wert »%s« für »--fields« ist hier nicht gültig; erlaubte Felder: %s" -#: ../cli/src/network-manager.c:291 +#: ../cli/src/network-manager.c:424 msgid "Networking enabled" msgstr "Netzwerk aktiviert" -#: ../cli/src/network-manager.c:307 +#: ../cli/src/network-manager.c:440 #, c-format msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'." msgstr "" "Fehler: Ungültiger »aktiviert«-Parameter: »%s«; Verwenden Sie »true« oder " "»false«." -#: ../cli/src/network-manager.c:317 +#: ../cli/src/network-manager.c:450 #, c-format msgid "Error: Sleeping status is not exported by NetworkManager." msgstr "" "Fehler: Der Schlafzustand-Status wurde von NetworkManager nicht exportiert." -#: ../cli/src/network-manager.c:325 +#: ../cli/src/network-manager.c:458 #, c-format msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." msgstr "" "Fehler: Ungültiger »schlafend«-Parameter: »%s«; Verwenden Sie »true« oder " "»false«." -#: ../cli/src/network-manager.c:346 +#: ../cli/src/network-manager.c:479 msgid "WiFi enabled" msgstr "WLAN aktiviert" -#: ../cli/src/network-manager.c:362 +#: ../cli/src/network-manager.c:495 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Fehler: Ungültiger »wifi«-Parameter: »%s«." -#: ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:517 msgid "WWAN enabled" msgstr "WWAN aktiviert" -#: ../cli/src/network-manager.c:400 +#: ../cli/src/network-manager.c:533 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Fehler: Ungültiger »wwan«-Parameter: »%s«." -#: ../cli/src/network-manager.c:423 +#: ../cli/src/network-manager.c:556 msgid "WiMAX enabled" msgstr "WiMAX aktiviert" -#: ../cli/src/network-manager.c:439 +#: ../cli/src/network-manager.c:572 #, c-format msgid "Error: invalid 'wimax' parameter: '%s'." msgstr "Fehler: Ungültiger »wimax«-Parameter: »%s«." -#: ../cli/src/network-manager.c:452 +#: ../cli/src/network-manager.c:585 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Fehler: Der Befehl »%s« für »nm« ist ungültig." @@ -1292,115 +1752,150 @@ msgstr "Fehler: NMClient-Objekt konnte nicht erstellt werden." msgid "Success" msgstr "Erfolg" -#: ../cli/src/settings.c:423 +#: ../cli/src/settings.c:497 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (HEX-ASCII-Schlüssel)" -#: ../cli/src/settings.c:425 +#: ../cli/src/settings.c:499 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (104/128-bit-Passphrase)" -#: ../cli/src/settings.c:428 +#: ../cli/src/settings.c:502 #, c-format msgid "%d (unknown)" msgstr "%d (unbekannt)" -#: ../cli/src/settings.c:454 +#: ../cli/src/settings.c:528 msgid "0 (unknown)" msgstr "0 (unbekannt)" -#: ../cli/src/settings.c:460 +#: ../cli/src/settings.c:534 msgid "any, " msgstr "jede," -#: ../cli/src/settings.c:462 +#: ../cli/src/settings.c:536 msgid "900 MHz, " msgstr "900 MHz," -#: ../cli/src/settings.c:464 +#: ../cli/src/settings.c:538 msgid "1800 MHz, " msgstr "1800 MHz," -#: ../cli/src/settings.c:466 +#: ../cli/src/settings.c:540 msgid "1900 MHz, " msgstr "1900 MHz," -#: ../cli/src/settings.c:468 +#: ../cli/src/settings.c:542 msgid "850 MHz, " msgstr "850 MHz," -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:544 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:472 +#: ../cli/src/settings.c:546 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:474 +#: ../cli/src/settings.c:548 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:476 +#: ../cli/src/settings.c:550 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:478 +#: ../cli/src/settings.c:552 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:480 +#: ../cli/src/settings.c:554 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:482 +#: ../cli/src/settings.c:556 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:566 ../cli/src/settings.c:732 +#: ../cli/src/settings.c:558 +msgid "WCDMA 3GPP UMTS 1900 MHz, " +msgstr "WCDMA 3GPP UMTS 1900 MHz, " + +#: ../cli/src/settings.c:560 +msgid "WCDMA 3GPP UMTS 2600 MHz, " +msgstr "WCDMA 3GPP UMTS 2600 MHz, " + +#: ../cli/src/settings.c:578 +msgid "0 (NONE)" +msgstr "0 (KEINES)" + +#: ../cli/src/settings.c:584 +msgid "REORDER_HEADERS, " +msgstr "REORDER_HEADERS, " + +#: ../cli/src/settings.c:586 +msgid "GVRP, " +msgstr "GVRP, " + +#: ../cli/src/settings.c:588 +msgid "LOOSE_BINDING, " +msgstr "LOOSE_BINDING, " + +#: ../cli/src/settings.c:731 ../cli/src/settings.c:927 +#: ../cli/src/settings.c:1631 msgid "auto" msgstr "auto" -#: ../cli/src/settings.c:727 ../cli/src/settings.c:730 -#: ../cli/src/settings.c:731 ../cli/src/utils.c:176 +#: ../cli/src/settings.c:921 ../cli/src/settings.c:924 +#: ../cli/src/settings.c:925 ../cli/src/utils.c:279 msgid "not set" msgstr "nicht gesetzt" -#: ../cli/src/utils.c:128 +#: ../cli/src/utils.c:103 +#, c-format +msgid "Error converting IP4 address '0x%X' to text form" +msgstr "Fehler beim Umwandeln der IPv4-Adresse »0x%X« in eine Textform" + +#: ../cli/src/utils.c:131 +#, c-format +msgid "Error converting IP6 address '%s' to text form" +msgstr "Fehler beim Umwandeln der IPv6-Adresse »%s« in eine Textform" + +#: ../cli/src/utils.c:232 #, c-format msgid "field '%s' has to be alone" msgstr "Feld »%s« muss allein stehen" -#: ../cli/src/utils.c:131 +#: ../cli/src/utils.c:235 #, c-format msgid "invalid field '%s'" msgstr "ungültiges Feld »%s«" -#: ../cli/src/utils.c:150 +#: ../cli/src/utils.c:254 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "Optione »--terse« benötigt die Angabe von »--fields«" -#: ../cli/src/utils.c:154 +#: ../cli/src/utils.c:258 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "Option »--terse« benötigt bestimmte »--fields«-Werte, nicht »%s«" -#: ../cli/src/utils.c:333 +#: ../cli/src/utils.c:468 #, c-format msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" msgstr "" "Fehler: D-Bus-Objektproxy konnte nicht für org.freedesktop.DBus erstellt " "werden." -#: ../cli/src/utils.c:341 +#: ../cli/src/utils.c:476 #, c-format msgid "Error: NameHasOwner request failed: %s" msgstr "Fehler: Anfrage NameHasOwner ist gescheitert: %s" -#: ../cli/src/utils.c:386 +#: ../cli/src/utils.c:521 #, c-format msgid "" "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --" @@ -1409,7 +1904,7 @@ msgstr "" "Warnung: Die Versionen von nmcli (%s) und NetworkManager (%s) stimmen nicht " "überein. Verwenden Sie »--nocheck«, um diese Warnung zu unterdrücken.\n" -#: ../cli/src/utils.c:395 +#: ../cli/src/utils.c:530 #, c-format msgid "" "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force " @@ -1781,33 +2276,33 @@ msgstr "PKCS#12-Datei konnte nicht überprüft werden: %d" msgid "Could not generate random data." msgstr "Es konnten keine Zufallsdaten generiert werden." -#: ../libnm-util/nm-utils.c:2000 +#: ../libnm-util/nm-utils.c:2040 #, c-format msgid "Not enough memory to make encryption key." msgstr "" "Nicht genügend freier Speicher zur Erstellung des Verschlüsselungsschlüssels." -#: ../libnm-util/nm-utils.c:2110 +#: ../libnm-util/nm-utils.c:2150 msgid "Could not allocate memory for PEM file creation." msgstr "" "Es konnte nicht genügend freier Speicher zur Erstellung der PEM-Datei " "angefordert werden." -#: ../libnm-util/nm-utils.c:2122 +#: ../libnm-util/nm-utils.c:2162 #, c-format msgid "Could not allocate memory for writing IV to PEM file." msgstr "" "Es konnte nicht genügend freier Speicher zum Schreiben des IV in die PEM-" "Datei angefordert werden." -#: ../libnm-util/nm-utils.c:2134 +#: ../libnm-util/nm-utils.c:2174 #, c-format msgid "Could not allocate memory for writing encrypted key to PEM file." msgstr "" "Es konnte nicht genügend freier Speicher zum Schreiben des verschlüsselten " "Schlüssels in die PEM-Datei angefordert werden." -#: ../libnm-util/nm-utils.c:2153 +#: ../libnm-util/nm-utils.c:2193 #, c-format msgid "Could not allocate memory for PEM file data." msgstr "" @@ -1815,52 +2310,63 @@ msgstr "" "werden." #: ../policy/org.freedesktop.NetworkManager.policy.in.h:1 -msgid "Allow control of network connections" -msgstr "Die Kontrolle von Netzwerkverbindungen erlauben" +msgid "Enable or disable system networking" +msgstr "System-Netzwerke aktivieren oder deaktivieren" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:2 -msgid "Connection sharing via a protected WiFi network" -msgstr "Verbindungsfreigabe über ein geschütztes WLAN-Netzwerk" +msgid "System policy prevents enabling or disabling system networking" +msgstr "" +"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung von " +"System-Netzwerken" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:3 -msgid "Connection sharing via an open WiFi network" -msgstr "Verbindungsfreigabe über ein offenes WLAN-Netzwerk" +msgid "" +"Put NetworkManager to sleep or wake it up (should only be used by system " +"power management)" +msgstr "" +"NetworkManager in den Schlafzustand versetzen oder daraus aufwecken (Sollte " +"nur von der System-Energieverwaltung verwendet werden)" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:4 -msgid "Enable or disable WiFi devices" -msgstr "WLAN-Geräte aktivieren oder deaktivieren" +msgid "System policy prevents putting NetworkManager to sleep or waking it up" +msgstr "" +"Die Systemrichtlinien verhindern das in den Schlaf versetzen oder Aufwecken " +"von NetworkManager" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:5 -msgid "Enable or disable WiMAX mobile broadband devices" -msgstr "Mobile WiMAX-Breitbandgeräte aktivieren oder deaktivieren" +msgid "Enable or disable WiFi devices" +msgstr "WLAN-Geräte aktivieren oder deaktivieren" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:6 -msgid "Enable or disable mobile broadband devices" -msgstr "Mobile Breitbandgeräte aktivieren oder deaktivieren" +msgid "System policy prevents enabling or disabling WiFi devices" +msgstr "" +"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung von WLAN-" +"Geräten" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 -msgid "Enable or disable system networking" -msgstr "System-Netzwerke aktivieren oder deaktivieren" +msgid "Enable or disable mobile broadband devices" +msgstr "Mobile Breitbandgeräte aktivieren oder deaktivieren" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:8 -msgid "Modify network connections for all users" -msgstr "Netzwerkverbindungen für alle Benutzer bearbeiten" +msgid "System policy prevents enabling or disabling mobile broadband devices" +msgstr "" +"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung mobiler " +"Breitbandgeräte" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 -msgid "Modify persistent system hostname" -msgstr "Den ständigen Rechnernamen des Systems bearbeiten" +msgid "Enable or disable WiMAX mobile broadband devices" +msgstr "Mobile WiMAX-Breitbandgeräte aktivieren oder deaktivieren" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:10 -msgid "Modify personal network connections" -msgstr "Eigene Netzwerkverbindungen bearbeiten" - -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 msgid "" -"Put NetworkManager to sleep or wake it up (should only be used by system " -"power management)" +"System policy prevents enabling or disabling WiMAX mobile broadband devices" msgstr "" -"NetworkManager in den Schlafzustand versetzen oder daraus aufwecken (Sollte " -"nur von der System-Energieverwaltung verwendet werden)" +"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung mobiler " +"WiMAX-Breitbandgeräte" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 +msgid "Allow control of network connections" +msgstr "Die Kontrolle von Netzwerkverbindungen erlauben" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:12 msgid "System policy prevents control of network connections" @@ -1868,35 +2374,28 @@ msgstr "" "Die Systemrichtlinien verhindern die Kontrolle von Netzwerkverbindungen" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:13 -msgid "System policy prevents enabling or disabling WiFi devices" -msgstr "" -"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung von WLAN-" -"Geräten" +msgid "Connection sharing via a protected WiFi network" +msgstr "Verbindungsfreigabe über ein geschütztes WLAN-Netzwerk" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:14 -msgid "" -"System policy prevents enabling or disabling WiMAX mobile broadband devices" +msgid "System policy prevents sharing connections via a protected WiFi network" msgstr "" -"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung mobiler " -"WiMAX-Breitbandgeräte" +"Die Systemrichtlinien verhindern Verbindungsfreigaben über ein geschütztes " +"WLAN-Netzwerk" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:15 -msgid "System policy prevents enabling or disabling mobile broadband devices" -msgstr "" -"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung mobiler " -"Breitbandgeräte" +msgid "Connection sharing via an open WiFi network" +msgstr "Verbindungsfreigabe über ein offenes WLAN-Netzwerk" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:16 -msgid "System policy prevents enabling or disabling system networking" +msgid "System policy prevents sharing connections via an open WiFi network" msgstr "" -"Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung von " -"System-Netzwerken" +"Die Systemrichtlinien verhindern Verbindungsfreigaben über ein offenes WLAN-" +"Netzwerk" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:17 -msgid "System policy prevents modification of network settings for all users" -msgstr "" -"Die Systemrichtlinien verhindern das Bearbeiten von Netzwerkeinstellungen " -"für alle Benutzer" +msgid "Modify personal network connections" +msgstr "Eigene Netzwerkverbindungen bearbeiten" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:18 msgid "System policy prevents modification of personal network settings" @@ -1905,43 +2404,178 @@ msgstr "" "Netzwerkeinstellungen" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:19 +msgid "Modify network connections for all users" +msgstr "Netzwerkverbindungen für alle Benutzer bearbeiten" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20 +msgid "System policy prevents modification of network settings for all users" +msgstr "" +"Die Systemrichtlinien verhindern das Bearbeiten von Netzwerkeinstellungen " +"für alle Benutzer" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21 +msgid "Modify persistent system hostname" +msgstr "Den ständigen Rechnernamen des Systems bearbeiten" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:22 msgid "System policy prevents modification of the persistent system hostname" msgstr "" "Die Systemrichtlinien verhindern das Bearbeiten des ständigen Rechnernamens " "des Systems" -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20 -msgid "System policy prevents putting NetworkManager to sleep or waking it up" -msgstr "" -"Die Systemrichtlinien verhindern das in den Schlaf versetzen oder Aufwecken " -"von NetworkManager" +#: ../src/main.c:156 +#, c-format +msgid "Failed to set signal mask: %d" +msgstr "Fehler beim Festlegen der Signalmaske: %d" -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21 -msgid "System policy prevents sharing connections via a protected WiFi network" +#: ../src/main.c:163 +#, c-format +msgid "Failed to create signal handling thread: %d" +msgstr "Erstellen des Threads für die Signalbehandlung schlug fehl: %d" + +#: ../src/main.c:178 +#, c-format +msgid "Opening %s failed: %s\n" +msgstr "Öffnen von %s fehlgeschlagen: %s\n" + +#: ../src/main.c:184 +#, c-format +msgid "Writing to %s failed: %s\n" +msgstr "Schreiben nach %s gescheitert: %s\n" + +#: ../src/main.c:189 +#, c-format +msgid "Closing %s failed: %s\n" +msgstr "Schließen von %s fehlgeschlagen: %s\n" + +#: ../src/main.c:232 +#, c-format +msgid "NetworkManager is already running (pid %ld)\n" +msgstr "NetworkManager läuft bereits (pid %ld)\n" + +#: ../src/main.c:372 +msgid "Print NetworkManager version and exit" +msgstr "NetworkManager-Version anzeigen und beenden" + +#: ../src/main.c:373 +msgid "Don't become a daemon" +msgstr "Nicht zum Hintergrunddienst werden" + +#: ../src/main.c:374 +msgid "Make all warnings fatal" +msgstr "Alle Warnungen als fatal betrachten" + +#: ../src/main.c:375 +msgid "Specify the location of a PID file" +msgstr "Geben Sie den Ort der PID-Datei an" + +#: ../src/main.c:375 +msgid "filename" +msgstr "Dateiname" + +#: ../src/main.c:376 +msgid "State file location" +msgstr "Speicherort der Statusdatei" + +#: ../src/main.c:376 +msgid "/path/to/state.file" +msgstr "/pfad/zur/status.datei" + +#: ../src/main.c:377 +msgid "Config file location" +msgstr "Speicherort der Konfigurationsdatei" + +#: ../src/main.c:377 +msgid "/path/to/config.file" +msgstr "/pfad/zur/config.datei" + +#: ../src/main.c:378 +msgid "List of plugins separated by ','" +msgstr "Mit »,« getrennte Liste von Erweiterungen" + +#: ../src/main.c:378 +msgid "plugin1,plugin2" +msgstr "erweiterung1,erweiterung2" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:380 +msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" +msgstr "Protokollierungsstufe: Möglich sind [ERR, WARN, INFO, DEBUG]" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:383 +msgid "" +"Log domains separated by ',': any combination of\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," +"DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN," +"SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE," +"DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" msgstr "" -"Die Systemrichtlinien verhindern Verbindungsfreigaben über ein geschütztes " -"WLAN-Netzwerk" +"Protokolldomänen, getrennt durch »,«: jede Kombination von\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," +"DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN," +"SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE," +"DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:22 -msgid "System policy prevents sharing connections via an open WiFi network" +#: ../src/main.c:396 +#, c-format +msgid "GModules are not supported on your platform!\n" +msgstr "GModules werden von Ihrer Plattform nicht unterstützt!\n" + +#: ../src/main.c:419 +msgid "" +"NetworkManager monitors all network connections and automatically\n" +"chooses the best connection to use. It also allows the user to\n" +"specify wireless access points which wireless cards in the computer\n" +"should associate with." msgstr "" -"Die Systemrichtlinien verhindern Verbindungsfreigaben über ein offenes WLAN-" -"Netzwerk" +"Die Netzwerkverwaltung überwacht alle Netzwerkverbindungen und wählt\n" +"automatisch die beste Verbindung zur Verwendung aus. Außerdem ermöglicht " +"sie\n" +"dem Anwender diejenigen Drahtlos-Zugangspunkte anzugeben, mit welchen sich\n" +"die Drahtlos-Netzwerkkarten des Rechners verbinden sollen." -#: ../src/main.c:530 +#: ../src/main.c:425 #, c-format msgid "Invalid option. Please use --help to see a list of valid options.\n" msgstr "" "Ungültige Option. Verwenden Sie --help um eine Liste der verfügbaren " "Optionen zu erhalten.\n" -#: ../src/main.c:611 +#: ../src/main.c:435 +#, c-format +msgid "You must be root to run NetworkManager!\n" +msgstr "" +"Sie müssen Systemverwaltungsrechte besitzen, um NetworkManager auszuführen!\n" + +#: ../src/main.c:456 +#, c-format +msgid "Failed to read configuration: (%d) %s\n" +msgstr "Konfiguration konnte nicht gelesen werden: (%d) %s\n" + +#: ../src/main.c:467 #, c-format msgid "%s. Please use --help to see a list of valid options.\n" msgstr "" "%s. Verwenden Sie --help, um eine Liste der verfügbaren Optionen zu " "erhalten.\n" +#: ../src/main.c:474 +#, c-format +msgid "State file %s parsing failed: (%d) %s\n" +msgstr "Statusdatei %s konnte nicht verarbeitet werden: (%d) %s\n" + +#: ../src/main.c:491 +#, c-format +msgid "Could not daemonize: %s [error %u]\n" +msgstr "Hintergrunddienst nicht möglich: %s [error %u]\n" + #: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62 msgid "# Created by NetworkManager\n" msgstr "# Erstellt von NetworkManager\n" @@ -1955,19 +2589,19 @@ msgstr "" "# Zusammengeführt aus %s\n" "\n" -#: ../src/dhcp-manager/nm-dhcp-manager.c:284 +#: ../src/dhcp-manager/nm-dhcp-manager.c:266 msgid "no usable DHCP client could be found." msgstr "Es konnte kein verwendbarer DHCP-Client gefunden werden." -#: ../src/dhcp-manager/nm-dhcp-manager.c:293 +#: ../src/dhcp-manager/nm-dhcp-manager.c:275 msgid "'dhclient' could be found." msgstr "»dhclient« konnte nicht gefunden werden." -#: ../src/dhcp-manager/nm-dhcp-manager.c:303 +#: ../src/dhcp-manager/nm-dhcp-manager.c:285 msgid "'dhcpcd' could be found." msgstr "»dhcpcd« konnte nicht gefunden werden." -#: ../src/dhcp-manager/nm-dhcp-manager.c:311 +#: ../src/dhcp-manager/nm-dhcp-manager.c:293 #, c-format msgid "unsupported DHCP client '%s'" msgstr "Nicht unterstützter DHCP-Client »%s«" @@ -1982,109 +2616,157 @@ msgstr "" msgid "The nameservers listed below may not be recognized." msgstr "Die nachfolgend gelisteten Nameserver werden eventuell nicht erkannt." -#: ../src/logging/nm-logging.c:149 +#: ../src/logging/nm-logging.c:130 #, c-format msgid "Unknown log level '%s'" msgstr "Unbekannte Protokollstufe »%s«" -#: ../src/logging/nm-logging.c:174 +#: ../src/logging/nm-logging.c:155 #, c-format msgid "Unknown log domain '%s'" msgstr "Unbekannte Protokolldomäne »%s«" -#: ../src/modem-manager/nm-modem-cdma.c:296 ../src/nm-device-bt.c:355 +#: ../src/modem-manager/nm-modem-cdma.c:279 ../src/nm-device-bt.c:325 #, c-format msgid "CDMA connection %d" msgstr "CDMA-Verbindung %d" -#: ../src/modem-manager/nm-modem-gsm.c:499 ../src/nm-device-bt.c:351 +#: ../src/modem-manager/nm-modem-gsm.c:547 ../src/nm-device-bt.c:321 #, c-format msgid "GSM connection %d" msgstr "GSM-Verbindung %d" -#: ../src/nm-device-bt.c:326 +#: ../src/nm-device-bond.c:191 +#, c-format +msgid "Bond connection %d" +msgstr "Gebündelte Verbindung %d" + +#: ../src/nm-device-bt.c:296 #, c-format msgid "PAN connection %d" msgstr "PAN-Verbindung %d" -#: ../src/nm-device-bt.c:359 +#: ../src/nm-device-bt.c:329 #, c-format msgid "DUN connection %d" msgstr "DUN-Verbindung %d" -#: ../src/nm-device-ethernet.c:1723 +#: ../src/nm-device-ethernet.c:1326 #, c-format msgid "PPPoE connection %d" msgstr "PPPoE-Verbindung %d" -#: ../src/nm-device-ethernet.c:1723 ../src/settings/nm-settings-utils.c:50 +#: ../src/nm-device-ethernet.c:1326 ../src/settings/nm-settings-utils.c:50 #, c-format msgid "Wired connection %d" msgstr "Kabelgebundene Verbindung %d" -#: ../src/nm-device-olpc-mesh.c:393 +#: ../src/nm-device-infiniband.c:303 +#, c-format +msgid "InfiniBand connection %d" +msgstr "InfiniBand-Verbindung %d" + +#: ../src/nm-device-olpc-mesh.c:303 #, c-format msgid "Mesh %d" msgstr "Maschennetz %d" -#: ../src/nm-manager.c:657 +#: ../src/nm-device-vlan.c:362 +#, c-format +msgid "VLAN connection %d" +msgstr "VLAN-Verbindung %d" + +#: ../src/nm-manager.c:661 #, c-format msgid "VPN connection %d" msgstr "VPN-Verbindung %d" -#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231 -#: ../src/nm-netlink-monitor.c:653 +#: ../src/nm-netlink-monitor.c:148 ../src/nm-netlink-monitor.c:272 +#: ../src/nm-netlink-monitor.c:695 #, c-format msgid "error processing netlink message: %s" msgstr "Fehler beim Verarbeiten der netlink-Nachricht: %s" -#: ../src/nm-netlink-monitor.c:214 +#: ../src/nm-netlink-monitor.c:251 msgid "error occurred while waiting for data on socket" msgstr "Während des Wartens auf Daten am Socket ist ein Fehler aufgetreten" -#: ../src/nm-netlink-monitor.c:254 +#: ../src/nm-netlink-monitor.c:296 #, c-format msgid "unable to connect to netlink for monitoring link status: %s" msgstr "" "Die Verbindung zu netlink zur Überwachung der Netzwerkverbindung konnte " "nicht hergestellt werden: %s" -#: ../src/nm-netlink-monitor.c:265 +#: ../src/nm-netlink-monitor.c:307 #, c-format msgid "unable to enable netlink handle credential passing: %s" msgstr "" "Die netlink-Handle-Berechtigungsnachweisfreigabe konnte nicht aktiviert " "werden: %s" -#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353 +#: ../src/nm-netlink-monitor.c:330 ../src/nm-netlink-monitor.c:390 #, c-format msgid "unable to allocate netlink handle for monitoring link status: %s" msgstr "" "Es konnte kein netlink-Handle zur Überwachung der Netzwerkverbindung " "angefordert werden: %s" -#: ../src/nm-netlink-monitor.c:376 +#: ../src/nm-netlink-monitor.c:415 #, c-format msgid "unable to allocate netlink link cache for monitoring link status: %s" msgstr "" "Es konnte kein netlink-Verbindungszwischenspeicher zur Überwachung der " "Netzwerkverbindung angefordert werden: %s" -#: ../src/nm-netlink-monitor.c:502 +#: ../src/nm-netlink-monitor.c:542 #, c-format msgid "unable to join netlink group: %s" msgstr "Der netlink-Gruppe konnte nicht beigetreten werden: %s" -#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642 +#: ../src/nm-netlink-monitor.c:671 ../src/nm-netlink-monitor.c:684 #, c-format msgid "error updating link cache: %s" msgstr "Die Aktualisierung des Verbindungszwischenspeichers schlug fehl: %s" -#: ../src/settings/plugins/ifcfg-rh/reader.c:3575 -#: ../src/settings/plugins/ifnet/connection_parser.c:51 +#: ../src/settings/plugins/ifcfg-rh/reader.c:93 msgid "System" msgstr "System" +#: ../src/settings/plugins/ifcfg-rh/reader.c:3634 +msgid "Bond" +msgstr "Gebündelt" + +#~ msgid "state: %s\n" +#~ msgstr "Status: %s\n" + +#~ msgid "Connection activated\n" +#~ msgstr "Verbindung aktiviert\n" + +#~ msgid "state: %s (%d)\n" +#~ msgstr "Status: %s (%d)\n" + +#~ msgid "Active connection state: %s\n" +#~ msgstr "Status der aktiven Verbindung: %s\n" + +#~ msgid "Active connection path: %s\n" +#~ msgstr "Pfad der aktiven Verbindung: %s\n" + +#~ msgid "IP4-SETTINGS" +#~ msgstr "IP4-EINSTELLUNGEN" + +#~ msgid "IP6-SETTINGS" +#~ msgstr "IP6-EINSTELLUNGEN" + +#~ msgid "PREFIX" +#~ msgstr "PRÄFIX" + +#~ msgid "unknown)" +#~ msgstr "unbekannt)" + +#~ msgid "Device state: %d (%s)\n" +#~ msgstr "Gerätezustand: %d (%s)\n" + #~ msgid "SCOPE" #~ msgstr "BANDBREITE" diff --git a/po/eo.po b/po/eo.po index 5ff1b9c1..0284ae6c 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1,4 +1,4 @@ -# Esperanto translation for NetworkManager +# 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. # @@ -7,110 +7,213 @@ # Kim RIBEIRO < >, 2010. # Serge LEBLANC < >, 2010. # Michel MORONI < >, 2011. -# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010, 2011. +# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010, 2011, 2012. # msgid "" msgstr "" "Project-Id-Version: network-manager\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-05-06 03:25+0000\n" -"PO-Revision-Date: 2011-05-06 17:17+0200\n" +"POT-Creation-Date: 2012-04-02 03:24+0000\n" +"PO-Revision-Date: 2012-04-02 14:22+0200\n" "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" -"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n" +"Language-Team: Esperanto <gnome-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" -"X-Launchpad-Export-Date: 2011-05-06 14:56+0000\n" -"X-Generator: Launchpad (build 12981)\n" +"X-Launchpad-Export-Date: 2012-04-02 09:28+0000\n" +"X-Generator: Launchpad (build 15045)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: ../cli/src/connections.c:64 ../cli/src/connections.c:78 -#: ../cli/src/devices.c:101 ../cli/src/devices.c:114 ../cli/src/devices.c:124 -#: ../cli/src/devices.c:134 ../cli/src/devices.c:148 ../cli/src/devices.c:162 -#: ../cli/src/devices.c:173 ../cli/src/devices.c:184 ../cli/src/devices.c:193 -#: ../cli/src/devices.c:202 ../cli/src/devices.c:224 -msgid "NAME" -msgstr "NOMO" +#: ../cli/src/common.c:32 ../cli/src/common.c:44 ../cli/src/common.c:52 +#: ../cli/src/common.c:63 ../cli/src/connections.c:125 +#: ../cli/src/connections.c:159 +msgid "GROUP" +msgstr "GRUPO" #. 0 -#: ../cli/src/connections.c:65 ../cli/src/connections.c:79 -msgid "UUID" -msgstr "UUID" +#: ../cli/src/common.c:33 ../cli/src/common.c:53 +msgid "ADDRESS" +msgstr "ADRESO" #. 1 -#: ../cli/src/connections.c:66 -msgid "DEVICES" -msgstr "APARATOJ" +#: ../cli/src/common.c:34 ../cli/src/common.c:54 +msgid "ROUTE" +msgstr "KURSO" #. 2 -#: ../cli/src/connections.c:67 -msgid "DEFAULT" -msgstr "DEFAŬLTA" +#: ../cli/src/common.c:35 ../cli/src/common.c:55 +msgid "DNS" +msgstr "DNS" #. 3 -#: ../cli/src/connections.c:68 -msgid "SPEC-OBJECT" -msgstr "SPEC-OBJEKTO" +#: ../cli/src/common.c:36 ../cli/src/common.c:56 +msgid "DOMAIN" +msgstr "DOMAJNO" #. 4 -#: ../cli/src/connections.c:69 -msgid "VPN" -msgstr "VPN" +#: ../cli/src/common.c:37 +msgid "WINS" +msgstr "WINS" -#. 5 -#. 6 -#. 2 -#. 11 -#. 5 -#: ../cli/src/connections.c:70 ../cli/src/connections.c:85 -#: ../cli/src/devices.c:69 ../cli/src/devices.c:214 ../cli/src/devices.c:230 -msgid "DBUS-PATH" -msgstr "DBUS-VOJO" +#. 0 +#: ../cli/src/common.c:45 ../cli/src/common.c:64 +msgid "OPTION" +msgstr "OPCIO" + +#. 0 +#. used only for 'GENERAL' group listing +#: ../cli/src/connections.c:58 ../cli/src/connections.c:126 +#: ../cli/src/devices.c:102 ../cli/src/devices.c:123 ../cli/src/devices.c:133 +#: ../cli/src/devices.c:143 ../cli/src/devices.c:157 ../cli/src/devices.c:171 +#: ../cli/src/devices.c:193 +msgid "NAME" +msgstr "NOMO" + +#. 0 +#. 1 +#: ../cli/src/connections.c:59 ../cli/src/connections.c:127 +msgid "UUID" +msgstr "UUID" #. 1 #. 0 #. 1 #. 2 -#: ../cli/src/connections.c:80 ../cli/src/devices.c:67 -#: ../cli/src/devices.c:103 ../cli/src/devices.c:227 +#: ../cli/src/connections.c:60 ../cli/src/connections.c:160 +#: ../cli/src/devices.c:68 ../cli/src/devices.c:104 ../cli/src/devices.c:196 msgid "TYPE" msgstr "TIPO" #. 2 -#: ../cli/src/connections.c:81 +#: ../cli/src/connections.c:61 msgid "TIMESTAMP" msgstr "TEMPINDIKO" #. 3 -#: ../cli/src/connections.c:82 +#: ../cli/src/connections.c:62 msgid "TIMESTAMP-REAL" msgstr "REALA-TEMPINDIKO" #. 4 -#: ../cli/src/connections.c:83 +#: ../cli/src/connections.c:63 msgid "AUTOCONNECT" msgstr "AŬTOMATA-KONEKTO" #. 5 -#: ../cli/src/connections.c:84 +#: ../cli/src/connections.c:64 msgid "READONLY" msgstr "NUR-LEGI" -#: ../cli/src/connections.c:167 -#, c-format +#. 6 +#. 8 +#. 2 +#. 11 +#. 5 +#: ../cli/src/connections.c:65 ../cli/src/connections.c:134 +#: ../cli/src/devices.c:70 ../cli/src/devices.c:183 ../cli/src/devices.c:199 +msgid "DBUS-PATH" +msgstr "DBUS-VOJO" + +#. 2 +#: ../cli/src/connections.c:128 +msgid "DEVICES" +msgstr "APARATOJ" + +#. 3 +#. 1 +#. 6 +#. 1 +#: ../cli/src/connections.c:129 ../cli/src/devices.c:69 +#: ../cli/src/devices.c:109 ../cli/src/network-manager.c:39 +msgid "STATE" +msgstr "STATO" + +#. 4 +#: ../cli/src/connections.c:130 +msgid "DEFAULT" +msgstr "DEFAŬLTA" + +#. 5 +#: ../cli/src/connections.c:131 +msgid "DEFAULT6" +msgstr "DEFAŬLTO6" + +#. 6 +#: ../cli/src/connections.c:132 +msgid "SPEC-OBJECT" +msgstr "SPEC-OBJEKTO" + +#. 7 +#. 1 +#: ../cli/src/connections.c:133 ../cli/src/connections.c:147 +msgid "VPN" +msgstr "VPN" + +#. 9 +#: ../cli/src/connections.c:135 +msgid "CON-PATH" +msgstr "" + +#. 10 +#: ../cli/src/connections.c:136 +msgid "ZONE" +msgstr "" + +#. 11 +#: ../cli/src/connections.c:137 +msgid "MASTER-PATH" +msgstr "" + +#: ../cli/src/connections.c:145 ../cli/src/devices.c:79 +msgid "GENERAL" +msgstr "ĜENERALE" + +#. 0 +#: ../cli/src/connections.c:146 +msgid "IP" +msgstr "IP" + +#. 1 +#: ../cli/src/connections.c:161 +msgid "USERNAME" +msgstr "UZANTONOMO" + +#. 2 +#: ../cli/src/connections.c:162 +msgid "GATEWAY" +msgstr "KLUZO" + +#. 3 +#: ../cli/src/connections.c:163 +msgid "BANNER" +msgstr "" + +#. 4 +#: ../cli/src/connections.c:164 +msgid "VPN-STATE" +msgstr "VPN-STATO" + +#. 5 +#: ../cli/src/connections.c:165 +msgid "CFG" +msgstr "" + +#: ../cli/src/connections.c:186 +#, fuzzy, c-format msgid "" "Usage: nmcli con { COMMAND | help }\n" -" COMMAND := { list | status | up | down }\n" +" COMMAND := { list | status | up | down | delete }\n" "\n" " list [id <id> | uuid <id>]\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--" "nowait] [--timeout <timeout>]\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout " +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout " "<timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" msgstr "" "Uzo: nmcli con { KOMANDO | help }\n" " KOMANDO := { list | status | up | down }\n" @@ -123,570 +226,609 @@ msgstr "" "<timeout>]\n" " down id <id> | uuid <id>\n" -#: ../cli/src/connections.c:220 ../cli/src/connections.c:542 +#: ../cli/src/connections.c:240 ../cli/src/connections.c:591 #, c-format msgid "Error: 'con list': %s" msgstr "Eraro: 'con list': %s" -#: ../cli/src/connections.c:222 ../cli/src/connections.c:544 +#: ../cli/src/connections.c:242 ../cli/src/connections.c:593 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Eraro: 'con list': %s; permesataj kampoj: %s" -#: ../cli/src/connections.c:230 +#: ../cli/src/connections.c:250 msgid "Connection details" msgstr "Konektodetaloj" -#: ../cli/src/connections.c:417 +#: ../cli/src/connections.c:466 msgid "never" msgstr "neniam" #. "CAPABILITIES" #. Print header #. "WIFI-PROPERTIES" -#: ../cli/src/connections.c:418 ../cli/src/connections.c:419 -#: ../cli/src/connections.c:597 ../cli/src/connections.c:599 -#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520 -#: ../cli/src/settings.c:563 ../cli/src/settings.c:663 -#: ../cli/src/settings.c:937 ../cli/src/settings.c:938 -#: ../cli/src/settings.c:940 ../cli/src/settings.c:942 -#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1068 -#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1148 -#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1150 -#: ../cli/src/settings.c:1151 ../cli/src/settings.c:1152 -#: ../cli/src/settings.c:1153 ../cli/src/settings.c:1154 -#: ../cli/src/settings.c:1155 ../cli/src/settings.c:1156 -#: ../cli/src/settings.c:1157 ../cli/src/settings.c:1158 -#: ../cli/src/settings.c:1159 ../cli/src/settings.c:1160 -#: ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:467 ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 ../cli/src/devices.c:762 ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 ../cli/src/devices.c:821 ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 ../cli/src/devices.c:824 ../cli/src/devices.c:825 +#: ../cli/src/settings.c:656 ../cli/src/settings.c:726 +#: ../cli/src/settings.c:846 ../cli/src/settings.c:1128 +#: ../cli/src/settings.c:1129 ../cli/src/settings.c:1131 +#: ../cli/src/settings.c:1133 ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1262 ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1340 ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 ../cli/src/settings.c:1423 msgid "yes" msgstr "jes" -#: ../cli/src/connections.c:418 ../cli/src/connections.c:419 -#: ../cli/src/connections.c:597 ../cli/src/connections.c:599 -#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520 -#: ../cli/src/settings.c:522 ../cli/src/settings.c:563 -#: ../cli/src/settings.c:663 ../cli/src/settings.c:937 -#: ../cli/src/settings.c:938 ../cli/src/settings.c:940 -#: ../cli/src/settings.c:942 ../cli/src/settings.c:1067 -#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069 -#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149 -#: ../cli/src/settings.c:1150 ../cli/src/settings.c:1151 -#: ../cli/src/settings.c:1152 ../cli/src/settings.c:1153 -#: ../cli/src/settings.c:1154 ../cli/src/settings.c:1155 -#: ../cli/src/settings.c:1156 ../cli/src/settings.c:1157 -#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1159 -#: ../cli/src/settings.c:1160 ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:467 ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 ../cli/src/devices.c:762 ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 ../cli/src/devices.c:821 ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 ../cli/src/devices.c:824 ../cli/src/devices.c:825 +#: ../cli/src/settings.c:656 ../cli/src/settings.c:658 +#: ../cli/src/settings.c:726 ../cli/src/settings.c:846 +#: ../cli/src/settings.c:1128 ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1131 ../cli/src/settings.c:1133 +#: ../cli/src/settings.c:1134 ../cli/src/settings.c:1262 +#: ../cli/src/settings.c:1263 ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 ../cli/src/settings.c:1340 +#: ../cli/src/settings.c:1341 ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1423 msgid "no" msgstr "ne" -#: ../cli/src/connections.c:493 +#: ../cli/src/connections.c:542 msgid "Connection list" msgstr "Konektolisto" -#: ../cli/src/connections.c:506 ../cli/src/connections.c:1378 -#: ../cli/src/connections.c:1393 ../cli/src/connections.c:1402 -#: ../cli/src/connections.c:1412 ../cli/src/connections.c:1424 -#: ../cli/src/connections.c:1519 ../cli/src/devices.c:1190 -#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314 -#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1534 -#: ../cli/src/devices.c:1541 +#: ../cli/src/connections.c:555 ../cli/src/connections.c:1088 +#: ../cli/src/connections.c:1456 ../cli/src/connections.c:1471 +#: ../cli/src/connections.c:1480 ../cli/src/connections.c:1490 +#: ../cli/src/connections.c:1502 ../cli/src/connections.c:1601 +#: ../cli/src/connections.c:1703 ../cli/src/devices.c:1202 +#: ../cli/src/devices.c:1212 ../cli/src/devices.c:1326 +#: ../cli/src/devices.c:1334 ../cli/src/devices.c:1547 +#: ../cli/src/devices.c:1554 #, c-format msgid "Error: %s argument is missing." msgstr "Eraro: argumento %s mankas." -#: ../cli/src/connections.c:519 +#: ../cli/src/connections.c:568 #, c-format msgid "Error: %s - no such connection." msgstr "Eraro: %s - neniu tia konekto." -#: ../cli/src/connections.c:525 ../cli/src/connections.c:1437 -#: ../cli/src/connections.c:1536 ../cli/src/devices.c:987 -#: ../cli/src/devices.c:1067 ../cli/src/devices.c:1214 -#: ../cli/src/devices.c:1327 ../cli/src/devices.c:1547 +#: ../cli/src/connections.c:574 ../cli/src/connections.c:1515 +#: ../cli/src/connections.c:1618 ../cli/src/connections.c:1710 +#: ../cli/src/devices.c:999 ../cli/src/devices.c:1079 +#: ../cli/src/devices.c:1226 ../cli/src/devices.c:1340 +#: ../cli/src/devices.c:1560 #, c-format msgid "Unknown parameter: %s\n" msgstr "Nekonata parametro: %s\n" -#: ../cli/src/connections.c:534 +#: ../cli/src/connections.c:583 #, c-format msgid "Error: no valid parameter specified." msgstr "Eraro: neniu valida parametro difinita." -#: ../cli/src/connections.c:549 ../cli/src/connections.c:1627 -#: ../cli/src/devices.c:1755 ../cli/src/network-manager.c:463 +#: ../cli/src/connections.c:598 ../cli/src/connections.c:1803 +#: ../cli/src/devices.c:1768 ../cli/src/network-manager.c:456 #, c-format msgid "Error: %s." msgstr "Eraro: %s." +#: ../cli/src/connections.c:611 +msgid "activating" +msgstr "enŝaltas" + +#: ../cli/src/connections.c:613 +msgid "activated" +msgstr "enŝaltite" + +#: ../cli/src/connections.c:615 ../cli/src/devices.c:263 +msgid "deactivating" +msgstr "malaktivigante" + +#: ../cli/src/connections.c:618 ../cli/src/connections.c:641 +#: ../cli/src/connections.c:1327 ../cli/src/devices.c:267 +#: ../cli/src/devices.c:796 ../cli/src/network-manager.c:111 +#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:185 ../cli/src/network-manager.c:291 +#: ../cli/src/network-manager.c:346 ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:423 ../cli/src/settings.c:563 +#: ../cli/src/settings.c:591 ../cli/src/utils.c:499 ../src/main.c:450 +#: ../src/main.c:469 +msgid "unknown" +msgstr "nekonate" + +#: ../cli/src/connections.c:627 +msgid "VPN connecting (prepare)" +msgstr "VPN konektas (preparo)" + +#: ../cli/src/connections.c:629 +msgid "VPN connecting (need authentication)" +msgstr "VPN konektas (bezonas aŭtentigon)" + +#: ../cli/src/connections.c:631 +msgid "VPN connecting" +msgstr "VPN konektas" + +#: ../cli/src/connections.c:633 +msgid "VPN connecting (getting IP configuration)" +msgstr "VPN konektas (akiras IP-agordaron)" + +#: ../cli/src/connections.c:635 +msgid "VPN connected" +msgstr "VPN konektita" + #: ../cli/src/connections.c:637 +msgid "VPN connection failed" +msgstr "VPN-konekto fiaskis" + +#: ../cli/src/connections.c:639 +msgid "VPN disconnected" +msgstr "VPN malkonektis" + +#: ../cli/src/connections.c:892 ../cli/src/connections.c:1116 #, c-format msgid "Error: 'con status': %s" msgstr "Eraro: 'con status': %s" -#: ../cli/src/connections.c:639 +#: ../cli/src/connections.c:894 ../cli/src/connections.c:1118 #, c-format msgid "Error: 'con status': %s; allowed fields: %s" msgstr "Eraro: 'con status': %s; permesataj kampoj: %s" -#: ../cli/src/connections.c:647 ../cli/src/connections.c:1452 -#: ../cli/src/connections.c:1551 ../cli/src/devices.c:1014 -#: ../cli/src/devices.c:1076 ../cli/src/devices.c:1229 -#: ../cli/src/devices.c:1357 ../cli/src/devices.c:1576 +#: ../cli/src/connections.c:902 +msgid "Active connection details" +msgstr "Detaloj de aktivaj konektoj" + +#: ../cli/src/connections.c:1038 ../cli/src/connections.c:1530 +#: ../cli/src/connections.c:1633 ../cli/src/connections.c:1724 +#: ../cli/src/devices.c:1026 ../cli/src/devices.c:1088 +#: ../cli/src/devices.c:1241 ../cli/src/devices.c:1370 +#: ../cli/src/devices.c:1589 #, c-format msgid "Error: Can't find out if NetworkManager is running: %s." -msgstr "Eraro: Ne povas scii ĉu NetworkManager rulas: %s." +msgstr "Eraro: Ne eblas eltrovi ĉu NetworkManager rulas: %s." -#: ../cli/src/connections.c:651 ../cli/src/connections.c:1456 -#: ../cli/src/connections.c:1555 ../cli/src/devices.c:1018 -#: ../cli/src/devices.c:1080 ../cli/src/devices.c:1233 -#: ../cli/src/devices.c:1361 ../cli/src/devices.c:1580 +#: ../cli/src/connections.c:1042 ../cli/src/connections.c:1534 +#: ../cli/src/connections.c:1637 ../cli/src/connections.c:1728 +#: ../cli/src/devices.c:1030 ../cli/src/devices.c:1092 +#: ../cli/src/devices.c:1245 ../cli/src/devices.c:1374 +#: ../cli/src/devices.c:1593 #, c-format msgid "Error: NetworkManager is not running." msgstr "Eraro: NetworkManager ne rulas." -#: ../cli/src/connections.c:659 +#: ../cli/src/connections.c:1074 msgid "Active connections" msgstr "Aktivaj konektoj" -#: ../cli/src/connections.c:1095 +#: ../cli/src/connections.c:1099 +#, c-format +msgid "Error: '%s' is not an active connection." +msgstr "Eraro: '%s' ne estas aktiva konekto." + +#: ../cli/src/connections.c:1104 +#, c-format +msgid "Error: unknown parameter: %s" +msgstr "Eraro: nekonata parametro: %s" + +#: ../cli/src/connections.c:1211 #, c-format msgid "no active connection on device '%s'" msgstr "neniu aktiva konekto sur aparato '%s'" -#: ../cli/src/connections.c:1103 +#: ../cli/src/connections.c:1219 #, c-format msgid "no active connection or device" msgstr "neniu aktiva konekto aŭ aparato" -#: ../cli/src/connections.c:1174 +#: ../cli/src/connections.c:1290 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "aparato '%s' ne kongruas kun konekto '%s'" -#: ../cli/src/connections.c:1176 +#: ../cli/src/connections.c:1292 #, c-format msgid "no device found for connection '%s'" msgstr "neniu aparato trovita por konekto '%s'" -#: ../cli/src/connections.c:1187 -msgid "activating" -msgstr "enŝaltas" - -#: ../cli/src/connections.c:1189 -msgid "activated" -msgstr "enŝaltite" - -#: ../cli/src/connections.c:1191 ../cli/src/devices.c:304 -msgid "deactivating" -msgstr "malaktivigante" - -#: ../cli/src/connections.c:1194 ../cli/src/connections.c:1217 -#: ../cli/src/connections.c:1250 ../cli/src/devices.c:308 -#: ../cli/src/devices.c:688 ../cli/src/network-manager.c:118 -#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:183 -#: ../cli/src/network-manager.c:192 ../cli/src/network-manager.c:298 -#: ../cli/src/network-manager.c:353 ../cli/src/network-manager.c:391 -#: ../cli/src/network-manager.c:430 ../cli/src/settings.c:485 -#: ../cli/src/utils.c:396 -msgid "unknown" -msgstr "nekonate" - -#: ../cli/src/connections.c:1203 -msgid "VPN connecting (prepare)" -msgstr "VPN konektas (preparo)" - -#: ../cli/src/connections.c:1205 -msgid "VPN connecting (need authentication)" -msgstr "VPN konektas (bezonas aŭtentigon)" - -#: ../cli/src/connections.c:1207 -msgid "VPN connecting" -msgstr "VPN konektas" - -#: ../cli/src/connections.c:1209 -msgid "VPN connecting (getting IP configuration)" -msgstr "VPN konektas (akiras IP-agordaron)" - -#: ../cli/src/connections.c:1211 -msgid "VPN connected" -msgstr "VPN konektita" - -#: ../cli/src/connections.c:1213 -msgid "VPN connection failed" -msgstr "VPN-konekto fiaskis" - -#: ../cli/src/connections.c:1215 -msgid "VPN disconnected" -msgstr "VPN malkonektis" - -#: ../cli/src/connections.c:1226 +#: ../cli/src/connections.c:1303 msgid "unknown reason" msgstr "nekonata kialo" -#: ../cli/src/connections.c:1228 +#: ../cli/src/connections.c:1305 msgid "none" msgstr "neniu" -#: ../cli/src/connections.c:1230 +#: ../cli/src/connections.c:1307 msgid "the user was disconnected" msgstr "la uzanto estis malkonektite" -#: ../cli/src/connections.c:1232 +#: ../cli/src/connections.c:1309 msgid "the base network connection was interrupted" msgstr "la baza retkonekto estis interrompite" -#: ../cli/src/connections.c:1234 +#: ../cli/src/connections.c:1311 msgid "the VPN service stopped unexpectedly" msgstr "la VPN-servo neatendite ĉesis" -#: ../cli/src/connections.c:1236 +#: ../cli/src/connections.c:1313 msgid "the VPN service returned invalid configuration" msgstr "la VPN-servo revenigis nevalidan agordaron" -#: ../cli/src/connections.c:1238 +#: ../cli/src/connections.c:1315 msgid "the connection attempt timed out" msgstr "la konektoprovo eltempiĝis" -#: ../cli/src/connections.c:1240 +#: ../cli/src/connections.c:1317 msgid "the VPN service did not start in time" msgstr "la VPN-servo ne startis ĝustatempe" -#: ../cli/src/connections.c:1242 +#: ../cli/src/connections.c:1319 msgid "the VPN service failed to start" msgstr "la VPN-servo fiaskis starti" -#: ../cli/src/connections.c:1244 +#: ../cli/src/connections.c:1321 msgid "no valid VPN secrets" msgstr "neniu valida VPN-sekretoj" -#: ../cli/src/connections.c:1246 +#: ../cli/src/connections.c:1323 msgid "invalid VPN secrets" msgstr "nevalidaj VPN-sekretoj" -#: ../cli/src/connections.c:1248 +#: ../cli/src/connections.c:1325 msgid "the connection was removed" msgstr "la konekto estis forigita" -#: ../cli/src/connections.c:1262 +#: ../cli/src/connections.c:1339 #, c-format msgid "state: %s\n" msgstr "stato: %s\n" -#: ../cli/src/connections.c:1265 ../cli/src/connections.c:1291 +#: ../cli/src/connections.c:1342 ../cli/src/connections.c:1368 #, c-format msgid "Connection activated\n" msgstr "Konekto enŝaltita\n" -#: ../cli/src/connections.c:1268 +#: ../cli/src/connections.c:1345 #, c-format msgid "Error: Connection activation failed." msgstr "Eraro: Enŝalto de konekto fiaskis." -#: ../cli/src/connections.c:1287 +#: ../cli/src/connections.c:1364 #, c-format msgid "state: %s (%d)\n" msgstr "stato: %s (%d)\n" -#: ../cli/src/connections.c:1297 +#: ../cli/src/connections.c:1374 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Eraro: Enŝalto de konekto fiaskis: %s." -#: ../cli/src/connections.c:1314 ../cli/src/devices.c:1136 +#: ../cli/src/connections.c:1391 ../cli/src/devices.c:1148 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Eraro: Eltempiĝo finiĝis %d sek." -#: ../cli/src/connections.c:1327 +#: ../cli/src/connections.c:1404 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Eraro: Enŝalto de konekto fiaskis: %s" -#: ../cli/src/connections.c:1333 +#: ../cli/src/connections.c:1410 #, c-format msgid "Active connection state: %s\n" msgstr "Stato de aktiva konekto: %s\n" -#: ../cli/src/connections.c:1334 +#: ../cli/src/connections.c:1411 #, c-format msgid "Active connection path: %s\n" msgstr "Vojo de aktiva konekto: %s\n" -#: ../cli/src/connections.c:1386 ../cli/src/connections.c:1527 +#: ../cli/src/connections.c:1464 ../cli/src/connections.c:1609 +#: ../cli/src/connections.c:1737 #, c-format msgid "Error: Unknown connection: %s." msgstr "Eraro: Nekonata konekto: %s." -#: ../cli/src/connections.c:1432 ../cli/src/devices.c:1208 +#: ../cli/src/connections.c:1510 ../cli/src/devices.c:1220 #, c-format msgid "Error: timeout value '%s' is not valid." msgstr "Eraro: eltempiĝa valoro '%s' ne validas." -#: ../cli/src/connections.c:1445 ../cli/src/connections.c:1544 +#: ../cli/src/connections.c:1523 ../cli/src/connections.c:1626 +#: ../cli/src/connections.c:1717 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Eraro: 'id' aŭ 'uuid' devas esti specifata." -#: ../cli/src/connections.c:1473 +#: ../cli/src/connections.c:1555 #, c-format msgid "Error: No suitable device found: %s." msgstr "Eraro: Trovis neniun taŭgan aparaton: %s." -#: ../cli/src/connections.c:1475 +#: ../cli/src/connections.c:1557 #, c-format msgid "Error: No suitable device found." msgstr "Eraro: Trovis neniun taŭgan aparaton." -#: ../cli/src/connections.c:1580 +#: ../cli/src/connections.c:1662 #, c-format msgid "Warning: Connection not active\n" msgstr "Atenton: Konekto ne aktivas\n" -#: ../cli/src/connections.c:1618 +#: ../cli/src/connections.c:1676 +#, c-format +msgid "Error: Connection deletion failed: %s" +msgstr "Eraro: Forigo de konekto malsukcesis: %s" + +#: ../cli/src/connections.c:1794 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Eraro: 'con'-komando '%s' ne validas." -#: ../cli/src/connections.c:1683 +#: ../cli/src/connections.c:1859 #, c-format msgid "Error: could not connect to D-Bus." -msgstr "Eraro: ne povis konekti al D-Bus." +msgstr "Eraro: ne eblis konekti al D-Bus." -#: ../cli/src/connections.c:1690 +#: ../cli/src/connections.c:1867 #, c-format msgid "Error: Could not get system settings." -msgstr "Eraro: Ne povis akiri sistemajn agordojn." +msgstr "Eraro: Ne eblis akiri sistemajn agordojn." -#: ../cli/src/connections.c:1700 +#: ../cli/src/connections.c:1877 #, c-format msgid "Error: Can't obtain connections: settings service is not running." -msgstr "Eraro: Ne povas obteni konektojn: agordo-servo ne aktivas." +msgstr "Eraro: Ne eblas obteni konektojn: agordo-servo ne aktivas." #. 0 #. 9 #. 3 -#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:212 -#: ../cli/src/devices.c:228 +#: ../cli/src/devices.c:67 ../cli/src/devices.c:103 ../cli/src/devices.c:181 +#: ../cli/src/devices.c:197 msgid "DEVICE" msgstr "APARATO" -#. 1 -#. 4 -#. 1 -#: ../cli/src/devices.c:68 ../cli/src/devices.c:106 -#: ../cli/src/network-manager.c:39 -msgid "STATE" -msgstr "STATO" - -#: ../cli/src/devices.c:78 -msgid "GENERAL" -msgstr "ĜENERALE" - #. 0 -#: ../cli/src/devices.c:79 +#: ../cli/src/devices.c:80 msgid "CAPABILITIES" msgstr "KAPABLOJ" #. 1 -#: ../cli/src/devices.c:80 +#: ../cli/src/devices.c:81 msgid "WIFI-PROPERTIES" msgstr "WIFI-ECOJ" #. 2 -#: ../cli/src/devices.c:81 +#: ../cli/src/devices.c:82 msgid "AP" msgstr "AP" #. 3 -#: ../cli/src/devices.c:82 +#: ../cli/src/devices.c:83 msgid "WIRED-PROPERTIES" msgstr "DRATA-ECOJ" #. 4 -#: ../cli/src/devices.c:83 +#: ../cli/src/devices.c:84 msgid "WIMAX-PROPERTIES" msgstr "WIMAX-ECOJ" #. 5 #. 0 -#: ../cli/src/devices.c:84 ../cli/src/devices.c:225 +#: ../cli/src/devices.c:85 ../cli/src/devices.c:194 msgid "NSP" msgstr "" #. 6 -#: ../cli/src/devices.c:85 -msgid "IP4-SETTINGS" -msgstr "IP4-AGORDOJ" +#: ../cli/src/devices.c:86 +msgid "IP4" +msgstr "IP4" #. 7 -#: ../cli/src/devices.c:86 -msgid "IP4-DNS" -msgstr "IP4-DNS" +#: ../cli/src/devices.c:87 +msgid "DHCP4" +msgstr "DHCP4" #. 8 -#: ../cli/src/devices.c:87 -msgid "IP6-SETTINGS" -msgstr "IP6-AGORDOJ" +#: ../cli/src/devices.c:88 +msgid "IP6" +msgstr "IP6" #. 9 -#: ../cli/src/devices.c:88 -msgid "IP6-DNS" -msgstr "IP6-DNS" +#: ../cli/src/devices.c:89 +msgid "DHCP6" +msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:105 +msgid "VENDOR" +msgstr "VENDISTO" + +#. 3 +#: ../cli/src/devices.c:106 +msgid "PRODUCT" +msgstr "PRODUKTO" + +#. 4 +#: ../cli/src/devices.c:107 msgid "DRIVER" msgstr "PELILO" -#. 3 -#: ../cli/src/devices.c:105 +#. 5 +#: ../cli/src/devices.c:108 msgid "HWADDR" msgstr "APARATADRESO" -#. 0 +#. 7 +#: ../cli/src/devices.c:110 +msgid "REASON" +msgstr "KIALO" + +#. 8 +#: ../cli/src/devices.c:111 +msgid "UDI" +msgstr "" + +#. 9 +#: ../cli/src/devices.c:112 +msgid "IP-IFACE" +msgstr "" + +#. 10 +#: ../cli/src/devices.c:113 +msgid "NM-MANAGED" +msgstr "" + +#. 11 +#: ../cli/src/devices.c:114 +msgid "FIRMWARE-MISSING" +msgstr "" + +#. 12 #: ../cli/src/devices.c:115 +msgid "CONNECTION" +msgstr "KONEKTO" + +#. 0 +#: ../cli/src/devices.c:124 msgid "CARRIER-DETECT" msgstr "PORTANTO-REKONO" #. 1 -#: ../cli/src/devices.c:116 +#: ../cli/src/devices.c:125 msgid "SPEED" msgstr "RAPIDO" #. 0 -#: ../cli/src/devices.c:125 +#: ../cli/src/devices.c:134 msgid "CARRIER" msgstr "PORTANTO" #. 0 -#: ../cli/src/devices.c:135 +#: ../cli/src/devices.c:144 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:136 +#: ../cli/src/devices.c:145 msgid "WPA" msgstr "WPA" #. 2 -#: ../cli/src/devices.c:137 +#: ../cli/src/devices.c:146 msgid "WPA2" msgstr "WPA2" #. 3 -#: ../cli/src/devices.c:138 +#: ../cli/src/devices.c:147 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:139 +#: ../cli/src/devices.c:148 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:149 +#: ../cli/src/devices.c:158 msgid "CTR-FREQ" msgstr "" #. 1 -#: ../cli/src/devices.c:150 +#: ../cli/src/devices.c:159 msgid "RSSI" msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:151 +#: ../cli/src/devices.c:160 msgid "CINR" msgstr "CINR" #. 3 -#: ../cli/src/devices.c:152 +#: ../cli/src/devices.c:161 msgid "TX-POW" msgstr "" #. 4 -#: ../cli/src/devices.c:153 +#: ../cli/src/devices.c:162 msgid "BSID" -msgstr "" - -#. 0 -#: ../cli/src/devices.c:163 ../cli/src/devices.c:174 -msgid "ADDRESS" -msgstr "ADRESO" - -#. 1 -#: ../cli/src/devices.c:164 ../cli/src/devices.c:175 -msgid "PREFIX" -msgstr "PREFIKSO" - -#. 2 -#: ../cli/src/devices.c:165 ../cli/src/devices.c:176 -msgid "GATEWAY" -msgstr "KLUZO" +msgstr "BSID" #. 0 -#: ../cli/src/devices.c:185 ../cli/src/devices.c:194 -msgid "DNS" -msgstr "DNS" - -#. 0 -#: ../cli/src/devices.c:203 +#: ../cli/src/devices.c:172 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:204 +#: ../cli/src/devices.c:173 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:205 +#: ../cli/src/devices.c:174 msgid "MODE" msgstr "REĜIMO" #. 3 -#: ../cli/src/devices.c:206 +#: ../cli/src/devices.c:175 msgid "FREQ" msgstr "FREKV" #. 4 -#: ../cli/src/devices.c:207 +#: ../cli/src/devices.c:176 msgid "RATE" msgstr "TRANSMETRAPIDO" #. 5 #. 1 -#: ../cli/src/devices.c:208 ../cli/src/devices.c:226 +#: ../cli/src/devices.c:177 ../cli/src/devices.c:195 msgid "SIGNAL" msgstr "SIGNALO" #. 6 -#: ../cli/src/devices.c:209 +#: ../cli/src/devices.c:178 msgid "SECURITY" msgstr "SEKURECO" #. 7 -#: ../cli/src/devices.c:210 +#: ../cli/src/devices.c:179 msgid "WPA-FLAGS" msgstr "WPA-FLAGOJ" #. 8 -#: ../cli/src/devices.c:211 +#: ../cli/src/devices.c:180 msgid "RSN-FLAGS" msgstr "RSN-FLAGOJ" #. 10 #. 4 -#: ../cli/src/devices.c:213 ../cli/src/devices.c:229 +#: ../cli/src/devices.c:182 ../cli/src/devices.c:198 msgid "ACTIVE" msgstr "AKTIVE" -#: ../cli/src/devices.c:256 -#, c-format +#: ../cli/src/devices.c:215 +#, fuzzy, c-format msgid "" "Usage: nmcli dev { COMMAND | help }\n" "\n" @@ -697,7 +839,7 @@ msgid "" " status\n" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" -" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" @@ -714,256 +856,462 @@ msgstr "" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" -#: ../cli/src/devices.c:284 +#: ../cli/src/devices.c:243 msgid "unmanaged" msgstr "nemastrumate" -#: ../cli/src/devices.c:286 +#: ../cli/src/devices.c:245 msgid "unavailable" msgstr "neatingeble" -#: ../cli/src/devices.c:288 ../cli/src/network-manager.c:115 +#: ../cli/src/devices.c:247 ../cli/src/network-manager.c:108 msgid "disconnected" msgstr "nekonektite" -#: ../cli/src/devices.c:290 +#: ../cli/src/devices.c:249 msgid "connecting (prepare)" msgstr "konektas (preparo)" -#: ../cli/src/devices.c:292 +#: ../cli/src/devices.c:251 msgid "connecting (configuring)" msgstr "konektas (agordado)" -#: ../cli/src/devices.c:294 +#: ../cli/src/devices.c:253 msgid "connecting (need authentication)" msgstr "konektas (bezonas aŭtentigon)" -#: ../cli/src/devices.c:296 +#: ../cli/src/devices.c:255 msgid "connecting (getting IP configuration)" msgstr "konektas (akiras IP-agordaron)" -#: ../cli/src/devices.c:298 +#: ../cli/src/devices.c:257 msgid "connecting (checking IP connectivity)" msgstr "" -#: ../cli/src/devices.c:300 +#: ../cli/src/devices.c:259 msgid "connecting (starting secondary connections)" msgstr "" -#: ../cli/src/devices.c:302 ../cli/src/network-manager.c:111 +#: ../cli/src/devices.c:261 ../cli/src/network-manager.c:104 msgid "connected" msgstr "konektite" -#: ../cli/src/devices.c:306 +#: ../cli/src/devices.c:265 msgid "connection failed" msgstr "konekto fiaskis" -#: ../cli/src/devices.c:331 ../cli/src/devices.c:341 ../cli/src/devices.c:501 -#: ../cli/src/devices.c:545 +#: ../cli/src/devices.c:276 +msgid "No reason given" +msgstr "Nenia kialo donita" + +#: ../cli/src/devices.c:279 +msgid "Unknown error" +msgstr "Nekonata eraro" + +#: ../cli/src/devices.c:282 +msgid "Device is now managed" +msgstr "Aparato ne estas administrita" + +#: ../cli/src/devices.c:285 +msgid "Device is now unmanaged" +msgstr "Aparato nun estas administrita" + +#: ../cli/src/devices.c:288 +msgid "The device could not be readied for configuration" +msgstr "" + +#: ../cli/src/devices.c:291 +msgid "" +"IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "" + +#: ../cli/src/devices.c:294 +msgid "The IP configuration is no longer valid" +msgstr "" + +#: ../cli/src/devices.c:297 +msgid "Secrets were required, but not provided" +msgstr "" + +#: ../cli/src/devices.c:300 +msgid "802.1X supplicant disconnected" +msgstr "" + +#: ../cli/src/devices.c:303 +msgid "802.1X supplicant configuration failed" +msgstr "" + +#: ../cli/src/devices.c:306 +msgid "802.1X supplicant failed" +msgstr "" + +#: ../cli/src/devices.c:309 +msgid "802.1X supplicant took too long to authenticate" +msgstr "" + +#: ../cli/src/devices.c:312 +msgid "PPP service failed to start" +msgstr "la PPP-servo malsukcesis starti" + +#: ../cli/src/devices.c:315 +msgid "PPP service disconnected" +msgstr "la PPP-servo malkonektis" + +#: ../cli/src/devices.c:318 +msgid "PPP failed" +msgstr "" + +#: ../cli/src/devices.c:321 +msgid "DHCP client failed to start" +msgstr "la DHCP-servo malsukcesis starti" + +#: ../cli/src/devices.c:324 +msgid "DHCP client error" +msgstr "Eraro de la DHCP-kliento" + +#: ../cli/src/devices.c:327 +msgid "DHCP client failed" +msgstr "DHCP-kliento malsukcesis" + +#: ../cli/src/devices.c:330 +#, fuzzy +msgid "Shared connection service failed to start" +msgstr "la servo malsukcesis starti" + +#: ../cli/src/devices.c:333 +msgid "Shared connection service failed" +msgstr "" + +#: ../cli/src/devices.c:336 +msgid "AutoIP service failed to start" +msgstr "la AutoIP-servo malsukcesis starti" + +#: ../cli/src/devices.c:339 +msgid "AutoIP service error" +msgstr "" + +#: ../cli/src/devices.c:342 +msgid "AutoIP service failed" +msgstr "la AutoIP-servo malsukcesis starti" + +#: ../cli/src/devices.c:345 +msgid "The line is busy" +msgstr "" + +#: ../cli/src/devices.c:348 +msgid "No dial tone" +msgstr "" + +#: ../cli/src/devices.c:351 +msgid "No carrier could be established" +msgstr "" + +#: ../cli/src/devices.c:354 +msgid "The dialing request timed out" +msgstr "" + +#: ../cli/src/devices.c:357 +msgid "The dialing attempt failed" +msgstr "" + +#: ../cli/src/devices.c:360 +msgid "Modem initialization failed" +msgstr "" + +#: ../cli/src/devices.c:363 +msgid "Failed to select the specified APN" +msgstr "" + +#: ../cli/src/devices.c:366 +msgid "Not searching for networks" +msgstr "" + +#: ../cli/src/devices.c:369 +msgid "Network registration denied" +msgstr "" + +#: ../cli/src/devices.c:372 +msgid "Network registration timed out" +msgstr "" + +#: ../cli/src/devices.c:375 +msgid "Failed to register with the requested network" +msgstr "" + +#: ../cli/src/devices.c:378 +msgid "PIN check failed" +msgstr "" + +#: ../cli/src/devices.c:381 +msgid "Necessary firmware for the device may be missing" +msgstr "" + +#: ../cli/src/devices.c:384 +msgid "The device was removed" +msgstr "La aparato estas forigita" + +#: ../cli/src/devices.c:387 +msgid "NetworkManager went to sleep" +msgstr "" + +#: ../cli/src/devices.c:390 +msgid "The device's active connection disappeared" +msgstr "" + +#: ../cli/src/devices.c:393 +msgid "Device disconnected by user or client" +msgstr "" + +#: ../cli/src/devices.c:396 +msgid "Carrier/link changed" +msgstr "" + +#: ../cli/src/devices.c:399 +msgid "The device's existing connection was assumed" +msgstr "" + +#: ../cli/src/devices.c:402 +msgid "The supplicant is now available" +msgstr "" + +#: ../cli/src/devices.c:405 +msgid "The modem could not be found" +msgstr "" + +#: ../cli/src/devices.c:408 +msgid "The Bluetooth connection failed or timed out" +msgstr "" + +#: ../cli/src/devices.c:411 +msgid "GSM Modem's SIM card not inserted" +msgstr "" + +#: ../cli/src/devices.c:414 +msgid "GSM Modem's SIM PIN required" +msgstr "" + +#: ../cli/src/devices.c:417 +msgid "GSM Modem's SIM PUK required" +msgstr "" + +#: ../cli/src/devices.c:420 +msgid "GSM Modem's SIM wrong" +msgstr "" + +#: ../cli/src/devices.c:423 +msgid "InfiniBand device does not support connected mode" +msgstr "" + +#: ../cli/src/devices.c:426 +msgid "A dependency of the connection failed" +msgstr "" + +#: ../cli/src/devices.c:428 ../cli/src/devices.c:451 ../cli/src/devices.c:467 +#: ../cli/src/devices.c:587 ../cli/src/devices.c:631 msgid "Unknown" msgstr "Nekonate" -#: ../cli/src/devices.c:374 +#: ../cli/src/devices.c:500 msgid "(none)" msgstr "(neniu)" -#: ../cli/src/devices.c:399 -#, c-format -msgid "%s: error converting IP4 address 0x%X" -msgstr "%s: eraro dum konverto de IP4-adreso 0x%X" - -#: ../cli/src/devices.c:470 +#: ../cli/src/devices.c:556 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:471 +#: ../cli/src/devices.c:557 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:480 +#: ../cli/src/devices.c:566 msgid "Encrypted: " msgstr "Ĉifrite: " -#: ../cli/src/devices.c:485 +#: ../cli/src/devices.c:571 msgid "WEP " msgstr "WEP " -#: ../cli/src/devices.c:487 +#: ../cli/src/devices.c:573 msgid "WPA " msgstr "WPA " -#: ../cli/src/devices.c:489 +#: ../cli/src/devices.c:575 msgid "WPA2 " msgstr "WPA2 " -#: ../cli/src/devices.c:492 +#: ../cli/src/devices.c:578 msgid "Enterprise " msgstr "Entrepreno " -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:587 msgid "Ad-Hoc" msgstr "Laŭcela" -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:587 msgid "Infrastructure" msgstr "Infrastrukturo" -#: ../cli/src/devices.c:536 +#: ../cli/src/devices.c:622 msgid "Home" msgstr "Hejmo" -#: ../cli/src/devices.c:539 +#: ../cli/src/devices.c:625 msgid "Partner" msgstr "Partnero" -#: ../cli/src/devices.c:542 +#: ../cli/src/devices.c:628 msgid "Roaming" -msgstr "" +msgstr "Retmigrado" -#: ../cli/src/devices.c:612 +#: ../cli/src/devices.c:700 #, c-format msgid "Error: 'dev list': %s" msgstr "Eraro: 'dev list': %s" -#: ../cli/src/devices.c:614 +#: ../cli/src/devices.c:702 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Eraro: 'dev list': %s; permesataj kampoj: %s" -#: ../cli/src/devices.c:623 +#: ../cli/src/devices.c:711 msgid "Device details" msgstr "Detaloj de aparato" -#: ../cli/src/devices.c:657 ../cli/src/devices.c:1152 ../cli/src/utils.c:342 +#: ../cli/src/devices.c:756 ../cli/src/devices.c:757 ../cli/src/devices.c:1164 +#: ../cli/src/utils.c:445 msgid "(unknown)" msgstr "(nekonate)" -#: ../cli/src/devices.c:658 -msgid "unknown)" -msgstr "nekonate)" +#: ../cli/src/devices.c:765 +msgid "not connected" +msgstr "nekonektite" -#: ../cli/src/devices.c:684 +#: ../cli/src/devices.c:792 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:865 msgid "on" msgstr "enŝaltite" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:865 msgid "off" msgstr "elŝaltite" -#: ../cli/src/devices.c:1004 +#: ../cli/src/devices.c:1016 #, c-format msgid "Error: 'dev status': %s" msgstr "Eraro: 'dev status': %s" -#: ../cli/src/devices.c:1006 +#: ../cli/src/devices.c:1018 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Eraro: 'dev status': %s; permesataj kampoj: %s" -#: ../cli/src/devices.c:1029 +#: ../cli/src/devices.c:1041 msgid "Status of devices" msgstr "Stato de aparatoj" -#: ../cli/src/devices.c:1060 +#: ../cli/src/devices.c:1072 #, c-format msgid "Error: '%s' argument is missing." msgstr "Eraro: argumento '%s' mankas." -#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253 -#: ../cli/src/devices.c:1389 ../cli/src/devices.c:1608 +#: ../cli/src/devices.c:1113 ../cli/src/devices.c:1265 +#: ../cli/src/devices.c:1402 ../cli/src/devices.c:1621 #, c-format msgid "Error: Device '%s' not found." msgstr "Eraro: Aparato '%s' ne trovita." -#: ../cli/src/devices.c:1124 +#: ../cli/src/devices.c:1136 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Sukceso: Aparato '%s' sukcese malkonektiĝis." -#: ../cli/src/devices.c:1149 +#: ../cli/src/devices.c:1161 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Eraro: Aparato '%s' (%s) eraro dum malkonektiĝo: %s" -#: ../cli/src/devices.c:1157 +#: ../cli/src/devices.c:1169 #, c-format msgid "Device state: %d (%s)\n" msgstr "Stato de aparato: %d (%s)\n" -#: ../cli/src/devices.c:1222 +#: ../cli/src/devices.c:1234 #, c-format msgid "Error: iface has to be specified." msgstr "Eraro: 'iface' devas esti specifata." -#: ../cli/src/devices.c:1347 +#: ../cli/src/devices.c:1360 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Eraro: 'dev wifi': %s" -#: ../cli/src/devices.c:1349 +#: ../cli/src/devices.c:1362 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Eraro: 'dev wifi': %s; permesataj kampoj: %s" -#: ../cli/src/devices.c:1372 +#: ../cli/src/devices.c:1385 msgid "WiFi scan list" msgstr "WiFi-skanlisto" -#: ../cli/src/devices.c:1409 ../cli/src/devices.c:1463 -#: ../cli/src/devices.c:1670 +#: ../cli/src/devices.c:1422 ../cli/src/devices.c:1476 #, c-format -msgid "Error: Access point with hwaddr '%s' not found." -msgstr "Eraro: Retkaptejo kun 'hwaddr' '%s' ne trovita" +msgid "Error: Access point with bssid '%s' not found." +msgstr "Eraro: Retkaptejo kun 'bssid' '%s' ne trovita" -#: ../cli/src/devices.c:1426 +#: ../cli/src/devices.c:1439 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Eraro: Aparato '%s' ne estas WiFi-aparato." -#: ../cli/src/devices.c:1490 +#: ../cli/src/devices.c:1503 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Eraro: 'dev wifi'-komando '%s' ne validas." -#: ../cli/src/devices.c:1566 +#: ../cli/src/devices.c:1579 #, c-format msgid "Error: 'dev wimax': %s" msgstr "Eraro: 'dev wimax': %s" -#: ../cli/src/devices.c:1568 +#: ../cli/src/devices.c:1581 #, c-format msgid "Error: 'dev wimax': %s; allowed fields: %s" msgstr "Eraro: 'dev wimax': %s; permesataj kampoj: %s" -#: ../cli/src/devices.c:1591 +#: ../cli/src/devices.c:1604 msgid "WiMAX NSP list" msgstr "" -#: ../cli/src/devices.c:1628 +#: ../cli/src/devices.c:1641 #, c-format msgid "Error: NSP with name '%s' not found." msgstr "" -#: ../cli/src/devices.c:1639 +#: ../cli/src/devices.c:1652 #, c-format msgid "Error: Device '%s' is not a WiMAX device." msgstr "Eraro: Aparato '%s' ne estas WiMAX-aparato." -#: ../cli/src/devices.c:1697 +#: ../cli/src/devices.c:1683 +#, c-format +msgid "Error: Access point with nsp '%s' not found." +msgstr "Eraro: Retkaptejo kun 'nsp' '%s' ne trovita" + +#: ../cli/src/devices.c:1710 #, c-format msgid "Error: 'dev wimax' command '%s' is not valid." msgstr "Eraro: 'dev wimax'-komando '%s' ne validas." -#: ../cli/src/devices.c:1747 +#: ../cli/src/devices.c:1760 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Eraro: 'dev'-komando '%s' ne validas." @@ -1012,7 +1360,7 @@ msgstr "WIMAX-APARATARO" msgid "WIMAX" msgstr "WIMAX" -#: ../cli/src/network-manager.c:74 +#: ../cli/src/network-manager.c:67 #, c-format msgid "" "Usage: nmcli nm { COMMAND | help }\n" @@ -1043,136 +1391,136 @@ msgstr "" " wimax [on|off]\n" "\n" -#: ../cli/src/network-manager.c:103 +#: ../cli/src/network-manager.c:96 msgid "asleep" msgstr "dormas" -#: ../cli/src/network-manager.c:105 +#: ../cli/src/network-manager.c:98 msgid "connecting" msgstr "konektas" -#: ../cli/src/network-manager.c:107 +#: ../cli/src/network-manager.c:100 msgid "connected (local only)" msgstr "" -#: ../cli/src/network-manager.c:109 +#: ../cli/src/network-manager.c:102 msgid "connected (site only)" msgstr "" -#: ../cli/src/network-manager.c:113 +#: ../cli/src/network-manager.c:106 msgid "disconnecting" msgstr "malkonektante" -#: ../cli/src/network-manager.c:153 +#: ../cli/src/network-manager.c:146 #, c-format msgid "Error: 'nm status': %s" msgstr "Eraro: 'nm status': %s" -#: ../cli/src/network-manager.c:155 +#: ../cli/src/network-manager.c:148 #, c-format msgid "Error: 'nm status': %s; allowed fields: %s" msgstr "Eraro: 'nm status': %s; permesataj kampoj: %s" #. create NMClient -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174 -#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "enabled" msgstr "enŝaltite" -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174 -#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "disabled" msgstr "elŝaltite" -#: ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:181 msgid "NetworkManager status" msgstr "Stato de NetworkManager" #. Print header -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:184 msgid "running" msgstr "aktive" -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:184 msgid "not running" msgstr "neaktive" -#: ../cli/src/network-manager.c:222 ../cli/src/utils.c:322 +#: ../cli/src/network-manager.c:215 ../cli/src/utils.c:425 #, c-format msgid "Error: Couldn't connect to system bus: %s" -msgstr "Eraro: Ne povis konekti al sistem-buso: %s." +msgstr "Eraro: Ne eblis konekti al sistem-buso: %s." -#: ../cli/src/network-manager.c:233 +#: ../cli/src/network-manager.c:226 #, c-format msgid "Error: Couldn't create D-Bus object proxy." -msgstr "Eraro: Ne povis krei D-busan objekt-prokurservilon." +msgstr "Eraro: Ne eblis krei D-busan objekt-prokurservilon." -#: ../cli/src/network-manager.c:239 +#: ../cli/src/network-manager.c:232 #, c-format msgid "Error in sleep: %s" msgstr "Eraro dum dormo: %s" -#: ../cli/src/network-manager.c:283 ../cli/src/network-manager.c:338 -#: ../cli/src/network-manager.c:376 ../cli/src/network-manager.c:415 +#: ../cli/src/network-manager.c:276 ../cli/src/network-manager.c:331 +#: ../cli/src/network-manager.c:369 ../cli/src/network-manager.c:408 #, 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:291 +#: ../cli/src/network-manager.c:284 msgid "Networking enabled" msgstr "Retkonektado enŝaltita" -#: ../cli/src/network-manager.c:307 +#: ../cli/src/network-manager.c:300 #, 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:317 +#: ../cli/src/network-manager.c:310 #, 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:325 +#: ../cli/src/network-manager.c:318 #, c-format msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." -msgstr "Eraro: nevalida 'dorm'-parametro: '%s'; uzu 'true' aŭ 'false'." +msgstr "Eraro: nevalida 'dorm'-parametro: '%s'; uzu 'true' aŭ 'false'." -#: ../cli/src/network-manager.c:346 +#: ../cli/src/network-manager.c:339 msgid "WiFi enabled" msgstr "WiFi enŝaltita" -#: ../cli/src/network-manager.c:362 +#: ../cli/src/network-manager.c:355 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Eraro: nevalida 'wifi'-parametro: '%s'." -#: ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:377 msgid "WWAN enabled" msgstr "WWAN enŝaltita" -#: ../cli/src/network-manager.c:400 +#: ../cli/src/network-manager.c:393 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Eraro: nevalida 'wwan'-parametro: '%s'." -#: ../cli/src/network-manager.c:423 +#: ../cli/src/network-manager.c:416 msgid "WiMAX enabled" msgstr "WiMAX enŝaltita" -#: ../cli/src/network-manager.c:439 +#: ../cli/src/network-manager.c:432 #, c-format msgid "Error: invalid 'wimax' parameter: '%s'." msgstr "Eraro: nevalida 'wimax'-parametro: '%s'." -#: ../cli/src/network-manager.c:452 +#: ../cli/src/network-manager.c:445 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Eraro: 'nm'-komando '%s' ne validas." @@ -1275,241 +1623,293 @@ msgstr "Ricevis signalon '%d', elŝaltas..." #: ../cli/src/nmcli.c:257 msgid "Error: Could not create NMClient object." -msgstr "Eraro: Ne povas krei NMClient-objekton." +msgstr "Eraro: Ne eblas krei NMClient-objekton." #: ../cli/src/nmcli.c:273 msgid "Success" msgstr "Sukceso" -#: ../cli/src/settings.c:423 +#: ../cli/src/settings.c:497 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (heks-ascii-ŝlosilo)" -#: ../cli/src/settings.c:425 +#: ../cli/src/settings.c:499 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (104/128-bita pasfrazo)" -#: ../cli/src/settings.c:428 +#: ../cli/src/settings.c:502 #, c-format msgid "%d (unknown)" msgstr "%d (nekonate)" -#: ../cli/src/settings.c:454 +#: ../cli/src/settings.c:528 msgid "0 (unknown)" msgstr "0 (nekonate)" -#: ../cli/src/settings.c:460 +#: ../cli/src/settings.c:534 msgid "any, " msgstr "ajna, " -#: ../cli/src/settings.c:462 +#: ../cli/src/settings.c:536 msgid "900 MHz, " msgstr "900 MHz, " -#: ../cli/src/settings.c:464 +#: ../cli/src/settings.c:538 msgid "1800 MHz, " msgstr "1800 MHz, " -#: ../cli/src/settings.c:466 +#: ../cli/src/settings.c:540 msgid "1900 MHz, " msgstr "1900 MHz, " -#: ../cli/src/settings.c:468 +#: ../cli/src/settings.c:542 msgid "850 MHz, " msgstr "850 MHz, " -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:544 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:472 +#: ../cli/src/settings.c:546 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:474 +#: ../cli/src/settings.c:548 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:476 +#: ../cli/src/settings.c:550 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:478 +#: ../cli/src/settings.c:552 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:480 +#: ../cli/src/settings.c:554 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:482 +#: ../cli/src/settings.c:556 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:566 ../cli/src/settings.c:732 +#: ../cli/src/settings.c:558 +msgid "WCDMA 3GPP UMTS 1900 MHz, " +msgstr "WCDMA 3GPP UMTS 1900 MHz, " + +#: ../cli/src/settings.c:560 +msgid "WCDMA 3GPP UMTS 2600 MHz, " +msgstr "WCDMA 3GPP UMTS 2600 MHz, " + +#: ../cli/src/settings.c:578 +msgid "0 (NONE)" +msgstr "0 (NENIU)" + +#: ../cli/src/settings.c:584 +msgid "REORDER_HEADERS, " +msgstr "" + +#: ../cli/src/settings.c:586 +msgid "GVRP, " +msgstr "" + +#: ../cli/src/settings.c:588 +msgid "LOOSE_BINDING, " +msgstr "" + +#: ../cli/src/settings.c:730 ../cli/src/settings.c:926 +#: ../cli/src/settings.c:1630 msgid "auto" msgstr "aŭto" -#: ../cli/src/settings.c:727 ../cli/src/settings.c:730 -#: ../cli/src/settings.c:731 ../cli/src/utils.c:176 +#: ../cli/src/settings.c:920 ../cli/src/settings.c:923 +#: ../cli/src/settings.c:924 ../cli/src/utils.c:247 msgid "not set" msgstr "neagordite" -#: ../cli/src/utils.c:128 +#: ../cli/src/utils.c:103 +#, fuzzy, c-format +msgid "Error converting IP4 address '0x%X' to text form" +msgstr "Eraro dum konverto de IP4-adreso '0x%X'" + +#: ../cli/src/utils.c:131 +#, c-format +msgid "Error converting IP6 address '%s' to text form" +msgstr "Eraro dum konverto de IP6-adreso '%s'" + +#: ../cli/src/utils.c:200 #, c-format msgid "field '%s' has to be alone" msgstr "kampo '%s' devas esti sola" -#: ../cli/src/utils.c:131 +#: ../cli/src/utils.c:203 #, c-format msgid "invalid field '%s'" msgstr "nevalida kampo '%s'" -#: ../cli/src/utils.c:150 +#: ../cli/src/utils.c:222 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "Opcio '--terse' postulas specifigon de '--fields'" -#: ../cli/src/utils.c:154 +#: ../cli/src/utils.c:226 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "" "Opcio '--terse' postulas specifajn elektindajn valorojn de '--fields', ne " "'%s'" -#: ../cli/src/utils.c:333 +#: ../cli/src/utils.c:436 #, c-format msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" -msgstr "Eraro: Ne povas krei D-Bus-prokurilobjekto por org.freedesktop.DBus" +msgstr "Eraro: Ne eblas krei D-Bus-prokurilobjekto por org.freedesktop.DBus" -#: ../cli/src/utils.c:341 +#: ../cli/src/utils.c:444 #, c-format msgid "Error: NameHasOwner request failed: %s" msgstr "Eraro: NameHasOwner-peto fiaskis: %s" -#: ../cli/src/utils.c:386 +#: ../cli/src/utils.c:489 #, c-format msgid "" "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --" "nocheck to suppress the warning.\n" msgstr "" -#: ../cli/src/utils.c:395 +#: ../cli/src/utils.c:498 #, c-format msgid "" "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force " "execution using --nocheck, but the results are unpredictable." msgstr "" -#: ../libnm-util/crypto.c:127 +#: ../libnm-util/crypto.c:133 #, c-format msgid "PEM key file had no end tag '%s'." msgstr "PEM-ŝlosil-dosiero ne havis finan etikedon '%s'." -#: ../libnm-util/crypto.c:140 +#: ../libnm-util/crypto.c:146 #, 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:148 +#: ../libnm-util/crypto.c:154 #, 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:164 +#: ../libnm-util/crypto.c:170 #, 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:172 +#: ../libnm-util/crypto.c:178 #, c-format msgid "Malformed PEM file: unknown Proc-Type tag '%s'." msgstr "Misforma PEM-dosiero: nekonata Proc-Type-etikedo \"%s\"." -#: ../libnm-util/crypto.c:182 +#: ../libnm-util/crypto.c:188 #, 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:193 +#: ../libnm-util/crypto.c:199 #, 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:200 +#: ../libnm-util/crypto.c:206 #, 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:213 +#: ../libnm-util/crypto.c:219 #, c-format msgid "Malformed PEM file: unknown private key cipher '%s'." msgstr "Misforma PEM-dosiero: nekonata privat-ŝlosila ĉifro \"%s\"." -#: ../libnm-util/crypto.c:232 +#: ../libnm-util/crypto.c:238 #, c-format msgid "Could not decode private key." msgstr "Ne eblis malĉifri la privatan ŝlosilon." -#: ../libnm-util/crypto.c:268 ../libnm-util/crypto.c:554 +#: ../libnm-util/crypto.c:284 +msgid "Failed to find expected PKCS#8 start tag." +msgstr "" + +#: ../libnm-util/crypto.c:292 +#, c-format +msgid "Failed to find expected PKCS#8 end tag '%s'." +msgstr "" + +#: ../libnm-util/crypto.c:312 +msgid "Not enough memory to store private key data." +msgstr "Memoro ne sufiĉas por konservi la datumon de la privata ŝlosilo." + +#: ../libnm-util/crypto.c:317 +msgid "Failed to decode PKCS#8 private key." +msgstr "Malsukcesis malĉifri la privatan ŝlosilon PKCS#8." + +#: ../libnm-util/crypto.c:339 ../libnm-util/crypto.c:625 #, c-format msgid "Not enough memory to store certificate data." -msgstr "Malsufiĉas memoro por stori la datenojn de la certigilo." +msgstr "Malsufiĉas memoro por stori la datenojn de la atestilo." -#: ../libnm-util/crypto.c:294 +#: ../libnm-util/crypto.c:365 #, 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:303 +#: ../libnm-util/crypto.c:374 #, c-format msgid "Not enough memory to store the IV." msgstr "Malsufiĉas memoro por stori la IV-on." -#: ../libnm-util/crypto.c:314 +#: ../libnm-util/crypto.c:385 #, c-format msgid "IV contains non-hexadecimal digits." msgstr "IV enhavas nedeksesumajn ciferojn" -#: ../libnm-util/crypto.c:352 ../libnm-util/crypto_gnutls.c:147 +#: ../libnm-util/crypto.c:423 ../libnm-util/crypto_gnutls.c:147 #: ../libnm-util/crypto_gnutls.c:265 ../libnm-util/crypto_nss.c:167 #: ../libnm-util/crypto_nss.c:332 #, c-format msgid "Private key cipher '%s' was unknown." msgstr "Privata Cipher-ŝlosilo '%s' estas nekonata." -#: ../libnm-util/crypto.c:361 +#: ../libnm-util/crypto.c:432 #, c-format msgid "Not enough memory to decrypt private key." msgstr "Nesufiĉa memoro por malĉifri privatan ŝlosilon." -#: ../libnm-util/crypto.c:426 +#: ../libnm-util/crypto.c:497 #, c-format msgid "Not enough memory to store decrypted private key." msgstr "Nesufiĉa memoro por gardi privatan ŝlosilon malĉifritan." -#: ../libnm-util/crypto.c:471 +#: ../libnm-util/crypto.c:542 #, c-format msgid "Unable to determine private key type." msgstr "Ne eblas determini la tipon de la privata ŝlosilo." -#: ../libnm-util/crypto.c:526 +#: ../libnm-util/crypto.c:597 #, c-format msgid "PEM certificate had no start tag '%s'." -msgstr "La PEM-certigilo ne havas start-etikedon \"%s\"." +msgstr "La PEM-atestilo ne havas start-etikedon \"%s\"." -#: ../libnm-util/crypto.c:535 +#: ../libnm-util/crypto.c:606 #, c-format msgid "PEM certificate had no end tag '%s'." -msgstr "La PEM-certigilo ne havas finan etikedon \"%s\"." +msgstr "La PEM-atestilo ne havas finan etikedon \"%s\"." -#: ../libnm-util/crypto.c:559 +#: ../libnm-util/crypto.c:630 #, c-format msgid "Failed to decode certificate." -msgstr "Malsuksesis malĉifri la certigilon." +msgstr "Malsuksesis malĉifri la atestilon." #: ../libnm-util/crypto_gnutls.c:50 msgid "Failed to initialize the crypto engine." @@ -1593,12 +1993,12 @@ msgstr "Eraro dum pravalorizo de atestilaj datumoj: %s" #: ../libnm-util/crypto_gnutls.c:383 #, c-format msgid "Couldn't decode certificate: %s" -msgstr "Ne povis malkodi certigilon: %s" +msgstr "Ne eblis malkodi atestilon: %s" #: ../libnm-util/crypto_gnutls.c:407 #, c-format msgid "Couldn't initialize PKCS#12 decoder: %s" -msgstr "Ne povis pravalorizi PKCS#12-malkodilon: %s" +msgstr "Ne eblis pravalorizi PKCS#12-malkodilon: %s" #: ../libnm-util/crypto_gnutls.c:420 #, c-format @@ -1610,6 +2010,16 @@ msgstr "Ne eblis dekodi PKCS#12-dosieron: %s" msgid "Couldn't verify PKCS#12 file: %s" msgstr "No povis kontroli PKCS#12-dosieron: %s" +#: ../libnm-util/crypto_gnutls.c:460 +#, c-format +msgid "Couldn't initialize PKCS#8 decoder: %s" +msgstr "Ne eblis pravalorizi PKCS#8-malkodilon: %s" + +#: ../libnm-util/crypto_gnutls.c:483 +#, c-format +msgid "Couldn't decode PKCS#8 file: %s" +msgstr "Ne eblis dekodi PKCS#8-dosieron: %s" + #: ../libnm-util/crypto_nss.c:56 #, c-format msgid "Failed to initialize the crypto engine: %d." @@ -1693,165 +2103,284 @@ msgstr "Neatendita nombro da datumoj post ĉifrado." #: ../libnm-util/crypto_nss.c:443 #, c-format msgid "Couldn't decode certificate: %d" -msgstr "Ne povis malkodigi atestilon: %d" +msgstr "Ne eblis malkodigi atestilon: %d" #: ../libnm-util/crypto_nss.c:478 #, c-format msgid "Couldn't convert password to UCS2: %d" -msgstr "Ne povis konverti pasvorton al UCS2: %d" +msgstr "Ne eblis konverti pasvorton al UCS2: %d" #: ../libnm-util/crypto_nss.c:506 #, c-format msgid "Couldn't initialize PKCS#12 decoder: %d" -msgstr "Ne povis pravalorizi PKCS#12-malkodilon: %d" +msgstr "Ne eblis pravalorizi PKCS#12-malkodilon: %d" #: ../libnm-util/crypto_nss.c:515 #, c-format msgid "Couldn't decode PKCS#12 file: %d" -msgstr "Ne povis malkodigi PKCS#12-dosieron: %d" +msgstr "Ne eblis malkodigi PKCS#12-dosieron: %d" #: ../libnm-util/crypto_nss.c:524 #, c-format msgid "Couldn't verify PKCS#12 file: %d" -msgstr "Ne povis kontroli PKCS#12-dosieron: %d" +msgstr "Ne eblis kontroli PKCS#12-dosieron: %d" -#: ../libnm-util/crypto_nss.c:553 +#: ../libnm-util/crypto_nss.c:568 msgid "Could not generate random data." -msgstr "Ne povis generi hazardajn datumojn." +msgstr "Ne eblis generi hazardajn datumojn." -#: ../libnm-util/nm-utils.c:2000 +#: ../libnm-util/nm-utils.c:2040 #, c-format msgid "Not enough memory to make encryption key." msgstr "Nesufiĉa memoro por fari ĉifran ŝlosilon." -#: ../libnm-util/nm-utils.c:2110 +#: ../libnm-util/nm-utils.c:2150 msgid "Could not allocate memory for PEM file creation." -msgstr "Ne povis atribui memoron por kreo de PEM-dosiero." +msgstr "Ne eblis atribui memoron por kreo de PEM-dosiero." -#: ../libnm-util/nm-utils.c:2122 +#: ../libnm-util/nm-utils.c:2162 #, c-format msgid "Could not allocate memory for writing IV to PEM file." -msgstr "Ne povis atribui memoron por konservi IV en PEM-dosieron." +msgstr "Ne eblis atribui memoron por konservi IV en PEM-dosieron." -#: ../libnm-util/nm-utils.c:2134 +#: ../libnm-util/nm-utils.c:2174 #, 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." +"Ne eblis atribui memoron por konservi ĉifritan ŝlosilon en PEM-dosieron." -#: ../libnm-util/nm-utils.c:2153 +#: ../libnm-util/nm-utils.c:2193 #, c-format msgid "Could not allocate memory for PEM file data." -msgstr "Ne povis atribui memoron por datumoj de PEM-dosiero." +msgstr "Ne eblis atribui memoron por datumoj de PEM-dosiero." #: ../policy/org.freedesktop.NetworkManager.policy.in.h:1 -msgid "Allow control of network connections" -msgstr "Permesi kontrolon de retkonektoj" +msgid "Enable or disable system networking" +msgstr "Enŝalti aŭ elŝalti sistemretkonektadon" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:2 -msgid "Connection sharing via a protected WiFi network" -msgstr "Kundivido de konektoj per protektita WiFi-reto" +msgid "System policy prevents enabling or disabling system networking" +msgstr "Sistempolitiko preventas enŝalton aŭ elŝalton de sistema retkonektado" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:3 -msgid "Connection sharing via an open WiFi network" -msgstr "Kundivido de konektoj per malferma WiFi-reto" +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:4 -msgid "Enable or disable WiFi devices" -msgstr "Enŝalti aŭ elŝalti WiFi-aparatojn" +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:5 -msgid "Enable or disable WiMAX mobile broadband devices" -msgstr "Enŝalti aŭ elŝalti WiMAX-larĝkapacitajn aparatojn" +msgid "Enable or disable WiFi devices" +msgstr "Enŝalti aŭ elŝalti WiFi-aparatojn" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:6 -msgid "Enable or disable mobile broadband devices" -msgstr "Enŝalti aŭ elŝalti poŝtelefonajn larĝkapacitajn aparatojn" +msgid "System policy prevents enabling or disabling WiFi devices" +msgstr "Sistempolitiko preventas enŝalton aŭ elŝalton de WiFi-aparatoj" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 -msgid "Enable or disable system networking" -msgstr "Enŝalti aŭ elŝalti sistemretkonektadon" +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:8 -msgid "Modify network connections for all users" -msgstr "Modifi retkonektojn por ĉiuj uzantoj" +msgid "System policy prevents enabling or disabling mobile broadband devices" +msgstr "" +"Sistempolitiko preventas enŝalton aŭ elŝalton de poŝtelefonaj larĝkapacitaj " +"aparatoj" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 -msgid "Modify persistent system hostname" -msgstr "Modifi permanentan sisteman gastigan nomon" +msgid "Enable or disable WiMAX mobile broadband devices" +msgstr "Enŝalti aŭ elŝalti WiMAX-larĝkapacitajn aparatojn" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:10 -msgid "Modify personal network connections" -msgstr "Modifi proprajn retkonektojn" - -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 msgid "" -"Put NetworkManager to sleep or wake it up (should only be used by system " -"power management)" +"System policy prevents enabling or disabling WiMAX mobile broadband devices" msgstr "" -"Dormigi aŭ veki NetworkManager (estu uzata nur de sistema energimastumado)" +"Sistempolitiko preventas enŝalton aŭ elŝalton de larĝkapacitaj WiMAX-aparatoj" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 +msgid "Allow control of network connections" +msgstr "Permesi kontrolon de retkonektoj" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:12 msgid "System policy prevents control of network connections" msgstr "Sistempolitiko preventas kontrolon de retkonektoj" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:13 -msgid "System policy prevents enabling or disabling WiFi devices" -msgstr "Sistempolitiko preventas enŝalton aŭ elŝalton de WiFi-aparatoj" +msgid "Connection sharing via a protected WiFi network" +msgstr "Kundivido de konektoj per protektita WiFi-reto" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:14 -msgid "" -"System policy prevents enabling or disabling WiMAX mobile broadband devices" +msgid "System policy prevents sharing connections via a protected WiFi network" msgstr "" -"Sistempolitiko preventas enŝalton aŭ elŝalton de larĝkapacitaj WiMAX-" -"aparatoj" +"Sistempolitiko preventas kundividon de konektoj per protektita WiFi-reto" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:15 -msgid "System policy prevents enabling or disabling mobile broadband devices" -msgstr "" -"Sistempolitiko preventas enŝalton aŭ elŝalton de poŝtelefonaj larĝkapacitaj " -"aparatoj" +msgid "Connection sharing via an open WiFi network" +msgstr "Kundivido de konektoj per malferma WiFi-reto" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:16 -msgid "System policy prevents enabling or disabling system networking" -msgstr "Sistempolitiko preventas enŝalton aŭ elŝalton de sistema retkonektado" +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:17 -msgid "System policy prevents modification of network settings for all users" -msgstr "Sistempolitiko preventas modifadon de retagordoj por ĉiuj uzantoj" +msgid "Modify personal network connections" +msgstr "Modifi proprajn retkonektojn" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:18 msgid "System policy prevents modification of personal network settings" msgstr "Sistempolitiko preventas modifadon de propraj retagordoj" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:19 -msgid "System policy prevents modification of the persistent system hostname" -msgstr "Sistempolitiko preventas modifadon de la konstanta sistem-gastnomo" +msgid "Modify network connections for all users" +msgstr "Modifi retkonektojn por ĉiuj uzantoj" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:20 -msgid "System policy prevents putting NetworkManager to sleep or waking it up" -msgstr "Sistempolitiko preventas dormigi aŭ veki NetworkManager" +msgid "System policy prevents modification of network settings for all users" +msgstr "Sistempolitiko preventas modifadon de retagordoj por ĉiuj uzantoj" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:21 -msgid "System policy prevents sharing connections via a protected WiFi network" -msgstr "" -"Sistempolitiko preventas kundividon de konektoj per protektita WiFi-reto" +msgid "Modify persistent system hostname" +msgstr "Modifi permanentan sisteman gastigan nomon" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:22 -msgid "System policy prevents sharing connections via an open WiFi network" -msgstr "Sistempolitiko preventas kundividon de konektoj per malferma WiFi-reto" +msgid "System policy prevents modification of the persistent system hostname" +msgstr "Sistempolitiko preventas modifadon de la konstanta sistem-gastnomo" + +#: ../src/main.c:143 +#, c-format +msgid "Failed to initialize SIGTERM pipe: %d" +msgstr "" + +#: ../src/main.c:174 +#, c-format +msgid "Opening %s failed: %s\n" +msgstr "" + +#: ../src/main.c:180 +#, c-format +msgid "Writing to %s failed: %s\n" +msgstr "" + +#: ../src/main.c:185 +#, c-format +msgid "Closing %s failed: %s\n" +msgstr "" + +#: ../src/main.c:228 +#, c-format +msgid "NetworkManager is already running (pid %ld)\n" +msgstr "NetworkManager jam rulas (pid %ld)\n" + +#: ../src/main.c:368 +msgid "Print NetworkManager version and exit" +msgstr "Eldoni version de NetworkManager kaj eliri" + +#: ../src/main.c:369 +msgid "Don't become a daemon" +msgstr "Ne fariĝi demono" + +#: ../src/main.c:370 +msgid "Make all warnings fatal" +msgstr "Igi ĉiujn avertojn fatalaj" + +#: ../src/main.c:371 +msgid "Specify the location of a PID file" +msgstr "" + +#: ../src/main.c:371 +msgid "filename" +msgstr "dosiernomo" + +#: ../src/main.c:372 +msgid "State file location" +msgstr "" + +#: ../src/main.c:372 +msgid "/path/to/state.file" +msgstr "" + +#: ../src/main.c:373 +msgid "Config file location" +msgstr "" + +#: ../src/main.c:373 +msgid "/path/to/config.file" +msgstr "" + +#: ../src/main.c:374 +msgid "List of plugins separated by ','" +msgstr "" + +#: ../src/main.c:374 +msgid "plugin1,plugin2" +msgstr "" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:376 +msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" +msgstr "" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:379 +msgid "" +"Log domains separated by ',': any combination of\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," +"DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN," +"SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE," +"DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" +msgstr "" + +#: ../src/main.c:392 +#, c-format +msgid "GModules are not supported on your platform!\n" +msgstr "" + +#: ../src/main.c:411 +msgid "" +"NetworkManager monitors all network connections and automatically\n" +"chooses the best connection to use. It also allows the user to\n" +"specify wireless access points which wireless cards in the computer\n" +"should associate with." +msgstr "" -#: ../src/main.c:530 +#: ../src/main.c:417 #, c-format msgid "Invalid option. Please use --help to see a list of valid options.\n" msgstr "" "Nevalida opcio. Bonvolu uzi --help por vidi liston da validaj opcioj.\n" -#: ../src/main.c:611 +#: ../src/main.c:427 +#, c-format +msgid "You must be root to run NetworkManager!\n" +msgstr "" + +#: ../src/main.c:448 +#, c-format +msgid "Failed to read configuration: (%d) %s\n" +msgstr "" + +#: ../src/main.c:459 #, 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 opcioj.\n" +#: ../src/main.c:466 +#, c-format +msgid "State file %s parsing failed: (%d) %s\n" +msgstr "" + +#: ../src/main.c:483 +#, c-format +msgid "Could not daemonize: %s [error %u]\n" +msgstr "" + #: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62 msgid "# Created by NetworkManager\n" msgstr "# Kreita de NetworkManager\n" @@ -1865,185 +2394,168 @@ msgstr "" "# Kunfandita el %s\n" "\n" -#: ../src/dhcp-manager/nm-dhcp-manager.c:284 +#: ../src/dhcp-manager/nm-dhcp-manager.c:266 msgid "no usable DHCP client could be found." msgstr "neniu uzebla DHCP-kliento estis trovebla." -#: ../src/dhcp-manager/nm-dhcp-manager.c:293 +#: ../src/dhcp-manager/nm-dhcp-manager.c:275 msgid "'dhclient' could be found." msgstr "'dhclient' povis esti trovita." -#: ../src/dhcp-manager/nm-dhcp-manager.c:303 +#: ../src/dhcp-manager/nm-dhcp-manager.c:285 msgid "'dhcpcd' could be found." msgstr "'dhcpcd' povis esti trovita." -#: ../src/dhcp-manager/nm-dhcp-manager.c:311 +#: ../src/dhcp-manager/nm-dhcp-manager.c:293 #, c-format msgid "unsupported DHCP client '%s'" msgstr "nesubtenata DHCP-kliento '%s'" -#: ../src/dns-manager/nm-dns-manager.c:369 +#: ../src/dns-manager/nm-dns-manager.c:376 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:371 +#: ../src/dns-manager/nm-dns-manager.c:378 msgid "The nameservers listed below may not be recognized." msgstr "La sube ligstigitaj nomserviloj eble ne estos rekonataj." -#: ../src/logging/nm-logging.c:149 +#: ../src/logging/nm-logging.c:130 #, c-format msgid "Unknown log level '%s'" msgstr "Nekonata protokolnivelo '%s'" -#: ../src/logging/nm-logging.c:174 +#: ../src/logging/nm-logging.c:155 #, c-format msgid "Unknown log domain '%s'" msgstr "Nekonata protokola regiono '%s'" -#: ../src/modem-manager/nm-modem-cdma.c:296 ../src/nm-device-bt.c:355 +#: ../src/modem-manager/nm-modem-cdma.c:279 ../src/nm-device-bt.c:325 #, c-format msgid "CDMA connection %d" msgstr "CDMA-konekto %d" -#: ../src/modem-manager/nm-modem-gsm.c:499 ../src/nm-device-bt.c:351 +#: ../src/modem-manager/nm-modem-gsm.c:547 ../src/nm-device-bt.c:321 #, c-format msgid "GSM connection %d" msgstr "GSM-konekto %d" -#: ../src/nm-device-bt.c:326 +#: ../src/nm-device-bond.c:191 +#, c-format +msgid "Bond connection %d" +msgstr "" + +#: ../src/nm-device-bt.c:296 #, c-format msgid "PAN connection %d" msgstr "PAN-konekto %d" -#: ../src/nm-device-bt.c:359 +#: ../src/nm-device-bt.c:329 #, c-format msgid "DUN connection %d" msgstr "DUN-konekto %d" -#: ../src/nm-device-ethernet.c:1681 +#: ../src/nm-device-ethernet.c:1326 #, c-format msgid "PPPoE connection %d" msgstr "PPPoE-konekto %d" -#: ../src/nm-device-ethernet.c:1681 ../src/settings/nm-settings-utils.c:50 +#: ../src/nm-device-ethernet.c:1326 ../src/settings/nm-settings-utils.c:50 #, c-format msgid "Wired connection %d" msgstr "Drata konekto %d" -#: ../src/nm-device-olpc-mesh.c:423 +#: ../src/nm-device-infiniband.c:303 +#, c-format +msgid "InfiniBand connection %d" +msgstr "" + +#: ../src/nm-device-olpc-mesh.c:293 #, c-format msgid "Mesh %d" msgstr "" -#: ../src/nm-manager.c:673 +#: ../src/nm-device-vlan.c:362 +#, c-format +msgid "VLAN connection %d" +msgstr "VLAN-konekto %d" + +#: ../src/nm-manager.c:661 #, c-format msgid "VPN connection %d" msgstr "VPN-konekto %d" -#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231 -#: ../src/nm-netlink-monitor.c:653 +#: ../src/nm-netlink-monitor.c:148 ../src/nm-netlink-monitor.c:272 +#: ../src/nm-netlink-monitor.c:695 #, c-format msgid "error processing netlink message: %s" msgstr "eraro dum traktado de netlink-mesaĝo: %s" -#: ../src/nm-netlink-monitor.c:214 +#: ../src/nm-netlink-monitor.c:251 msgid "error occurred while waiting for data on socket" msgstr "okazis eraro dum atendado je datumoj sur kontaktoskatolo" -#: ../src/nm-netlink-monitor.c:254 +#: ../src/nm-netlink-monitor.c:296 #, 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 +#: ../src/nm-netlink-monitor.c:307 #, c-format msgid "unable to enable netlink handle credential passing: %s" -msgstr "ne povis aktivigi la netlink-tenilan legitimaĵo-pasadon: %s" +msgstr "ne eblis aktivigi la netlink-tenilan legitimaĵo-pasadon: %s" -#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353 +#: ../src/nm-netlink-monitor.c:330 ../src/nm-netlink-monitor.c:390 #, c-format msgid "unable to allocate netlink handle for monitoring link status: %s" -msgstr "ne povis atribui retligiltenilon por kontroli ligilstaton: %s" +msgstr "ne eblis atribui retligiltenilon por kontroli ligilstaton: %s" -#: ../src/nm-netlink-monitor.c:376 +#: ../src/nm-netlink-monitor.c:415 #, 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" +"ne eblis atribui ligilan kaŝmemoron de netlink por kontroli ligilstaton: %s" -#: ../src/nm-netlink-monitor.c:502 +#: ../src/nm-netlink-monitor.c:542 #, 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 +#: ../src/nm-netlink-monitor.c:671 ../src/nm-netlink-monitor.c:684 #, c-format msgid "error updating link cache: %s" msgstr "eraro dum ĝisdatigo de ligila kaŝmemoro: %s" -#: ../src/settings/plugins/ifcfg-rh/reader.c:3512 -#: ../src/settings/plugins/ifnet/connection_parser.c:51 +#: ../src/settings/plugins/ifcfg-rh/reader.c:93 msgid "System" msgstr "Sistemo" -#~ msgid "SCOPE" -#~ msgstr "AMPLEKSO" - -#~ msgid "DBUS-SERVICE" -#~ msgstr "DBUS-SERVO" - -#~ msgid "system" -#~ msgstr "sistemo" +#: ../src/settings/plugins/ifcfg-rh/reader.c:3634 +msgid "Bond" +msgstr "" -#~ msgid "user" -#~ msgstr "uzanto" +#~ msgid "Allow use of user-specific connections" +#~ msgstr "Permesi uzon de specifaj konektoj por uzantoj" -#~ msgid "System connections" -#~ msgstr "Sistemkonektoj" +#~ msgid "System policy prevents use of user-specific connections" +#~ msgstr "Sistempolitiko preventas uzon de uzant-specifaj konektoj" -#~ msgid "User connections" -#~ msgstr "Uzanto-konektoj" +#~ msgid "IP6-SETTINGS" +#~ msgstr "IP6-AGORDOJ" -#~ msgid "Error: Obtaining active connection for '%s' failed." -#~ msgstr "Eraro: Akiro de aktiva konekto por '%s' fiaskis." +#~ msgid "IP6-DNS" +#~ msgstr "IP6-DNS" -#~ msgid "Error: Could not get user settings." -#~ msgstr "Eraro: Ne povis akiri uzanto-agordojn." +#~ msgid "IP4-SETTINGS" +#~ msgstr "IP4-AGORDOJ" -#~ msgid "Not enough memory to store file data." -#~ msgstr "Malsufiĉas memoro por stori la datenojn de la dosiero." +#~ msgid "IP4-DNS" +#~ msgstr "IP4-DNS" -#~ msgid "Allow use of user-specific connections" -#~ msgstr "Permesi uzon de specifaj konektoj por uzantoj" +#~ msgid "PREFIX" +#~ msgstr "PREFIKSO" -#~ msgid "System policy prevents use of user-specific connections" -#~ msgstr "Sistempolitiko preventas uzon de uzant-specifaj konektoj" +#~ msgid "%s: error converting IP4 address 0x%X" +#~ msgstr "%s: eraro dum konverto de IP4-adreso 0x%X" -#~ msgid "Auto %s" -#~ msgstr "Aŭto %s" - -#~ 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" -#~ msgstr "" -#~ "Uzo: nmcli nm { KOMANDO | help }\n" -#~ "\n" -#~ " KOMANDO := { status | sleep | wakeup | wifi | wwan }\n" -#~ "\n" -#~ " status\n" -#~ " sleep\n" -#~ " wakeup\n" -#~ " wifi [on|off]\n" -#~ " wwan [on|off]\n" -#~ "\n" - -#~ msgid "Error: Could not connect to NetworkManager." -#~ msgstr "Eraro: Ne eblis konekti al NetworkManager" +#~ msgid "unknown)" +#~ msgstr "nekonate)" diff --git a/po/gl.po b/po/gl.po index 7242f4dd..a0bb3fce 100644 --- a/po/gl.po +++ b/po/gl.po @@ -5,470 +5,616 @@ # Ignacio Casal Quinteiro <icq@cvs.gnome.org>, 2007, 2008. # Miguel Anxo Bouzada <mbouzada@gmail.com>, 2010. # Fran Diéguez <frandieguez@gnome.org>, 2011. +# Fran Dieguez <frandieguez@gnome.org>, 2012. # msgid "" msgstr "" "Project-Id-Version: gl\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-08-24 19:48+0000\n" -"PO-Revision-Date: 2011-08-25 01:12+0000\n" -"Last-Translator: Fran Diéguez <Unknown>\n" +"POT-Creation-Date: 2012-03-10 03:25+0000\n" +"PO-Revision-Date: 2012-03-22 01:48+0100\n" +"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" "Language-Team: Galician <gnome-l10n-gl@gnome.org>\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:64 ../cli/src/connections.c:78 -#: ../cli/src/devices.c:101 ../cli/src/devices.c:114 ../cli/src/devices.c:124 -#: ../cli/src/devices.c:134 ../cli/src/devices.c:148 ../cli/src/devices.c:162 -#: ../cli/src/devices.c:173 ../cli/src/devices.c:184 ../cli/src/devices.c:193 -#: ../cli/src/devices.c:202 ../cli/src/devices.c:224 -msgid "NAME" -msgstr "NOME" +#: ../cli/src/common.c:32 ../cli/src/common.c:44 ../cli/src/common.c:52 +#: ../cli/src/common.c:63 ../cli/src/connections.c:125 +#: ../cli/src/connections.c:159 +msgid "GROUP" +msgstr "GRUPO" #. 0 -#: ../cli/src/connections.c:65 ../cli/src/connections.c:79 -msgid "UUID" -msgstr "UUID" +#: ../cli/src/common.c:33 ../cli/src/common.c:53 +msgid "ADDRESS" +msgstr "ENDEREZO" #. 1 -#: ../cli/src/connections.c:66 -msgid "DEVICES" -msgstr "DISPOSITIVOS" +#: ../cli/src/common.c:34 ../cli/src/common.c:54 +#| msgid "RATE" +msgid "ROUTE" +msgstr "RUTA" #. 2 -#: ../cli/src/connections.c:67 -msgid "DEFAULT" -msgstr "PREDEFINIDO" +#: ../cli/src/common.c:35 ../cli/src/common.c:55 +msgid "DNS" +msgstr "DNS" #. 3 -#: ../cli/src/connections.c:68 -msgid "SPEC-OBJECT" -msgstr "SPEC-OBXECTO" +#: ../cli/src/common.c:36 ../cli/src/common.c:56 +msgid "DOMAIN" +msgstr "DOMINIO" #. 4 -#: ../cli/src/connections.c:69 -msgid "VPN" -msgstr "VPN" +#: ../cli/src/common.c:37 +msgid "WINS" +msgstr "WINS" -#. 5 -#. 6 -#. 2 -#. 11 -#. 5 -#: ../cli/src/connections.c:70 ../cli/src/connections.c:85 -#: ../cli/src/devices.c:69 ../cli/src/devices.c:214 ../cli/src/devices.c:230 -msgid "DBUS-PATH" -msgstr "DBUS-RUTA" +#. 0 +#: ../cli/src/common.c:45 ../cli/src/common.c:64 +msgid "OPTION" +msgstr "OPCIÓN" + +#. 0 +#. used only for 'GENERAL' group listing +#: ../cli/src/connections.c:58 ../cli/src/connections.c:126 +#: ../cli/src/devices.c:102 ../cli/src/devices.c:123 ../cli/src/devices.c:133 +#: ../cli/src/devices.c:143 ../cli/src/devices.c:157 ../cli/src/devices.c:171 +#: ../cli/src/devices.c:193 +msgid "NAME" +msgstr "NOME" + +#. 0 +#. 1 +#: ../cli/src/connections.c:59 ../cli/src/connections.c:127 +msgid "UUID" +msgstr "UUID" #. 1 #. 0 #. 1 #. 2 -#: ../cli/src/connections.c:80 ../cli/src/devices.c:67 -#: ../cli/src/devices.c:103 ../cli/src/devices.c:227 +#: ../cli/src/connections.c:60 ../cli/src/connections.c:160 +#: ../cli/src/devices.c:68 ../cli/src/devices.c:104 ../cli/src/devices.c:196 msgid "TYPE" msgstr "TIPO" #. 2 -#: ../cli/src/connections.c:81 +#: ../cli/src/connections.c:61 msgid "TIMESTAMP" msgstr "MARCADETEMPO" #. 3 -#: ../cli/src/connections.c:82 +#: ../cli/src/connections.c:62 msgid "TIMESTAMP-REAL" msgstr "TIMESTAMP-REAL" #. 4 -#: ../cli/src/connections.c:83 +#: ../cli/src/connections.c:63 msgid "AUTOCONNECT" msgstr "AUTOCONECTAR" #. 5 -#: ../cli/src/connections.c:84 +#: ../cli/src/connections.c:64 msgid "READONLY" msgstr "SO-LECTURA" -#: ../cli/src/connections.c:167 +#. 6 +#. 8 +#. 2 +#. 11 +#. 5 +#: ../cli/src/connections.c:65 ../cli/src/connections.c:134 +#: ../cli/src/devices.c:70 ../cli/src/devices.c:183 ../cli/src/devices.c:199 +msgid "DBUS-PATH" +msgstr "DBUS-RUTA" + +#. 2 +#: ../cli/src/connections.c:128 +msgid "DEVICES" +msgstr "DISPOSITIVOS" + +#. 3 +#. 1 +#. 6 +#. 1 +#: ../cli/src/connections.c:129 ../cli/src/devices.c:69 +#: ../cli/src/devices.c:109 ../cli/src/network-manager.c:39 +msgid "STATE" +msgstr "ESTADO" + +#. 4 +#: ../cli/src/connections.c:130 +msgid "DEFAULT" +msgstr "PREDEFINIDO" + +#. 5 +#: ../cli/src/connections.c:131 +#| msgid "DEFAULT" +msgid "DEFAULT6" +msgstr "PREDEFINIDO6" + +#. 6 +#: ../cli/src/connections.c:132 +msgid "SPEC-OBJECT" +msgstr "SPEC-OBXECTO" + +#. 7 +#. 1 +#: ../cli/src/connections.c:133 ../cli/src/connections.c:147 +msgid "VPN" +msgstr "VPN" + +#. 9 +#: ../cli/src/connections.c:135 +msgid "CON-PATH" +msgstr "RUTA-CON" + +#. 10 +#: ../cli/src/connections.c:136 +msgid "ZONE" +msgstr "ZONA" + +#. 11 +#: ../cli/src/connections.c:137 +#| msgid "DBUS-PATH" +msgid "MASTER-PATH" +msgstr "RUTA-MASTER" + +#: ../cli/src/connections.c:145 ../cli/src/devices.c:79 +msgid "GENERAL" +msgstr "XERAL" + +#. 0 +#: ../cli/src/connections.c:146 +#| msgid "TKIP" +msgid "IP" +msgstr "IP" + +#. 1 +#: ../cli/src/connections.c:161 +#| msgid "NAME" +msgid "USERNAME" +msgstr "NOME-USUARIO" + +#. 2 +#: ../cli/src/connections.c:162 +msgid "GATEWAY" +msgstr "PASARELA" + +#. 3 +#: ../cli/src/connections.c:163 +msgid "BANNER" +msgstr "BANNER" + +#. 4 +#: ../cli/src/connections.c:164 +#| msgid "STATE" +msgid "VPN-STATE" +msgstr "ESTADO-VPN" + +#. 5 +#: ../cli/src/connections.c:165 +msgid "CFG" +msgstr "CFG" + +#: ../cli/src/connections.c:186 #, c-format #| msgid "" #| "Usage: nmcli con { COMMAND | help }\n" #| " COMMAND := { list | status | up | down }\n" #| "\n" -#| " list [id <id> | uuid <id> | system | user]\n" +#| " list [id <id> | uuid <id>]\n" #| " status\n" +#| " up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--" +#| "nowait] [--timeout <timeout>]\n" #| " up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--" #| "timeout <timeout>]\n" #| " down id <id> | uuid <id>\n" msgid "" "Usage: nmcli con { COMMAND | help }\n" -" COMMAND := { list | status | up | down }\n" +" COMMAND := { list | status | up | down | delete }\n" "\n" " list [id <id> | uuid <id>]\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--" "nowait] [--timeout <timeout>]\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout " +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout " "<timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" msgstr "" -"Uso: nmcli con { COMANDO | help }\n" -" COMANDO := { list | status | up | down }\n" +"Uso: nmcli con { ORDE | help }\n" +" COMMAND := { list | status | up | down | delete }\n" "\n" " list [id <id> | uuid <id>]\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--" "nowait] [--timeout <timeout>]\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout " +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout " "<timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" -#: ../cli/src/connections.c:220 ../cli/src/connections.c:544 +#: ../cli/src/connections.c:240 ../cli/src/connections.c:591 #, c-format msgid "Error: 'con list': %s" msgstr "Erro: 'con list': %s" -#: ../cli/src/connections.c:222 ../cli/src/connections.c:546 +#: ../cli/src/connections.c:242 ../cli/src/connections.c:593 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Erro: 'con list': %s; campos permitidos: %s" -#: ../cli/src/connections.c:230 +#: ../cli/src/connections.c:250 msgid "Connection details" msgstr "Detalles da conexión" -#: ../cli/src/connections.c:419 +#: ../cli/src/connections.c:466 msgid "never" msgstr "nunca" #. "CAPABILITIES" #. Print header #. "WIFI-PROPERTIES" -#: ../cli/src/connections.c:420 ../cli/src/connections.c:421 -#: ../cli/src/connections.c:599 ../cli/src/connections.c:601 -#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520 -#: ../cli/src/settings.c:563 ../cli/src/settings.c:663 -#: ../cli/src/settings.c:937 ../cli/src/settings.c:938 -#: ../cli/src/settings.c:940 ../cli/src/settings.c:942 -#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1068 -#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1148 -#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1150 -#: ../cli/src/settings.c:1151 ../cli/src/settings.c:1152 -#: ../cli/src/settings.c:1153 ../cli/src/settings.c:1154 -#: ../cli/src/settings.c:1155 ../cli/src/settings.c:1156 -#: ../cli/src/settings.c:1157 ../cli/src/settings.c:1158 -#: ../cli/src/settings.c:1159 ../cli/src/settings.c:1160 -#: ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:467 ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 ../cli/src/devices.c:762 ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 ../cli/src/devices.c:821 ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 ../cli/src/devices.c:824 ../cli/src/devices.c:825 +#: ../cli/src/settings.c:656 ../cli/src/settings.c:726 +#: ../cli/src/settings.c:846 ../cli/src/settings.c:1128 +#: ../cli/src/settings.c:1129 ../cli/src/settings.c:1131 +#: ../cli/src/settings.c:1133 ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1262 ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1340 ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 ../cli/src/settings.c:1423 msgid "yes" msgstr "si" -#: ../cli/src/connections.c:420 ../cli/src/connections.c:421 -#: ../cli/src/connections.c:599 ../cli/src/connections.c:601 -#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520 -#: ../cli/src/settings.c:522 ../cli/src/settings.c:563 -#: ../cli/src/settings.c:663 ../cli/src/settings.c:937 -#: ../cli/src/settings.c:938 ../cli/src/settings.c:940 -#: ../cli/src/settings.c:942 ../cli/src/settings.c:1067 -#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069 -#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149 -#: ../cli/src/settings.c:1150 ../cli/src/settings.c:1151 -#: ../cli/src/settings.c:1152 ../cli/src/settings.c:1153 -#: ../cli/src/settings.c:1154 ../cli/src/settings.c:1155 -#: ../cli/src/settings.c:1156 ../cli/src/settings.c:1157 -#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1159 -#: ../cli/src/settings.c:1160 ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:467 ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 ../cli/src/devices.c:762 ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 ../cli/src/devices.c:821 ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 ../cli/src/devices.c:824 ../cli/src/devices.c:825 +#: ../cli/src/settings.c:656 ../cli/src/settings.c:658 +#: ../cli/src/settings.c:726 ../cli/src/settings.c:846 +#: ../cli/src/settings.c:1128 ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1131 ../cli/src/settings.c:1133 +#: ../cli/src/settings.c:1134 ../cli/src/settings.c:1262 +#: ../cli/src/settings.c:1263 ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 ../cli/src/settings.c:1340 +#: ../cli/src/settings.c:1341 ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1423 msgid "no" msgstr "non" -#: ../cli/src/connections.c:495 -#| msgid "Connection details" +#: ../cli/src/connections.c:542 msgid "Connection list" msgstr "Lista de conexións" -#: ../cli/src/connections.c:508 ../cli/src/connections.c:1368 -#: ../cli/src/connections.c:1383 ../cli/src/connections.c:1392 -#: ../cli/src/connections.c:1402 ../cli/src/connections.c:1414 -#: ../cli/src/connections.c:1509 ../cli/src/devices.c:1190 -#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314 -#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1534 -#: ../cli/src/devices.c:1541 +#: ../cli/src/connections.c:555 ../cli/src/connections.c:1088 +#: ../cli/src/connections.c:1914 ../cli/src/connections.c:1929 +#: ../cli/src/connections.c:1938 ../cli/src/connections.c:1948 +#: ../cli/src/connections.c:1960 ../cli/src/connections.c:2059 +#: ../cli/src/connections.c:2161 ../cli/src/devices.c:1202 +#: ../cli/src/devices.c:1212 ../cli/src/devices.c:1326 +#: ../cli/src/devices.c:1334 ../cli/src/devices.c:1547 +#: ../cli/src/devices.c:1554 #, c-format msgid "Error: %s argument is missing." msgstr "Erro: falta o argumento %s" -#: ../cli/src/connections.c:521 +#: ../cli/src/connections.c:568 #, c-format msgid "Error: %s - no such connection." msgstr "Erro: %s - non existe dita conexión." -#: ../cli/src/connections.c:527 ../cli/src/connections.c:1427 -#: ../cli/src/connections.c:1526 ../cli/src/devices.c:987 -#: ../cli/src/devices.c:1067 ../cli/src/devices.c:1214 -#: ../cli/src/devices.c:1327 ../cli/src/devices.c:1547 +#: ../cli/src/connections.c:574 ../cli/src/connections.c:1973 +#: ../cli/src/connections.c:2076 ../cli/src/connections.c:2168 +#: ../cli/src/devices.c:999 ../cli/src/devices.c:1079 +#: ../cli/src/devices.c:1226 ../cli/src/devices.c:1340 +#: ../cli/src/devices.c:1560 #, c-format msgid "Unknown parameter: %s\n" msgstr "Parámetros descoñecidos: %s\n" -#: ../cli/src/connections.c:536 +#: ../cli/src/connections.c:583 #, c-format msgid "Error: no valid parameter specified." msgstr "Erro: non se especificou un parámetro válido" -#: ../cli/src/connections.c:551 ../cli/src/connections.c:1617 -#: ../cli/src/devices.c:1755 ../cli/src/network-manager.c:463 +#: ../cli/src/connections.c:598 ../cli/src/connections.c:2261 +#: ../cli/src/devices.c:1768 ../cli/src/network-manager.c:456 #, c-format msgid "Error: %s." msgstr "Erro: %s." +#: ../cli/src/connections.c:611 +msgid "activating" +msgstr "activando" + +#: ../cli/src/connections.c:613 +msgid "activated" +msgstr "activada" + +#: ../cli/src/connections.c:615 ../cli/src/devices.c:263 +msgid "deactivating" +msgstr "desactivando" + +#: ../cli/src/connections.c:618 ../cli/src/connections.c:641 +#: ../cli/src/connections.c:1785 ../cli/src/devices.c:267 +#: ../cli/src/devices.c:796 ../cli/src/network-manager.c:111 +#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:185 ../cli/src/network-manager.c:291 +#: ../cli/src/network-manager.c:346 ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:423 ../cli/src/settings.c:563 +#: ../cli/src/settings.c:591 ../cli/src/utils.c:499 ../src/main.c:450 +#: ../src/main.c:469 +msgid "unknown" +msgstr "descoñecido" + +#: ../cli/src/connections.c:627 +msgid "VPN connecting (prepare)" +msgstr "Conectándose á VPN (preparando)" + +#: ../cli/src/connections.c:629 +msgid "VPN connecting (need authentication)" +msgstr "Conexión VPN (requírese autenticación)" + +#: ../cli/src/connections.c:631 +msgid "VPN connecting" +msgstr "Conexión VPN" + +#: ../cli/src/connections.c:633 +msgid "VPN connecting (getting IP configuration)" +msgstr "Conectándose á VPN (obtendo a configuración de IP)" + +#: ../cli/src/connections.c:635 +msgid "VPN connected" +msgstr "Conectado á VPN" + +#: ../cli/src/connections.c:637 +msgid "VPN connection failed" +msgstr "Produciuse un fallo ao conectarse á VPN" + #: ../cli/src/connections.c:639 +msgid "VPN disconnected" +msgstr "Desconectado á VPN" + +#: ../cli/src/connections.c:892 ../cli/src/connections.c:1116 #, c-format msgid "Error: 'con status': %s" msgstr "Erro: «con status»: %s" -#: ../cli/src/connections.c:641 +#: ../cli/src/connections.c:894 ../cli/src/connections.c:1118 #, c-format msgid "Error: 'con status': %s; allowed fields: %s" msgstr "Erro: «con status»: %s; campos permitidos: %s" -#: ../cli/src/connections.c:649 ../cli/src/connections.c:1442 -#: ../cli/src/connections.c:1541 ../cli/src/devices.c:1014 -#: ../cli/src/devices.c:1076 ../cli/src/devices.c:1229 -#: ../cli/src/devices.c:1357 ../cli/src/devices.c:1576 +#: ../cli/src/connections.c:902 +#| msgid "Active connections" +msgid "Active connection details" +msgstr "Detalles da conexión activa" + +#: ../cli/src/connections.c:1038 ../cli/src/connections.c:1988 +#: ../cli/src/connections.c:2091 ../cli/src/connections.c:2182 +#: ../cli/src/devices.c:1026 ../cli/src/devices.c:1088 +#: ../cli/src/devices.c:1241 ../cli/src/devices.c:1370 +#: ../cli/src/devices.c:1589 #, c-format msgid "Error: Can't find out if NetworkManager is running: %s." msgstr "Erro: non é posíbel determinar se NetworkManager está a funcionar: %s." -#: ../cli/src/connections.c:653 ../cli/src/connections.c:1446 -#: ../cli/src/connections.c:1545 ../cli/src/devices.c:1018 -#: ../cli/src/devices.c:1080 ../cli/src/devices.c:1233 -#: ../cli/src/devices.c:1361 ../cli/src/devices.c:1580 +#: ../cli/src/connections.c:1042 ../cli/src/connections.c:1992 +#: ../cli/src/connections.c:2095 ../cli/src/connections.c:2186 +#: ../cli/src/devices.c:1030 ../cli/src/devices.c:1092 +#: ../cli/src/devices.c:1245 ../cli/src/devices.c:1374 +#: ../cli/src/devices.c:1593 #, c-format msgid "Error: NetworkManager is not running." msgstr "Erro: NetworkManager non está a funcionar." -#: ../cli/src/connections.c:661 +#: ../cli/src/connections.c:1074 msgid "Active connections" msgstr "Conexións activas" -#: ../cli/src/connections.c:1085 +#: ../cli/src/connections.c:1099 +#, c-format +#| msgid "Error: %s - no such connection." +msgid "Error: '%s' is not an active connection." +msgstr "Erro: «%s» non é unha conexión activa." + +#: ../cli/src/connections.c:1104 +#, c-format +#| msgid "Unknown parameter: %s\n" +msgid "Error: unknown parameter: %s" +msgstr "Erro: parámetro descoñecido: %s" + +#: ../cli/src/connections.c:1669 #, c-format msgid "no active connection on device '%s'" msgstr "non hai conexións activas no dispositivo «%s»" -#: ../cli/src/connections.c:1093 +#: ../cli/src/connections.c:1677 #, c-format msgid "no active connection or device" msgstr "non hai conexións activas ou dispositivo" -#: ../cli/src/connections.c:1164 +#: ../cli/src/connections.c:1748 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "o dispositivo «%s» non é compatíbel coa conexión «%s»" -#: ../cli/src/connections.c:1166 +#: ../cli/src/connections.c:1750 #, c-format msgid "no device found for connection '%s'" msgstr "non foi posíbel encontrar un dispositivo para a conexión «%s»" -#: ../cli/src/connections.c:1177 -msgid "activating" -msgstr "activando" - -#: ../cli/src/connections.c:1179 -msgid "activated" -msgstr "activada" - -#: ../cli/src/connections.c:1181 ../cli/src/devices.c:304 -#| msgid "activating" -msgid "deactivating" -msgstr "desactivando" - -#: ../cli/src/connections.c:1184 ../cli/src/connections.c:1207 -#: ../cli/src/connections.c:1240 ../cli/src/devices.c:308 -#: ../cli/src/devices.c:688 ../cli/src/network-manager.c:118 -#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:183 -#: ../cli/src/network-manager.c:192 ../cli/src/network-manager.c:298 -#: ../cli/src/network-manager.c:353 ../cli/src/network-manager.c:391 -#: ../cli/src/network-manager.c:430 ../cli/src/settings.c:485 -#: ../cli/src/utils.c:396 -msgid "unknown" -msgstr "descoñecido" - -#: ../cli/src/connections.c:1193 -msgid "VPN connecting (prepare)" -msgstr "Conectándose á VPN (preparando)" - -#: ../cli/src/connections.c:1195 -msgid "VPN connecting (need authentication)" -msgstr "Conexión VPN (requírese autenticación)" - -#: ../cli/src/connections.c:1197 -msgid "VPN connecting" -msgstr "Conexión VPN" - -#: ../cli/src/connections.c:1199 -msgid "VPN connecting (getting IP configuration)" -msgstr "Conectándose á VPN (obtendo a configuración de IP)" - -#: ../cli/src/connections.c:1201 -msgid "VPN connected" -msgstr "Conectado á VPN" - -#: ../cli/src/connections.c:1203 -msgid "VPN connection failed" -msgstr "Produciuse un fallo ao conectarse á VPN" - -#: ../cli/src/connections.c:1205 -msgid "VPN disconnected" -msgstr "Desconectado á VPN" - -#: ../cli/src/connections.c:1216 +#: ../cli/src/connections.c:1761 msgid "unknown reason" msgstr "razón descoñecida" -#: ../cli/src/connections.c:1218 +#: ../cli/src/connections.c:1763 msgid "none" msgstr "ninguna" -#: ../cli/src/connections.c:1220 +#: ../cli/src/connections.c:1765 msgid "the user was disconnected" msgstr "o usuario desconectouse" -#: ../cli/src/connections.c:1222 +#: ../cli/src/connections.c:1767 msgid "the base network connection was interrupted" msgstr "a conexión de rede base foi interrompida" -#: ../cli/src/connections.c:1224 +#: ../cli/src/connections.c:1769 msgid "the VPN service stopped unexpectedly" msgstr "o servizo de VPN deteuse de forma inesperada" -#: ../cli/src/connections.c:1226 +#: ../cli/src/connections.c:1771 msgid "the VPN service returned invalid configuration" msgstr "o servizo de VPN devolveu unha configuración non válida" -#: ../cli/src/connections.c:1228 +#: ../cli/src/connections.c:1773 msgid "the connection attempt timed out" msgstr "o intento de conexión superou o tempo de espera máximo" -#: ../cli/src/connections.c:1230 +#: ../cli/src/connections.c:1775 msgid "the VPN service did not start in time" msgstr "o servizo de VPN non se iniciou a tempo" -#: ../cli/src/connections.c:1232 +#: ../cli/src/connections.c:1777 msgid "the VPN service failed to start" msgstr "o servizo de VPN fallou ao iniciarse" -#: ../cli/src/connections.c:1234 +#: ../cli/src/connections.c:1779 msgid "no valid VPN secrets" msgstr "non hai segredos VPN válidos" -#: ../cli/src/connections.c:1236 +#: ../cli/src/connections.c:1781 msgid "invalid VPN secrets" msgstr "segredos VPN non válidos" -#: ../cli/src/connections.c:1238 +#: ../cli/src/connections.c:1783 msgid "the connection was removed" msgstr "eliminouse a conexión" -#: ../cli/src/connections.c:1252 +#: ../cli/src/connections.c:1797 #, c-format msgid "state: %s\n" msgstr "estado: %s\n" -#: ../cli/src/connections.c:1255 ../cli/src/connections.c:1281 +#: ../cli/src/connections.c:1800 ../cli/src/connections.c:1826 #, c-format msgid "Connection activated\n" msgstr "Conexión activada\n" -#: ../cli/src/connections.c:1258 +#: ../cli/src/connections.c:1803 #, c-format msgid "Error: Connection activation failed." msgstr "Erro: A activación da conexión fallou." -#: ../cli/src/connections.c:1277 +#: ../cli/src/connections.c:1822 #, c-format msgid "state: %s (%d)\n" msgstr "estado: %s (%d)\n" -#: ../cli/src/connections.c:1287 +#: ../cli/src/connections.c:1832 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Erro: A activación da conexión fallou: %s." -#: ../cli/src/connections.c:1304 ../cli/src/devices.c:1136 +#: ../cli/src/connections.c:1849 ../cli/src/devices.c:1148 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Erro: Alcanzouse o tempo de espera de %d segundos." -#: ../cli/src/connections.c:1317 +#: ../cli/src/connections.c:1862 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Erro: Produciuse un fallo ao activar a conexión: %s" -#: ../cli/src/connections.c:1323 +#: ../cli/src/connections.c:1868 #, c-format msgid "Active connection state: %s\n" msgstr "Estado da conexión activa: %s\n" -#: ../cli/src/connections.c:1324 +#: ../cli/src/connections.c:1869 #, c-format msgid "Active connection path: %s\n" msgstr "Camiño da conexión activa: %s\n" -#: ../cli/src/connections.c:1376 ../cli/src/connections.c:1517 +#: ../cli/src/connections.c:1922 ../cli/src/connections.c:2067 +#: ../cli/src/connections.c:2195 #, c-format msgid "Error: Unknown connection: %s." msgstr "Erro: Conexión descoñecida: %s." -#: ../cli/src/connections.c:1422 ../cli/src/devices.c:1208 +#: ../cli/src/connections.c:1968 ../cli/src/devices.c:1220 #, c-format msgid "Error: timeout value '%s' is not valid." msgstr "Erro: O valor do tempo de espera máximo «%s» non é válido." -#: ../cli/src/connections.c:1435 ../cli/src/connections.c:1534 +#: ../cli/src/connections.c:1981 ../cli/src/connections.c:2084 +#: ../cli/src/connections.c:2175 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Erro: debe especificar o id ou o uuid." -#: ../cli/src/connections.c:1463 +#: ../cli/src/connections.c:2013 #, c-format msgid "Error: No suitable device found: %s." msgstr "Erro: Non se encontrou un dispositivo axeitado: %s." -#: ../cli/src/connections.c:1465 +#: ../cli/src/connections.c:2015 #, c-format msgid "Error: No suitable device found." msgstr "Erro: Non se encontrou o dispositivo axeitado." -#: ../cli/src/connections.c:1570 +#: ../cli/src/connections.c:2120 #, c-format msgid "Warning: Connection not active\n" msgstr "Aviso: A conexión non está activa.\n" -#: ../cli/src/connections.c:1608 +#: ../cli/src/connections.c:2134 +#, c-format +#| msgid "Error: Connection activation failed: %s" +msgid "Error: Connection deletion failed: %s" +msgstr "Erro: Produciuse un erro na eliminación: %s" + +#: ../cli/src/connections.c:2252 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Erro: «con» a orde «%s» non é válida" -#: ../cli/src/connections.c:1673 +#: ../cli/src/connections.c:2317 #, c-format msgid "Error: could not connect to D-Bus." msgstr "Erro: non é posíbel conectarse a D-Bus." -#: ../cli/src/connections.c:1680 +#: ../cli/src/connections.c:2325 #, c-format msgid "Error: Could not get system settings." msgstr "Erro: Non é posíbel obter as opcións do sistema." -#: ../cli/src/connections.c:1690 +#: ../cli/src/connections.c:2335 #, c-format -#| msgid "Error: Can't obtain connections: settings services are not running." msgid "Error: Can't obtain connections: settings service is not running." msgstr "" "Erro: Non é posíbel obter as conexións: o servizo de configuracións non " @@ -477,237 +623,247 @@ msgstr "" #. 0 #. 9 #. 3 -#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:212 -#: ../cli/src/devices.c:228 +#: ../cli/src/devices.c:67 ../cli/src/devices.c:103 ../cli/src/devices.c:181 +#: ../cli/src/devices.c:197 msgid "DEVICE" msgstr "DISPOSITIVO" -#. 1 -#. 4 -#. 1 -#: ../cli/src/devices.c:68 ../cli/src/devices.c:106 -#: ../cli/src/network-manager.c:39 -msgid "STATE" -msgstr "ESTADO" - -#: ../cli/src/devices.c:78 -msgid "GENERAL" -msgstr "XERAL" - #. 0 -#: ../cli/src/devices.c:79 +#: ../cli/src/devices.c:80 msgid "CAPABILITIES" msgstr "CAPACIDADES" #. 1 -#: ../cli/src/devices.c:80 +#: ../cli/src/devices.c:81 msgid "WIFI-PROPERTIES" msgstr "PROPIEDADES-WIFI" #. 2 -#: ../cli/src/devices.c:81 +#: ../cli/src/devices.c:82 msgid "AP" msgstr "AP" #. 3 -#: ../cli/src/devices.c:82 +#: ../cli/src/devices.c:83 msgid "WIRED-PROPERTIES" msgstr "PROPIEDADES-CONCABLES" #. 4 -#: ../cli/src/devices.c:83 -#| msgid "WIFI-PROPERTIES" +#: ../cli/src/devices.c:84 msgid "WIMAX-PROPERTIES" msgstr "PROPIEDADES-WIMAX" #. 5 #. 0 -#: ../cli/src/devices.c:84 ../cli/src/devices.c:225 -#| msgid "DNS" +#: ../cli/src/devices.c:85 ../cli/src/devices.c:194 msgid "NSP" msgstr "PSR" #. 6 -#: ../cli/src/devices.c:85 -msgid "IP4-SETTINGS" -msgstr "CONFIGURACIONS-IP4" +#: ../cli/src/devices.c:86 +#| msgid "IP4-DNS" +msgid "IP4" +msgstr "IP4" #. 7 -#: ../cli/src/devices.c:86 -msgid "IP4-DNS" -msgstr "IP4-DNS" +#: ../cli/src/devices.c:87 +msgid "DHCP4" +msgstr "DHCP4" #. 8 -#: ../cli/src/devices.c:87 -msgid "IP6-SETTINGS" -msgstr "IP4-CONFIGURACIONS" +#: ../cli/src/devices.c:88 +#| msgid "IP6-DNS" +msgid "IP6" +msgstr "IP6" #. 9 -#: ../cli/src/devices.c:88 -msgid "IP6-DNS" -msgstr "IP6-DNS" +#: ../cli/src/devices.c:89 +msgid "DHCP6" +msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:105 +msgid "VENDOR" +msgstr "FABRICANTE" + +#. 3 +#: ../cli/src/devices.c:106 +msgid "PRODUCT" +msgstr "PRODUTO" + +#. 4 +#: ../cli/src/devices.c:107 msgid "DRIVER" msgstr "CONTROLADOR" -#. 3 -#: ../cli/src/devices.c:105 +#. 5 +#: ../cli/src/devices.c:108 msgid "HWADDR" msgstr "ENDEREZO-HARDWARE" -#. 0 +#. 7 +#: ../cli/src/devices.c:110 +#| msgid "READONLY" +msgid "REASON" +msgstr "SO-LECTURARAZÓN" + +#. 8 +#: ../cli/src/devices.c:111 +msgid "UDI" +msgstr "UDI" + +#. 9 +#: ../cli/src/devices.c:112 +msgid "IP-IFACE" +msgstr "IP-IFACE" + +#. 10 +#: ../cli/src/devices.c:113 +msgid "NM-MANAGED" +msgstr "NM-MANAGED" + +#. 11 +#: ../cli/src/devices.c:114 +msgid "FIRMWARE-MISSING" +msgstr "FALTA-FIRMWARE" + +#. 12 #: ../cli/src/devices.c:115 +#| msgid "AUTOCONNECT" +msgid "CONNECTION" +msgstr "CONEXIÓN" + +#. 0 +#: ../cli/src/devices.c:124 msgid "CARRIER-DETECT" msgstr "DETECTAR-CARRIERV" #. 1 -#: ../cli/src/devices.c:116 +#: ../cli/src/devices.c:125 msgid "SPEED" msgstr "VELOCIDADE" #. 0 -#: ../cli/src/devices.c:125 +#: ../cli/src/devices.c:134 msgid "CARRIER" msgstr "CARRIER" #. 0 -#: ../cli/src/devices.c:135 +#: ../cli/src/devices.c:144 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:136 +#: ../cli/src/devices.c:145 msgid "WPA" msgstr "WPA" #. 2 -#: ../cli/src/devices.c:137 +#: ../cli/src/devices.c:146 msgid "WPA2" msgstr "WPA2" #. 3 -#: ../cli/src/devices.c:138 +#: ../cli/src/devices.c:147 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:139 +#: ../cli/src/devices.c:148 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:149 -#| msgid "FREQ" +#: ../cli/src/devices.c:158 msgid "CTR-FREQ" msgstr "CTR-FREC" #. 1 -#: ../cli/src/devices.c:150 -#| msgid "SSID" +#: ../cli/src/devices.c:159 msgid "RSSI" msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:151 +#: ../cli/src/devices.c:160 msgid "CINR" msgstr "CINR" #. 3 -#: ../cli/src/devices.c:152 +#: ../cli/src/devices.c:161 msgid "TX-POW" msgstr "TX-POW" #. 4 -#: ../cli/src/devices.c:153 -#| msgid "BSSID" +#: ../cli/src/devices.c:162 msgid "BSID" msgstr "BSID" #. 0 -#: ../cli/src/devices.c:163 ../cli/src/devices.c:174 -msgid "ADDRESS" -msgstr "ENDEREZO" - -#. 1 -#: ../cli/src/devices.c:164 ../cli/src/devices.c:175 -msgid "PREFIX" -msgstr "PREFIXO" - -#. 2 -#: ../cli/src/devices.c:165 ../cli/src/devices.c:176 -msgid "GATEWAY" -msgstr "PASARELA" - -#. 0 -#: ../cli/src/devices.c:185 ../cli/src/devices.c:194 -msgid "DNS" -msgstr "DNS" - -#. 0 -#: ../cli/src/devices.c:203 +#: ../cli/src/devices.c:172 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:204 +#: ../cli/src/devices.c:173 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:205 +#: ../cli/src/devices.c:174 msgid "MODE" msgstr "MODO" #. 3 -#: ../cli/src/devices.c:206 +#: ../cli/src/devices.c:175 msgid "FREQ" msgstr "FREQ" #. 4 -#: ../cli/src/devices.c:207 +#: ../cli/src/devices.c:176 msgid "RATE" msgstr "TAXA" #. 5 #. 1 -#: ../cli/src/devices.c:208 ../cli/src/devices.c:226 +#: ../cli/src/devices.c:177 ../cli/src/devices.c:195 msgid "SIGNAL" msgstr "SINAL" #. 6 -#: ../cli/src/devices.c:209 +#: ../cli/src/devices.c:178 msgid "SECURITY" msgstr "SEGURIDADE" #. 7 -#: ../cli/src/devices.c:210 +#: ../cli/src/devices.c:179 msgid "WPA-FLAGS" msgstr "OPCIONS-WPA" #. 8 -#: ../cli/src/devices.c:211 +#: ../cli/src/devices.c:180 msgid "RSN-FLAGS" msgstr "OPCIONS-RSN" #. 10 #. 4 -#: ../cli/src/devices.c:213 ../cli/src/devices.c:229 +#: ../cli/src/devices.c:182 ../cli/src/devices.c:198 msgid "ACTIVE" msgstr "ACTIVA" -#: ../cli/src/devices.c:256 +#: ../cli/src/devices.c:215 #, c-format #| msgid "" #| "Usage: nmcli dev { COMMAND | help }\n" #| "\n" +#| " COMMAND := { status | list | disconnect | wifi | wimax }\n" +#| "\n" #| " COMMAND := { status | list | disconnect | wifi }\n" #| "\n" #| " status\n" #| " list [iface <iface>]\n" #| " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" #| " wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" +#| " wimax [list [iface <iface>] [nsp <name>]]\n" #| "\n" msgid "" "Usage: nmcli dev { COMMAND | help }\n" @@ -719,278 +875,504 @@ msgid "" " status\n" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" -" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" "Uso: nmcli dev { ORDE | help }\n" "\n" -" COMANDO := { status | list | disconnect | wifi }\n" +" ORDE := { status | list | disconnect | wifi | wimax }\n" +"\n" +" ORDE := { 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" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" -#: ../cli/src/devices.c:284 +#: ../cli/src/devices.c:243 msgid "unmanaged" msgstr "non xestionada" -#: ../cli/src/devices.c:286 +#: ../cli/src/devices.c:245 msgid "unavailable" msgstr "non dispoñíbel" -#: ../cli/src/devices.c:288 ../cli/src/network-manager.c:115 +#: ../cli/src/devices.c:247 ../cli/src/network-manager.c:108 msgid "disconnected" msgstr "desconectado" -#: ../cli/src/devices.c:290 +#: ../cli/src/devices.c:249 msgid "connecting (prepare)" msgstr "conectando (preparando)" -#: ../cli/src/devices.c:292 +#: ../cli/src/devices.c:251 msgid "connecting (configuring)" msgstr "conectando (configurando)" -#: ../cli/src/devices.c:294 +#: ../cli/src/devices.c:253 msgid "connecting (need authentication)" msgstr "conectando (precisa autenticación)" -#: ../cli/src/devices.c:296 +#: ../cli/src/devices.c:255 msgid "connecting (getting IP configuration)" msgstr "conectando (obtendo a configuración IP)" -#: ../cli/src/devices.c:298 -#| msgid "connecting (getting IP configuration)" +#: ../cli/src/devices.c:257 msgid "connecting (checking IP connectivity)" msgstr "conectando (comprobando conectividade IP)" -#: ../cli/src/devices.c:300 -#| msgid "connecting (getting IP configuration)" +#: ../cli/src/devices.c:259 msgid "connecting (starting secondary connections)" msgstr "conectando (iniciando conexións secundarias)" -#: ../cli/src/devices.c:302 ../cli/src/network-manager.c:111 +#: ../cli/src/devices.c:261 ../cli/src/network-manager.c:104 msgid "connected" msgstr "conectado" -#: ../cli/src/devices.c:306 +#: ../cli/src/devices.c:265 msgid "connection failed" msgstr "produciuse un fallo na conexión" -#: ../cli/src/devices.c:331 ../cli/src/devices.c:341 ../cli/src/devices.c:501 -#: ../cli/src/devices.c:545 +#: ../cli/src/devices.c:276 +msgid "No reason given" +msgstr "Non se dou unha razón" + +#: ../cli/src/devices.c:279 +#| msgid "Unknown" +msgid "Unknown error" +msgstr "Erro descoñecido" + +#: ../cli/src/devices.c:282 +msgid "Device is now managed" +msgstr "O dispositivo agora está xestionado" + +#: ../cli/src/devices.c:285 +msgid "Device is now unmanaged" +msgstr "O dispositivo está agora non xestionado" + +#: ../cli/src/devices.c:288 +#| msgid "the VPN service returned invalid configuration" +msgid "The device could not be readied for configuration" +msgstr "O dispositivo non puido lerse para a súa configuración" + +#: ../cli/src/devices.c:291 +msgid "" +"IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "" +"Non foi posíbel reservar a configuración de IP (enderezo non dispoñíbel, " +"tempo de espera, etc)" + +#: ../cli/src/devices.c:294 +msgid "The IP configuration is no longer valid" +msgstr "A configuración IP xa non é válida" + +#: ../cli/src/devices.c:297 +msgid "Secrets were required, but not provided" +msgstr "Requírense os segredos, pero non se forneceron" + +#: ../cli/src/devices.c:300 +msgid "802.1X supplicant disconnected" +msgstr "802.1X supplicant desconectado" + +#: ../cli/src/devices.c:303 +msgid "802.1X supplicant configuration failed" +msgstr "Fallou a configuación do 802.1X supplicant" + +#: ../cli/src/devices.c:306 +msgid "802.1X supplicant failed" +msgstr "Fallou o 802.1X supplicant" + +#: ../cli/src/devices.c:309 +msgid "802.1X supplicant took too long to authenticate" +msgstr "O 802.1X supplicant votou demasiado tempo para autenticarse" + +#: ../cli/src/devices.c:312 +#| msgid "the VPN service failed to start" +msgid "PPP service failed to start" +msgstr "O servizo PPP fallou ao iniciar" + +#: ../cli/src/devices.c:315 +#| msgid "VPN disconnected" +msgid "PPP service disconnected" +msgstr "O servizo PPP está desconectado" + +#: ../cli/src/devices.c:318 +msgid "PPP failed" +msgstr "PPP fallou" + +#: ../cli/src/devices.c:321 +#| msgid "the VPN service failed to start" +msgid "DHCP client failed to start" +msgstr "O cliente DHCP fallou ao iniciar" + +#: ../cli/src/devices.c:324 +msgid "DHCP client error" +msgstr "Erro no cliente DHCP" + +#: ../cli/src/devices.c:327 +#| msgid "VPN connection failed" +msgid "DHCP client failed" +msgstr "O cliente DHCP fallou" + +#: ../cli/src/devices.c:330 +#| msgid "the VPN service failed to start" +msgid "Shared connection service failed to start" +msgstr "O servizo de conexión compartida fallou ao iniciar" + +#: ../cli/src/devices.c:333 +#| msgid "connection failed" +msgid "Shared connection service failed" +msgstr "O servizo de conexión compartida fallou" + +#: ../cli/src/devices.c:336 +#| msgid "the VPN service failed to start" +msgid "AutoIP service failed to start" +msgstr "O servizo AutoIP fallou ao iniciar" + +#: ../cli/src/devices.c:339 +msgid "AutoIP service error" +msgstr "Erro no servizo AutoIP" + +#: ../cli/src/devices.c:342 +#| msgid "the VPN service failed to start" +msgid "AutoIP service failed" +msgstr "O servizo AutoIP fallou" + +#: ../cli/src/devices.c:345 +msgid "The line is busy" +msgstr "A liña está ocupada" + +#: ../cli/src/devices.c:348 +msgid "No dial tone" +msgstr "Non hai ton de chamada" + +#: ../cli/src/devices.c:351 +msgid "No carrier could be established" +msgstr "Non foi posíbel estabelecer o «carrier»" + +#: ../cli/src/devices.c:354 +msgid "The dialing request timed out" +msgstr "Tempo de espera superado na solicitude de marcado" + +#: ../cli/src/devices.c:357 +msgid "The dialing attempt failed" +msgstr "Fallou o intento de marcado" + +#: ../cli/src/devices.c:360 +#| msgid "Error: Connection activation failed." +msgid "Modem initialization failed" +msgstr "Fallou a inicialización do módem" + +#: ../cli/src/devices.c:363 +#| msgid "Failed to decrypt the private key." +msgid "Failed to select the specified APN" +msgstr "Produciuse un fallo ao seleccionar o APN especificado" + +#: ../cli/src/devices.c:366 +msgid "Not searching for networks" +msgstr "Non está buscando por redes" + +#: ../cli/src/devices.c:369 +#| msgid "Networking enabled" +msgid "Network registration denied" +msgstr "Rexistro na rede rexeitado" + +#: ../cli/src/devices.c:372 +msgid "Network registration timed out" +msgstr "O rexistro na rede superou o tempo de espera" + +#: ../cli/src/devices.c:375 +msgid "Failed to register with the requested network" +msgstr "Produciuse un fallo ao rexistrarse na rede solicitada" + +#: ../cli/src/devices.c:378 +#| msgid "VPN connection failed" +msgid "PIN check failed" +msgstr "Produciuse un fallo na comprobación do PIN" + +#: ../cli/src/devices.c:381 +msgid "Necessary firmware for the device may be missing" +msgstr "É preciso o firmware que poida que falte para o dispositivo" + +#: ../cli/src/devices.c:384 +#| msgid "the connection was removed" +msgid "The device was removed" +msgstr "O dispositivo eliminouse" + +#: ../cli/src/devices.c:387 +#| msgid "NetworkManager status" +msgid "NetworkManager went to sleep" +msgstr "NetworkManager púxose a durmir" + +#: ../cli/src/devices.c:390 +#| msgid "no active connection or device" +msgid "The device's active connection disappeared" +msgstr "A conexión de rede activa do dispositivo desapareceu" + +#: ../cli/src/devices.c:393 +msgid "Device disconnected by user or client" +msgstr "Dispositivo desconectado polo usuario ou cliente" + +#: ../cli/src/devices.c:396 +msgid "Carrier/link changed" +msgstr "Cambiou o «carrier»/ligazón" + +#: ../cli/src/devices.c:399 +#| msgid "the connection was removed" +msgid "The device's existing connection was assumed" +msgstr "A conexión existente do dispositivo foi asumida" + +#: ../cli/src/devices.c:402 +msgid "The supplicant is now available" +msgstr "O «supplicant» está agora activado" + +#: ../cli/src/devices.c:405 +#| msgid "'dhcpcd' could be found." +msgid "The modem could not be found" +msgstr "Non foi posíbel atopar o módem" + +#: ../cli/src/devices.c:408 +#| msgid "the connection attempt timed out" +msgid "The Bluetooth connection failed or timed out" +msgstr "Fallou a conexión de Bluetooth ou superouse o tempo máximo de espera" + +#: ../cli/src/devices.c:411 +msgid "GSM Modem's SIM card not inserted" +msgstr "A tarxeta SIM do módem GSM non está insertada" + +#: ../cli/src/devices.c:414 +msgid "GSM Modem's SIM PIN required" +msgstr "Requírese o PIN do SIM do módem GSM" + +#: ../cli/src/devices.c:417 +msgid "GSM Modem's SIM PUK required" +msgstr "Requírese o PUK do SIM do módem GSM" + +#: ../cli/src/devices.c:420 +msgid "GSM Modem's SIM wrong" +msgstr "SIM do modem GSM incorrecta" + +#: ../cli/src/devices.c:423 +msgid "InfiniBand device does not support connected mode" +msgstr "O dispositivo InfiniBand non admite o modo conectado" + +#: ../cli/src/devices.c:426 +#| msgid "connection failed" +msgid "A dependency of the connection failed" +msgstr "Fallou unha dependencia da conexión" + +#: ../cli/src/devices.c:428 ../cli/src/devices.c:451 ../cli/src/devices.c:467 +#: ../cli/src/devices.c:587 ../cli/src/devices.c:631 msgid "Unknown" msgstr "Descoñecido" -#: ../cli/src/devices.c:374 +#: ../cli/src/devices.c:500 msgid "(none)" msgstr "(ningún)" -#: ../cli/src/devices.c:399 -#, c-format -msgid "%s: error converting IP4 address 0x%X" -msgstr "%s: produciuse un erro ao converter o enderezo IP4 0x%X" - -#: ../cli/src/devices.c:470 +#: ../cli/src/devices.c:556 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:471 +#: ../cli/src/devices.c:557 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:480 +#: ../cli/src/devices.c:566 msgid "Encrypted: " msgstr "Cifrado: " -#: ../cli/src/devices.c:485 +#: ../cli/src/devices.c:571 msgid "WEP " msgstr "WEP " -#: ../cli/src/devices.c:487 +#: ../cli/src/devices.c:573 msgid "WPA " msgstr "WPA " -#: ../cli/src/devices.c:489 +#: ../cli/src/devices.c:575 msgid "WPA2 " msgstr "WPA2 " -#: ../cli/src/devices.c:492 +#: ../cli/src/devices.c:578 msgid "Enterprise " msgstr "Empresa " -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:587 msgid "Ad-Hoc" msgstr "Ad-Hoc" -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:587 msgid "Infrastructure" msgstr "Infraestrutura" -#: ../cli/src/devices.c:536 +#: ../cli/src/devices.c:622 msgid "Home" msgstr "Casa" -#: ../cli/src/devices.c:539 +#: ../cli/src/devices.c:625 msgid "Partner" msgstr "Asociado" -#: ../cli/src/devices.c:542 +#: ../cli/src/devices.c:628 msgid "Roaming" msgstr "Roaming" -#: ../cli/src/devices.c:612 +#: ../cli/src/devices.c:700 #, c-format msgid "Error: 'dev list': %s" msgstr "Erro: «dev list»: %s" -#: ../cli/src/devices.c:614 +#: ../cli/src/devices.c:702 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Erro: «dev list»: %s campos permitidos: %s" -#: ../cli/src/devices.c:623 +#: ../cli/src/devices.c:711 msgid "Device details" msgstr "Detalles do dispositivo" -#: ../cli/src/devices.c:657 ../cli/src/devices.c:1152 ../cli/src/utils.c:342 +#: ../cli/src/devices.c:756 ../cli/src/devices.c:757 ../cli/src/devices.c:1164 +#: ../cli/src/utils.c:445 msgid "(unknown)" msgstr "(descoñecido)" -#: ../cli/src/devices.c:658 -msgid "unknown)" -msgstr "descoñecido)" +#: ../cli/src/devices.c:765 +#| msgid "connected" +msgid "not connected" +msgstr "non conectado" -#: ../cli/src/devices.c:684 +#: ../cli/src/devices.c:792 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:865 msgid "on" msgstr "activado" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:865 msgid "off" msgstr "desactivado" -#: ../cli/src/devices.c:1004 +#: ../cli/src/devices.c:1016 #, c-format msgid "Error: 'dev status': %s" msgstr "Erro: «dev status»: %s" -#: ../cli/src/devices.c:1006 +#: ../cli/src/devices.c:1018 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Erro: «dev status»: %s campos permitidos: %s" -#: ../cli/src/devices.c:1029 +#: ../cli/src/devices.c:1041 msgid "Status of devices" msgstr "Estado dos dispositivos" -#: ../cli/src/devices.c:1060 +#: ../cli/src/devices.c:1072 #, c-format msgid "Error: '%s' argument is missing." msgstr "Erro: falta o argumento «%s»." -#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253 -#: ../cli/src/devices.c:1389 ../cli/src/devices.c:1608 +#: ../cli/src/devices.c:1113 ../cli/src/devices.c:1265 +#: ../cli/src/devices.c:1402 ../cli/src/devices.c:1621 #, c-format msgid "Error: Device '%s' not found." msgstr "Erro: Non é posíbel encontrar o dispositivo %s." -#: ../cli/src/devices.c:1124 +#: ../cli/src/devices.c:1136 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Éxito: O dispositivo «%s» desconectouse correctamente." -#: ../cli/src/devices.c:1149 +#: ../cli/src/devices.c:1161 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Erro: Fallou a desconexión do dispositivo «%s» (%s): %s" -#: ../cli/src/devices.c:1157 +#: ../cli/src/devices.c:1169 #, c-format msgid "Device state: %d (%s)\n" msgstr "Estado do dispositivo: %d (%s)\n" -#: ../cli/src/devices.c:1222 +#: ../cli/src/devices.c:1234 #, c-format msgid "Error: iface has to be specified." msgstr "Erro: non se especificou a interface." -#: ../cli/src/devices.c:1347 +#: ../cli/src/devices.c:1360 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Erro: «dev wifi»: %s" -#: ../cli/src/devices.c:1349 +#: ../cli/src/devices.c:1362 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Erro: «dev wiki»: %s; campos permitidos: %s" -#: ../cli/src/devices.c:1372 +#: ../cli/src/devices.c:1385 msgid "WiFi scan list" msgstr "Lista de escaneo WiFi" -#: ../cli/src/devices.c:1409 ../cli/src/devices.c:1463 -#: ../cli/src/devices.c:1670 +#: ../cli/src/devices.c:1422 ../cli/src/devices.c:1476 #, c-format -msgid "Error: Access point with hwaddr '%s' not found." -msgstr "Erro: Non se encontrou o punto de acces co enderezo hardware «%s»." +#| msgid "Error: Access point with hwaddr '%s' not found." +msgid "Error: Access point with bssid '%s' not found." +msgstr "Erro: non foi posíbel atopar o punto de acceso con bssid «%s»." -#: ../cli/src/devices.c:1426 +#: ../cli/src/devices.c:1439 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Erro: O dispositivo «%s» non é un dispositivo WiFi." -#: ../cli/src/devices.c:1490 +#: ../cli/src/devices.c:1503 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Erro: «dev wifi» a orde «%s» non é válida." -#: ../cli/src/devices.c:1566 +#: ../cli/src/devices.c:1579 #, c-format -#| msgid "Error: 'dev wifi': %s" msgid "Error: 'dev wimax': %s" msgstr "Erro: «dev wimax» «%s»" -#: ../cli/src/devices.c:1568 +#: ../cli/src/devices.c:1581 #, c-format -#| msgid "Error: 'dev wifi': %s; allowed fields: %s" msgid "Error: 'dev wimax': %s; allowed fields: %s" msgstr "Erro: «dev wimax»: %s; campos permitidos: %s" -#: ../cli/src/devices.c:1591 +#: ../cli/src/devices.c:1604 msgid "WiMAX NSP list" msgstr "Lista PSR WiMAX" -#: ../cli/src/devices.c:1628 +#: ../cli/src/devices.c:1641 #, c-format -#| msgid "Error: Device '%s' not found." msgid "Error: NSP with name '%s' not found." msgstr "Error: no se encontrou o PSR co nome «%s»." -#: ../cli/src/devices.c:1639 +#: ../cli/src/devices.c:1652 #, c-format -#| msgid "Error: Device '%s' is not a WiFi device." msgid "Error: Device '%s' is not a WiMAX device." msgstr "Error: o dispositivo «%s» non é un dispositivo WiMAX." -#: ../cli/src/devices.c:1697 +#: ../cli/src/devices.c:1683 +#, c-format +#| msgid "Error: Access point with hwaddr '%s' not found." +msgid "Error: Access point with nsp '%s' not found." +msgstr "Erro: Non foi posíbel atopar o punto de acceso con sp «%s»." + +#: ../cli/src/devices.c:1710 #, c-format -#| msgid "Error: 'dev wifi' command '%s' is not valid." msgid "Error: 'dev wimax' command '%s' is not valid." msgstr "Error: orde «dev wimax» «%s» non válida." -#: ../cli/src/devices.c:1747 +#: ../cli/src/devices.c:1760 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Erro: «dev» a orde «%s» non é válida." @@ -1031,7 +1413,6 @@ msgstr "WWAN" #. 7 #: ../cli/src/network-manager.c:45 -#| msgid "WIFI-HARDWARE" msgid "WIMAX-HARDWARE" msgstr "HARDWARE-WIMAX" @@ -1040,19 +1421,8 @@ msgstr "HARDWARE-WIMAX" msgid "WIMAX" msgstr "WIMAX" -#: ../cli/src/network-manager.c:74 +#: ../cli/src/network-manager.c:67 #, 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" @@ -1070,9 +1440,9 @@ msgid "" msgstr "" "Uso: nmcli nm { ORDE | help }\n" "\n" -" COMANDO := { status | enable | sleep | wifi | wwan | wimax }\n" +" ORDE := { status | enable | sleep | wifi | wwan | wimax }\n" "\n" -" COMANDO := { status | enable | sleep | wifi | wwan }\n" +" ORDE := { status | enable | sleep | wifi | wwan }\n" "\n" " status\n" " enable [true|false]\n" @@ -1082,166 +1452,144 @@ msgstr "" " wimax [on|off]\n" "\n" -#: ../cli/src/network-manager.c:103 +#: ../cli/src/network-manager.c:96 msgid "asleep" msgstr "dormido" -#: ../cli/src/network-manager.c:105 +#: ../cli/src/network-manager.c:98 msgid "connecting" msgstr "conectando" -#: ../cli/src/network-manager.c:107 +#: ../cli/src/network-manager.c:100 msgid "connected (local only)" msgstr "conectado (só local)" -#: ../cli/src/network-manager.c:109 -#| msgid "connected" +#: ../cli/src/network-manager.c:102 msgid "connected (site only)" msgstr "conectado (só o sitio)" -#: ../cli/src/network-manager.c:113 -#| msgid "connecting" +#: ../cli/src/network-manager.c:106 msgid "disconnecting" msgstr "desconectando" -#: ../cli/src/network-manager.c:153 +#: ../cli/src/network-manager.c:146 #, c-format msgid "Error: 'nm status': %s" msgstr "Erro:«'nm status»: %s" -#: ../cli/src/network-manager.c:155 +#: ../cli/src/network-manager.c:148 #, c-format msgid "Error: 'nm status': %s; allowed fields: %s" msgstr "Erro: 'nm status': %s; campos permitidos: %s" #. create NMClient -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174 -#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "enabled" msgstr "activado" -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174 -#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "disabled" msgstr "desactivado" -#: ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:181 msgid "NetworkManager status" msgstr "Estado de NetworkManager" #. Print header -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:184 msgid "running" msgstr "en execución" -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:184 msgid "not running" msgstr "non está a executarse" -#: ../cli/src/network-manager.c:222 ../cli/src/utils.c:322 +#: ../cli/src/network-manager.c:215 ../cli/src/utils.c:425 #, c-format msgid "Error: Couldn't connect to system bus: %s" msgstr "Erro: Non se puido conectar ao bus do sistema: %s" -#: ../cli/src/network-manager.c:233 +#: ../cli/src/network-manager.c:226 #, c-format msgid "Error: Couldn't create D-Bus object proxy." msgstr "Erro: Non se puido crear o proxy do obxecto D-Bus." -#: ../cli/src/network-manager.c:239 +#: ../cli/src/network-manager.c:232 #, c-format msgid "Error in sleep: %s" msgstr "Erro ao durmir: %s" -#: ../cli/src/network-manager.c:283 ../cli/src/network-manager.c:338 -#: ../cli/src/network-manager.c:376 ../cli/src/network-manager.c:415 +#: ../cli/src/network-manager.c:276 ../cli/src/network-manager.c:331 +#: ../cli/src/network-manager.c:369 ../cli/src/network-manager.c:408 #, c-format msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s" msgstr "Erro: '--fields' valor '%s' non é válido aquí; campos permitidos: %s" -#: ../cli/src/network-manager.c:291 +#: ../cli/src/network-manager.c:284 msgid "Networking enabled" msgstr "Rede activada" -#: ../cli/src/network-manager.c:307 +#: ../cli/src/network-manager.c:300 #, c-format msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'." msgstr "" "Erro: o parámetro 'activar' é incorrecto: '%s'; use 'verdadeiro' ou 'falso'." -#: ../cli/src/network-manager.c:317 +#: ../cli/src/network-manager.c:310 #, c-format msgid "Error: Sleeping status is not exported by NetworkManager." msgstr "Erro: O status dormente non foi exportado polo NetworkManager." -#: ../cli/src/network-manager.c:325 +#: ../cli/src/network-manager.c:318 #, c-format msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." msgstr "" "Erro: O parámetro 'durmir' é incorrecto: '%s'; use 'verdadeiro' ou 'falso'." -#: ../cli/src/network-manager.c:346 +#: ../cli/src/network-manager.c:339 msgid "WiFi enabled" msgstr "WiFi activada" -#: ../cli/src/network-manager.c:362 +#: ../cli/src/network-manager.c:355 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Erro: parámetro «wifi» non válido: «%s»." -#: ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:377 msgid "WWAN enabled" msgstr "WWAN activada" -#: ../cli/src/network-manager.c:400 +#: ../cli/src/network-manager.c:393 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Erro: parámetro «wwan» non válido: «%s»." -#: ../cli/src/network-manager.c:423 -#| msgid "WiFi enabled" +#: ../cli/src/network-manager.c:416 msgid "WiMAX enabled" msgstr "WiMAX activado" -#: ../cli/src/network-manager.c:439 +#: ../cli/src/network-manager.c:432 #, c-format -#| msgid "Error: invalid 'wifi' parameter: '%s'." msgid "Error: invalid 'wimax' parameter: '%s'." msgstr "Erro: parámetro «wimax» non válido: «%s»." -#: ../cli/src/network-manager.c:452 +#: ../cli/src/network-manager.c:445 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Erro: «nm» a orde «%s» non é válida." #: ../cli/src/nmcli.c:64 #, c-format -#| msgid "" -#| "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n" -#| "\n" -#| "OPTIONS\n" -#| " -t[erse] terse output\n" -#| " -p[retty] pretty output\n" -#| " -m[ode] tabular|multiline output mode\n" -#| " -f[ields] <field1,field2,...>|all|common specify fields to output\n" -#| " -e[scape] yes|no escape columns separators in " -#| "values\n" -#| " -v[ersion] show program version\n" -#| " -h[elp] print this help\n" -#| "\n" -#| "OBJECT\n" -#| " nm NetworkManager status\n" -#| " con NetworkManager connections\n" -#| " dev devices managed by NetworkManager\n" -#| "\n" msgid "" "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n" "\n" @@ -1347,117 +1695,156 @@ msgstr "Erro: non é posíbel crear o obxecto NMClient." msgid "Success" msgstr "Éxito" -#: ../cli/src/settings.c:423 +#: ../cli/src/settings.c:497 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (hex-ascii-key)" -#: ../cli/src/settings.c:425 +#: ../cli/src/settings.c:499 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (frase de paso 104/128-bit)" -#: ../cli/src/settings.c:428 +#: ../cli/src/settings.c:502 #, c-format msgid "%d (unknown)" msgstr "%d (descoñecido)" -#: ../cli/src/settings.c:454 +#: ../cli/src/settings.c:528 msgid "0 (unknown)" msgstr "0 (descoñecido)" -#: ../cli/src/settings.c:460 +#: ../cli/src/settings.c:534 msgid "any, " msgstr "calquera, " -#: ../cli/src/settings.c:462 +#: ../cli/src/settings.c:536 msgid "900 MHz, " msgstr "900 MHz, " -#: ../cli/src/settings.c:464 +#: ../cli/src/settings.c:538 msgid "1800 MHz, " msgstr "1800 MHz, " -#: ../cli/src/settings.c:466 +#: ../cli/src/settings.c:540 msgid "1900 MHz, " msgstr "1900 MHz, " -#: ../cli/src/settings.c:468 +#: ../cli/src/settings.c:542 msgid "850 MHz, " msgstr "850 MHz, " -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:544 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:472 +#: ../cli/src/settings.c:546 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:474 +#: ../cli/src/settings.c:548 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:476 +#: ../cli/src/settings.c:550 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:478 +#: ../cli/src/settings.c:552 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:480 +#: ../cli/src/settings.c:554 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:482 +#: ../cli/src/settings.c:556 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:566 ../cli/src/settings.c:732 +#: ../cli/src/settings.c:558 +#| msgid "WCDMA 3GPP UMTS 900 MHz, " +msgid "WCDMA 3GPP UMTS 1900 MHz, " +msgstr "WCDMA 3GPP UMTS 1900 MHz, " + +#: ../cli/src/settings.c:560 +#| msgid "WCDMA 3GPP UMTS 2100 MHz, " +msgid "WCDMA 3GPP UMTS 2600 MHz, " +msgstr "WCDMA 3GPP UMTS 2600 MHz, " + +#: ../cli/src/settings.c:578 +msgid "0 (NONE)" +msgstr "0 (NINGÚN)" + +#: ../cli/src/settings.c:584 +msgid "REORDER_HEADERS, " +msgstr "REORDER_HEADERS, " + +#: ../cli/src/settings.c:586 +msgid "GVRP, " +msgstr "GVRP, " + +#: ../cli/src/settings.c:588 +msgid "LOOSE_BINDING, " +msgstr "LOOSE_BINDING, " + +#: ../cli/src/settings.c:730 ../cli/src/settings.c:926 +#: ../cli/src/settings.c:1630 msgid "auto" msgstr "automático" -#: ../cli/src/settings.c:727 ../cli/src/settings.c:730 -#: ../cli/src/settings.c:731 ../cli/src/utils.c:176 +#: ../cli/src/settings.c:920 ../cli/src/settings.c:923 +#: ../cli/src/settings.c:924 ../cli/src/utils.c:247 msgid "not set" msgstr "non definido" -#: ../cli/src/utils.c:128 +#: ../cli/src/utils.c:103 +#, c-format +#| msgid "%s: error converting IP4 address 0x%X" +msgid "Error converting IP4 address '0x%X' to text form" +msgstr "Produciuse un erro ao converter o enderezo IPv4 «0x%X» á formato texto" + +#: ../cli/src/utils.c:131 +#, c-format +#| msgid "%s: error converting IP4 address 0x%X" +msgid "Error converting IP6 address '%s' to text form" +msgstr "Produciuse un erro ao converter o enderezo IPv6 «%s» á formato texto" + +#: ../cli/src/utils.c:200 #, c-format msgid "field '%s' has to be alone" msgstr "o campo «%s» ten que estar só" -#: ../cli/src/utils.c:131 +#: ../cli/src/utils.c:203 #, c-format msgid "invalid field '%s'" msgstr "campo «%s» non válido" -#: ../cli/src/utils.c:150 +#: ../cli/src/utils.c:222 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "A opcións «--terse» require que especifique «--fields»" -#: ../cli/src/utils.c:154 +#: ../cli/src/utils.c:226 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "" "A opción «--terse» require que especifique os valores da opción «--fields», " "non «%s»" -#: ../cli/src/utils.c:333 +#: ../cli/src/utils.c:436 #, c-format msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" msgstr "" "Erro: non é posíbel crear un proxy de obxecto D-Bus para org.freedesktop." "DBus." -#: ../cli/src/utils.c:341 +#: ../cli/src/utils.c:444 #, c-format msgid "Error: NameHasOwner request failed: %s" msgstr "Erro: produciuse un fallo na resposta «NameHasOwner»: %s" -#: ../cli/src/utils.c:386 +#: ../cli/src/utils.c:489 #, c-format msgid "" "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --" @@ -1466,7 +1853,7 @@ msgstr "" "Advertencia: as versións de nmcli (%s) e de NetworkManager (%s) non " "coinciden. Use «--nocheck» para evitar o aviso.\n" -#: ../cli/src/utils.c:395 +#: ../cli/src/utils.c:498 #, c-format msgid "" "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force " @@ -1536,12 +1923,10 @@ msgstr "" "Produciuse un fallo ao buscar a etiqueta de finalización «%s» de PKCS#8." #: ../libnm-util/crypto.c:312 -#| msgid "Not enough memory to store file data." msgid "Not enough memory to store private key data." msgstr "No hai memoria dabondo para almacenar os datos da chave privada." #: ../libnm-util/crypto.c:317 -#| msgid "Failed to decrypt the private key." msgid "Failed to decode PKCS#8 private key." msgstr "Produciuse un erro ao descifrar a chave privada PKCS#8." @@ -1589,13 +1974,11 @@ msgstr "Non foi posíbel determinar o tipo de chave privada" #: ../libnm-util/crypto.c:597 #, c-format -#| msgid "PEM certificate '%s' had no end tag '%s'." msgid "PEM certificate had no start tag '%s'." msgstr "O certificado PEM non ten etiqueta de inicio «%s»." #: ../libnm-util/crypto.c:606 #, c-format -#| msgid "PEM certificate '%s' had no end tag '%s'." msgid "PEM certificate had no end tag '%s'." msgstr "O certificado PEM non ten etiqueta de finalización «%s»." @@ -1713,13 +2096,11 @@ msgstr "Non foi posíbel verificar o ficheiro PKCS#12: %s" #: ../libnm-util/crypto_gnutls.c:460 #, c-format -#| msgid "Couldn't initialize PKCS#12 decoder: %s" msgid "Couldn't initialize PKCS#8 decoder: %s" msgstr "Non foi posíbel iniciar o decodificador PKCS#8: %s" #: ../libnm-util/crypto_gnutls.c:483 #, c-format -#| msgid "Couldn't decode PKCS#12 file: %s" msgid "Couldn't decode PKCS#8 file: %s" msgstr "Non foi posíbel decodificar o ficheiro PKCS#8: %s" @@ -1834,159 +2215,288 @@ msgstr "Non foi posíbel verficar o ficheiro PKCS#12: %d" msgid "Could not generate random data." msgstr "Non foi posíbel xerar datos aleatorios." -#: ../libnm-util/nm-utils.c:2000 +#: ../libnm-util/nm-utils.c:2034 #, c-format msgid "Not enough memory to make encryption key." msgstr "Sen memoria abondo para crear a chave de cifrado." -#: ../libnm-util/nm-utils.c:2110 +#: ../libnm-util/nm-utils.c:2144 msgid "Could not allocate memory for PEM file creation." msgstr "Non foi posíbel asignar memoria para a creación do ficheiro PEM," -#: ../libnm-util/nm-utils.c:2122 +#: ../libnm-util/nm-utils.c:2156 #, c-format msgid "Could not allocate memory for writing IV to PEM file." msgstr "Non foi posíbel asignar memoria para escribir IV no ficheiro PEM." -#: ../libnm-util/nm-utils.c:2134 +#: ../libnm-util/nm-utils.c:2168 #, c-format msgid "Could not allocate memory for writing encrypted key to PEM file." msgstr "" "Non foi posíbel asignar memoria para escribir a chave cifrada no ficheiro " "PEM." -#: ../libnm-util/nm-utils.c:2153 +#: ../libnm-util/nm-utils.c:2187 #, c-format msgid "Could not allocate memory for PEM file data." msgstr "Non foi posíbel asignar memoria para os datos do ficheiro PEM." #: ../policy/org.freedesktop.NetworkManager.policy.in.h:1 -msgid "Allow control of network connections" -msgstr "Permitir o control das conexións de rede" +msgid "Enable or disable system networking" +msgstr "Activar ou desactivar a rede do sistema" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:2 -msgid "Connection sharing via a protected WiFi network" -msgstr "Conexión compartida a través dunha rede WiFi protexida" +msgid "System policy prevents enabling or disabling system networking" +msgstr "" +"A normativa do sistema evita a activación ou desactivación da rede do sistema" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:3 -msgid "Connection sharing via an open WiFi network" -msgstr "Conexión compartida a través dunha rede WiFi aberta" +msgid "" +"Put NetworkManager to sleep or wake it up (should only be used by system " +"power management)" +msgstr "" +"Poñer o NetworkManager en suspensión e espertalo (só debe ser usado polo " +"sistema de xestión de rede)" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:4 -msgid "Enable or disable WiFi devices" -msgstr "Activar ou desactivar os dispositivos WiFi" +msgid "System policy prevents putting NetworkManager to sleep or waking it up" +msgstr "" +"A normativa do sistema evita poñer o NetworkManager en suspensión ou " +"espertalo" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:5 -#| msgid "Enable or disable mobile broadband devices" -msgid "Enable or disable WiMAX mobile broadband devices" -msgstr "Activar ou desactivar os dispositivos de banda larga móbil WIMAX" +msgid "Enable or disable WiFi devices" +msgstr "Activar ou desactivar os dispositivos WiFi" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:6 -msgid "Enable or disable mobile broadband devices" -msgstr "Activar ou desactivar os dispositivos de banda ancha móbiles" +msgid "System policy prevents enabling or disabling WiFi devices" +msgstr "" +"A normativa do sistema evita a activación e desactivación dos dispositivos " +"WiFi" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 -msgid "Enable or disable system networking" -msgstr "Activar ou desactivar a rede do sistema" +msgid "Enable or disable mobile broadband devices" +msgstr "Activar ou desactivar os dispositivos de banda ancha móbiles" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:8 -#| msgid "Modify system connections" -msgid "Modify network connections for all users" -msgstr "Modificar as conexións de rede para tódolos usuarios" +msgid "System policy prevents enabling or disabling mobile broadband devices" +msgstr "" +"A normativa do sistema evita a activación ou desactivación dos dispositivos " +"de banda ancha." #: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 -msgid "Modify persistent system hostname" -msgstr "Modificar o nome persistente do anfitrión do sistema" +msgid "Enable or disable WiMAX mobile broadband devices" +msgstr "Activar ou desactivar os dispositivos de banda larga móbil WIMAX" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:10 -#| msgid "Allow control of network connections" -msgid "Modify personal network connections" -msgstr "Modificar as conexións de rede persoais" - -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 msgid "" -"Put NetworkManager to sleep or wake it up (should only be used by system " -"power management)" +"System policy prevents enabling or disabling WiMAX mobile broadband devices" msgstr "" -"Poñer o NetworkManager en suspensión e espertalo (só debe ser usado polo " -"sistema de xestión de rede)" +"A normativa do sistema evita activar ou desactivar os dispositivos de banda " +"larga móbil WIMAX." + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 +msgid "Allow control of network connections" +msgstr "Permitir o control das conexións de rede" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:12 msgid "System policy prevents control of network connections" msgstr "A normativa do sistema evita o control das conexións de rede" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:13 -msgid "System policy prevents enabling or disabling WiFi devices" -msgstr "" -"A normativa do sistema evita a activación e desactivación dos dispositivos " -"WiFi" +msgid "Connection sharing via a protected WiFi network" +msgstr "Conexión compartida a través dunha rede WiFi protexida" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:14 -#| msgid "" -#| "System policy prevents enabling or disabling mobile broadband devices" -msgid "" -"System policy prevents enabling or disabling WiMAX mobile broadband devices" +msgid "System policy prevents sharing connections via a protected WiFi network" msgstr "" -"A normativa do sistema evita activar ou desactivar os dispositivos de banda " -"larga móbil WIMAX." +"A política do sistema impide compartir conexións a través dunha rede WiFi " +"protexida" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:15 -msgid "System policy prevents enabling or disabling mobile broadband devices" -msgstr "" -"A normativa do sistema evita a activación ou desactivación dos dispositivos " -"de banda ancha." +msgid "Connection sharing via an open WiFi network" +msgstr "Conexión compartida a través dunha rede WiFi aberta" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:16 -msgid "System policy prevents enabling or disabling system networking" +msgid "System policy prevents sharing connections via an open WiFi network" msgstr "" -"A normativa do sistema evita a activación ou desactivación da rede do sistema" +"A política do sistema impide compartir conexións a través dunha rede WiFi " +"aberta" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:17 -#| msgid "System policy prevents modification of system settings" -msgid "System policy prevents modification of network settings for all users" -msgstr "" -"A política do sistema impide a modificación da configuración da rede para " -"tódolos usuarios" +msgid "Modify personal network connections" +msgstr "Modificar as conexións de rede persoais" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:18 -#| msgid "System policy prevents modification of system settings" msgid "System policy prevents modification of personal network settings" msgstr "" "A política do sistema impide a modificación da configuración persoal da rede" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:19 -msgid "System policy prevents modification of the persistent system hostname" -msgstr "" -"A política do sistema impide a modificación do nome do anfitrión do sistema" +msgid "Modify network connections for all users" +msgstr "Modificar as conexións de rede para tódolos usuarios" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:20 -msgid "System policy prevents putting NetworkManager to sleep or waking it up" +msgid "System policy prevents modification of network settings for all users" msgstr "" -"A normativa do sistema evita poñer o NetworkManager en suspensión ou " -"espertalo" +"A política do sistema impide a modificación da configuración da rede para " +"tódolos usuarios" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:21 -msgid "System policy prevents sharing connections via a protected WiFi network" -msgstr "" -"A política do sistema impide compartir conexións a través dunha rede WiFi " -"protexida" +msgid "Modify persistent system hostname" +msgstr "Modificar o nome persistente do anfitrión do sistema" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:22 -msgid "System policy prevents sharing connections via an open WiFi network" +msgid "System policy prevents modification of the persistent system hostname" msgstr "" -"A política do sistema impide compartir conexións a través dunha rede WiFi " -"aberta" +"A política do sistema impide a modificación do nome do anfitrión do sistema" + +#: ../src/main.c:143 +#, c-format +#| msgid "Failed to initialize the crypto engine: %d." +msgid "Failed to initialize SIGTERM pipe: %d" +msgstr "Produciuse un fallo ao inicializar a tubería SIGTERM: %d" + +#: ../src/main.c:174 +#, c-format +msgid "Opening %s failed: %s\n" +msgstr "A apertura de %s fallou: %s\n" + +#: ../src/main.c:180 +#, c-format +msgid "Writing to %s failed: %s\n" +msgstr "A escritura de %s fallou: %s\n" + +#: ../src/main.c:185 +#, c-format +msgid "Closing %s failed: %s\n" +msgstr "O peche de %s fallou: %s\n" -#: ../src/main.c:525 +#: ../src/main.c:228 +#, c-format +#| msgid "Error: NetworkManager is not running." +msgid "NetworkManager is already running (pid %ld)\n" +msgstr "NetworkManager xa está executándose (pid %ld)\n" + +#: ../src/main.c:368 +#| msgid "NetworkManager status" +msgid "Print NetworkManager version and exit" +msgstr "Imprimir a versión de NetworkManager e saír" + +#: ../src/main.c:369 +msgid "Don't become a daemon" +msgstr "Non converter en daemon" + +#: ../src/main.c:370 +msgid "Make all warnings fatal" +msgstr "Facer todos os avisos fatais" + +#: ../src/main.c:371 +msgid "Specify the location of a PID file" +msgstr "Especifique a localización do ficheiro PID" + +#: ../src/main.c:371 +msgid "filename" +msgstr "nome-de-ficheiro" + +#: ../src/main.c:372 +msgid "State file location" +msgstr "Localización do ficheiro de estado" + +#: ../src/main.c:372 +msgid "/path/to/state.file" +msgstr "/ruta/ao/ficheiro-de.configuración" + +#: ../src/main.c:373 +msgid "Config file location" +msgstr "Localización do ficheiro de configuración" + +#: ../src/main.c:373 +msgid "/path/to/config.file" +msgstr "/ruta/ao/ficheiro-de.configuración" + +#: ../src/main.c:374 +msgid "List of plugins separated by ','" +msgstr "Lista de engadidos separados por «,»" + +#: ../src/main.c:374 +msgid "plugin1,plugin2" +msgstr "engadido1,engadido2" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:376 +msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" +msgstr "Nivel de rexistroÑ un de [ERR, WARN, INFO, DEBUG]" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:379 +msgid "" +"Log domains separated by ',': any combination of\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," +"DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN," +"SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE," +"DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" +msgstr "" +"Dominios de rexistro separados por ',': calquera combinación de\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," +"DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN," +"SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE," +"DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" + +#: ../src/main.c:392 +#, c-format +msgid "GModules are not supported on your platform!\n" +msgstr "GModules non admite a súa plataforma!\n" + +#: ../src/main.c:411 +msgid "" +"NetworkManager monitors all network connections and automatically\n" +"chooses the best connection to use. It also allows the user to\n" +"specify wireless access points which wireless cards in the computer\n" +"should associate with." +msgstr "" +"NetworkManager monitoriza todas as redes e selecciona automaticamente\n" +"a mellor conexión para o seu uso. Tamén lle permite ao usuario\n" +"especificar puntos de accceso sen fíos aos que se asociarán as \n" +"tarxetas sen fíos neste computador." + +#: ../src/main.c:417 #, c-format msgid "Invalid option. Please use --help to see a list of valid options.\n" msgstr "Opción incorrecta. Use --help para ver a lista de opcións válidas.\n" -#: ../src/main.c:606 +#: ../src/main.c:427 +#, c-format +msgid "You must be root to run NetworkManager!\n" +msgstr "Debe ser superusuario para executar NetworkManager!\n" + +#: ../src/main.c:448 +#, c-format +#| msgid "Failed to set IV for encryption: %s / %s." +msgid "Failed to read configuration: (%d) %s\n" +msgstr "Produciuse un fallo ao ler a configuración: (%d) %s\n" + +#: ../src/main.c:459 #, c-format msgid "%s. Please use --help to see a list of valid options.\n" msgstr "%s. Use --help para ver a lista das opcións válidas.\n" +#: ../src/main.c:466 +#, c-format +msgid "State file %s parsing failed: (%d) %s\n" +msgstr "Produciuse un fallo ao analizar o ficheiro de estado %s: (%d) %s\n" + +#: ../src/main.c:483 +#, c-format +msgid "Could not daemonize: %s [error %u]\n" +msgstr "Non foi posíbel crear o daemon: %s [error %u]\n" + #: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62 msgid "# Created by NetworkManager\n" msgstr "# Creado por NetworkManager\n" @@ -2000,19 +2510,19 @@ msgstr "" "# Fusionado desde %s\n" "\n" -#: ../src/dhcp-manager/nm-dhcp-manager.c:284 +#: ../src/dhcp-manager/nm-dhcp-manager.c:266 msgid "no usable DHCP client could be found." msgstr "non se encontrou un cliente de DHCP usábel." -#: ../src/dhcp-manager/nm-dhcp-manager.c:293 +#: ../src/dhcp-manager/nm-dhcp-manager.c:275 msgid "'dhclient' could be found." msgstr "Non foi posíbel encontrar «dhclient»." -#: ../src/dhcp-manager/nm-dhcp-manager.c:303 +#: ../src/dhcp-manager/nm-dhcp-manager.c:285 msgid "'dhcpcd' could be found." msgstr "Non foi posíbel encontrar «dhcpcd»." -#: ../src/dhcp-manager/nm-dhcp-manager.c:311 +#: ../src/dhcp-manager/nm-dhcp-manager.c:293 #, c-format msgid "unsupported DHCP client '%s'" msgstr "cliente DHCP «%s» non compatíbel" @@ -2025,115 +2535,142 @@ msgstr "NOTE: o importador libc non permite máis de 3 nomes de servidores." msgid "The nameservers listed below may not be recognized." msgstr "Os nomes de servidores listados a seguir poden non ser recoñecidos" -#: ../src/logging/nm-logging.c:149 +#: ../src/logging/nm-logging.c:130 #, c-format msgid "Unknown log level '%s'" msgstr "Nivel de rexistro «%s» descoñecido" -#: ../src/logging/nm-logging.c:174 +#: ../src/logging/nm-logging.c:155 #, c-format msgid "Unknown log domain '%s'" msgstr "Dominio de rexistro «%s» descoñecido" -#: ../src/modem-manager/nm-modem-cdma.c:296 ../src/nm-device-bt.c:355 +#: ../src/modem-manager/nm-modem-cdma.c:279 ../src/nm-device-bt.c:325 #, c-format -#| msgid "connection failed" msgid "CDMA connection %d" msgstr "Conexión CDMA %d" -#: ../src/modem-manager/nm-modem-gsm.c:499 ../src/nm-device-bt.c:351 +#: ../src/modem-manager/nm-modem-gsm.c:512 ../src/nm-device-bt.c:321 #, c-format -#| msgid "connection failed" msgid "GSM connection %d" msgstr "Conexión GSM %d" -#: ../src/nm-device-bt.c:326 +#: ../src/nm-device-bond.c:192 +#, c-format +#| msgid "PPPoE connection %d" +msgid "Bond connection %d" +msgstr "Conexión Bond %d" + +#: ../src/nm-device-bt.c:296 #, c-format -#| msgid "VPN connection failed" msgid "PAN connection %d" msgstr "Conexión PAN %d" -#: ../src/nm-device-bt.c:359 +#: ../src/nm-device-bt.c:329 #, c-format -#| msgid "VPN connection failed" msgid "DUN connection %d" msgstr "Conexión DUN %d" -#: ../src/nm-device-ethernet.c:1724 +#: ../src/nm-device-ethernet.c:1326 #, c-format -#| msgid "VPN connection failed" msgid "PPPoE connection %d" msgstr "Conexión PPPoE %d" -#: ../src/nm-device-ethernet.c:1724 ../src/settings/nm-settings-utils.c:50 +#: ../src/nm-device-ethernet.c:1326 ../src/settings/nm-settings-utils.c:50 #, c-format -#| msgid "Active connections" msgid "Wired connection %d" msgstr "Conexión cableada %d" -#: ../src/nm-device-olpc-mesh.c:393 +#: ../src/nm-device-infiniband.c:303 +#, c-format +#| msgid "Wired connection %d" +msgid "InfiniBand connection %d" +msgstr "Conexión InfiniBand %d" + +#: ../src/nm-device-olpc-mesh.c:293 #, c-format msgid "Mesh %d" msgstr "Malla %d" -#: ../src/nm-manager.c:663 +#: ../src/nm-device-vlan.c:362 +#, c-format +#| msgid "PAN connection %d" +msgid "VLAN connection %d" +msgstr "Conexión VLAN %d" + +#: ../src/nm-manager.c:661 #, c-format -#| msgid "VPN connection failed" msgid "VPN connection %d" msgstr "Conexión VPN %d" -#: ../src/nm-netlink-monitor.c:101 ../src/nm-netlink-monitor.c:234 -#: ../src/nm-netlink-monitor.c:667 +#: ../src/nm-netlink-monitor.c:148 ../src/nm-netlink-monitor.c:272 +#: ../src/nm-netlink-monitor.c:695 #, c-format msgid "error processing netlink message: %s" msgstr "produciuse un erro procesando a mensaxe netlink: %s" -#: ../src/nm-netlink-monitor.c:216 +#: ../src/nm-netlink-monitor.c:251 msgid "error occurred while waiting for data on socket" msgstr "producouse un erro agardando por datos nun socket" -#: ../src/nm-netlink-monitor.c:260 +#: ../src/nm-netlink-monitor.c:296 #, c-format msgid "unable to connect to netlink for monitoring link status: %s" msgstr "" "non é posíbel conectar ao netlink para monitorizar o estado da lingazón: %s" -#: ../src/nm-netlink-monitor.c:271 +#: ../src/nm-netlink-monitor.c:307 #, c-format msgid "unable to enable netlink handle credential passing: %s" msgstr "" "non é posíbel activar a ligazón de rede para xestionar o paso de " "creadenciais: %s" -#: ../src/nm-netlink-monitor.c:297 ../src/nm-netlink-monitor.c:360 +#: ../src/nm-netlink-monitor.c:330 ../src/nm-netlink-monitor.c:390 #, c-format msgid "unable to allocate netlink handle for monitoring link status: %s" msgstr "" "non é posíbel crear o manexador netlink para monitorizar o estado da " "ligazón: %s" -#: ../src/nm-netlink-monitor.c:385 +#: ../src/nm-netlink-monitor.c:415 #, c-format msgid "unable to allocate netlink link cache for monitoring link status: %s" msgstr "" "non é posíbel asignar a ligazón á caché netlink para monitorizar o estado da " "ligazón: %s" -#: ../src/nm-netlink-monitor.c:512 +#: ../src/nm-netlink-monitor.c:542 #, c-format msgid "unable to join netlink group: %s" msgstr "non é posíbel unir ao grupo da ligazón de rede: %s" -#: ../src/nm-netlink-monitor.c:643 ../src/nm-netlink-monitor.c:656 +#: ../src/nm-netlink-monitor.c:671 ../src/nm-netlink-monitor.c:684 #, c-format msgid "error updating link cache: %s" msgstr "produciuse un erro ao actualizar a caché de ligazóns: %s" -#: ../src/settings/plugins/ifcfg-rh/reader.c:3575 -#: ../src/settings/plugins/ifnet/connection_parser.c:51 +#: ../src/settings/plugins/ifcfg-rh/reader.c:93 msgid "System" msgstr "Sistema" +#: ../src/settings/plugins/ifcfg-rh/reader.c:3632 +#| msgid "on" +msgid "Bond" +msgstr "Bond" + +#~ msgid "IP4-SETTINGS" +#~ msgstr "CONFIGURACIONS-IP4" + +#~ msgid "IP6-SETTINGS" +#~ msgstr "IP4-CONFIGURACIONS" + +#~ msgid "PREFIX" +#~ msgstr "PREFIXO" + +#~ msgid "unknown)" +#~ msgstr "descoñecido)" + #~ msgid "Auto %s" #~ msgstr "Auto %s" diff --git a/po/id.po b/po/id.po index 278b0e82..5e70c014 100644 --- a/po/id.po +++ b/po/id.po @@ -1,14 +1,14 @@ # Indonesian translation for network-manager # Copyright (C) 2010 THE network-manager'S COPYRIGHT HOLDER # This file is distributed under the same license as the network-manager package. -# Andika Triwidada <andika@gmail.com>, 2010, 2011. +# Andika Triwidada <andika@gmail.com>, 2010, 2011, 2012. # msgid "" msgstr "" "Project-Id-Version: network-manager master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-05-18 03:24+0000\n" -"PO-Revision-Date: 2011-08-14 21:21+0700\n" +"POT-Creation-Date: 2012-05-09 03:24+0000\n" +"PO-Revision-Date: 2012-05-09 17:12+0700\n" "Last-Translator: Andika Triwidada <andika@gmail.com>\n" "Language-Team: GNOME Indonesian Translation Team <gnome@i15n.org>\n" "MIME-Version: 1.0\n" @@ -18,790 +18,935 @@ msgstr "" "X-Poedit-Language: Indonesian\n" "X-Poedit-Country: Indonesia\n" -#: ../cli/src/connections.c:64 -#: ../cli/src/connections.c:78 -#: ../cli/src/devices.c:101 -#: ../cli/src/devices.c:114 +#: ../cli/src/common.c:32 +#: ../cli/src/common.c:44 +#: ../cli/src/common.c:52 +#: ../cli/src/common.c:63 +#: ../cli/src/connections.c:125 +#: ../cli/src/connections.c:159 +msgid "GROUP" +msgstr "GROUP" + +#. 0 +#: ../cli/src/common.c:33 +#: ../cli/src/common.c:53 +msgid "ADDRESS" +msgstr "ADDRESS" + +#. 1 +#: ../cli/src/common.c:34 +#: ../cli/src/common.c:54 +msgid "ROUTE" +msgstr "ROUTE" + +#. 2 +#: ../cli/src/common.c:35 +#: ../cli/src/common.c:55 +msgid "DNS" +msgstr "DNS" + +#. 3 +#: ../cli/src/common.c:36 +#: ../cli/src/common.c:56 +msgid "DOMAIN" +msgstr "DOMAIN" + +#. 4 +#: ../cli/src/common.c:37 +msgid "WINS" +msgstr "WINS" + +#. 0 +#: ../cli/src/common.c:45 +#: ../cli/src/common.c:64 +msgid "OPTION" +msgstr "OPTION" + +#. 0 +#. used only for 'GENERAL' group listing +#: ../cli/src/connections.c:58 +#: ../cli/src/connections.c:126 +#: ../cli/src/devices.c:103 #: ../cli/src/devices.c:124 #: ../cli/src/devices.c:134 -#: ../cli/src/devices.c:148 -#: ../cli/src/devices.c:162 -#: ../cli/src/devices.c:173 -#: ../cli/src/devices.c:184 -#: ../cli/src/devices.c:193 -#: ../cli/src/devices.c:202 -#: ../cli/src/devices.c:224 +#: ../cli/src/devices.c:144 +#: ../cli/src/devices.c:158 +#: ../cli/src/devices.c:172 +#: ../cli/src/devices.c:194 msgid "NAME" msgstr "NAME" #. 0 -#: ../cli/src/connections.c:65 -#: ../cli/src/connections.c:79 +#. 1 +#: ../cli/src/connections.c:59 +#: ../cli/src/connections.c:127 msgid "UUID" msgstr "UUID" #. 1 -#: ../cli/src/connections.c:66 -msgid "DEVICES" -msgstr "DEVICES" +#. 0 +#. 1 +#. 2 +#: ../cli/src/connections.c:60 +#: ../cli/src/connections.c:160 +#: ../cli/src/devices.c:69 +#: ../cli/src/devices.c:105 +#: ../cli/src/devices.c:197 +msgid "TYPE" +msgstr "TYPE" #. 2 -#: ../cli/src/connections.c:67 -msgid "DEFAULT" -msgstr "DEFAULT" +#: ../cli/src/connections.c:61 +msgid "TIMESTAMP" +msgstr "TIMESTAMP" #. 3 -#: ../cli/src/connections.c:68 -msgid "SPEC-OBJECT" -msgstr "SPEC-OBJECT" +#: ../cli/src/connections.c:62 +msgid "TIMESTAMP-REAL" +msgstr "TIMESTAMP-REAL" #. 4 -#: ../cli/src/connections.c:69 -msgid "VPN" -msgstr "VPN" +#: ../cli/src/connections.c:63 +msgid "AUTOCONNECT" +msgstr "AUTOCONNECT" #. 5 +#: ../cli/src/connections.c:64 +msgid "READONLY" +msgstr "READONLY" + #. 6 +#. 8 #. 2 #. 11 #. 5 -#: ../cli/src/connections.c:70 -#: ../cli/src/connections.c:85 -#: ../cli/src/devices.c:69 -#: ../cli/src/devices.c:214 -#: ../cli/src/devices.c:230 +#: ../cli/src/connections.c:65 +#: ../cli/src/connections.c:134 +#: ../cli/src/devices.c:71 +#: ../cli/src/devices.c:184 +#: ../cli/src/devices.c:200 msgid "DBUS-PATH" msgstr "DBUS-PATH" +#. 2 +#: ../cli/src/connections.c:128 +msgid "DEVICES" +msgstr "DEVICES" + +#. 3 +#. 1 +#. 6 #. 1 +#: ../cli/src/connections.c:129 +#: ../cli/src/devices.c:70 +#: ../cli/src/devices.c:110 +#: ../cli/src/network-manager.c:39 +msgid "STATE" +msgstr "STATE" + +#. 4 +#: ../cli/src/connections.c:130 +msgid "DEFAULT" +msgstr "DEFAULT" + +#. 5 +#: ../cli/src/connections.c:131 +msgid "DEFAULT6" +msgstr "DEFAULT6" + +#. 6 +#: ../cli/src/connections.c:132 +msgid "SPEC-OBJECT" +msgstr "SPEC-OBJECT" + +#. 7 +#. 1 +#: ../cli/src/connections.c:133 +#: ../cli/src/connections.c:147 +msgid "VPN" +msgstr "VPN" + +#. 9 +#: ../cli/src/connections.c:135 +msgid "CON-PATH" +msgstr "CON-PATH" + +#. 10 +#: ../cli/src/connections.c:136 +msgid "ZONE" +msgstr "ZONE" + +#. 11 +#: ../cli/src/connections.c:137 +msgid "MASTER-PATH" +msgstr "MASTER-PATH" + +#: ../cli/src/connections.c:145 +#: ../cli/src/devices.c:80 +msgid "GENERAL" +msgstr "GENERAL" + #. 0 +#: ../cli/src/connections.c:146 +msgid "IP" +msgstr "IP" + #. 1 -#. 2 -#: ../cli/src/connections.c:80 -#: ../cli/src/devices.c:67 -#: ../cli/src/devices.c:103 -#: ../cli/src/devices.c:227 -msgid "TYPE" -msgstr "TYPE" +#: ../cli/src/connections.c:161 +msgid "USERNAME" +msgstr "USERNAME" #. 2 -#: ../cli/src/connections.c:81 -msgid "TIMESTAMP" -msgstr "TIMESTAMP" +#: ../cli/src/connections.c:162 +msgid "GATEWAY" +msgstr "GATEWAY" #. 3 -#: ../cli/src/connections.c:82 -msgid "TIMESTAMP-REAL" -msgstr "TIMESTAMP-REAL" +#: ../cli/src/connections.c:163 +msgid "BANNER" +msgstr "BANNER" #. 4 -#: ../cli/src/connections.c:83 -msgid "AUTOCONNECT" -msgstr "AUTOCONNECT" +#: ../cli/src/connections.c:164 +msgid "VPN-STATE" +msgstr "VPN-STATE" #. 5 -#: ../cli/src/connections.c:84 -msgid "READONLY" -msgstr "READONLY" +#: ../cli/src/connections.c:165 +msgid "CFG" +msgstr "CFG" -#: ../cli/src/connections.c:167 -#, c-format -#| msgid "" -#| "Usage: nmcli con { COMMAND | help }\n" -#| " COMMAND := { list | status | up | down }\n" -#| "\n" -#| " list [id <id> | uuid <id> | system | user]\n" -#| " status\n" -#| " up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--" -#| "timeout <timeout>]\n" -#| " down id <id> | uuid <id>\n" +#: ../cli/src/connections.c:186 +#, c-format msgid "" "Usage: nmcli con { COMMAND | help }\n" -" COMMAND := { list | status | up | down }\n" +" COMMAND := { list | status | up | down | delete }\n" "\n" " list [id <id> | uuid <id>]\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--nowait] [--timeout <timeout>]\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout <timeout>]\n" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--nowait] [--timeout <timeout>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout <timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" msgstr "" "Cara pakai: nmcli con { PERINTAH | help }\n" -" PERINTAH := { list | status | up | down }\n" +" PERINTAH := { list | status | up | down | delete }\n" "\n" -" list [id <id> | uuid <id>\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>][--nowait] [--timeout <timeout>]\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout <timeout>]\n" +" list [id <id> | uuid <id>]\n" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--nowait] [--timeout <timeout>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout <timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" -#: ../cli/src/connections.c:220 -#: ../cli/src/connections.c:542 +#: ../cli/src/connections.c:240 +#: ../cli/src/connections.c:591 #, c-format msgid "Error: 'con list': %s" msgstr "Galat: 'con list': %s" -#: ../cli/src/connections.c:222 -#: ../cli/src/connections.c:544 +#: ../cli/src/connections.c:242 +#: ../cli/src/connections.c:593 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Galat: 'con list': %s; ruas yang diijinkan: %s" -#: ../cli/src/connections.c:230 +#: ../cli/src/connections.c:250 msgid "Connection details" msgstr "Rincian koneksi" -#: ../cli/src/connections.c:417 +#: ../cli/src/connections.c:466 msgid "never" msgstr "never" #. "CAPABILITIES" #. Print header #. "WIFI-PROPERTIES" -#: ../cli/src/connections.c:418 -#: ../cli/src/connections.c:419 -#: ../cli/src/connections.c:597 -#: ../cli/src/connections.c:599 -#: ../cli/src/devices.c:509 -#: ../cli/src/devices.c:562 -#: ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 -#: ../cli/src/devices.c:714 -#: ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 -#: ../cli/src/devices.c:717 -#: ../cli/src/settings.c:520 -#: ../cli/src/settings.c:563 -#: ../cli/src/settings.c:663 -#: ../cli/src/settings.c:937 -#: ../cli/src/settings.c:938 -#: ../cli/src/settings.c:940 -#: ../cli/src/settings.c:942 -#: ../cli/src/settings.c:1067 -#: ../cli/src/settings.c:1068 -#: ../cli/src/settings.c:1069 -#: ../cli/src/settings.c:1148 -#: ../cli/src/settings.c:1149 -#: ../cli/src/settings.c:1150 -#: ../cli/src/settings.c:1151 -#: ../cli/src/settings.c:1152 -#: ../cli/src/settings.c:1153 -#: ../cli/src/settings.c:1154 -#: ../cli/src/settings.c:1155 -#: ../cli/src/settings.c:1156 -#: ../cli/src/settings.c:1157 -#: ../cli/src/settings.c:1158 -#: ../cli/src/settings.c:1159 -#: ../cli/src/settings.c:1160 -#: ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:467 +#: ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 +#: ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 +#: ../cli/src/devices.c:605 +#: ../cli/src/devices.c:658 +#: ../cli/src/devices.c:772 +#: ../cli/src/devices.c:773 +#: ../cli/src/devices.c:805 +#: ../cli/src/devices.c:831 +#: ../cli/src/devices.c:832 +#: ../cli/src/devices.c:833 +#: ../cli/src/devices.c:834 +#: ../cli/src/devices.c:835 +#: ../cli/src/network-manager.c:267 +#: ../cli/src/settings.c:657 +#: ../cli/src/settings.c:727 +#: ../cli/src/settings.c:847 +#: ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1130 +#: ../cli/src/settings.c:1132 +#: ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1135 +#: ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1266 +#: ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1353 +#: ../cli/src/settings.c:1424 msgid "yes" msgstr "ya" -#: ../cli/src/connections.c:418 -#: ../cli/src/connections.c:419 -#: ../cli/src/connections.c:597 -#: ../cli/src/connections.c:599 -#: ../cli/src/devices.c:509 -#: ../cli/src/devices.c:562 -#: ../cli/src/devices.c:687 -#: ../cli/src/devices.c:713 -#: ../cli/src/devices.c:714 -#: ../cli/src/devices.c:715 -#: ../cli/src/devices.c:716 -#: ../cli/src/devices.c:717 -#: ../cli/src/settings.c:520 -#: ../cli/src/settings.c:522 -#: ../cli/src/settings.c:563 -#: ../cli/src/settings.c:663 -#: ../cli/src/settings.c:937 -#: ../cli/src/settings.c:938 -#: ../cli/src/settings.c:940 -#: ../cli/src/settings.c:942 -#: ../cli/src/settings.c:1067 -#: ../cli/src/settings.c:1068 -#: ../cli/src/settings.c:1069 -#: ../cli/src/settings.c:1148 -#: ../cli/src/settings.c:1149 -#: ../cli/src/settings.c:1150 -#: ../cli/src/settings.c:1151 -#: ../cli/src/settings.c:1152 -#: ../cli/src/settings.c:1153 -#: ../cli/src/settings.c:1154 -#: ../cli/src/settings.c:1155 -#: ../cli/src/settings.c:1156 -#: ../cli/src/settings.c:1157 -#: ../cli/src/settings.c:1158 -#: ../cli/src/settings.c:1159 -#: ../cli/src/settings.c:1160 -#: ../cli/src/settings.c:1235 +#: ../cli/src/connections.c:467 +#: ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 +#: ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 +#: ../cli/src/devices.c:605 +#: ../cli/src/devices.c:658 +#: ../cli/src/devices.c:772 +#: ../cli/src/devices.c:773 +#: ../cli/src/devices.c:805 +#: ../cli/src/devices.c:831 +#: ../cli/src/devices.c:832 +#: ../cli/src/devices.c:833 +#: ../cli/src/devices.c:834 +#: ../cli/src/devices.c:835 +#: ../cli/src/network-manager.c:269 +#: ../cli/src/settings.c:657 +#: ../cli/src/settings.c:659 +#: ../cli/src/settings.c:727 +#: ../cli/src/settings.c:847 +#: ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1130 +#: ../cli/src/settings.c:1132 +#: ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1135 +#: ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1266 +#: ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1353 +#: ../cli/src/settings.c:1424 msgid "no" msgstr "tidak" -#: ../cli/src/connections.c:493 -#| msgid "Connection details" +#: ../cli/src/connections.c:542 msgid "Connection list" msgstr "Daftar koneksi" -#: ../cli/src/connections.c:506 -#: ../cli/src/connections.c:1378 -#: ../cli/src/connections.c:1393 -#: ../cli/src/connections.c:1402 -#: ../cli/src/connections.c:1412 -#: ../cli/src/connections.c:1424 -#: ../cli/src/connections.c:1519 -#: ../cli/src/devices.c:1190 -#: ../cli/src/devices.c:1200 -#: ../cli/src/devices.c:1314 -#: ../cli/src/devices.c:1321 -#: ../cli/src/devices.c:1534 -#: ../cli/src/devices.c:1541 +#: ../cli/src/connections.c:555 +#: ../cli/src/connections.c:1088 +#: ../cli/src/connections.c:1456 +#: ../cli/src/connections.c:1471 +#: ../cli/src/connections.c:1480 +#: ../cli/src/connections.c:1490 +#: ../cli/src/connections.c:1502 +#: ../cli/src/connections.c:1601 +#: ../cli/src/connections.c:1703 +#: ../cli/src/devices.c:1212 +#: ../cli/src/devices.c:1222 +#: ../cli/src/devices.c:1336 +#: ../cli/src/devices.c:1344 +#: ../cli/src/devices.c:1718 +#: ../cli/src/devices.c:1725 +#: ../cli/src/devices.c:1739 +#: ../cli/src/devices.c:1746 +#: ../cli/src/devices.c:1763 +#: ../cli/src/devices.c:1774 +#: ../cli/src/devices.c:1995 +#: ../cli/src/devices.c:2002 #, c-format msgid "Error: %s argument is missing." msgstr "Galat: argumen %s hilang." -#: ../cli/src/connections.c:519 +#: ../cli/src/connections.c:568 #, c-format msgid "Error: %s - no such connection." msgstr "Galat: %s - koneksi tak ada." -#: ../cli/src/connections.c:525 -#: ../cli/src/connections.c:1437 -#: ../cli/src/connections.c:1536 -#: ../cli/src/devices.c:987 -#: ../cli/src/devices.c:1067 -#: ../cli/src/devices.c:1214 -#: ../cli/src/devices.c:1327 -#: ../cli/src/devices.c:1547 +#: ../cli/src/connections.c:574 +#: ../cli/src/connections.c:1515 +#: ../cli/src/connections.c:1618 +#: ../cli/src/connections.c:1710 +#: ../cli/src/devices.c:1009 +#: ../cli/src/devices.c:1089 +#: ../cli/src/devices.c:1236 +#: ../cli/src/devices.c:1350 +#: ../cli/src/devices.c:1787 +#: ../cli/src/devices.c:2008 #, c-format msgid "Unknown parameter: %s\n" msgstr "Parameter tak dikenal: %s\n" -#: ../cli/src/connections.c:534 +#: ../cli/src/connections.c:583 #, c-format msgid "Error: no valid parameter specified." msgstr "Galat: tak ada parameter valid yang dinyatakan." -#: ../cli/src/connections.c:549 -#: ../cli/src/connections.c:1627 -#: ../cli/src/devices.c:1755 -#: ../cli/src/network-manager.c:463 +#: ../cli/src/connections.c:598 +#: ../cli/src/connections.c:1803 +#: ../cli/src/devices.c:2216 +#: ../cli/src/network-manager.c:596 #, c-format msgid "Error: %s." msgstr "Galat: %s." +#: ../cli/src/connections.c:611 +msgid "activating" +msgstr "mengaktifkan" + +#: ../cli/src/connections.c:613 +msgid "activated" +msgstr "diaktifkan" + +#: ../cli/src/connections.c:615 +#: ../cli/src/devices.c:273 +msgid "deactivating" +msgstr "menonaktifkan" + +#: ../cli/src/connections.c:618 +#: ../cli/src/connections.c:641 +#: ../cli/src/connections.c:1327 +#: ../cli/src/devices.c:277 +#: ../cli/src/devices.c:806 +#: ../cli/src/network-manager.c:123 +#: ../cli/src/network-manager.c:185 +#: ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:197 +#: ../cli/src/network-manager.c:257 +#: ../cli/src/network-manager.c:273 +#: ../cli/src/network-manager.c:431 +#: ../cli/src/network-manager.c:486 +#: ../cli/src/network-manager.c:524 +#: ../cli/src/network-manager.c:563 +#: ../cli/src/settings.c:563 +#: ../cli/src/settings.c:591 +#: ../cli/src/utils.c:531 +#: ../src/main.c:458 +#: ../src/main.c:477 +msgid "unknown" +msgstr "tak diketahui" + +#: ../cli/src/connections.c:627 +msgid "VPN connecting (prepare)" +msgstr "VPN sedang menyiapkan" + +#: ../cli/src/connections.c:629 +msgid "VPN connecting (need authentication)" +msgstr "VPN sedang menyambung (perlu otentikasi)" + +#: ../cli/src/connections.c:631 +msgid "VPN connecting" +msgstr "VPN sedang menyambung" + +#: ../cli/src/connections.c:633 +msgid "VPN connecting (getting IP configuration)" +msgstr "VPN sedang menyambung (sedang mengambil konfigurasi IP)" + +#: ../cli/src/connections.c:635 +msgid "VPN connected" +msgstr "VPN terhubung" + #: ../cli/src/connections.c:637 +msgid "VPN connection failed" +msgstr "Sambungan VPN gagal" + +#: ../cli/src/connections.c:639 +msgid "VPN disconnected" +msgstr "VPN diputus" + +#: ../cli/src/connections.c:892 +#: ../cli/src/connections.c:1116 #, c-format msgid "Error: 'con status': %s" msgstr "Galat: 'con status': %s" -#: ../cli/src/connections.c:639 +#: ../cli/src/connections.c:894 +#: ../cli/src/connections.c:1118 #, c-format msgid "Error: 'con status': %s; allowed fields: %s" msgstr "Galat: 'con status': %s; ruas yang diijinkan: %s" -#: ../cli/src/connections.c:647 -#: ../cli/src/connections.c:1452 -#: ../cli/src/connections.c:1551 -#: ../cli/src/devices.c:1014 -#: ../cli/src/devices.c:1076 -#: ../cli/src/devices.c:1229 -#: ../cli/src/devices.c:1357 -#: ../cli/src/devices.c:1576 +#: ../cli/src/connections.c:902 +msgid "Active connection details" +msgstr "Rincian koneksi aktif" + +#: ../cli/src/connections.c:1038 +#: ../cli/src/connections.c:1530 +#: ../cli/src/connections.c:1633 +#: ../cli/src/connections.c:1724 +#: ../cli/src/devices.c:1036 +#: ../cli/src/devices.c:1098 +#: ../cli/src/devices.c:1251 +#: ../cli/src/devices.c:1380 +#: ../cli/src/devices.c:1809 +#: ../cli/src/devices.c:2037 +#: ../cli/src/network-manager.c:311 #, c-format -#| msgid "Error: Could not connect to NetworkManager." msgid "Error: Can't find out if NetworkManager is running: %s." msgstr "Galat: Tak bisa menentukan apakah NetworkManager sedang berjalan: %s." -#: ../cli/src/connections.c:651 -#: ../cli/src/connections.c:1456 -#: ../cli/src/connections.c:1555 -#: ../cli/src/devices.c:1018 -#: ../cli/src/devices.c:1080 -#: ../cli/src/devices.c:1233 -#: ../cli/src/devices.c:1361 -#: ../cli/src/devices.c:1580 +#: ../cli/src/connections.c:1042 +#: ../cli/src/connections.c:1534 +#: ../cli/src/connections.c:1637 +#: ../cli/src/connections.c:1728 +#: ../cli/src/devices.c:1040 +#: ../cli/src/devices.c:1102 +#: ../cli/src/devices.c:1255 +#: ../cli/src/devices.c:1384 +#: ../cli/src/devices.c:1813 +#: ../cli/src/devices.c:2041 +#: ../cli/src/network-manager.c:315 #, c-format -#| msgid "NetworkManager status" msgid "Error: NetworkManager is not running." msgstr "Galat: NetworkManager tidak sedang berjalan." -#: ../cli/src/connections.c:659 +#: ../cli/src/connections.c:1074 msgid "Active connections" msgstr "Koneksi aktif" -#: ../cli/src/connections.c:1095 +#: ../cli/src/connections.c:1099 +#, c-format +msgid "Error: '%s' is not an active connection." +msgstr "Galat: %s bukan suatu koneksi aktif." + +#: ../cli/src/connections.c:1104 +#, c-format +msgid "Error: unknown parameter: %s" +msgstr "Galat: parameter tak dikenal: %s" + +#: ../cli/src/connections.c:1211 #, c-format msgid "no active connection on device '%s'" msgstr "tak ada koneksi aktif pada perangkat '%s'" -#: ../cli/src/connections.c:1103 +#: ../cli/src/connections.c:1219 #, c-format msgid "no active connection or device" msgstr "tak ada koneksi atau perangkat aktif " -#: ../cli/src/connections.c:1174 +#: ../cli/src/connections.c:1290 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "perangkat '%s' tak kompatibel dengan koneksi '%s'" -#: ../cli/src/connections.c:1176 +#: ../cli/src/connections.c:1292 #, c-format msgid "no device found for connection '%s'" msgstr "tak ditemukan perangkat bagi koneksi '%s'" -#: ../cli/src/connections.c:1187 -msgid "activating" -msgstr "mengaktifkan" - -#: ../cli/src/connections.c:1189 -msgid "activated" -msgstr "diaktifkan" - -#: ../cli/src/connections.c:1191 -#: ../cli/src/devices.c:304 -#| msgid "activating" -msgid "deactivating" -msgstr "menonaktifkan" - -#: ../cli/src/connections.c:1194 -#: ../cli/src/connections.c:1217 -#: ../cli/src/connections.c:1250 -#: ../cli/src/devices.c:308 -#: ../cli/src/devices.c:688 -#: ../cli/src/network-manager.c:118 -#: ../cli/src/network-manager.c:180 -#: ../cli/src/network-manager.c:183 -#: ../cli/src/network-manager.c:192 -#: ../cli/src/network-manager.c:298 -#: ../cli/src/network-manager.c:353 -#: ../cli/src/network-manager.c:391 -#: ../cli/src/network-manager.c:430 -#: ../cli/src/settings.c:485 -#: ../cli/src/utils.c:396 -msgid "unknown" -msgstr "tak diketahui" - -#: ../cli/src/connections.c:1203 -msgid "VPN connecting (prepare)" -msgstr "VPN sedang menyiapkan" - -#: ../cli/src/connections.c:1205 -msgid "VPN connecting (need authentication)" -msgstr "VPN sedang menyambung (perlu otentikasi)" - -#: ../cli/src/connections.c:1207 -msgid "VPN connecting" -msgstr "VPN sedang menyambung" - -#: ../cli/src/connections.c:1209 -msgid "VPN connecting (getting IP configuration)" -msgstr "VPN sedang menyambung (sedang mengambil konfigurasi IP)" - -#: ../cli/src/connections.c:1211 -msgid "VPN connected" -msgstr "VPN terhubung" - -#: ../cli/src/connections.c:1213 -msgid "VPN connection failed" -msgstr "Sambungan VPN gagal" - -#: ../cli/src/connections.c:1215 -msgid "VPN disconnected" -msgstr "VPN diputus" - -#: ../cli/src/connections.c:1226 +#: ../cli/src/connections.c:1303 msgid "unknown reason" msgstr "alasan tidak diketahui" -#: ../cli/src/connections.c:1228 +#: ../cli/src/connections.c:1305 msgid "none" msgstr "tidak ada" -#: ../cli/src/connections.c:1230 +#: ../cli/src/connections.c:1307 msgid "the user was disconnected" msgstr "pengguna diputus" -#: ../cli/src/connections.c:1232 +#: ../cli/src/connections.c:1309 msgid "the base network connection was interrupted" msgstr "koneksi jaringan dasar terputus" -#: ../cli/src/connections.c:1234 +#: ../cli/src/connections.c:1311 msgid "the VPN service stopped unexpectedly" msgstr "layanan VPN berhenti secara tak terduga" -#: ../cli/src/connections.c:1236 +#: ../cli/src/connections.c:1313 msgid "the VPN service returned invalid configuration" msgstr "layanan VPN mengembalikan konfigurasi yang tak valid" -#: ../cli/src/connections.c:1238 +#: ../cli/src/connections.c:1315 msgid "the connection attempt timed out" msgstr "usaha koneksi kehabisan waktu" -#: ../cli/src/connections.c:1240 +#: ../cli/src/connections.c:1317 msgid "the VPN service did not start in time" msgstr "layanan VPN tak mulai pada waktunya" -#: ../cli/src/connections.c:1242 +#: ../cli/src/connections.c:1319 msgid "the VPN service failed to start" msgstr "layanan VPN gagal dimulai" -#: ../cli/src/connections.c:1244 +#: ../cli/src/connections.c:1321 msgid "no valid VPN secrets" msgstr "tak ada rahasia VPN yang valid" -#: ../cli/src/connections.c:1246 +#: ../cli/src/connections.c:1323 msgid "invalid VPN secrets" msgstr "rahasia VPN tak valid" -#: ../cli/src/connections.c:1248 +#: ../cli/src/connections.c:1325 msgid "the connection was removed" msgstr "koneksi dihapus" -#: ../cli/src/connections.c:1262 +#: ../cli/src/connections.c:1339 #, c-format msgid "state: %s\n" msgstr "keadaan: %s\n" -#: ../cli/src/connections.c:1265 -#: ../cli/src/connections.c:1291 +#: ../cli/src/connections.c:1342 +#: ../cli/src/connections.c:1368 #, c-format msgid "Connection activated\n" msgstr "Koneksi diaktifkan\n" -#: ../cli/src/connections.c:1268 +#: ../cli/src/connections.c:1345 #, c-format msgid "Error: Connection activation failed." msgstr "Galat: Aktivasi koneksi gagal." -#: ../cli/src/connections.c:1287 +#: ../cli/src/connections.c:1364 #, c-format msgid "state: %s (%d)\n" msgstr "keadaan: %s (%d)\n" -#: ../cli/src/connections.c:1297 +#: ../cli/src/connections.c:1374 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Galat: Aktivasi koneksi gagal: %s." -#: ../cli/src/connections.c:1314 -#: ../cli/src/devices.c:1136 +#: ../cli/src/connections.c:1391 +#: ../cli/src/devices.c:1158 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Galat: Timeout %d detik telah berlalu." -#: ../cli/src/connections.c:1327 +#: ../cli/src/connections.c:1404 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Galat: Aktivasi koneksi gagal: %s" -#: ../cli/src/connections.c:1333 +#: ../cli/src/connections.c:1410 #, c-format msgid "Active connection state: %s\n" msgstr "Keadaan koneksi aktif: %s\n" -#: ../cli/src/connections.c:1334 +#: ../cli/src/connections.c:1411 #, c-format msgid "Active connection path: %s\n" msgstr "Path koneksi aktif: %s\n" -#: ../cli/src/connections.c:1386 -#: ../cli/src/connections.c:1527 +#: ../cli/src/connections.c:1464 +#: ../cli/src/connections.c:1609 +#: ../cli/src/connections.c:1737 #, c-format msgid "Error: Unknown connection: %s." msgstr "Galat: Koneksi tak dikenal: %s." -#: ../cli/src/connections.c:1432 -#: ../cli/src/devices.c:1208 +#: ../cli/src/connections.c:1510 +#: ../cli/src/devices.c:1230 +#: ../cli/src/devices.c:1782 #, c-format msgid "Error: timeout value '%s' is not valid." msgstr "Galat: nilai timeout '%s' tak valid." -#: ../cli/src/connections.c:1445 -#: ../cli/src/connections.c:1544 +#: ../cli/src/connections.c:1523 +#: ../cli/src/connections.c:1626 +#: ../cli/src/connections.c:1717 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Galat: id atau uuid mesti dinyatakan." -#: ../cli/src/connections.c:1473 +#: ../cli/src/connections.c:1555 #, c-format msgid "Error: No suitable device found: %s." msgstr "Galat: tak ditemukan perangkat yang cocok: %s." -#: ../cli/src/connections.c:1475 +#: ../cli/src/connections.c:1557 #, c-format msgid "Error: No suitable device found." msgstr "Galat: tak ditemukan perangkat yang cocok." -#: ../cli/src/connections.c:1580 +#: ../cli/src/connections.c:1662 #, c-format msgid "Warning: Connection not active\n" msgstr "Peringatan: Sambungan tak aktif\n" -#: ../cli/src/connections.c:1618 +#: ../cli/src/connections.c:1676 +#, c-format +msgid "Error: Connection deletion failed: %s" +msgstr "Galat: Penghapusan koneksi gagal: %s" + +#: ../cli/src/connections.c:1794 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Galat: 'con' perintah '%s' tak valid." -#: ../cli/src/connections.c:1683 +#: ../cli/src/connections.c:1859 #, c-format msgid "Error: could not connect to D-Bus." msgstr "Galat: tak bisa menyambung ke D-Bus." -#: ../cli/src/connections.c:1690 +#: ../cli/src/connections.c:1867 #, c-format msgid "Error: Could not get system settings." msgstr "Galat: Tak bisa memperoleh tatanan sistem." -#: ../cli/src/connections.c:1700 +#: ../cli/src/connections.c:1877 #, c-format -#| msgid "Error: Can't obtain connections: settings services are not running." msgid "Error: Can't obtain connections: settings service is not running." msgstr "Galat: Tak bisa mendapat koneksi: layanan penataan tak berjalan." #. 0 #. 9 #. 3 -#: ../cli/src/devices.c:66 -#: ../cli/src/devices.c:102 -#: ../cli/src/devices.c:212 -#: ../cli/src/devices.c:228 +#: ../cli/src/devices.c:68 +#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:182 +#: ../cli/src/devices.c:198 msgid "DEVICE" msgstr "DEVICE" -#. 1 -#. 4 -#. 1 -#: ../cli/src/devices.c:68 -#: ../cli/src/devices.c:106 -#: ../cli/src/network-manager.c:39 -msgid "STATE" -msgstr "STATE" - -#: ../cli/src/devices.c:78 -msgid "GENERAL" -msgstr "GENERAL" - #. 0 -#: ../cli/src/devices.c:79 +#: ../cli/src/devices.c:81 msgid "CAPABILITIES" msgstr "CAPABILITIES" #. 1 -#: ../cli/src/devices.c:80 +#: ../cli/src/devices.c:82 msgid "WIFI-PROPERTIES" msgstr "WIFI-PROPERTIES" #. 2 -#: ../cli/src/devices.c:81 +#: ../cli/src/devices.c:83 msgid "AP" msgstr "AP" #. 3 -#: ../cli/src/devices.c:82 +#: ../cli/src/devices.c:84 msgid "WIRED-PROPERTIES" msgstr "WIRED-PROPERTIES" #. 4 -#: ../cli/src/devices.c:83 -#| msgid "WIFI-PROPERTIES" +#: ../cli/src/devices.c:85 msgid "WIMAX-PROPERTIES" msgstr "WIMAX-PROPERTIES" #. 5 #. 0 -#: ../cli/src/devices.c:84 -#: ../cli/src/devices.c:225 -#| msgid "DNS" +#: ../cli/src/devices.c:86 +#: ../cli/src/devices.c:195 msgid "NSP" msgstr "NSP" #. 6 -#: ../cli/src/devices.c:85 -msgid "IP4-SETTINGS" -msgstr "IP4-SETTINGS" +#: ../cli/src/devices.c:87 +msgid "IP4" +msgstr "IP4" #. 7 -#: ../cli/src/devices.c:86 -msgid "IP4-DNS" -msgstr "IP4-DNS" +#: ../cli/src/devices.c:88 +msgid "DHCP4" +msgstr "DHCP4" #. 8 -#: ../cli/src/devices.c:87 -msgid "IP6-SETTINGS" -msgstr "IP6-SETTINGS" +#: ../cli/src/devices.c:89 +msgid "IP6" +msgstr "IP6" #. 9 -#: ../cli/src/devices.c:88 -msgid "IP6-DNS" -msgstr "IP6-DNS" +#: ../cli/src/devices.c:90 +msgid "DHCP6" +msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:106 +msgid "VENDOR" +msgstr "VENDOR" + +#. 3 +#: ../cli/src/devices.c:107 +msgid "PRODUCT" +msgstr "PRODUCT" + +#. 4 +#: ../cli/src/devices.c:108 msgid "DRIVER" msgstr "DRIVER" -#. 3 -#: ../cli/src/devices.c:105 +#. 5 +#: ../cli/src/devices.c:109 msgid "HWADDR" msgstr "HWADDR" -#. 0 +#. 7 +#: ../cli/src/devices.c:111 +msgid "REASON" +msgstr "REASON" + +#. 8 +#: ../cli/src/devices.c:112 +msgid "UDI" +msgstr "UDI" + +#. 9 +#: ../cli/src/devices.c:113 +msgid "IP-IFACE" +msgstr "IP-IFACE" + +#. 10 +#: ../cli/src/devices.c:114 +msgid "NM-MANAGED" +msgstr "NM-MANAGED" + +#. 11 #: ../cli/src/devices.c:115 +msgid "FIRMWARE-MISSING" +msgstr "FIRMWARE-MISSING" + +#. 12 +#: ../cli/src/devices.c:116 +msgid "CONNECTION" +msgstr "CONNECTION" + +#. 0 +#: ../cli/src/devices.c:125 msgid "CARRIER-DETECT" msgstr "CARRIER-DETECT" #. 1 -#: ../cli/src/devices.c:116 +#: ../cli/src/devices.c:126 msgid "SPEED" msgstr "SPEED" #. 0 -#: ../cli/src/devices.c:125 +#: ../cli/src/devices.c:135 msgid "CARRIER" msgstr "CARRIER" #. 0 -#: ../cli/src/devices.c:135 +#: ../cli/src/devices.c:145 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:136 +#: ../cli/src/devices.c:146 msgid "WPA" msgstr " WPA" #. 2 -#: ../cli/src/devices.c:137 +#: ../cli/src/devices.c:147 msgid "WPA2" msgstr " WPA2" #. 3 -#: ../cli/src/devices.c:138 +#: ../cli/src/devices.c:148 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:139 +#: ../cli/src/devices.c:149 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:149 -#| msgid "FREQ" +#: ../cli/src/devices.c:159 msgid "CTR-FREQ" msgstr "CTR-FREQ" #. 1 -#: ../cli/src/devices.c:150 -#| msgid "SSID" +#: ../cli/src/devices.c:160 msgid "RSSI" msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:151 +#: ../cli/src/devices.c:161 msgid "CINR" msgstr "CINR" #. 3 -#: ../cli/src/devices.c:152 +#: ../cli/src/devices.c:162 msgid "TX-POW" msgstr "TX-POW" #. 4 -#: ../cli/src/devices.c:153 -#| msgid "BSSID" +#: ../cli/src/devices.c:163 msgid "BSID" msgstr "BSID" #. 0 -#: ../cli/src/devices.c:163 -#: ../cli/src/devices.c:174 -msgid "ADDRESS" -msgstr "ADDRESS" - -#. 1 -#: ../cli/src/devices.c:164 -#: ../cli/src/devices.c:175 -msgid "PREFIX" -msgstr "PREFIX" - -#. 2 -#: ../cli/src/devices.c:165 -#: ../cli/src/devices.c:176 -msgid "GATEWAY" -msgstr "GATEWAY" - -#. 0 -#: ../cli/src/devices.c:185 -#: ../cli/src/devices.c:194 -msgid "DNS" -msgstr "DNS" - -#. 0 -#: ../cli/src/devices.c:203 +#: ../cli/src/devices.c:173 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:204 +#: ../cli/src/devices.c:174 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:205 +#: ../cli/src/devices.c:175 msgid "MODE" msgstr "MODE" #. 3 -#: ../cli/src/devices.c:206 +#: ../cli/src/devices.c:176 msgid "FREQ" msgstr "FREQ" #. 4 -#: ../cli/src/devices.c:207 +#: ../cli/src/devices.c:177 msgid "RATE" msgstr "RATE" #. 5 #. 1 -#: ../cli/src/devices.c:208 -#: ../cli/src/devices.c:226 +#: ../cli/src/devices.c:178 +#: ../cli/src/devices.c:196 msgid "SIGNAL" msgstr "SIGNAL" #. 6 -#: ../cli/src/devices.c:209 +#: ../cli/src/devices.c:179 msgid "SECURITY" msgstr "SECURITY" #. 7 -#: ../cli/src/devices.c:210 +#: ../cli/src/devices.c:180 msgid "WPA-FLAGS" msgstr "WPA-FLAGS" #. 8 -#: ../cli/src/devices.c:211 +#: ../cli/src/devices.c:181 msgid "RSN-FLAGS" msgstr "RSN-FLAGS" #. 10 #. 4 -#: ../cli/src/devices.c:213 -#: ../cli/src/devices.c:229 +#: ../cli/src/devices.c:183 +#: ../cli/src/devices.c:199 msgid "ACTIVE" msgstr "ACTIVE" -#: ../cli/src/devices.c:256 -#, c-format -#| msgid "" -#| "Usage: nmcli dev { COMMAND | help }\n" -#| "\n" -#| " COMMAND := { status | list | disconnect | wifi }\n" -#| "\n" -#| " status\n" -#| " list [iface <iface>]\n" -#| " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" -#| " wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" -#| "\n" +#: ../cli/src/devices.c:218 +#, c-format msgid "" "Usage: nmcli dev { COMMAND | help }\n" "\n" @@ -812,7 +957,9 @@ msgid "" " status\n" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" -" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [iface <iface>] [bssid <BSSID>] [name <name>]\n" +" [--private] [--nowait] [--timeout <timeout>]\n" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" @@ -825,276 +972,542 @@ msgstr "" " 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" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [iface <iface>] [bssid <BSSID>] [name <nama>]\n" +" [--private] [--nowait] [--timeout <timeout>]\n" +" wimax [list [iface <iface>] [nsp <nama>]]\n" "\n" -#: ../cli/src/devices.c:284 +#: ../cli/src/devices.c:253 msgid "unmanaged" msgstr "tak dikelola" -#: ../cli/src/devices.c:286 +#: ../cli/src/devices.c:255 msgid "unavailable" msgstr "tak tersedia" -#: ../cli/src/devices.c:288 -#: ../cli/src/network-manager.c:115 +#: ../cli/src/devices.c:257 +#: ../cli/src/network-manager.c:120 msgid "disconnected" msgstr "terputus" -#: ../cli/src/devices.c:290 +#: ../cli/src/devices.c:259 msgid "connecting (prepare)" msgstr "sedang menyambung (bersiap)" -#: ../cli/src/devices.c:292 +#: ../cli/src/devices.c:261 msgid "connecting (configuring)" msgstr "sedang menyambung (sedang menata)" -#: ../cli/src/devices.c:294 +#: ../cli/src/devices.c:263 msgid "connecting (need authentication)" msgstr "sedang menyambung (perlu otentikasi)" -#: ../cli/src/devices.c:296 +#: ../cli/src/devices.c:265 msgid "connecting (getting IP configuration)" msgstr "sedang menyambung (sedang mengambil konfigurasi IP)" -#: ../cli/src/devices.c:298 -#| msgid "connecting (getting IP configuration)" +#: ../cli/src/devices.c:267 msgid "connecting (checking IP connectivity)" msgstr "sedang menyambung (memeriksa konektivitas IP)" -#: ../cli/src/devices.c:300 -#| msgid "connecting (getting IP configuration)" +#: ../cli/src/devices.c:269 msgid "connecting (starting secondary connections)" msgstr "sedang menyambung (memulai koneksi sekunder)" -#: ../cli/src/devices.c:302 -#: ../cli/src/network-manager.c:111 +#: ../cli/src/devices.c:271 +#: ../cli/src/network-manager.c:116 msgid "connected" msgstr "terhubung" -#: ../cli/src/devices.c:306 +#: ../cli/src/devices.c:275 msgid "connection failed" msgstr "koneksi gagal" +#: ../cli/src/devices.c:286 +msgid "No reason given" +msgstr "Tak ada alasan yang diberikan" + +#: ../cli/src/devices.c:289 +msgid "Unknown error" +msgstr "Galat tak dikenal" + +#: ../cli/src/devices.c:292 +msgid "Device is now managed" +msgstr "Perangkat kini dikelola" + +#: ../cli/src/devices.c:295 +msgid "Device is now unmanaged" +msgstr "Perangkat kini tak dikelola" + +#: ../cli/src/devices.c:298 +msgid "The device could not be readied for configuration" +msgstr "Perangkat tak dapat dibuat bersiap untuk ditata" + +#: ../cli/src/devices.c:301 +msgid "IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "Konfigurasi IP tak dapat dipesan (alamat tak tersedia, habis waktu, dsb)" + +#: ../cli/src/devices.c:304 +msgid "The IP configuration is no longer valid" +msgstr "Konfigurasi IP tak valid lagi" + +#: ../cli/src/devices.c:307 +msgid "Secrets were required, but not provided" +msgstr "Rahasia diperlukan, tapi tak disediakan" + +#: ../cli/src/devices.c:310 +msgid "802.1X supplicant disconnected" +msgstr "802.1X supplicant diputus" + +#: ../cli/src/devices.c:313 +msgid "802.1X supplicant configuration failed" +msgstr "Konfigurasi 802.1X supplicant gagal" + +#: ../cli/src/devices.c:316 +msgid "802.1X supplicant failed" +msgstr "802.1X supplicant gagal" + +#: ../cli/src/devices.c:319 +msgid "802.1X supplicant took too long to authenticate" +msgstr "802.1X supplicant makan waktu terlalu lama untuk mengotentikasi" + +#: ../cli/src/devices.c:322 +msgid "PPP service failed to start" +msgstr "Layanan PPP gagal dimulai" + +#: ../cli/src/devices.c:325 +msgid "PPP service disconnected" +msgstr "Layanan PPP diputus" + +#: ../cli/src/devices.c:328 +msgid "PPP failed" +msgstr "PPP gagal" + #: ../cli/src/devices.c:331 -#: ../cli/src/devices.c:341 -#: ../cli/src/devices.c:501 -#: ../cli/src/devices.c:545 +msgid "DHCP client failed to start" +msgstr "Klien DHCP gagal dimulai" + +#: ../cli/src/devices.c:334 +msgid "DHCP client error" +msgstr "Galat klien DHCP" + +#: ../cli/src/devices.c:337 +msgid "DHCP client failed" +msgstr "Klien DHCP gagal" + +#: ../cli/src/devices.c:340 +msgid "Shared connection service failed to start" +msgstr "Layanan koneksi berbagi gagal dimulai" + +#: ../cli/src/devices.c:343 +msgid "Shared connection service failed" +msgstr "Layanan koneksi berbagi gagal" + +#: ../cli/src/devices.c:346 +msgid "AutoIP service failed to start" +msgstr "Layanan AutoIP gagal dimulai" + +#: ../cli/src/devices.c:349 +msgid "AutoIP service error" +msgstr "Galat layanan AutoIP" + +#: ../cli/src/devices.c:352 +msgid "AutoIP service failed" +msgstr "Layanan AutoIP gagal" + +#: ../cli/src/devices.c:355 +msgid "The line is busy" +msgstr "Jalur sibuk" + +#: ../cli/src/devices.c:358 +msgid "No dial tone" +msgstr "Tak ada nada panggil" + +#: ../cli/src/devices.c:361 +msgid "No carrier could be established" +msgstr "Carrier tak dapat dijalin" + +#: ../cli/src/devices.c:364 +msgid "The dialing request timed out" +msgstr "Permintaan pemanggilan habis waktu" + +#: ../cli/src/devices.c:367 +msgid "The dialing attempt failed" +msgstr "Usaha memanggil gagal" + +#: ../cli/src/devices.c:370 +msgid "Modem initialization failed" +msgstr "Inisialisasi modem gagal" + +#: ../cli/src/devices.c:373 +msgid "Failed to select the specified APN" +msgstr "Gagal memilih APN yang dinyatakan" + +#: ../cli/src/devices.c:376 +msgid "Not searching for networks" +msgstr "Tak mencari jaringan" + +#: ../cli/src/devices.c:379 +msgid "Network registration denied" +msgstr "Pendaftaran jaringan ditolak" + +#: ../cli/src/devices.c:382 +msgid "Network registration timed out" +msgstr "Pendaftaran jaringan habis waktu" + +#: ../cli/src/devices.c:385 +msgid "Failed to register with the requested network" +msgstr "Gagal mendaftar ke jaringan yang diminta" + +#: ../cli/src/devices.c:388 +msgid "PIN check failed" +msgstr "Uji PIN gagal" + +#: ../cli/src/devices.c:391 +msgid "Necessary firmware for the device may be missing" +msgstr "Firmware yang diperlukan bagi perangkat mungkin hilang" + +#: ../cli/src/devices.c:394 +msgid "The device was removed" +msgstr "Perangkat dicabut" + +#: ../cli/src/devices.c:397 +msgid "NetworkManager went to sleep" +msgstr "NetworkManager tidur" + +#: ../cli/src/devices.c:400 +msgid "The device's active connection disappeared" +msgstr "Koneksi aktif perangkat menghilang" + +#: ../cli/src/devices.c:403 +msgid "Device disconnected by user or client" +msgstr "Perangkat diputus oleh pengguna atau klien" + +#: ../cli/src/devices.c:406 +msgid "Carrier/link changed" +msgstr "Carrier/link berubah" + +#: ../cli/src/devices.c:409 +msgid "The device's existing connection was assumed" +msgstr "Koneksi perangkat kini diasumsikan" + +#: ../cli/src/devices.c:412 +msgid "The supplicant is now available" +msgstr "Supplicant kini tersedia" + +#: ../cli/src/devices.c:415 +msgid "The modem could not be found" +msgstr "Modem tak dapat ditemukan" + +#: ../cli/src/devices.c:418 +msgid "The Bluetooth connection failed or timed out" +msgstr "Koneksi Bluetooth gagal atau kehabisan waktu" + +#: ../cli/src/devices.c:421 +msgid "GSM Modem's SIM card not inserted" +msgstr "Kartu SIM Modem GSM tak dipasang" + +#: ../cli/src/devices.c:424 +msgid "GSM Modem's SIM PIN required" +msgstr "PIN SIM Modem GSM diperlukan" + +#: ../cli/src/devices.c:427 +msgid "GSM Modem's SIM PUK required" +msgstr "PUK SIM Modem GSM diperlukan" + +#: ../cli/src/devices.c:430 +msgid "GSM Modem's SIM wrong" +msgstr "SIM Modem GSM salah" + +#: ../cli/src/devices.c:433 +msgid "InfiniBand device does not support connected mode" +msgstr "Perangkat InfiniBand tak mendukung mode tersambung" + +#: ../cli/src/devices.c:436 +msgid "A dependency of the connection failed" +msgstr "Suatu kebergantungan koneksi gagal" + +#: ../cli/src/devices.c:438 +#: ../cli/src/devices.c:461 +#: ../cli/src/devices.c:477 +#: ../cli/src/devices.c:597 +#: ../cli/src/devices.c:641 msgid "Unknown" msgstr "Tak dikenal" -#: ../cli/src/devices.c:374 +#: ../cli/src/devices.c:510 msgid "(none)" msgstr "(tidak ada)" -#: ../cli/src/devices.c:399 -#, c-format -msgid "%s: error converting IP4 address 0x%X" -msgstr "%s: galat mengubah alamat IP4 0x%X" - -#: ../cli/src/devices.c:470 +#: ../cli/src/devices.c:566 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:471 +#: ../cli/src/devices.c:567 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:480 +#: ../cli/src/devices.c:576 msgid "Encrypted: " msgstr "Terenkripsi:" -#: ../cli/src/devices.c:485 +#: ../cli/src/devices.c:581 msgid "WEP " msgstr "WEP " -#: ../cli/src/devices.c:487 +#: ../cli/src/devices.c:583 msgid "WPA " msgstr "WPA " -#: ../cli/src/devices.c:489 +#: ../cli/src/devices.c:585 msgid "WPA2 " msgstr "WPA2 " -#: ../cli/src/devices.c:492 +#: ../cli/src/devices.c:588 msgid "Enterprise " msgstr "Enterprise " -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:597 msgid "Ad-Hoc" msgstr "Ad-Hoc" -#: ../cli/src/devices.c:501 +#: ../cli/src/devices.c:597 msgid "Infrastructure" msgstr "Infrastruktur" -#: ../cli/src/devices.c:536 +#: ../cli/src/devices.c:632 msgid "Home" msgstr "Rumah" -#: ../cli/src/devices.c:539 +#: ../cli/src/devices.c:635 msgid "Partner" msgstr "Pasangan" -#: ../cli/src/devices.c:542 +#: ../cli/src/devices.c:638 msgid "Roaming" msgstr "Roaming" -#: ../cli/src/devices.c:612 +#: ../cli/src/devices.c:710 #, c-format msgid "Error: 'dev list': %s" msgstr "Galat: 'dev list': %s" -#: ../cli/src/devices.c:614 +#: ../cli/src/devices.c:712 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Galat: 'dev list': %s; ruas yang diijinkan: %s" -#: ../cli/src/devices.c:623 +#: ../cli/src/devices.c:721 msgid "Device details" msgstr "Rincian perangkat" -#: ../cli/src/devices.c:657 -#: ../cli/src/devices.c:1152 -#: ../cli/src/utils.c:342 +#: ../cli/src/devices.c:766 +#: ../cli/src/devices.c:767 +#: ../cli/src/devices.c:1174 +#: ../cli/src/utils.c:477 msgid "(unknown)" msgstr "(tak diketahui)" -#: ../cli/src/devices.c:658 -msgid "unknown)" -msgstr "tak diketahui)" +#: ../cli/src/devices.c:775 +msgid "not connected" +msgstr "tak terhubung" -#: ../cli/src/devices.c:684 +#: ../cli/src/devices.c:802 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:875 msgid "on" msgstr "nyala" -#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:875 msgid "off" msgstr "mati" -#: ../cli/src/devices.c:1004 +#: ../cli/src/devices.c:1026 #, c-format msgid "Error: 'dev status': %s" msgstr "Galat: 'dev status': %s" -#: ../cli/src/devices.c:1006 +#: ../cli/src/devices.c:1028 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Galat: 'dev status': %s; ruas yang diijinkan: %s" -#: ../cli/src/devices.c:1029 +#: ../cli/src/devices.c:1051 msgid "Status of devices" msgstr "Status perangkat" -#: ../cli/src/devices.c:1060 +#: ../cli/src/devices.c:1082 #, c-format msgid "Error: '%s' argument is missing." msgstr "Galat: argumen '%s' hilang." -#: ../cli/src/devices.c:1101 -#: ../cli/src/devices.c:1253 -#: ../cli/src/devices.c:1389 -#: ../cli/src/devices.c:1608 +#: ../cli/src/devices.c:1123 +#: ../cli/src/devices.c:1275 +#: ../cli/src/devices.c:1412 +#: ../cli/src/devices.c:2069 #, c-format msgid "Error: Device '%s' not found." msgstr "Galat: Perangkat '%s' tak ditemukan." -#: ../cli/src/devices.c:1124 +#: ../cli/src/devices.c:1146 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Sukses: Perangkat '%s' diputus dengan sukses." -#: ../cli/src/devices.c:1149 +#: ../cli/src/devices.c:1171 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Galat: Pemutusan perangkat '%s' (%s) gagal: %s " -#: ../cli/src/devices.c:1157 +#: ../cli/src/devices.c:1179 #, c-format msgid "Device state: %d (%s)\n" msgstr "Keadaan perangkat: %d (%s)\n" -#: ../cli/src/devices.c:1222 +#: ../cli/src/devices.c:1244 #, c-format msgid "Error: iface has to be specified." msgstr "Galat: iface mesti dinyatakan." -#: ../cli/src/devices.c:1347 +#: ../cli/src/devices.c:1370 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Galat: 'dev wifi': %s" -#: ../cli/src/devices.c:1349 +#: ../cli/src/devices.c:1372 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Galat: 'dev wifi': %s; ruas yang diijinkan: %s" -#: ../cli/src/devices.c:1372 +#: ../cli/src/devices.c:1395 msgid "WiFi scan list" msgstr "Daftar pindai WiFi" -#: ../cli/src/devices.c:1409 -#: ../cli/src/devices.c:1463 -#: ../cli/src/devices.c:1670 +#: ../cli/src/devices.c:1432 +#: ../cli/src/devices.c:1486 #, c-format -msgid "Error: Access point with hwaddr '%s' not found." -msgstr "Galat: Access point dengan hwaddr '%s' tak ditemukan." +msgid "Error: Access point with bssid '%s' not found." +msgstr "Galat: Access point dengan bssid '%s' tak ditemukan." -#: ../cli/src/devices.c:1426 +#: ../cli/src/devices.c:1449 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Galat: Perangkat '%s' bukan perangkat WiFi." -#: ../cli/src/devices.c:1490 +#: ../cli/src/devices.c:1527 +#: ../cli/src/devices.c:1573 +#, c-format +msgid "Connection with UUID '%s' created and activated on device '%s'\n" +msgstr "Koneksi dengan UUID '%s' dibuat dan diaktifkan pada perangkat '%s'\n" + +#: ../cli/src/devices.c:1532 +#, c-format +msgid "Error: Connection activation failed: (%d) %s." +msgstr "Galat: Aktivasi koneksi gagal: (%d) %s." + +#: ../cli/src/devices.c:1557 +#, c-format +msgid "Error: Failed to add/activate new connection: (%d) %s" +msgstr "Galat: Gagal menambah/mengaktifkan koneksi baru: (%d) %s" + +#: ../cli/src/devices.c:1565 +#, c-format +msgid "Error: Failed to add/activate new connection: Unknown error" +msgstr "Galat: Gagal menambah/mengaktifkan koneksi baru: Galat tak dikenal" + +#: ../cli/src/devices.c:1709 +#, c-format +msgid "Error: SSID or BSSID are missing." +msgstr "Galat: SSID atau BSSID hilang." + +#: ../cli/src/devices.c:1732 +#, c-format +msgid "Error: bssid argument value '%s' is not a valid BSSID." +msgstr "Galat: nilai argumen bssid '%s' bukan BSSID yang valid." + +#: ../cli/src/devices.c:1756 +#, c-format +msgid "Error: wep-key-type argument value '%s' is invalid, use 'key' or 'phrase'." +msgstr "Galat: Nilai argumen jenis-kunci-wep '%s' tak valid, gunakan 'key' atau 'phrase'." + +#: ../cli/src/devices.c:1796 +#, c-format +msgid "Error: BSSID to connect to (%s) differs from bssid argument (%s)." +msgstr "Galat: BSSID yang akan dihubungi (%s) berbeda dengan argumen bssid (%s)." + +#: ../cli/src/devices.c:1802 +#, c-format +msgid "Error: Parameter '%s' is neither SSID nor BSSID." +msgstr "Galat: Parameter '%s' bukan SSID maupun BSSID." + +#: ../cli/src/devices.c:1831 +#, c-format +msgid "Error: Device '%s' is not a Wi-Fi device." +msgstr "Galat: Perangkat '%s' bukan perangkat WiFi." + +#: ../cli/src/devices.c:1833 +#, c-format +msgid "Error: No Wi-Fi device found." +msgstr "Galat: Tak ditemukan perangkat Wi-Fi." + +#: ../cli/src/devices.c:1851 +#, c-format +msgid "Error: No network with SSID '%s' found." +msgstr "Galat: Tak ditemukan jaringan dengan SSID '%s'." + +#: ../cli/src/devices.c:1853 +#, c-format +msgid "Error: No access point with BSSID '%s' found." +msgstr "Galat: Tak ditemukan access point dengan BSSID '%s'." + +#: ../cli/src/devices.c:1951 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Galat: 'dev wifi' perintah '%s' tak valid." -#: ../cli/src/devices.c:1566 +#: ../cli/src/devices.c:2027 #, c-format -#| msgid "Error: 'dev wifi': %s" msgid "Error: 'dev wimax': %s" msgstr "Galat: 'dev wimax': %s" -#: ../cli/src/devices.c:1568 +#: ../cli/src/devices.c:2029 #, c-format -#| msgid "Error: 'dev wifi': %s; allowed fields: %s" msgid "Error: 'dev wimax': %s; allowed fields: %s" msgstr "Galat: 'dev wimax': %s; ruas yang diijinkan: %s" -#: ../cli/src/devices.c:1591 +#: ../cli/src/devices.c:2052 msgid "WiMAX NSP list" msgstr "Daftar NSP WiMAX" -#: ../cli/src/devices.c:1628 +#: ../cli/src/devices.c:2089 #, c-format -#| msgid "Error: Device '%s' not found." msgid "Error: NSP with name '%s' not found." msgstr "Galat: NSP bernama '%s' tak ditemukan." -#: ../cli/src/devices.c:1639 +#: ../cli/src/devices.c:2100 #, c-format -#| msgid "Error: Device '%s' is not a WiFi device." msgid "Error: Device '%s' is not a WiMAX device." msgstr "Galat: Perangkat '%s' bukan perangkat WiMAX." -#: ../cli/src/devices.c:1697 +#: ../cli/src/devices.c:2131 +#, c-format +msgid "Error: Access point with nsp '%s' not found." +msgstr "Galat: Access point dengan nsp '%s' tak ditemukan." + +#: ../cli/src/devices.c:2158 #, c-format -#| msgid "Error: 'dev wifi' command '%s' is not valid." msgid "Error: 'dev wimax' command '%s' is not valid." msgstr "Galat: 'dev wimax' perintah '%s' tak valid." -#: ../cli/src/devices.c:1747 +#: ../cli/src/devices.c:2208 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Galat: 'dev' perintah '%s' tak valid." @@ -1135,7 +1548,6 @@ msgstr "WWAN" #. 7 #: ../cli/src/network-manager.c:45 -#| msgid "WIFI-HARDWARE" msgid "WIMAX-HARDWARE" msgstr "WIMAX-HARDWARE" @@ -1144,27 +1556,26 @@ msgstr "WIMAX-HARDWARE" msgid "WIMAX" msgstr "WIMAX" -#: ../cli/src/network-manager.c:74 -#, c-format -#| msgid "" -#| "Usage: nmcli nm { COMMAND | help }\n" -#| "\n" -#| " COMMAND := { status | sleep | wakeup | wifi | wwan }\n" -#| "\n" -#| " status\n" -#| " sleep\n" -#| " wakeup\n" -#| " wifi [on|off]\n" -#| " wwan [on|off]\n" -#| "\n" +#: ../cli/src/network-manager.c:62 +msgid "PERMISSION" +msgstr "PERMISSION" + +#. 0 +#: ../cli/src/network-manager.c:63 +msgid "VALUE" +msgstr "VALUE" + +#: ../cli/src/network-manager.c:77 +#, c-format msgid "" "Usage: nmcli nm { COMMAND | help }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan | wimax }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan }\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" @@ -1174,196 +1585,187 @@ msgid "" msgstr "" "Cara pakai: nmcli nm { PERINTAH | help }\n" "\n" -" PERINTAH := { status | sleep | wakeup | wifi | wwan | wimax }\n" +" PERINTAH := { status | permissions | enable | sleep | wifi | wwan | wimax }\n" "\n" -" PERINTAH := { status | sleep | wakeup | wifi | wwan }\n" +" PERINTAH := { status | permissions | enable | sleep | wifi | wwan }\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" " wwan [on|off]\n" " wimax [on|off]\n" "\n" +"\n" -#: ../cli/src/network-manager.c:103 +#: ../cli/src/network-manager.c:108 msgid "asleep" msgstr "mengantuk" -#: ../cli/src/network-manager.c:105 +#: ../cli/src/network-manager.c:110 msgid "connecting" msgstr "menyambung" -#: ../cli/src/network-manager.c:107 +#: ../cli/src/network-manager.c:112 msgid "connected (local only)" msgstr "tersambung (lokal saja)" -#: ../cli/src/network-manager.c:109 -#| msgid "connected" +#: ../cli/src/network-manager.c:114 msgid "connected (site only)" msgstr "tersambung (situs saja)" -#: ../cli/src/network-manager.c:113 -#| msgid "connecting" +#: ../cli/src/network-manager.c:118 msgid "disconnecting" msgstr "memutus" -#: ../cli/src/network-manager.c:153 +#: ../cli/src/network-manager.c:158 #, c-format msgid "Error: 'nm status': %s" msgstr "Galat: 'nm status': %s" -#: ../cli/src/network-manager.c:155 +#: ../cli/src/network-manager.c:160 #, c-format msgid "Error: 'nm status': %s; allowed fields: %s" msgstr "Galat: 'nm status': %s; ruas yang diijinkan: %s" #. create NMClient -#: ../cli/src/network-manager.c:168 -#: ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 -#: ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 +#: ../cli/src/network-manager.c:173 #: ../cli/src/network-manager.c:174 #: ../cli/src/network-manager.c:175 -#: ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 -#: ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 +#: ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 +#: ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 +#: ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "enabled" msgstr "diaktifkan" -#: ../cli/src/network-manager.c:168 -#: ../cli/src/network-manager.c:169 -#: ../cli/src/network-manager.c:170 -#: ../cli/src/network-manager.c:171 -#: ../cli/src/network-manager.c:172 +#: ../cli/src/network-manager.c:173 #: ../cli/src/network-manager.c:174 #: ../cli/src/network-manager.c:175 -#: ../cli/src/network-manager.c:296 -#: ../cli/src/network-manager.c:351 -#: ../cli/src/network-manager.c:389 -#: ../cli/src/network-manager.c:428 +#: ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 +#: ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 +#: ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 +#: ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "disabled" msgstr "dimatikan" -#: ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:193 msgid "NetworkManager status" msgstr "Status NetworkManager" #. Print header -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:196 msgid "running" msgstr "berjalan" -#: ../cli/src/network-manager.c:191 +#: ../cli/src/network-manager.c:196 msgid "not running" msgstr "tak berjalan" -#: ../cli/src/network-manager.c:222 -#: ../cli/src/utils.c:322 +#: ../cli/src/network-manager.c:271 +msgid "auth" +msgstr "auth" + +#: ../cli/src/network-manager.c:301 +#, c-format +msgid "Error: 'nm permissions': %s" +msgstr "Galat: 'nm permissions': %s" + +#: ../cli/src/network-manager.c:303 +#, c-format +msgid "Error: 'nm permissions': %s; allowed fields: %s" +msgstr "Galat: 'nm permissions': %s; ruas yang diijinkan: %s" + +#: ../cli/src/network-manager.c:324 +msgid "NetworkManager permissions" +msgstr "Ijin NetworkManager" + +#: ../cli/src/network-manager.c:350 +#: ../cli/src/utils.c:457 #, c-format -#| msgid "Error: could not connect to D-Bus." msgid "Error: Couldn't connect to system bus: %s" msgstr "Galat: Tak bisa menyambung ke bus sistem: %s" -#: ../cli/src/network-manager.c:233 +#: ../cli/src/network-manager.c:361 #, c-format -#| msgid "Error: could not connect to D-Bus." msgid "Error: Couldn't create D-Bus object proxy." msgstr "Galat: Tak bisa membuat proksi objek D-Bus." -#: ../cli/src/network-manager.c:239 +#: ../cli/src/network-manager.c:367 #, c-format -#| msgid "Error: 'con list': %s" msgid "Error in sleep: %s" msgstr "Galat dalam sleep: %s" -#: ../cli/src/network-manager.c:283 -#: ../cli/src/network-manager.c:338 -#: ../cli/src/network-manager.c:376 -#: ../cli/src/network-manager.c:415 +#: ../cli/src/network-manager.c:416 +#: ../cli/src/network-manager.c:471 +#: ../cli/src/network-manager.c:509 +#: ../cli/src/network-manager.c:548 #, c-format msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s" msgstr "Galat: nilai '--fields' '%s' tak valid disini; ruas yang diijinkan: %s" -#: ../cli/src/network-manager.c:291 -#| msgid "WiFi enabled" +#: ../cli/src/network-manager.c:424 msgid "Networking enabled" msgstr "Jaringan diaktifkan" -#: ../cli/src/network-manager.c:307 +#: ../cli/src/network-manager.c:440 #, c-format -#| msgid "Error: invalid 'wwan' parameter: '%s'." msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'." msgstr "Galat: parameter 'enable' tak valid: '%s'; gunakan 'true' atau 'false'." -#: ../cli/src/network-manager.c:317 +#: ../cli/src/network-manager.c:450 #, c-format -#| msgid "Error: Could not connect to NetworkManager." msgid "Error: Sleeping status is not exported by NetworkManager." msgstr "Galat: Status tidur tak diekspor oleh NetworkManager." -#: ../cli/src/network-manager.c:325 +#: ../cli/src/network-manager.c:458 #, c-format -#| msgid "Error: invalid 'wifi' parameter: '%s'." msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." msgstr "Galat: parameter 'sleep' tak valid: '%s'; gunakan 'true' atau 'false'." -#: ../cli/src/network-manager.c:346 +#: ../cli/src/network-manager.c:479 msgid "WiFi enabled" msgstr "WiFi diaktifkan" -#: ../cli/src/network-manager.c:362 +#: ../cli/src/network-manager.c:495 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Galat: parameter 'wifi' tak valid: '%s'." -#: ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:517 msgid "WWAN enabled" msgstr "WWAN diaktifkan" -#: ../cli/src/network-manager.c:400 +#: ../cli/src/network-manager.c:533 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Galat: parameter 'wwan' tak valid: '%s'." -#: ../cli/src/network-manager.c:423 -#| msgid "WiFi enabled" +#: ../cli/src/network-manager.c:556 msgid "WiMAX enabled" msgstr "WiMAX diaktifkan" -#: ../cli/src/network-manager.c:439 +#: ../cli/src/network-manager.c:572 #, c-format -#| msgid "Error: invalid 'wifi' parameter: '%s'." msgid "Error: invalid 'wimax' parameter: '%s'." msgstr "Galat: parameter 'wimax' tak valid: '%s'." -#: ../cli/src/network-manager.c:452 +#: ../cli/src/network-manager.c:585 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Galat: 'nm' perintah '%s' tak valid." #: ../cli/src/nmcli.c:64 #, c-format -#| msgid "" -#| "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n" -#| "\n" -#| "OPTIONS\n" -#| " -t[erse] terse output\n" -#| " -p[retty] pretty output\n" -#| " -m[ode] tabular|multiline output mode\n" -#| " -f[ields] <field1,field2,...>|all|common specify fields to output\n" -#| " -e[scape] yes|no escape columns separators in " -#| "values\n" -#| " -v[ersion] show program version\n" -#| " -h[elp] print this help\n" -#| "\n" -#| "OBJECT\n" -#| " nm NetworkManager status\n" -#| " con NetworkManager connections\n" -#| " dev devices managed by NetworkManager\n" -#| "\n" msgid "" "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n" "\n" @@ -1459,7 +1861,6 @@ msgid "Caught signal %d, shutting down..." msgstr "Menangkap sinyal %d, sedang mematikan..." #: ../cli/src/nmcli.c:257 -#| msgid "Error: Could not get user settings." msgid "Error: Could not create NMClient object." msgstr "Galat: Tak bisa membuat objek NMClient." @@ -1467,121 +1868,156 @@ msgstr "Galat: Tak bisa membuat objek NMClient." msgid "Success" msgstr "Sukses" -#: ../cli/src/settings.c:423 +#: ../cli/src/settings.c:497 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (kunci-hex-ascii)" -#: ../cli/src/settings.c:425 +#: ../cli/src/settings.c:499 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (104/128-bit frasa sandi)" -#: ../cli/src/settings.c:428 +#: ../cli/src/settings.c:502 #, c-format msgid "%d (unknown)" msgstr "%d (tak dikenal)" -#: ../cli/src/settings.c:454 +#: ../cli/src/settings.c:528 msgid "0 (unknown)" msgstr "0 (tak dikenal)" -#: ../cli/src/settings.c:460 +#: ../cli/src/settings.c:534 msgid "any, " msgstr "sebarang, " -#: ../cli/src/settings.c:462 +#: ../cli/src/settings.c:536 msgid "900 MHz, " msgstr "900 MHz, " -#: ../cli/src/settings.c:464 +#: ../cli/src/settings.c:538 msgid "1800 MHz, " msgstr "1800 MHz, " -#: ../cli/src/settings.c:466 +#: ../cli/src/settings.c:540 msgid "1900 MHz, " msgstr "1900 MHz, " -#: ../cli/src/settings.c:468 +#: ../cli/src/settings.c:542 msgid "850 MHz, " msgstr "850 MHz, " -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:544 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:472 +#: ../cli/src/settings.c:546 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:474 +#: ../cli/src/settings.c:548 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:476 +#: ../cli/src/settings.c:550 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:478 +#: ../cli/src/settings.c:552 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:480 +#: ../cli/src/settings.c:554 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:482 +#: ../cli/src/settings.c:556 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:566 -#: ../cli/src/settings.c:732 +#: ../cli/src/settings.c:558 +msgid "WCDMA 3GPP UMTS 1900 MHz, " +msgstr "WCDMA 3GPP UMTS 1900 MHz, " + +#: ../cli/src/settings.c:560 +msgid "WCDMA 3GPP UMTS 2600 MHz, " +msgstr "WCDMA 3GPP UMTS 2600 MHz, " + +#: ../cli/src/settings.c:578 +msgid "0 (NONE)" +msgstr "0 (NONE)" + +#: ../cli/src/settings.c:584 +msgid "REORDER_HEADERS, " +msgstr "REORDER_HEADERS, " + +#: ../cli/src/settings.c:586 +msgid "GVRP, " +msgstr "GVRP, " + +#: ../cli/src/settings.c:588 +msgid "LOOSE_BINDING, " +msgstr "LOOSE_BINDING, " + +#: ../cli/src/settings.c:731 +#: ../cli/src/settings.c:927 +#: ../cli/src/settings.c:1631 msgid "auto" msgstr "otomatis" -#: ../cli/src/settings.c:727 -#: ../cli/src/settings.c:730 -#: ../cli/src/settings.c:731 -#: ../cli/src/utils.c:176 +#: ../cli/src/settings.c:921 +#: ../cli/src/settings.c:924 +#: ../cli/src/settings.c:925 +#: ../cli/src/utils.c:279 msgid "not set" msgstr "tak ditata" -#: ../cli/src/utils.c:128 +#: ../cli/src/utils.c:103 +#, c-format +msgid "Error converting IP4 address '0x%X' to text form" +msgstr "Galat konversi alamat IP4 '0x%X' ke bentuk teks" + +#: ../cli/src/utils.c:131 +#, c-format +msgid "Error converting IP6 address '%s' to text form" +msgstr "Galat konversi alamat IP6 '%s' ke bentuk teks" + +#: ../cli/src/utils.c:232 #, c-format msgid "field '%s' has to be alone" msgstr "ruas '%s' mesti sendiri" -#: ../cli/src/utils.c:131 +#: ../cli/src/utils.c:235 #, c-format msgid "invalid field '%s'" msgstr "ruas tak valid '%s'" -#: ../cli/src/utils.c:150 +#: ../cli/src/utils.c:254 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "Opsi '--terse' memerlukan penyataan '--fields'" -#: ../cli/src/utils.c:154 +#: ../cli/src/utils.c:258 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "Opsi '--terse' memerlukan nilai opsi '--fields' spesifik, bukan '%s'" -#: ../cli/src/utils.c:333 +#: ../cli/src/utils.c:468 #, c-format msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" msgstr "Galat: Tak bisa membuat proksi objek D-Bus bagi org.freedesktop.DBus" -#: ../cli/src/utils.c:341 +#: ../cli/src/utils.c:476 #, c-format msgid "Error: NameHasOwner request failed: %s" msgstr "Galat: Permintaan NameHasOwner gagal: %s" -#: ../cli/src/utils.c:386 +#: ../cli/src/utils.c:521 #, c-format msgid "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --nocheck to suppress the warning.\n" msgstr "Peringatan: Versi nmcli (%s) dan NetworkManager (%s) tak cocok. Gunakan --nocheck untuk meredam peringatan.\n" -#: ../cli/src/utils.c:395 +#: ../cli/src/utils.c:530 #, c-format msgid "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force execution using --nocheck, but the results are unpredictable." msgstr "Galat: Versi nmcli (%s) dan NetworkManager (%s) tak cocok. Paksakan eksekusi memakai --nocheck, tapi hasilnya tak dapat ditebak." @@ -1646,12 +2082,10 @@ msgid "Failed to find expected PKCS#8 end tag '%s'." msgstr "Gagal menemukan tag akhir PKCS#8 '%s' yang diharapkan." #: ../libnm-util/crypto.c:312 -#| msgid "Not enough memory to store file data." msgid "Not enough memory to store private key data." msgstr "Tak cukup memori untuk menyimpan data kunci privat." #: ../libnm-util/crypto.c:317 -#| msgid "Failed to decrypt the private key." msgid "Failed to decode PKCS#8 private key." msgstr "Gagal mengawa kode (decode) kunci privat PKCS#8." @@ -1702,13 +2136,11 @@ msgstr "Tak bisa menentukan jenis kunci privat." #: ../libnm-util/crypto.c:597 #, c-format -#| msgid "PEM certificate '%s' had no end tag '%s'." msgid "PEM certificate had no start tag '%s'." msgstr "Sertifikat PEM tak memiliki tag awal '%s'." #: ../libnm-util/crypto.c:606 #, c-format -#| msgid "PEM certificate '%s' had no end tag '%s'." msgid "PEM certificate had no end tag '%s'." msgstr "Sertifikat PEM tak memiliki tag akhir '%s'." @@ -1822,13 +2254,11 @@ msgstr "Tak bisa memeriksa berkas PKCS#12: %s" #: ../libnm-util/crypto_gnutls.c:460 #, c-format -#| msgid "Couldn't initialize PKCS#12 decoder: %s" msgid "Couldn't initialize PKCS#8 decoder: %s" msgstr "Tak bisa menginisialisasi pengawa kode (decoder) PKCS#8: %s" #: ../libnm-util/crypto_gnutls.c:483 #, c-format -#| msgid "Couldn't decode PKCS#12 file: %s" msgid "Couldn't decode PKCS#8 file: %s" msgstr "Tak bisa mengawa kode (decode) berkas PKCS#8: %s" @@ -1941,135 +2371,259 @@ msgstr "Tak bisa memeriksa berkas PKCS#12: %d" msgid "Could not generate random data." msgstr "Tak bisa menjangkitkan data acak." -#: ../libnm-util/nm-utils.c:2000 +#: ../libnm-util/nm-utils.c:2040 #, c-format msgid "Not enough memory to make encryption key." msgstr "Tak cukup memori untuk membuat kunci penyandian." -#: ../libnm-util/nm-utils.c:2110 +#: ../libnm-util/nm-utils.c:2150 msgid "Could not allocate memory for PEM file creation." msgstr "Tak bisa mengalokasikan memori bagi pembuatan berkas PEM." -#: ../libnm-util/nm-utils.c:2122 +#: ../libnm-util/nm-utils.c:2162 #, c-format msgid "Could not allocate memory for writing IV to PEM file." msgstr "Tak bisa mengalokasikan memori untuk menulis IV ke berkas PEM." -#: ../libnm-util/nm-utils.c:2134 +#: ../libnm-util/nm-utils.c:2174 #, c-format msgid "Could not allocate memory for writing encrypted key to PEM file." msgstr "Tak bisa mengalokasikan memori untuk menulis kunci tersandi ke berkas PEM." -#: ../libnm-util/nm-utils.c:2153 +#: ../libnm-util/nm-utils.c:2193 #, c-format msgid "Could not allocate memory for PEM file data." msgstr "Tak bisa mengalokasikan memori bagi data berkas PEM." #: ../policy/org.freedesktop.NetworkManager.policy.in.h:1 -msgid "Allow control of network connections" -msgstr "Ijinkan pengendalian sambungan jaringan" +msgid "Enable or disable system networking" +msgstr "Aktifkan atau matikan jejaring sistem" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:2 -msgid "Connection sharing via a protected WiFi network" -msgstr "Berbagi koneksi melalui jaringan WiFi terlindung." +msgid "System policy prevents enabling or disabling system networking" +msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan jejaring sistem" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:3 -msgid "Connection sharing via an open WiFi network" -msgstr "Berbagi koneksi melalui jaringan WiFi terbuka" +msgid "Put NetworkManager to sleep or wake it up (should only be used by system power management)" +msgstr "Tidurkan NetworkManager atau bangunkan (mestinya hanya dipakai oleh manajemen daya sistem)" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:4 -msgid "Enable or disable WiFi devices" -msgstr "Aktifkan atau matikan perangkat WiFi" +msgid "System policy prevents putting NetworkManager to sleep or waking it up" +msgstr "Kebijakan sistem mencegah menidurkan NetworkManager atau membangunkannya" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:5 -#| msgid "Enable or disable mobile broadband devices" -msgid "Enable or disable WiMAX mobile broadband devices" -msgstr "Aktifkan atau matikan perangkat broadband bergerak WiMAX" +msgid "Enable or disable WiFi devices" +msgstr "Aktifkan atau matikan perangkat WiFi" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:6 -msgid "Enable or disable mobile broadband devices" -msgstr "Aktifkan atau matikan perangkat broadband bergerak" +msgid "System policy prevents enabling or disabling WiFi devices" +msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat WiFi" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 -msgid "Enable or disable system networking" -msgstr "Aktifkan atau matikan jejaring sistem" +msgid "Enable or disable mobile broadband devices" +msgstr "Aktifkan atau matikan perangkat broadband bergerak" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:8 -#| msgid "Modify system connections" -msgid "Modify network connections for all users" -msgstr "Ubah koneksi jaringan bagi semua pengguna" +msgid "System policy prevents enabling or disabling mobile broadband devices" +msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 -msgid "Modify persistent system hostname" -msgstr "Ubah nama host sistem yang persisten" +msgid "Enable or disable WiMAX mobile broadband devices" +msgstr "Aktifkan atau matikan perangkat broadband bergerak WiMAX" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:10 -#| msgid "Allow control of network connections" -msgid "Modify personal network connections" -msgstr "Ubah koneksi jaringan personal" +msgid "System policy prevents enabling or disabling WiMAX mobile broadband devices" +msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak WiMAX" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 -msgid "Put NetworkManager to sleep or wake it up (should only be used by system power management)" -msgstr "Tidurkan NetworkManager atau bangunkan (mestinya hanya dipakai oleh manajemen daya sistem)" +msgid "Allow control of network connections" +msgstr "Ijinkan pengendalian sambungan jaringan" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:12 msgid "System policy prevents control of network connections" msgstr "Kebijakan sistem mencegah pengendalian sambungan jaringan" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:13 -msgid "System policy prevents enabling or disabling WiFi devices" -msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat WiFi" +msgid "Connection sharing via a protected WiFi network" +msgstr "Berbagi koneksi melalui jaringan WiFi terlindung." #: ../policy/org.freedesktop.NetworkManager.policy.in.h:14 -#| msgid "" -#| "System policy prevents enabling or disabling mobile broadband devices" -msgid "System policy prevents enabling or disabling WiMAX mobile broadband devices" -msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak WiMAX" +msgid "System policy prevents sharing connections via a protected WiFi network" +msgstr "Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terlindung" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:15 -msgid "System policy prevents enabling or disabling mobile broadband devices" -msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak" +msgid "Connection sharing via an open WiFi network" +msgstr "Berbagi koneksi melalui jaringan WiFi terbuka" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:16 -msgid "System policy prevents enabling or disabling system networking" -msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan jejaring sistem" +msgid "System policy prevents sharing connections via an open WiFi network" +msgstr "Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terbuka" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:17 -#| msgid "System policy prevents modification of system settings" -msgid "System policy prevents modification of network settings for all users" -msgstr "Kebijakan sistem mencegah pengubahan tatanan sistem bagi semua pengguna" +msgid "Modify personal network connections" +msgstr "Ubah koneksi jaringan personal" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:18 -#| msgid "System policy prevents modification of system settings" msgid "System policy prevents modification of personal network settings" msgstr "Kebijakan sistem mencegah pengubahan tatanan jaringan pribadi" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:19 -msgid "System policy prevents modification of the persistent system hostname" -msgstr "Kebijakan sistem mencegah pengubahan nama host yang persisten" +msgid "Modify network connections for all users" +msgstr "Ubah koneksi jaringan bagi semua pengguna" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:20 -msgid "System policy prevents putting NetworkManager to sleep or waking it up" -msgstr "Kebijakan sistem mencegah menidurkan NetworkManager atau membangunkannya" +msgid "System policy prevents modification of network settings for all users" +msgstr "Kebijakan sistem mencegah pengubahan tatanan sistem bagi semua pengguna" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:21 -msgid "System policy prevents sharing connections via a protected WiFi network" -msgstr "Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terlindung" +msgid "Modify persistent system hostname" +msgstr "Ubah nama host sistem yang persisten" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:22 -msgid "System policy prevents sharing connections via an open WiFi network" -msgstr "Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terbuka" +msgid "System policy prevents modification of the persistent system hostname" +msgstr "Kebijakan sistem mencegah pengubahan nama host yang persisten" + +#: ../src/main.c:156 +#, c-format +msgid "Failed to set signal mask: %d" +msgstr "Gagal menata mask sinyal: %d" + +#: ../src/main.c:163 +#, c-format +msgid "Failed to create signal handling thread: %d" +msgstr "Gagal membuat thread penanganan sinyal: %d" + +#: ../src/main.c:178 +#, c-format +msgid "Opening %s failed: %s\n" +msgstr "Membuka %s gagal: %s\n" + +#: ../src/main.c:184 +#, c-format +msgid "Writing to %s failed: %s\n" +msgstr "Menulis ke %s gagal: %s\n" -#: ../src/main.c:530 +#: ../src/main.c:189 +#, c-format +msgid "Closing %s failed: %s\n" +msgstr "Menutup %s gagal: %s\n" + +#: ../src/main.c:232 +#, c-format +msgid "NetworkManager is already running (pid %ld)\n" +msgstr "NetworkManager telah dijalankan (pid %ld)\n" + +#: ../src/main.c:372 +msgid "Print NetworkManager version and exit" +msgstr "Cetak versi NetworkManager dan keluar" + +#: ../src/main.c:373 +msgid "Don't become a daemon" +msgstr "Jangan jadi daemon" + +#: ../src/main.c:374 +msgid "Make all warnings fatal" +msgstr "Jadikan semua peringatan fatal" + +#: ../src/main.c:375 +msgid "Specify the location of a PID file" +msgstr "Nyatakan lokasi berkas PID" + +#: ../src/main.c:375 +msgid "filename" +msgstr "filename" + +#: ../src/main.c:376 +msgid "State file location" +msgstr "Lokasi berkas keadaan" + +#: ../src/main.c:376 +msgid "/path/to/state.file" +msgstr "/path/to/state.file" + +#: ../src/main.c:377 +msgid "Config file location" +msgstr "Lokasi berkas konfig" + +#: ../src/main.c:377 +msgid "/path/to/config.file" +msgstr "/path/to/config.file" + +#: ../src/main.c:378 +msgid "List of plugins separated by ','" +msgstr "Daftar plugin dipisah oleh ','" + +#: ../src/main.c:378 +msgid "plugin1,plugin2" +msgstr "plugin1,plugin2" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:380 +msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" +msgstr "Aras log: satu dari [ERR, WARN, INFO, DEBUG]" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:383 +msgid "" +"Log domains separated by ',': any combination of\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" +msgstr "" +"Domain log dipisahkan dengan ',': sebarang kombinasi dari\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" + +#: ../src/main.c:396 +#, c-format +msgid "GModules are not supported on your platform!\n" +msgstr "GModules tak didukung pada platform Anda!\n" + +#: ../src/main.c:419 +msgid "" +"NetworkManager monitors all network connections and automatically\n" +"chooses the best connection to use. It also allows the user to\n" +"specify wireless access points which wireless cards in the computer\n" +"should associate with." +msgstr "" +"NetworkManager memantau semua koneksi jaringan dan secara otomatis\n" +"memilih koneksi terbaik untuk dipakai. Ini juga mengijinkan pengguna untuk\n" +"menyatakan access point nirkabel yang mesti dipakai oleh kartu nirkabel\n" +"dalam komputer." + +#: ../src/main.c:425 #, c-format msgid "Invalid option. Please use --help to see a list of valid options.\n" msgstr "Opsi tak valid. Silakan pakai --help untuk melihat daftar opsi yang valid.\n" -#: ../src/main.c:611 +#: ../src/main.c:435 +#, c-format +msgid "You must be root to run NetworkManager!\n" +msgstr "Anda mesti root untuk menjalankan NetworkManager!\n" + +#: ../src/main.c:456 +#, c-format +msgid "Failed to read configuration: (%d) %s\n" +msgstr "Gagal membaca konfigurasi: (%d) %s\n" + +#: ../src/main.c:467 #, c-format msgid "%s. Please use --help to see a list of valid options.\n" msgstr "%s. Silakan pakai --help untuk melihat daftar opsi yang valid.\n" +#: ../src/main.c:474 +#, c-format +msgid "State file %s parsing failed: (%d) %s\n" +msgstr "Penguraian berkas keadaan %s gagal: (%d) %s\n" + +#: ../src/main.c:491 +#, c-format +msgid "Could not daemonize: %s [error %u]\n" +msgstr "Tak bisa menjadi daemon: %s [galat %u]\n" + #: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62 msgid "# Created by NetworkManager\n" msgstr "# Dibuat oleh NetworkManager\n" @@ -2083,136 +2637,147 @@ msgstr "" "# Digabung dari %s\n" "\n" -#: ../src/dhcp-manager/nm-dhcp-manager.c:284 +#: ../src/dhcp-manager/nm-dhcp-manager.c:266 msgid "no usable DHCP client could be found." msgstr "tak menemukan klien DHCP yang dapat dipakai." -#: ../src/dhcp-manager/nm-dhcp-manager.c:293 +#: ../src/dhcp-manager/nm-dhcp-manager.c:275 msgid "'dhclient' could be found." msgstr "'dhclient' dapat ditemukan." -#: ../src/dhcp-manager/nm-dhcp-manager.c:303 +#: ../src/dhcp-manager/nm-dhcp-manager.c:285 msgid "'dhcpcd' could be found." msgstr "'dhcpd' dapat ditemukan." -#: ../src/dhcp-manager/nm-dhcp-manager.c:311 +#: ../src/dhcp-manager/nm-dhcp-manager.c:293 #, c-format msgid "unsupported DHCP client '%s'" msgstr "Klien DHCP '%s' yang tak didukung" -#: ../src/dns-manager/nm-dns-manager.c:369 +#: ../src/dns-manager/nm-dns-manager.c:376 msgid "NOTE: the libc resolver may not support more than 3 nameservers." msgstr "CATATAN: resolver libc mungkin tak mendukung lebih dari 3 nameserver." -#: ../src/dns-manager/nm-dns-manager.c:371 +#: ../src/dns-manager/nm-dns-manager.c:378 msgid "The nameservers listed below may not be recognized." msgstr "Nameserver yang terdaftar di bawah mungkin tak dikenali." -#: ../src/logging/nm-logging.c:149 +#: ../src/logging/nm-logging.c:130 #, c-format msgid "Unknown log level '%s'" msgstr "Aras log tak dikenal '%s'" -#: ../src/logging/nm-logging.c:174 +#: ../src/logging/nm-logging.c:155 #, c-format msgid "Unknown log domain '%s'" msgstr "Ranah log tak dikenal '%s'" -#: ../src/modem-manager/nm-modem-cdma.c:296 -#: ../src/nm-device-bt.c:355 +#: ../src/modem-manager/nm-modem-cdma.c:279 +#: ../src/nm-device-bt.c:325 #, c-format -#| msgid "connection failed" msgid "CDMA connection %d" msgstr "Sambungan CDMA %d" -#: ../src/modem-manager/nm-modem-gsm.c:499 -#: ../src/nm-device-bt.c:351 +#: ../src/modem-manager/nm-modem-gsm.c:547 +#: ../src/nm-device-bt.c:321 #, c-format -#| msgid "connection failed" msgid "GSM connection %d" msgstr "Sambungan GSM %d" -#: ../src/nm-device-bt.c:326 +#: ../src/nm-device-bond.c:191 +#, c-format +msgid "Bond connection %d" +msgstr "Sambungan bond %d" + +#: ../src/nm-device-bt.c:296 #, c-format -#| msgid "VPN connection failed" msgid "PAN connection %d" msgstr "Sambungan PAN %d" -#: ../src/nm-device-bt.c:359 +#: ../src/nm-device-bt.c:329 #, c-format -#| msgid "VPN connection failed" msgid "DUN connection %d" msgstr "Sambungan DUN %d" -#: ../src/nm-device-ethernet.c:1681 +#: ../src/nm-device-ethernet.c:1326 #, c-format -#| msgid "VPN connection failed" msgid "PPPoE connection %d" msgstr "Sambungan PPPoE %d" -#: ../src/nm-device-ethernet.c:1681 +#: ../src/nm-device-ethernet.c:1326 #: ../src/settings/nm-settings-utils.c:50 #, c-format -#| msgid "Active connections" msgid "Wired connection %d" msgstr "Sambungan kabel %d" -#: ../src/nm-device-olpc-mesh.c:423 +#: ../src/nm-device-infiniband.c:303 +#, c-format +msgid "InfiniBand connection %d" +msgstr "Sambungan InfiniBand %d" + +#: ../src/nm-device-olpc-mesh.c:293 #, c-format msgid "Mesh %d" msgstr "Mesh %d" -#: ../src/nm-manager.c:673 +#: ../src/nm-device-vlan.c:362 +#, c-format +msgid "VLAN connection %d" +msgstr "Sambungan VLAN %d" + +#: ../src/nm-manager.c:661 #, c-format -#| msgid "VPN connection failed" msgid "VPN connection %d" msgstr "Sambungan VPN %d" -#: ../src/nm-netlink-monitor.c:100 -#: ../src/nm-netlink-monitor.c:231 -#: ../src/nm-netlink-monitor.c:653 +#: ../src/nm-netlink-monitor.c:148 +#: ../src/nm-netlink-monitor.c:272 +#: ../src/nm-netlink-monitor.c:695 #, c-format msgid "error processing netlink message: %s" msgstr "galat memroses pesan netlink: %s" -#: ../src/nm-netlink-monitor.c:214 +#: ../src/nm-netlink-monitor.c:251 msgid "error occurred while waiting for data on socket" msgstr "galat terjadi ketika menunggu data pada soket" -#: ../src/nm-netlink-monitor.c:254 +#: ../src/nm-netlink-monitor.c:296 #, c-format msgid "unable to connect to netlink for monitoring link status: %s" msgstr "tak bisa menyambung ke netlink untuk pemantauan status sambungan: %s" -#: ../src/nm-netlink-monitor.c:265 +#: ../src/nm-netlink-monitor.c:307 #, c-format msgid "unable to enable netlink handle credential passing: %s" msgstr "tak bisa mengaktifkan penyampaian kredensial handle netlink: %s" -#: ../src/nm-netlink-monitor.c:291 -#: ../src/nm-netlink-monitor.c:353 +#: ../src/nm-netlink-monitor.c:330 +#: ../src/nm-netlink-monitor.c:390 #, c-format msgid "unable to allocate netlink handle for monitoring link status: %s" msgstr "tak bisa mengalokasikan handle netlink untuk pemantauan status sambungan: %s" -#: ../src/nm-netlink-monitor.c:376 +#: ../src/nm-netlink-monitor.c:415 #, c-format msgid "unable to allocate netlink link cache for monitoring link status: %s" msgstr "tak bisa mengalokasikan singgahan sambungan netlink untuk pemantauan status sambungan: %s" -#: ../src/nm-netlink-monitor.c:502 +#: ../src/nm-netlink-monitor.c:542 #, c-format msgid "unable to join netlink group: %s" msgstr "tak bisa bergabung dengan grup netlink: %s" -#: ../src/nm-netlink-monitor.c:629 -#: ../src/nm-netlink-monitor.c:642 +#: ../src/nm-netlink-monitor.c:671 +#: ../src/nm-netlink-monitor.c:684 #, c-format msgid "error updating link cache: %s" msgstr "galat memperbarui singgahan sambungan: %s" -#: ../src/settings/plugins/ifcfg-rh/reader.c:3512 -#: ../src/settings/plugins/ifnet/connection_parser.c:51 +#: ../src/settings/plugins/ifcfg-rh/reader.c:93 msgid "System" msgstr "Sistem" +#: ../src/settings/plugins/ifcfg-rh/reader.c:3634 +msgid "Bond" +msgstr "Bond" + diff --git a/po/lt.po b/po/lt.po index 1d9eb95e..52f70bfc 100644 --- a/po/lt.po +++ b/po/lt.po @@ -4,909 +4,1368 @@ # Žygimantas Beručka <zygis@gnome.org>, 2005-2006, 2008, 2010. # Aurimas Černius <aurisc4@gmail.com>, 2010. # Rimas Kudelis <rq@akl.lt>, 2010. +# Algimantas Margevičius <margevicius.algimantas@gmail.com>, 2012. +# msgid "" msgstr "" "Project-Id-Version: NetworkManager HEAD\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=Networ" -"kManager&component=general\n" -"POT-Creation-Date: 2010-09-20 15:25+0000\n" -"PO-Revision-Date: 2010-10-16 17:10+0300\n" -"Last-Translator: Rimas Kudelis <rq@akl.lt>\n" -"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n" -"Language: lt\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-04-28 03:24+0000\n" +"PO-Revision-Date: 2012-04-28 16:21+0300\n" +"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n" +"Language-Team: Lietuvių <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" -"100<10 || n%100>=20) ? 1 : 2);\n" +"100<10 || n%100>=20) ? 1 : 2)\n" "X-Generator: Virtaal 0.5.2\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 -msgid "NAME" -msgstr "PAVADINIMAS" +#: ../cli/src/common.c:32 ../cli/src/common.c:44 ../cli/src/common.c:52 +#: ../cli/src/common.c:63 ../cli/src/connections.c:125 +#: ../cli/src/connections.c:159 +msgid "GROUP" +msgstr "GRUPĖ" #. 0 -#: ../cli/src/connections.c:61 ../cli/src/connections.c:76 -msgid "UUID" -msgstr "UUID" +#: ../cli/src/common.c:33 ../cli/src/common.c:53 +msgid "ADDRESS" +msgstr "ADRESAS" #. 1 -#: ../cli/src/connections.c:62 -msgid "DEVICES" -msgstr "ĮRENGINIAI" +#: ../cli/src/common.c:34 ../cli/src/common.c:54 +msgid "ROUTE" +msgstr "KELIAS" #. 2 -#: ../cli/src/connections.c:63 ../cli/src/connections.c:78 -msgid "SCOPE" -msgstr "SRITIS" +#: ../cli/src/common.c:35 ../cli/src/common.c:55 +msgid "DNS" +msgstr "DNS" #. 3 -#: ../cli/src/connections.c:64 -msgid "DEFAULT" -msgstr "NUMATYTASIS" +#: ../cli/src/common.c:36 ../cli/src/common.c:56 +msgid "DOMAIN" +msgstr "DOMENAS" #. 4 -#: ../cli/src/connections.c:65 -msgid "DBUS-SERVICE" -msgstr "DBUS-TARNYBA" +#: ../cli/src/common.c:37 +msgid "WINS" +msgstr "SĖKMĖS" -#. 5 -#: ../cli/src/connections.c:66 -msgid "SPEC-OBJECT" -msgstr "SPEC-OBJECTAS" +#. 0 +#: ../cli/src/common.c:45 ../cli/src/common.c:64 +msgid "OPTION" +msgstr "PARINKTIS" -#. 6 -#: ../cli/src/connections.c:67 -msgid "VPN" -msgstr "VPN" +#. 0 +#. used only for 'GENERAL' group listing +#: ../cli/src/connections.c:58 ../cli/src/connections.c:126 +#: ../cli/src/devices.c:102 ../cli/src/devices.c:123 ../cli/src/devices.c:133 +#: ../cli/src/devices.c:143 ../cli/src/devices.c:157 ../cli/src/devices.c:171 +#: ../cli/src/devices.c:193 +msgid "NAME" +msgstr "PAVADINIMAS" + +#. 0 +#. 1 +#: ../cli/src/connections.c:59 ../cli/src/connections.c:127 +msgid "UUID" +msgstr "UUID" #. 1 #. 0 #. 1 -#: ../cli/src/connections.c:77 ../cli/src/devices.c:62 ../cli/src/devices.c:90 +#. 2 +#: ../cli/src/connections.c:60 ../cli/src/connections.c:160 +#: ../cli/src/devices.c:68 ../cli/src/devices.c:104 ../cli/src/devices.c:196 msgid "TYPE" msgstr "TIPAS" -#. 3 -#: ../cli/src/connections.c:79 +#. 2 +#: ../cli/src/connections.c:61 msgid "TIMESTAMP" msgstr "LAIKO-ŽYMA" -#. 4 -#: ../cli/src/connections.c:80 +#. 3 +#: ../cli/src/connections.c:62 msgid "TIMESTAMP-REAL" msgstr "LAIKO-ŽYMA-TIKROJI" -#. 5 -#: ../cli/src/connections.c:81 +#. 4 +#: ../cli/src/connections.c:63 msgid "AUTOCONNECT" msgstr "AUTOPRISIJUNGIMAS" -#. 6 -#: ../cli/src/connections.c:82 +#. 5 +#: ../cli/src/connections.c:64 msgid "READONLY" msgstr "TIKSKAITOMA" -#. 7 -#: ../cli/src/connections.c:83 +#. 6 +#. 8 +#. 2 +#. 11 +#. 5 +#: ../cli/src/connections.c:65 ../cli/src/connections.c:134 +#: ../cli/src/devices.c:70 ../cli/src/devices.c:183 ../cli/src/devices.c:199 msgid "DBUS-PATH" msgstr "DBUS-KELIAS" -#: ../cli/src/connections.c:159 +#. 2 +#: ../cli/src/connections.c:128 +msgid "DEVICES" +msgstr "ĮRENGINIAI" + +#. 3 +#. 1 +#. 6 +#. 1 +#: ../cli/src/connections.c:129 ../cli/src/devices.c:69 +#: ../cli/src/devices.c:109 ../cli/src/network-manager.c:39 +msgid "STATE" +msgstr "BŪSENA" + +#. 4 +#: ../cli/src/connections.c:130 +msgid "DEFAULT" +msgstr "NUMATYTASIS" + +#. 5 +#: ../cli/src/connections.c:131 +msgid "DEFAULT6" +msgstr "NUMATYTASIS6" + +#. 6 +#: ../cli/src/connections.c:132 +msgid "SPEC-OBJECT" +msgstr "SPEC-OBJECTAS" + +#. 7 +#. 1 +#: ../cli/src/connections.c:133 ../cli/src/connections.c:147 +msgid "VPN" +msgstr "VPN" + +#. 9 +#: ../cli/src/connections.c:135 +msgid "CON-PATH" +msgstr "RYŠIO-KELIAS" + +#. 10 +#: ../cli/src/connections.c:136 +msgid "ZONE" +msgstr "ZONA" + +#. 11 +#: ../cli/src/connections.c:137 +msgid "MASTER-PATH" +msgstr "PAGRINDINIS-KELIAS" + +#: ../cli/src/connections.c:145 ../cli/src/devices.c:79 +msgid "GENERAL" +msgstr "BENDRA" + +#. 0 +#: ../cli/src/connections.c:146 +msgid "IP" +msgstr "IP" + +#. 1 +#: ../cli/src/connections.c:161 +msgid "USERNAME" +msgstr "NAUDOTOJO VARDAS" + +#. 2 +#: ../cli/src/connections.c:162 +msgid "GATEWAY" +msgstr "ŠLIUZAS" + +#. 3 +#: ../cli/src/connections.c:163 +msgid "BANNER" +msgstr "PRANEŠIMAS" + +#. 4 +#: ../cli/src/connections.c:164 +msgid "VPN-STATE" +msgstr "VPN BŪSENA" + +#. 5 +#: ../cli/src/connections.c:165 +msgid "CFG" +msgstr "KONF" + +#: ../cli/src/connections.c:186 #, c-format msgid "" "Usage: nmcli con { COMMAND | help }\n" -" COMMAND := { list | status | up | down }\n" +" COMMAND := { list | status | up | down | delete }\n" "\n" -" list [id <id> | uuid <id> | system | user]\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout " +" list [id <id> | uuid <id>]\n" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--" +"nowait] [--timeout <timeout>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout " "<timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" msgstr "" "Naudojimas: nmcli con { KOMANDA | help }\n" -" KOMANDA := { list | status | up | down }\n" +" KOMANDA := { list | status | up | down | delete }\n" "\n" -" list [id <id> | uuid <id> | system | user]\n" -" status\n" -" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout " +" list [id <id> | uuid <id>]\n" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--" +"nowait] [--timeout <timeout>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout " "<timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" -#: ../cli/src/connections.c:199 ../cli/src/connections.c:540 +#: ../cli/src/connections.c:240 ../cli/src/connections.c:591 #, c-format msgid "Error: 'con list': %s" msgstr "Klaida: „con list“: %s" -#: ../cli/src/connections.c:201 ../cli/src/connections.c:542 +#: ../cli/src/connections.c:242 ../cli/src/connections.c:593 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Klaida: „con list“: %s; leidžiami laukai: %s" -#: ../cli/src/connections.c:209 +#: ../cli/src/connections.c:250 msgid "Connection details" msgstr "Ryšio informacija" -#: ../cli/src/connections.c:384 ../cli/src/connections.c:605 -msgid "system" -msgstr "sisteminis" - -#: ../cli/src/connections.c:384 ../cli/src/connections.c:605 -msgid "user" -msgstr "naudotojo" - -#: ../cli/src/connections.c:386 +#: ../cli/src/connections.c:466 msgid "never" msgstr "niekada" #. "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:467 ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 ../cli/src/devices.c:762 ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 ../cli/src/devices.c:821 ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 ../cli/src/devices.c:824 ../cli/src/devices.c:825 +#: ../cli/src/settings.c:657 ../cli/src/settings.c:727 +#: ../cli/src/settings.c:847 ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1130 ../cli/src/settings.c:1132 +#: ../cli/src/settings.c:1134 ../cli/src/settings.c:1135 +#: ../cli/src/settings.c:1263 ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 ../cli/src/settings.c:1266 +#: ../cli/src/settings.c:1341 ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1353 ../cli/src/settings.c:1424 msgid "yes" msgstr "taip" -#: ../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 +#: ../cli/src/connections.c:467 ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 ../cli/src/devices.c:762 ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 ../cli/src/devices.c:821 ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 ../cli/src/devices.c:824 ../cli/src/devices.c:825 +#: ../cli/src/settings.c:657 ../cli/src/settings.c:659 +#: ../cli/src/settings.c:727 ../cli/src/settings.c:847 +#: ../cli/src/settings.c:1129 ../cli/src/settings.c:1130 +#: ../cli/src/settings.c:1132 ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1135 ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1266 ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 ../cli/src/settings.c:1353 +#: ../cli/src/settings.c:1424 msgid "no" msgstr "ne" -#: ../cli/src/connections.c:461 ../cli/src/connections.c:504 -msgid "System connections" -msgstr "Sistemos ryšiai" +#: ../cli/src/connections.c:542 +msgid "Connection list" +msgstr "Ryšių sąrašas" -#: ../cli/src/connections.c:466 ../cli/src/connections.c:517 -msgid "User connections" -msgstr "Naudotojo ryšiai" - -#: ../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:555 ../cli/src/connections.c:1088 +#: ../cli/src/connections.c:1456 ../cli/src/connections.c:1471 +#: ../cli/src/connections.c:1480 ../cli/src/connections.c:1490 +#: ../cli/src/connections.c:1502 ../cli/src/connections.c:1601 +#: ../cli/src/connections.c:1703 ../cli/src/devices.c:1202 +#: ../cli/src/devices.c:1212 ../cli/src/devices.c:1326 +#: ../cli/src/devices.c:1334 ../cli/src/devices.c:1547 +#: ../cli/src/devices.c:1554 #, c-format msgid "Error: %s argument is missing." msgstr "Klaida: trūksta argumento %s." -#: ../cli/src/connections.c:491 +#: ../cli/src/connections.c:568 #, c-format msgid "Error: %s - no such connection." msgstr "Klaida: ryšio %s nėra." -#: ../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:574 ../cli/src/connections.c:1515 +#: ../cli/src/connections.c:1618 ../cli/src/connections.c:1710 +#: ../cli/src/devices.c:999 ../cli/src/devices.c:1079 +#: ../cli/src/devices.c:1226 ../cli/src/devices.c:1340 +#: ../cli/src/devices.c:1560 #, c-format msgid "Unknown parameter: %s\n" msgstr "Nežinomas parametras: %s\n" -#: ../cli/src/connections.c:532 +#: ../cli/src/connections.c:583 #, c-format msgid "Error: no valid parameter specified." msgstr "Klaida: nenurodyta tinkamų parametrų." -#: ../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:598 ../cli/src/connections.c:1803 +#: ../cli/src/devices.c:1768 ../cli/src/network-manager.c:456 #, c-format msgid "Error: %s." msgstr "Klaida: %s" -#: ../cli/src/connections.c:653 -#, c-format -msgid "Error: 'con status': %s" -msgstr "Klaida: „con status“: %s" - -#: ../cli/src/connections.c:655 -#, c-format -msgid "Error: 'con status': %s; allowed fields: %s" -msgstr "Klaida: „con status“: %s; leidžiami laukai: %s" - -#: ../cli/src/connections.c:662 -msgid "Active connections" -msgstr "Aktyvūs ryšiai" - -#: ../cli/src/connections.c:1030 -#, c-format -msgid "no active connection on device '%s'" -msgstr "nėra aktyvaus ryšio įrenginyje „%s“" - -#: ../cli/src/connections.c:1038 -#, c-format -msgid "no active connection or device" -msgstr "nėra aktyvaus ryšio įrenginyje" - -#: ../cli/src/connections.c:1088 -#, c-format -msgid "device '%s' not compatible with connection '%s'" -msgstr "įrenginys „%s“ nesuderinamas su ryšiu „%s“" - -#: ../cli/src/connections.c:1090 -#, c-format -msgid "no device found for connection '%s'" -msgstr "nerastas įrenginys ryšiui „%s“" - -#: ../cli/src/connections.c:1101 +#: ../cli/src/connections.c:611 msgid "activating" msgstr "aktyvuojama" -#: ../cli/src/connections.c:1103 +#: ../cli/src/connections.c:613 msgid "activated" msgstr "aktyvuota" -#: ../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 +#: ../cli/src/connections.c:615 ../cli/src/devices.c:263 +msgid "deactivating" +msgstr "deaktyvuojama" + +#: ../cli/src/connections.c:618 ../cli/src/connections.c:641 +#: ../cli/src/connections.c:1327 ../cli/src/devices.c:267 +#: ../cli/src/devices.c:796 ../cli/src/network-manager.c:111 +#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:185 ../cli/src/network-manager.c:291 +#: ../cli/src/network-manager.c:346 ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:423 ../cli/src/settings.c:563 +#: ../cli/src/settings.c:591 ../cli/src/utils.c:499 ../src/main.c:458 +#: ../src/main.c:477 msgid "unknown" msgstr "nežinoma" -#: ../cli/src/connections.c:1115 +#: ../cli/src/connections.c:627 msgid "VPN connecting (prepare)" msgstr "VPN jungiamasi (ruošiama)" -#: ../cli/src/connections.c:1117 +#: ../cli/src/connections.c:629 msgid "VPN connecting (need authentication)" msgstr "VPN jungiamasi (reikia nustatyti tapatybę)" -#: ../cli/src/connections.c:1119 +#: ../cli/src/connections.c:631 msgid "VPN connecting" msgstr "VPN jungiamasi" -#: ../cli/src/connections.c:1121 +#: ../cli/src/connections.c:633 msgid "VPN connecting (getting IP configuration)" msgstr "VPN jungiamasi (gaunama IP konfigūracija)" -#: ../cli/src/connections.c:1123 +#: ../cli/src/connections.c:635 msgid "VPN connected" msgstr "VPN prisijungta" -#: ../cli/src/connections.c:1125 +#: ../cli/src/connections.c:637 msgid "VPN connection failed" msgstr "VPN prisijungti nepavyko" -#: ../cli/src/connections.c:1127 +#: ../cli/src/connections.c:639 msgid "VPN disconnected" msgstr "VPN atsijungta" -#: ../cli/src/connections.c:1138 +#: ../cli/src/connections.c:892 ../cli/src/connections.c:1116 +#, c-format +msgid "Error: 'con status': %s" +msgstr "Klaida: „con status“: %s" + +#: ../cli/src/connections.c:894 ../cli/src/connections.c:1118 +#, c-format +msgid "Error: 'con status': %s; allowed fields: %s" +msgstr "Klaida: „con status“: %s; leidžiami laukai: %s" + +#: ../cli/src/connections.c:902 +msgid "Active connection details" +msgstr "Aktyvaus ryšio detalės" + +#: ../cli/src/connections.c:1038 ../cli/src/connections.c:1530 +#: ../cli/src/connections.c:1633 ../cli/src/connections.c:1724 +#: ../cli/src/devices.c:1026 ../cli/src/devices.c:1088 +#: ../cli/src/devices.c:1241 ../cli/src/devices.c:1370 +#: ../cli/src/devices.c:1589 +#, c-format +msgid "Error: Can't find out if NetworkManager is running: %s." +msgstr "Klaida: nepavyko nustatyti ar veikia NetworkManager: %s." + +#: ../cli/src/connections.c:1042 ../cli/src/connections.c:1534 +#: ../cli/src/connections.c:1637 ../cli/src/connections.c:1728 +#: ../cli/src/devices.c:1030 ../cli/src/devices.c:1092 +#: ../cli/src/devices.c:1245 ../cli/src/devices.c:1374 +#: ../cli/src/devices.c:1593 +#, c-format +msgid "Error: NetworkManager is not running." +msgstr "Klaida: NetworkManager neveikia." + +#: ../cli/src/connections.c:1074 +msgid "Active connections" +msgstr "Aktyvūs ryšiai" + +#: ../cli/src/connections.c:1099 +#, c-format +msgid "Error: '%s' is not an active connection." +msgstr "Klaida: „%s“ nėra aktyvus ryšys." + +#: ../cli/src/connections.c:1104 +#, c-format +msgid "Error: unknown parameter: %s" +msgstr "Klaida: nežinomas parametras: %s" + +#: ../cli/src/connections.c:1211 +#, c-format +msgid "no active connection on device '%s'" +msgstr "nėra aktyvaus ryšio įrenginyje „%s“" + +#: ../cli/src/connections.c:1219 +#, c-format +msgid "no active connection or device" +msgstr "nėra aktyvaus ryšio įrenginyje" + +#: ../cli/src/connections.c:1290 +#, c-format +msgid "device '%s' not compatible with connection '%s'" +msgstr "įrenginys „%s“ nesuderinamas su ryšiu „%s“" + +#: ../cli/src/connections.c:1292 +#, c-format +msgid "no device found for connection '%s'" +msgstr "nerastas įrenginys ryšiui „%s“" + +#: ../cli/src/connections.c:1303 msgid "unknown reason" msgstr "nežinoma priežastis" -#: ../cli/src/connections.c:1140 +#: ../cli/src/connections.c:1305 msgid "none" msgstr "jokia" -#: ../cli/src/connections.c:1142 +#: ../cli/src/connections.c:1307 msgid "the user was disconnected" msgstr "naudotojas buvo atjungtas" -#: ../cli/src/connections.c:1144 +#: ../cli/src/connections.c:1309 msgid "the base network connection was interrupted" msgstr "bazinis tinklo ryšys buvo pertrauktas" -#: ../cli/src/connections.c:1146 +#: ../cli/src/connections.c:1311 msgid "the VPN service stopped unexpectedly" msgstr "VPN tarnyba netikėtai sustojo" -#: ../cli/src/connections.c:1148 +#: ../cli/src/connections.c:1313 msgid "the VPN service returned invalid configuration" msgstr "VPN tarnyba grąžino netinkamą konfigūraciją" -#: ../cli/src/connections.c:1150 +#: ../cli/src/connections.c:1315 msgid "the connection attempt timed out" msgstr "bandymo jungtis laikas baigėsi" -#: ../cli/src/connections.c:1152 +#: ../cli/src/connections.c:1317 msgid "the VPN service did not start in time" msgstr "VPN tarnyba nebuvo paleista laiku" -#: ../cli/src/connections.c:1154 +#: ../cli/src/connections.c:1319 msgid "the VPN service failed to start" msgstr "nepavyko paleisti VPN tarnybos" -#: ../cli/src/connections.c:1156 +#: ../cli/src/connections.c:1321 msgid "no valid VPN secrets" msgstr "nėra tinkamų VPN paslapčių" -#: ../cli/src/connections.c:1158 +#: ../cli/src/connections.c:1323 msgid "invalid VPN secrets" msgstr "netinkamos VPN paslaptys" -#: ../cli/src/connections.c:1160 +#: ../cli/src/connections.c:1325 msgid "the connection was removed" msgstr "ryšys buvo pašalintas" -#: ../cli/src/connections.c:1174 +#: ../cli/src/connections.c:1339 #, c-format msgid "state: %s\n" msgstr "būsena: %s\n" -#: ../cli/src/connections.c:1177 ../cli/src/connections.c:1203 +#: ../cli/src/connections.c:1342 ../cli/src/connections.c:1368 #, c-format msgid "Connection activated\n" msgstr "Ryšys aktyvuotas\n" -#: ../cli/src/connections.c:1180 +#: ../cli/src/connections.c:1345 #, c-format msgid "Error: Connection activation failed." msgstr "Klaida: nepavyko aktyvuoti ryšio." -#: ../cli/src/connections.c:1199 +#: ../cli/src/connections.c:1364 #, c-format msgid "state: %s (%d)\n" msgstr "būsena: %s (%d)\n" -#: ../cli/src/connections.c:1209 +#: ../cli/src/connections.c:1374 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Klaida: nepavyko aktyvuoti ryšio: %s." -#: ../cli/src/connections.c:1226 ../cli/src/devices.c:909 +#: ../cli/src/connections.c:1391 ../cli/src/devices.c:1148 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Klaida: baigėsi %d sek. laikas." -#: ../cli/src/connections.c:1269 +#: ../cli/src/connections.c:1404 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Klaida: nepavyko aktyvuoti ryšio: %s" -#: ../cli/src/connections.c:1283 -#, c-format -msgid "Error: Obtaining active connection for '%s' failed." -msgstr "Klaida: nepavyko „%s“ gauti aktyvaus ryšio." - -#: ../cli/src/connections.c:1292 +#: ../cli/src/connections.c:1410 #, c-format msgid "Active connection state: %s\n" msgstr "Aktyvaus ryšio būsena: %s\n" -#: ../cli/src/connections.c:1293 +#: ../cli/src/connections.c:1411 #, c-format msgid "Active connection path: %s\n" msgstr "Aktyvaus ryšio kelias: %s\n" -#: ../cli/src/connections.c:1347 ../cli/src/connections.c:1468 +#: ../cli/src/connections.c:1464 ../cli/src/connections.c:1609 +#: ../cli/src/connections.c:1737 #, c-format msgid "Error: Unknown connection: %s." msgstr "Klaida: nežinomas ryšys: %s" -#: ../cli/src/connections.c:1382 ../cli/src/devices.c:980 +#: ../cli/src/connections.c:1510 ../cli/src/devices.c:1220 #, c-format msgid "Error: timeout value '%s' is not valid." msgstr "Klaida: netinkama laukimo laiko reikšmė „%s“." -#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1485 +#: ../cli/src/connections.c:1523 ../cli/src/connections.c:1626 +#: ../cli/src/connections.c:1717 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Klaida: id arba uuid turi būti nurodytas." -#: ../cli/src/connections.c:1415 +#: ../cli/src/connections.c:1555 #, c-format msgid "Error: No suitable device found: %s." msgstr "Klaida: nerastas tinkamas įrenginys: %s." -#: ../cli/src/connections.c:1417 +#: ../cli/src/connections.c:1557 #, c-format msgid "Error: No suitable device found." msgstr "Klaida: nerastas tinkamas įrenginys." -#: ../cli/src/connections.c:1512 +#: ../cli/src/connections.c:1662 #, c-format msgid "Warning: Connection not active\n" msgstr "Įspėjimas: ryšys neaktyvus\n" -#: ../cli/src/connections.c:1569 +#: ../cli/src/connections.c:1676 +#, c-format +msgid "Error: Connection deletion failed: %s" +msgstr "Klaida: nepavyko ištrinti ryšio: %s" + +#: ../cli/src/connections.c:1794 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Klaida: netinkama „con“ komanda „%s“." -#: ../cli/src/connections.c:1605 +#: ../cli/src/connections.c:1859 #, c-format msgid "Error: could not connect to D-Bus." msgstr "Klaida: nepavyko prisijungti prie D-Bus." -#: ../cli/src/connections.c:1612 +#: ../cli/src/connections.c:1867 #, c-format msgid "Error: Could not get system settings." msgstr "Klaida: nepavyko gauti sistemos nustatymų." -#: ../cli/src/connections.c:1620 +#: ../cli/src/connections.c:1877 #, c-format -msgid "Error: Could not get user settings." -msgstr "Klaida: nepavyko gauti naudotojo nustatymų." - -#: ../cli/src/connections.c:1630 -#, c-format -msgid "Error: Can't obtain connections: settings services are not running." -msgstr "Klaida: nepavyko gauti ryšių: nustatymų tarnybos neveikia." +msgid "Error: Can't obtain connections: settings service is not running." +msgstr "Klaida: nepavyko gauti ryšių: nustatymų tarnyba neveikia." #. 0 #. 9 -#: ../cli/src/devices.c:61 ../cli/src/devices.c:89 ../cli/src/devices.c:184 +#. 3 +#: ../cli/src/devices.c:67 ../cli/src/devices.c:103 ../cli/src/devices.c:181 +#: ../cli/src/devices.c:197 msgid "DEVICE" msgstr "ĮRENGINYS" -#. 1 -#. 4 #. 0 -#: ../cli/src/devices.c:63 ../cli/src/devices.c:93 -#: ../cli/src/network-manager.c:36 -msgid "STATE" -msgstr "BŪSENA" - -#: ../cli/src/devices.c:72 -msgid "GENERAL" -msgstr "BENDRA" - -#. 0 -#: ../cli/src/devices.c:73 +#: ../cli/src/devices.c:80 msgid "CAPABILITIES" msgstr "GEBOS" #. 1 -#: ../cli/src/devices.c:74 +#: ../cli/src/devices.c:81 msgid "WIFI-PROPERTIES" msgstr "WIFI-SAVYBĖS" #. 2 -#: ../cli/src/devices.c:75 +#: ../cli/src/devices.c:82 msgid "AP" msgstr "AP" #. 3 -#: ../cli/src/devices.c:76 +#: ../cli/src/devices.c:83 msgid "WIRED-PROPERTIES" msgstr "LAIDINIO-TINKLO-SAVYBĖS" #. 4 -#: ../cli/src/devices.c:77 -msgid "IP4-SETTINGS" -msgstr "IP4-PARAMETRAI" +#: ../cli/src/devices.c:84 +msgid "WIMAX-PROPERTIES" +msgstr "WIMAX-SAVYBĖS" #. 5 -#: ../cli/src/devices.c:78 -msgid "IP4-DNS" -msgstr "IP4-DNS" +#. 0 +#: ../cli/src/devices.c:85 ../cli/src/devices.c:194 +msgid "NSP" +msgstr "NSP" #. 6 -#: ../cli/src/devices.c:79 -#| msgid "IP4-SETTINGS" -msgid "IP6-SETTINGS" -msgstr "IP6-PARAMETRAI" +#: ../cli/src/devices.c:86 +msgid "IP4" +msgstr "IP4" #. 7 -#: ../cli/src/devices.c:80 -#| msgid "IP4-DNS" -msgid "IP6-DNS" -msgstr "IP6-DNS" +#: ../cli/src/devices.c:87 +msgid "DHCP4" +msgstr "DHCP4" + +#. 8 +#: ../cli/src/devices.c:88 +msgid "IP6" +msgstr "IP6" + +#. 9 +#: ../cli/src/devices.c:89 +msgid "DHCP6" +msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:91 +#: ../cli/src/devices.c:105 +msgid "VENDOR" +msgstr "GAMINTOJAS" + +#. 3 +#: ../cli/src/devices.c:106 +msgid "PRODUCT" +msgstr "PRODUKTAS" + +#. 4 +#: ../cli/src/devices.c:107 msgid "DRIVER" msgstr "TVARKYKLĖ" -#. 3 -#: ../cli/src/devices.c:92 +#. 5 +#: ../cli/src/devices.c:108 msgid "HWADDR" msgstr "APARATINIS-ADRESAS" +#. 7 +#: ../cli/src/devices.c:110 +msgid "REASON" +msgstr "PRIEŽASTIS" + +#. 8 +#: ../cli/src/devices.c:111 +msgid "UDI" +msgstr "UDI" + +#. 9 +#: ../cli/src/devices.c:112 +msgid "IP-IFACE" +msgstr "IP-IFACE" + +#. 10 +#: ../cli/src/devices.c:113 +msgid "NM-MANAGED" +msgstr "NM-VALDOMAS" + +#. 11 +#: ../cli/src/devices.c:114 +msgid "FIRMWARE-MISSING" +msgstr "TRŪKSTA-APĮRANGOS" + +#. 12 +#: ../cli/src/devices.c:115 +msgid "CONNECTION" +msgstr "PRISIJUNGIMAS" + #. 0 -#: ../cli/src/devices.c:102 +#: ../cli/src/devices.c:124 msgid "CARRIER-DETECT" msgstr "NEŠLIO-APTIKIMAS" #. 1 -#: ../cli/src/devices.c:103 +#: ../cli/src/devices.c:125 msgid "SPEED" msgstr "SPARTA" #. 0 -#: ../cli/src/devices.c:112 +#: ../cli/src/devices.c:134 msgid "CARRIER" msgstr "NEŠLYS" #. 0 -#: ../cli/src/devices.c:122 +#: ../cli/src/devices.c:144 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:123 +#: ../cli/src/devices.c:145 msgid "WPA" msgstr "WPA" #. 2 -#: ../cli/src/devices.c:124 +#: ../cli/src/devices.c:146 msgid "WPA2" msgstr "WPA2" #. 3 -#: ../cli/src/devices.c:125 +#: ../cli/src/devices.c:147 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:126 +#: ../cli/src/devices.c:148 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:135 ../cli/src/devices.c:146 -msgid "ADDRESS" -msgstr "ADRESAS" +#: ../cli/src/devices.c:158 +msgid "CTR-FREQ" +msgstr "CTR DAŽNIS" #. 1 -#: ../cli/src/devices.c:136 ../cli/src/devices.c:147 -msgid "PREFIX" -msgstr "PRIEŠDĖLIS" +#: ../cli/src/devices.c:159 +msgid "RSSI" +msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:137 ../cli/src/devices.c:148 -msgid "GATEWAY" -msgstr "ŠLIUZAS" +#: ../cli/src/devices.c:160 +msgid "CINR" +msgstr "CINR" -#. 0 -#: ../cli/src/devices.c:157 ../cli/src/devices.c:166 -msgid "DNS" -msgstr "DNS" +#. 3 +#: ../cli/src/devices.c:161 +msgid "TX-POW" +msgstr "TX-POW" + +#. 4 +#: ../cli/src/devices.c:162 +msgid "BSID" +msgstr "BSID" #. 0 -#: ../cli/src/devices.c:175 +#: ../cli/src/devices.c:172 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:176 +#: ../cli/src/devices.c:173 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:177 +#: ../cli/src/devices.c:174 msgid "MODE" msgstr "VEIKSENA" #. 3 -#: ../cli/src/devices.c:178 +#: ../cli/src/devices.c:175 msgid "FREQ" msgstr "DAŽNIS" #. 4 -#: ../cli/src/devices.c:179 +#: ../cli/src/devices.c:176 msgid "RATE" msgstr "DAŽNUMAS" #. 5 -#: ../cli/src/devices.c:180 - +#. 1 +#: ../cli/src/devices.c:177 ../cli/src/devices.c:195 msgid "SIGNAL" msgstr "SIGNALAS" #. 6 -#: ../cli/src/devices.c:181 +#: ../cli/src/devices.c:178 msgid "SECURITY" msgstr "SAUGA" #. 7 -#: ../cli/src/devices.c:182 +#: ../cli/src/devices.c:179 msgid "WPA-FLAGS" msgstr "WPA-ŽYMOS" #. 8 -#: ../cli/src/devices.c:183 +#: ../cli/src/devices.c:180 msgid "RSN-FLAGS" msgstr "RSN-ŽYMOS" #. 10 -#: ../cli/src/devices.c:185 +#. 4 +#: ../cli/src/devices.c:182 ../cli/src/devices.c:198 msgid "ACTIVE" msgstr "AKTYVUS" -#: ../cli/src/devices.c:208 +#: ../cli/src/devices.c:215 #, c-format msgid "" "Usage: nmcli dev { COMMAND | help }\n" "\n" +" COMMAND := { status | list | disconnect | wifi | wimax }\n" +"\n" " COMMAND := { status | list | disconnect | wifi }\n" "\n" " status\n" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" -" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" "Naudojimas: nmcli dev { KOMANDA | help }\n" "\n" +" KOMANDA := { status | list | disconnect | wifi | wimax}\n" +"\n" " KOMANDA := { 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" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wimax [list [iface <iface>] [nsp <name>]]\n" "\n" -#: ../cli/src/devices.c:228 +#: ../cli/src/devices.c:243 msgid "unmanaged" msgstr "nevaldomas" -#: ../cli/src/devices.c:230 +#: ../cli/src/devices.c:245 msgid "unavailable" msgstr "neprieinamas" -#: ../cli/src/devices.c:232 ../cli/src/network-manager.c:91 +#: ../cli/src/devices.c:247 ../cli/src/network-manager.c:108 msgid "disconnected" msgstr "atjungtas" -#: ../cli/src/devices.c:234 +#: ../cli/src/devices.c:249 msgid "connecting (prepare)" msgstr "jungiamasi (ruošiama)" -#: ../cli/src/devices.c:236 +#: ../cli/src/devices.c:251 msgid "connecting (configuring)" msgstr "jungiamasi (konfigūruojama)" -#: ../cli/src/devices.c:238 +#: ../cli/src/devices.c:253 msgid "connecting (need authentication)" msgstr "jungiamasi (reikia nustatyti tapatybę)" -#: ../cli/src/devices.c:240 +#: ../cli/src/devices.c:255 msgid "connecting (getting IP configuration)" msgstr "jungiamasi (gaunama IP konfigūracija)" -#: ../cli/src/devices.c:242 ../cli/src/network-manager.c:89 +#: ../cli/src/devices.c:257 +msgid "connecting (checking IP connectivity)" +msgstr "jungiamasi (tikrinamas IP jungiamumas)" + +#: ../cli/src/devices.c:259 +msgid "connecting (starting secondary connections)" +msgstr "jungiamasi (paleidžiami antriniai prisijungimai)" + +#: ../cli/src/devices.c:261 ../cli/src/network-manager.c:104 msgid "connected" msgstr "prisijungta" -#: ../cli/src/devices.c:244 +#: ../cli/src/devices.c:265 msgid "connection failed" msgstr "prisijungti nepavyko" -#: ../cli/src/devices.c:267 ../cli/src/devices.c:424 +#: ../cli/src/devices.c:276 +msgid "No reason given" +msgstr "Nenurodyta priežastis" + +#: ../cli/src/devices.c:279 +msgid "Unknown error" +msgstr "Nežinoma klaida" + +#: ../cli/src/devices.c:282 +msgid "Device is now managed" +msgstr "Įrenginys dabar yra valdomas" + +#: ../cli/src/devices.c:285 +msgid "Device is now unmanaged" +msgstr "Įrenginys dabar yra nevaldomas" + +#: ../cli/src/devices.c:288 +msgid "The device could not be readied for configuration" +msgstr "Nepavyko paruošti įrenginio konfigūravimui" + +#: ../cli/src/devices.c:291 +msgid "" +"IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "" +"Nepavyko rezervuoti IP konfigūracijos (nėra galimo adreso, baigėsi laikas ir " +"kt.)" + +#: ../cli/src/devices.c:294 +msgid "The IP configuration is no longer valid" +msgstr "IP konfigūracija nebeteisinga" + +#: ../cli/src/devices.c:297 +msgid "Secrets were required, but not provided" +msgstr "Reikalingos bet nepateiktos paslaptys" + +#: ../cli/src/devices.c:300 +msgid "802.1X supplicant disconnected" +msgstr "802.1X prašytojas atjungtas" + +#: ../cli/src/devices.c:303 +msgid "802.1X supplicant configuration failed" +msgstr "802.1X prašytojo konfigūracija nepavyko" + +#: ../cli/src/devices.c:306 +msgid "802.1X supplicant failed" +msgstr "802.1X prašytojas dingo" + +#: ../cli/src/devices.c:309 +msgid "802.1X supplicant took too long to authenticate" +msgstr "802.1X prašytojui per ilgai užtruko patvirtinti tapatybę" + +#: ../cli/src/devices.c:312 +msgid "PPP service failed to start" +msgstr "nepavyko paleisti PPP tarnybos" + +#: ../cli/src/devices.c:315 +msgid "PPP service disconnected" +msgstr "PPP tarnyba atjungta" + +#: ../cli/src/devices.c:318 +msgid "PPP failed" +msgstr "PPP nepavyko" + +#: ../cli/src/devices.c:321 +msgid "DHCP client failed to start" +msgstr "nepavyko paleisti DHCP kliento" + +#: ../cli/src/devices.c:324 +msgid "DHCP client error" +msgstr "DHCO kliento klaida" + +#: ../cli/src/devices.c:327 +msgid "DHCP client failed" +msgstr "DHCP klientas dingo" + +#: ../cli/src/devices.c:330 +msgid "Shared connection service failed to start" +msgstr "Bendro ryšio tarnybos nepavyko paleisti" + +#: ../cli/src/devices.c:333 +msgid "Shared connection service failed" +msgstr "Nepavyko bendro ryšio tarnybos paleidimas" + +#: ../cli/src/devices.c:336 +msgid "AutoIP service failed to start" +msgstr "AutoIP tarnybos nepavyko paleisti" + +#: ../cli/src/devices.c:339 +msgid "AutoIP service error" +msgstr "AutoIP tarnybos klaida" + +#: ../cli/src/devices.c:342 +msgid "AutoIP service failed" +msgstr "Nepavyko AutoIP tarnybos paleidimas" + +#: ../cli/src/devices.c:345 +msgid "The line is busy" +msgstr "Linija užimta" + +#: ../cli/src/devices.c:348 +msgid "No dial tone" +msgstr "Nėra skambinimo tono" + +#: ../cli/src/devices.c:351 +msgid "No carrier could be established" +msgstr "Nepavyko nustatyti pernešėjo" + +#: ../cli/src/devices.c:354 +msgid "The dialing request timed out" +msgstr "Skambinimo užklausos laikas baigėsi" + +#: ../cli/src/devices.c:357 +msgid "The dialing attempt failed" +msgstr "Mėginimas skambinti nepavyko" + +#: ../cli/src/devices.c:360 +msgid "Modem initialization failed" +msgstr "Nepavyko inicializuoti modemo" + +#: ../cli/src/devices.c:363 +msgid "Failed to select the specified APN" +msgstr "Nepavyko pasirinkti nurodyto APN" + +#: ../cli/src/devices.c:366 +msgid "Not searching for networks" +msgstr "Neieškoma tinklų" + +#: ../cli/src/devices.c:369 +msgid "Network registration denied" +msgstr "Tinklo registracija draudžiama" + +#: ../cli/src/devices.c:372 +msgid "Network registration timed out" +msgstr "Baigėsi tinklo registracijos laikas" + +#: ../cli/src/devices.c:375 +msgid "Failed to register with the requested network" +msgstr "Nepavyko registruoti su prašomu tinklu" + +#: ../cli/src/devices.c:378 +msgid "PIN check failed" +msgstr "Nepavyko patikrinti PIN" + +#: ../cli/src/devices.c:381 +msgid "Necessary firmware for the device may be missing" +msgstr "Trūksta įrenginiui reikalingos aparatinės programinės įrangos" + +#: ../cli/src/devices.c:384 +msgid "The device was removed" +msgstr "Įrenginys buvo pašalintas" + +#: ../cli/src/devices.c:387 +msgid "NetworkManager went to sleep" +msgstr "NetworkManager užmigo" + +#: ../cli/src/devices.c:390 +msgid "The device's active connection disappeared" +msgstr "Įrenginio aktyvus ryšys dingo" + +#: ../cli/src/devices.c:393 +msgid "Device disconnected by user or client" +msgstr "Įrenginys atjungtas naudotojo arba kliento" + +#: ../cli/src/devices.c:396 +msgid "Carrier/link changed" +msgstr "Pernešėjas/saitas pasikeitė" + +#: ../cli/src/devices.c:399 +msgid "The device's existing connection was assumed" +msgstr "Įrenginio esamas ryšys buvo priimtas" + +#: ../cli/src/devices.c:402 +msgid "The supplicant is now available" +msgstr "Prašytojas dabar yra prieinamas" + +#: ../cli/src/devices.c:405 +msgid "The modem could not be found" +msgstr "Nepavyko rasti modemo" + +#: ../cli/src/devices.c:408 +msgid "The Bluetooth connection failed or timed out" +msgstr "Bluetooth ryšys nepavyko arba baigėsi laikas" + +#: ../cli/src/devices.c:411 +msgid "GSM Modem's SIM card not inserted" +msgstr "GSM modemo SIM kortelė neįdėta" + +#: ../cli/src/devices.c:414 +msgid "GSM Modem's SIM PIN required" +msgstr "Reikalingas GSM modemo SIM kortelės PIN" + +#: ../cli/src/devices.c:417 +msgid "GSM Modem's SIM PUK required" +msgstr "Reikalingas GSM modemo SIM kortelės PUK" + +#: ../cli/src/devices.c:420 +msgid "GSM Modem's SIM wrong" +msgstr "Neteisinga GSM modemo SIM" + +#: ../cli/src/devices.c:423 +msgid "InfiniBand device does not support connected mode" +msgstr "InfiniBand įrenginys nepalaiko ryšio veiksenos" + +#: ../cli/src/devices.c:426 +msgid "A dependency of the connection failed" +msgstr "Ryšio priklausomybė nepavyko" + +#: ../cli/src/devices.c:428 ../cli/src/devices.c:451 ../cli/src/devices.c:467 +#: ../cli/src/devices.c:587 ../cli/src/devices.c:631 msgid "Unknown" msgstr "Nežinoma" -#: ../cli/src/devices.c:299 +#: ../cli/src/devices.c:500 msgid "(none)" msgstr "(jokios)" -#: ../cli/src/devices.c:324 -#, c-format -msgid "%s: error converting IP4 address 0x%X" -msgstr "%s: klaida konvertuojant IP4 adresą 0x%X" - -#: ../cli/src/devices.c:393 +#: ../cli/src/devices.c:556 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:394 +#: ../cli/src/devices.c:557 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:403 +#: ../cli/src/devices.c:566 msgid "Encrypted: " msgstr "Šifruota: " -#: ../cli/src/devices.c:408 +#: ../cli/src/devices.c:571 msgid "WEP " msgstr "WEP" -#: ../cli/src/devices.c:410 +#: ../cli/src/devices.c:573 msgid "WPA " msgstr "WPA" -#: ../cli/src/devices.c:412 +#: ../cli/src/devices.c:575 msgid "WPA2 " msgstr "WPA2" -#: ../cli/src/devices.c:415 +#: ../cli/src/devices.c:578 msgid "Enterprise " msgstr "Kompanija " -#: ../cli/src/devices.c:424 +#: ../cli/src/devices.c:587 msgid "Ad-Hoc" msgstr "Ad-Hoc" -#: ../cli/src/devices.c:424 +#: ../cli/src/devices.c:587 msgid "Infrastructure" msgstr "Infrastruktūra" -#: ../cli/src/devices.c:486 +#: ../cli/src/devices.c:622 +msgid "Home" +msgstr "Namai" + +#: ../cli/src/devices.c:625 +msgid "Partner" +msgstr "Partneris" + +#: ../cli/src/devices.c:628 +msgid "Roaming" +msgstr "Tarptinklinio ryšio tinklas" + +#: ../cli/src/devices.c:700 #, c-format msgid "Error: 'dev list': %s" msgstr "Klaida: „dev list“: %s" -#: ../cli/src/devices.c:488 +#: ../cli/src/devices.c:702 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Klaida: „dev list“: %s; leidžiami laukai: %s" -#: ../cli/src/devices.c:497 +#: ../cli/src/devices.c:711 msgid "Device details" msgstr "Įrenginio informacija" -#: ../cli/src/devices.c:527 ../cli/src/devices.c:925 +#: ../cli/src/devices.c:756 ../cli/src/devices.c:757 ../cli/src/devices.c:1164 +#: ../cli/src/utils.c:445 msgid "(unknown)" msgstr "(nežinoma)" -#: ../cli/src/devices.c:528 -msgid "unknown)" -msgstr "nežinoma)" +#: ../cli/src/devices.c:765 +msgid "not connected" +msgstr "neprisijungta" -#: ../cli/src/devices.c:554 +#: ../cli/src/devices.c:792 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:627 +#: ../cli/src/devices.c:865 msgid "on" msgstr "įjungta" -#: ../cli/src/devices.c:627 +#: ../cli/src/devices.c:865 msgid "off" msgstr "išjungta" -#: ../cli/src/devices.c:808 +#: ../cli/src/devices.c:1016 #, c-format msgid "Error: 'dev status': %s" msgstr "Klaida: „dev status“: %s" -#: ../cli/src/devices.c:810 +#: ../cli/src/devices.c:1018 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Klaida: „dev status“: %s; leidžiami laukai: %s" -#: ../cli/src/devices.c:817 +#: ../cli/src/devices.c:1041 msgid "Status of devices" msgstr "Įrenginių būsena" -#: ../cli/src/devices.c:845 +#: ../cli/src/devices.c:1072 #, c-format msgid "Error: '%s' argument is missing." msgstr "Klaida: trūksta argumento „%s“." -#: ../cli/src/devices.c:874 ../cli/src/devices.c:1013 -#: ../cli/src/devices.c:1136 +#: ../cli/src/devices.c:1113 ../cli/src/devices.c:1265 +#: ../cli/src/devices.c:1402 ../cli/src/devices.c:1621 #, c-format msgid "Error: Device '%s' not found." msgstr "Klaida: nerastas įrenginys „%s“." -#: ../cli/src/devices.c:897 +#: ../cli/src/devices.c:1136 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Pavyko: sėkmingai atjungtas įrenginys „%s“." -#: ../cli/src/devices.c:922 +#: ../cli/src/devices.c:1161 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Klaida: įrenginio „%s“ (%s) atjungti nepavyko: %s" -#: ../cli/src/devices.c:930 +#: ../cli/src/devices.c:1169 #, c-format msgid "Device state: %d (%s)\n" msgstr "Įrenginio būsena: %d (%s)\n" -#: ../cli/src/devices.c:994 +#: ../cli/src/devices.c:1234 #, c-format msgid "Error: iface has to be specified." msgstr "Klaida: turi būti nurodytas iface." -#: ../cli/src/devices.c:1112 +#: ../cli/src/devices.c:1360 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Klaida: „dev wifi“: %s" -#: ../cli/src/devices.c:1114 +#: ../cli/src/devices.c:1362 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Klaida: „dev wifi“: %s; leidžiami laukai: %s" -#: ../cli/src/devices.c:1121 +#: ../cli/src/devices.c:1385 msgid "WiFi scan list" msgstr "WiFi skenavimo sąrašas" -#: ../cli/src/devices.c:1156 ../cli/src/devices.c:1210 +#: ../cli/src/devices.c:1422 ../cli/src/devices.c:1476 #, c-format -msgid "Error: Access point with hwaddr '%s' not found." -msgstr "Klaida: nerastas prieigos taškas su hwaddr „%s“." +msgid "Error: Access point with bssid '%s' not found." +msgstr "Klaida: prieigos taškas su bssid „%s“ nerastas" -#: ../cli/src/devices.c:1173 +#: ../cli/src/devices.c:1439 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Klaida: „%s“ nėra WiFi įrenginys " -#: ../cli/src/devices.c:1237 +#: ../cli/src/devices.c:1503 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Klaida: netinkama „dev wifi“ komanda „%s“." -#: ../cli/src/devices.c:1284 +#: ../cli/src/devices.c:1579 +#, c-format +msgid "Error: 'dev wimax': %s" +msgstr "Klaida: „dev wimax“: %s" + +#: ../cli/src/devices.c:1581 +#, c-format +msgid "Error: 'dev wimax': %s; allowed fields: %s" +msgstr "Klaida: „dev wimax“: %s; leidžiami laukai: %s" + +#: ../cli/src/devices.c:1604 +msgid "WiMAX NSP list" +msgstr "WiMAX NSP sąrašas" + +#: ../cli/src/devices.c:1641 +#, c-format +msgid "Error: NSP with name '%s' not found." +msgstr "Klaida: NSP pavadintas „%s“ nerastas." + +#: ../cli/src/devices.c:1652 +#, c-format +msgid "Error: Device '%s' is not a WiMAX device." +msgstr "Klaida: „%s“ nėra WiMAX įrenginys " + +#: ../cli/src/devices.c:1683 +#, c-format +msgid "Error: Access point with nsp '%s' not found." +msgstr "Klaida: prieigos su nsp „%s“ taškas nerastas." + +#: ../cli/src/devices.c:1710 +#, c-format +msgid "Error: 'dev wimax' command '%s' is not valid." +msgstr "Klaida: netinkama „dev wimax“ komanda „%s“." + +#: ../cli/src/devices.c:1760 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Klaida: netinkama „dev“ komanda „%s“." -#: ../cli/src/network-manager.c:35 +#: ../cli/src/network-manager.c:37 msgid "RUNNING" msgstr "VEIKIA" -#. 1 -#: ../cli/src/network-manager.c:37 +#. 0 +#: ../cli/src/network-manager.c:38 +msgid "VERSION" +msgstr "VERSIJA" + +#. 2 +#: ../cli/src/network-manager.c:40 msgid "NET-ENABLED" msgstr "TINKLAS-ĮJUNGTAS" -#. 2 -#: ../cli/src/network-manager.c:38 +#. 3 +#: ../cli/src/network-manager.c:41 msgid "WIFI-HARDWARE" msgstr "WIFI-APARATINĖ-ĮRANGA" -#. 3 -#: ../cli/src/network-manager.c:39 +#. 4 +#: ../cli/src/network-manager.c:42 msgid "WIFI" msgstr "WIFI" -#. 4 -#: ../cli/src/network-manager.c:40 +#. 5 +#: ../cli/src/network-manager.c:43 msgid "WWAN-HARDWARE" msgstr "WWAN-APARATINĖ-ĮRANGA" -#. 5 -#: ../cli/src/network-manager.c:41 +#. 6 +#: ../cli/src/network-manager.c:44 msgid "WWAN" msgstr "WWAN" -#: ../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" +#. 7 +#: ../cli/src/network-manager.c:45 +msgid "WIMAX-HARDWARE" +msgstr "WIMAX-APARATINĖ-ĮRANGA" + +#. 8 +#: ../cli/src/network-manager.c:46 +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" " COMMAND := { status | enable | sleep | wifi | wwan }\n" "\n" " status\n" @@ -914,137 +1373,160 @@ msgid "" " sleep [true|false]\n" " wifi [on|off]\n" " wwan [on|off]\n" +" wimax [on|off]\n" "\n" msgstr "" "Naudojimas: nmcli nm { KOMANDA | help }\n" "\n" +" KOMANDA := { status | enable | sleep | wifi | wwan | wimax}\n" +"\n" " KOMANDA := { status | enable | sleep | wifi | wwan }\n" "\n" " status\n" -" enable [on|off]\n" -" sleep [on|off]\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:96 msgid "asleep" msgstr "miegantis" -#: ../cli/src/network-manager.c:87 +#: ../cli/src/network-manager.c:98 msgid "connecting" msgstr "jungiamasi" -#: ../cli/src/network-manager.c:128 +#: ../cli/src/network-manager.c:100 +msgid "connected (local only)" +msgstr "prisijungta (vietinis)" + +#: ../cli/src/network-manager.c:102 +msgid "connected (site only)" +msgstr "prisijungta (tik puslapyje)" + +#: ../cli/src/network-manager.c:106 +msgid "disconnecting" +msgstr "atsijungiama" + +#: ../cli/src/network-manager.c:146 #, c-format msgid "Error: 'nm status': %s" msgstr "Klaida: „nm status“: %s" -#: ../cli/src/network-manager.c:130 +#: ../cli/src/network-manager.c:148 #, c-format msgid "Error: 'nm status': %s; allowed fields: %s" msgstr "Klaida: „nm status“: %s; leidžiami laukai: %s" -#: ../cli/src/network-manager.c:137 -msgid "NetworkManager status" -msgstr "NetworkManager būsena" - -#. 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 +#. create NMClient +#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "enabled" msgstr "įjungta" -#: ../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:161 ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "disabled" msgstr "išjungta" -#: ../cli/src/network-manager.c:152 +#: ../cli/src/network-manager.c:181 +msgid "NetworkManager status" +msgstr "NetworkManager būsena" + +#. Print header +#: ../cli/src/network-manager.c:184 msgid "running" msgstr "veikia" -#: ../cli/src/network-manager.c:152 +#: ../cli/src/network-manager.c:184 msgid "not running" msgstr "neveikia" -#: ../cli/src/network-manager.c:175 +#: ../cli/src/network-manager.c:215 ../cli/src/utils.c:425 #, c-format -#| msgid "Error: could not connect to D-Bus." msgid "Error: Couldn't connect to system bus: %s" msgstr "Klaida: nepavyko prisijungti prie sistemos magistralės: %s" -#: ../cli/src/network-manager.c:186 +#: ../cli/src/network-manager.c:226 #, c-format -#| msgid "Error: could not connect to D-Bus." msgid "Error: Couldn't create D-Bus object proxy." msgstr "Klaida: nepavyko sukurti D-Bus tarpinio objekto." -#: ../cli/src/network-manager.c:192 +#: ../cli/src/network-manager.c:232 #, c-format -#| msgid "Error: 'con list': %s" msgid "Error in sleep: %s" msgstr "Klaida užmigdant: %s" -#: ../cli/src/network-manager.c:237 ../cli/src/network-manager.c:286 -#: ../cli/src/network-manager.c:318 +#: ../cli/src/network-manager.c:276 ../cli/src/network-manager.c:331 +#: ../cli/src/network-manager.c:369 ../cli/src/network-manager.c:408 #, c-format msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s" msgstr "Klaida: „--fields“ reikšmė „%s“ čia netinkama; leidžiami laukai: %s" -#: ../cli/src/network-manager.c:245 -#| msgid "WiFi enabled" +#: ../cli/src/network-manager.c:284 msgid "Networking enabled" msgstr "Tinklas įjungtas" -#: ../cli/src/network-manager.c:256 +#: ../cli/src/network-manager.c:300 #, c-format -#| msgid "Error: invalid 'wwan' parameter: '%s'." msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'." msgstr "" "Klaida: netinkamas „enable“ parametras: „%s“; naudokite „true“ arba „false“." -#: ../cli/src/network-manager.c:265 +#: ../cli/src/network-manager.c:310 #, c-format -#| msgid "Error: Could not connect to NetworkManager." msgid "Error: Sleeping status is not exported by NetworkManager." msgstr "Klaida: „NetworkManager“ nepateikia informacijos apie miego būseną." -#: ../cli/src/network-manager.c:273 +#: ../cli/src/network-manager.c:318 #, c-format -#| msgid "Error: invalid 'wifi' parameter: '%s'." msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." msgstr "" "Klaida: netinkamas „sleep“ parametras: „%s“; naudokite „true“ arba „false“." -#: ../cli/src/network-manager.c:294 +#: ../cli/src/network-manager.c:339 msgid "WiFi enabled" msgstr "WiFi įjungtas" -#: ../cli/src/network-manager.c:305 +#: ../cli/src/network-manager.c:355 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Klaida: netinkamas „wifi“ parametras: „%s“." -#: ../cli/src/network-manager.c:326 +#: ../cli/src/network-manager.c:377 msgid "WWAN enabled" msgstr "WWAN įjungta" -#: ../cli/src/network-manager.c:337 +#: ../cli/src/network-manager.c:393 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Klaida: netinkamas „wwan“ parametras: „%s“." -#: ../cli/src/network-manager.c:348 +#: ../cli/src/network-manager.c:416 +msgid "WiMAX enabled" +msgstr "WiMAX įjungtas" + +#: ../cli/src/network-manager.c:432 +#, c-format +msgid "Error: invalid 'wimax' parameter: '%s'." +msgstr "Klaida: netinkamas „wimax“ parametras: „%s“." + +#: ../cli/src/network-manager.c:445 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Klaida: netinkama „nm“ komanda „%s“." -#: ../cli/src/nmcli.c:69 +#: ../cli/src/nmcli.c:64 #, c-format msgid "" "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n" @@ -1056,6 +1538,8 @@ msgid "" " -f[ields] <field1,field2,...>|all|common specify fields to output\n" " -e[scape] yes|no escape columns separators in " "values\n" +" -n[ocheck] don't check nmcli and " +"NetworkManager versions\n" " -v[ersion] show program version\n" " -h[elp] print this help\n" "\n" @@ -1074,6 +1558,8 @@ msgstr "" " -f[fields] <field1,field2,...>|all|common nurodyti išvedamus laukus\n" " -e[scape] yes|no atlikti stulpelių skirtukų " "kaitą\n" +" -n[ocheck] netikrinti nmcli ir " +"NetworkManager versijų\n" " -v[ersion] rodyti programos versiją\n" " -h[elp] išvesti šią pagalbą\n" "\n" @@ -1083,566 +1569,612 @@ msgstr "" " dev NetworkManager valdomi įrenginiai\n" "\n" -#: ../cli/src/nmcli.c:113 +#: ../cli/src/nmcli.c:109 #, c-format msgid "Error: Object '%s' is unknown, try 'nmcli help'." msgstr "Klaida: nežinomas objektas „%s“, bandykite „nmcli help“." -#: ../cli/src/nmcli.c:143 +#: ../cli/src/nmcli.c:139 #, c-format msgid "Error: Option '--terse' is specified the second time." msgstr "Klaida: parinktis „--terse“ nurodyta antrą kartą." -#: ../cli/src/nmcli.c:148 +#: ../cli/src/nmcli.c:144 #, c-format msgid "Error: Option '--terse' is mutually exclusive with '--pretty'." msgstr "" "Klaida: parinktis „--terse“ yra tarpusavyje nesuderinama su „--pretty“." -#: ../cli/src/nmcli.c:156 +#: ../cli/src/nmcli.c:152 #, c-format msgid "Error: Option '--pretty' is specified the second time." msgstr "Klaida: parinktis „--pretty“ nurodyta antrą kartą." -#: ../cli/src/nmcli.c:161 +#: ../cli/src/nmcli.c:157 #, c-format msgid "Error: Option '--pretty' is mutually exclusive with '--terse'." msgstr "" "Klaida: parinktis „--pretty“ yra tarpusavyje nesuderinama su „--terse“." -#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187 +#: ../cli/src/nmcli.c:167 ../cli/src/nmcli.c:183 #, c-format msgid "Error: missing argument for '%s' option." msgstr "Klaida: trūksta argumento parinkčiai „%s“." -#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196 +#: ../cli/src/nmcli.c:176 ../cli/src/nmcli.c:192 #, c-format msgid "Error: '%s' is not valid argument for '%s' option." msgstr "Klaida: „%s“ yra netinkamas argumentas parinkčiai „%s“." -#: ../cli/src/nmcli.c:203 +#: ../cli/src/nmcli.c:199 #, c-format msgid "Error: fields for '%s' options are missing." msgstr "Klaida: trūksta laukų parinktims „%s“." -#: ../cli/src/nmcli.c:209 +#: ../cli/src/nmcli.c:207 #, c-format msgid "nmcli tool, version %s\n" msgstr "nmcli įrankis, versija %s\n" -#: ../cli/src/nmcli.c:215 +#: ../cli/src/nmcli.c:213 #, c-format msgid "Error: Option '%s' is unknown, try 'nmcli -help'." msgstr "Klaida: nežinoma parinktis „%s“, bandykite „nmcli -help“." -#: ../cli/src/nmcli.c:234 +#: ../cli/src/nmcli.c:232 #, c-format msgid "Caught signal %d, shutting down..." msgstr "Gautas signalas %d, išjungiama..." -#: ../cli/src/nmcli.c:259 -#, c-format -msgid "Error: Could not connect to NetworkManager." -msgstr "Klaida: nepavyko prisijungti prie NetworkManager." +#: ../cli/src/nmcli.c:257 +msgid "Error: Could not create NMClient object." +msgstr "Klaida: nepavyko sukurti NMClient objekto." -#: ../cli/src/nmcli.c:275 +#: ../cli/src/nmcli.c:273 msgid "Success" msgstr "Pavyko" -#: ../cli/src/settings.c:411 +#: ../cli/src/settings.c:497 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (šešioliktainis ascii raktas)" -#: ../cli/src/settings.c:413 +#: ../cli/src/settings.c:499 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (104/128 bitų slaptažodis)" -#: ../cli/src/settings.c:416 +#: ../cli/src/settings.c:502 #, c-format msgid "%d (unknown)" msgstr "%d (nežinoma)" -#: ../cli/src/settings.c:442 +#: ../cli/src/settings.c:528 msgid "0 (unknown)" msgstr "0 (nežinoma)" -#: ../cli/src/settings.c:448 +#: ../cli/src/settings.c:534 msgid "any, " msgstr "bet koks, " -#: ../cli/src/settings.c:450 +#: ../cli/src/settings.c:536 msgid "900 MHz, " msgstr "900 MHz, " -#: ../cli/src/settings.c:452 +#: ../cli/src/settings.c:538 msgid "1800 MHz, " msgstr "1800 MHz, " -#: ../cli/src/settings.c:454 +#: ../cli/src/settings.c:540 msgid "1900 MHz, " msgstr "1900 MHz, " -#: ../cli/src/settings.c:456 +#: ../cli/src/settings.c:542 msgid "850 MHz, " msgstr "850 MHz, " -#: ../cli/src/settings.c:458 +#: ../cli/src/settings.c:544 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:460 +#: ../cli/src/settings.c:546 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:462 +#: ../cli/src/settings.c:548 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:464 +#: ../cli/src/settings.c:550 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:466 +#: ../cli/src/settings.c:552 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:468 +#: ../cli/src/settings.c:554 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:556 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:554 ../cli/src/settings.c:721 +#: ../cli/src/settings.c:558 +msgid "WCDMA 3GPP UMTS 1900 MHz, " +msgstr "WCDMA 3GPP UMTS 1900 MHz, " + +#: ../cli/src/settings.c:560 +msgid "WCDMA 3GPP UMTS 2600 MHz, " +msgstr "WCDMA 3GPP UMTS 2600 MHz, " + +#: ../cli/src/settings.c:578 +msgid "0 (NONE)" +msgstr "0 (JOKS)" + +#: ../cli/src/settings.c:584 +msgid "REORDER_HEADERS, " +msgstr "PERRIKIUOTI_ANTRAŠTES, " + +#: ../cli/src/settings.c:586 +msgid "GVRP, " +msgstr "GVRP, " + +#: ../cli/src/settings.c:588 +msgid "LOOSE_BINDING, " +msgstr "PRARASTI_SUSIEJIMĄ, " + +#: ../cli/src/settings.c:731 ../cli/src/settings.c:927 +#: ../cli/src/settings.c:1631 msgid "auto" msgstr "automatinis" -#: ../cli/src/settings.c:716 ../cli/src/settings.c:719 -#: ../cli/src/settings.c:720 ../cli/src/utils.c:172 +#: ../cli/src/settings.c:921 ../cli/src/settings.c:924 +#: ../cli/src/settings.c:925 ../cli/src/utils.c:247 msgid "not set" msgstr "nenustatyta" -#: ../cli/src/utils.c:124 +#: ../cli/src/utils.c:103 +#, c-format +msgid "Error converting IP4 address '0x%X' to text form" +msgstr "Klaida konvertuojant IP4 adresą „0x%X“ į tekstinę formą" + +#: ../cli/src/utils.c:131 +#, c-format +msgid "Error converting IP6 address '%s' to text form" +msgstr "Klaida konvertuojant IP6 adresą „%s“ į tekstinę formą" + +#: ../cli/src/utils.c:200 #, c-format msgid "field '%s' has to be alone" msgstr "laukas „%s“ turi būti vienintelis" -#: ../cli/src/utils.c:127 +#: ../cli/src/utils.c:203 #, c-format msgid "invalid field '%s'" msgstr "netinkamas laukas „%s“" -#: ../cli/src/utils.c:146 +#: ../cli/src/utils.c:222 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "Parinktis „--terse“ reikalauja nurodyti „--fields“" -#: ../cli/src/utils.c:150 +#: ../cli/src/utils.c:226 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "" "Parinktis „--terse“ reikalauja konkrečių parinkties „--fields“ reikšmių, ne " "„%s“" -#: ../libnm-util/crypto.c:120 +#: ../cli/src/utils.c:436 +#, c-format +msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" +msgstr "" +"Klaida: nepavyko sukurti D-Bus tarpinio objekto skirto org.freedesktop.DBus" + +#: ../cli/src/utils.c:444 +#, c-format +msgid "Error: NameHasOwner request failed: %s" +msgstr "Klaida: NameHasOwner užklausa nepavyko: %s" + +#: ../cli/src/utils.c:489 +#, c-format +msgid "" +"Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --" +"nocheck to suppress the warning.\n" +msgstr "" +"Įspėjimas: nmcli (%s) ir NetworkManager (%s) versijos neatitinka. Naudokite " +"--nocheck įspėjimui nerodyti.\n" + +#: ../cli/src/utils.c:498 +#, c-format +msgid "" +"Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force " +"execution using --nocheck, but the results are unpredictable." +msgstr "" +"Klaida: nmcli (%s) ir NetworkManager (%s) versijos neatitinka. Priverskite " +"vykdymą naudodami --nocheck, bet rezultatai yra nenuspėjami." + +#: ../libnm-util/crypto.c:133 #, c-format msgid "PEM key file had no end tag '%s'." msgstr "PEM rakto faile nėra pabaigos gairės „%s“." -#: ../libnm-util/crypto.c:130 +#: ../libnm-util/crypto.c:146 #, c-format msgid "Doesn't look like a PEM private key file." msgstr "Nepanašu į PEM asmeninio rakto failą." -#: ../libnm-util/crypto.c:138 +#: ../libnm-util/crypto.c:154 #, c-format msgid "Not enough memory to store PEM file data." msgstr "Nepakanka atminties PEM failo duomenų saugojimui." -#: ../libnm-util/crypto.c:154 +#: ../libnm-util/crypto.c:170 #, c-format msgid "Malformed PEM file: Proc-Type was not first tag." msgstr "Netinkamai suformuotas PEM failas: Proc-Type buvo ne pirma gairė." -#: ../libnm-util/crypto.c:162 +#: ../libnm-util/crypto.c:178 #, c-format msgid "Malformed PEM file: unknown Proc-Type tag '%s'." msgstr "Netinkamai suformuotas PEM failas: nežinoma Proc-Type gairė „%s“." -#: ../libnm-util/crypto.c:172 +#: ../libnm-util/crypto.c:188 #, c-format msgid "Malformed PEM file: DEK-Info was not the second tag." msgstr "Netinkamai suformuotas PEM failas: DEK-Info buvo ne antra gairė." -#: ../libnm-util/crypto.c:183 +#: ../libnm-util/crypto.c:199 #, c-format msgid "Malformed PEM file: no IV found in DEK-Info tag." msgstr "Netinkamai suformuotas PEM failas: DEK-Info gairėje nerasta IV." -#: ../libnm-util/crypto.c:190 +#: ../libnm-util/crypto.c:206 #, c-format msgid "Malformed PEM file: invalid format of IV in DEK-Info tag." msgstr "" "Netinkamai suformuotas PEM failas: DEK-Info gairėje netinkamas IV formatas." -#: ../libnm-util/crypto.c:203 +#: ../libnm-util/crypto.c:219 #, c-format msgid "Malformed PEM file: unknown private key cipher '%s'." msgstr "" "Netinkamai suformuotas PEM failas: nežinomas asmeninio rakto šifras „%s“." -#: ../libnm-util/crypto.c:222 +#: ../libnm-util/crypto.c:238 #, c-format msgid "Could not decode private key." msgstr "Nepavyko iškoduoti asmeninio rakto." -#: ../libnm-util/crypto.c:267 -#, c-format -msgid "PEM certificate '%s' had no end tag '%s'." -msgstr "PEM liudijime „%s“ nėra pabaigos gairės „%s“." +#: ../libnm-util/crypto.c:284 +msgid "Failed to find expected PKCS#8 start tag." +msgstr "Nepavyko rasti laukiamos PKCS#8 pradžios žymos." -#: ../libnm-util/crypto.c:277 +#: ../libnm-util/crypto.c:292 #, c-format -msgid "Failed to decode certificate." -msgstr "Nepavyko iškoduoti liudijimo." +msgid "Failed to find expected PKCS#8 end tag '%s'." +msgstr "Nepavyko rasti laukiamos PKCS#8 pabaigos žymos „%s“." -#: ../libnm-util/crypto.c:286 -#, c-format -msgid "Not enough memory to store certificate data." -msgstr "Nepakanka atminties liudijimo duomnų saugojimui." +#: ../libnm-util/crypto.c:312 +msgid "Not enough memory to store private key data." +msgstr "Nepakanka atminties išsaugoti privataus rakto duomenis." -#: ../libnm-util/crypto.c:294 +#: ../libnm-util/crypto.c:317 +msgid "Failed to decode PKCS#8 private key." +msgstr "Nepavyko iššifruoti PKCS#8 asmeninio rakto." + +#: ../libnm-util/crypto.c:339 ../libnm-util/crypto.c:625 #, c-format -msgid "Not enough memory to store file data." -msgstr "Nepakanka atminties įrašyti failo duomenis." +msgid "Not enough memory to store certificate data." +msgstr "Nepakanka atminties liudijimo duomenų saugojimui." -#: ../libnm-util/crypto.c:324 +#: ../libnm-util/crypto.c:365 #, c-format msgid "IV must be an even number of bytes in length." msgstr "IV ilgis turi būti lyginis baitų skaičius." -#: ../libnm-util/crypto.c:333 +#: ../libnm-util/crypto.c:374 #, c-format msgid "Not enough memory to store the IV." msgstr "Nepakanka atminties IV saugojimui." -#: ../libnm-util/crypto.c:344 +#: ../libnm-util/crypto.c:385 #, c-format msgid "IV contains non-hexadecimal digits." msgstr "IV yra ne šešioliktainių skaitmenų." -#: ../libnm-util/crypto.c:382 ../libnm-util/crypto_gnutls.c:148 -#: ../libnm-util/crypto_gnutls.c:266 ../libnm-util/crypto_nss.c:171 -#: ../libnm-util/crypto_nss.c:336 +#: ../libnm-util/crypto.c:423 ../libnm-util/crypto_gnutls.c:147 +#: ../libnm-util/crypto_gnutls.c:265 ../libnm-util/crypto_nss.c:167 +#: ../libnm-util/crypto_nss.c:332 #, c-format msgid "Private key cipher '%s' was unknown." msgstr "Asmeninio rakto šifras „%s“ nežinomas." -#: ../libnm-util/crypto.c:391 +#: ../libnm-util/crypto.c:432 #, c-format msgid "Not enough memory to decrypt private key." msgstr "Nepakanka atminties iššifruoti asmeninį raktą." -#: ../libnm-util/crypto.c:511 +#: ../libnm-util/crypto.c:497 +#, c-format +msgid "Not enough memory to store decrypted private key." +msgstr "Nepakanka atminties iššifruoto asmeninio rakto saugojimui." + +#: ../libnm-util/crypto.c:542 #, c-format msgid "Unable to determine private key type." msgstr "Nepavyko nustatyti asmeninio rakto tipo." -#: ../libnm-util/crypto.c:530 +#: ../libnm-util/crypto.c:597 #, c-format -msgid "Not enough memory to store decrypted private key." -msgstr "Nepakanka atminties iššifruoto asmeninio rakto saugojimui." +msgid "PEM certificate had no start tag '%s'." +msgstr "PEM liudijime nėra pradžios gairės „%s“." + +#: ../libnm-util/crypto.c:606 +#, c-format +msgid "PEM certificate had no end tag '%s'." +msgstr "PEM liudijime nėra pabaigos gairės „%s“." -#: ../libnm-util/crypto_gnutls.c:49 +#: ../libnm-util/crypto.c:630 +#, c-format +msgid "Failed to decode certificate." +msgstr "Nepavyko iškoduoti liudijimo." + +#: ../libnm-util/crypto_gnutls.c:50 msgid "Failed to initialize the crypto engine." msgstr "Nepavyko inicijuoti šifravimo posistemės." -#: ../libnm-util/crypto_gnutls.c:93 +#: ../libnm-util/crypto_gnutls.c:92 #, c-format msgid "Failed to initialize the MD5 engine: %s / %s." msgstr "Nepavyko inicijuoti MD5 posistemės: %s / %s." -#: ../libnm-util/crypto_gnutls.c:156 +#: ../libnm-util/crypto_gnutls.c:155 #, c-format msgid "Invalid IV length (must be at least %zd)." msgstr "Netinkamas IV ilgis (turi būti bent %zd)." -#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188 +#: ../libnm-util/crypto_gnutls.c:164 ../libnm-util/crypto_nss.c:184 #, c-format msgid "Not enough memory for decrypted key buffer." msgstr "Nepakanka atminties iššifruoto rakto buferiui." -#: ../libnm-util/crypto_gnutls.c:173 +#: ../libnm-util/crypto_gnutls.c:172 #, c-format msgid "Failed to initialize the decryption cipher context: %s / %s." msgstr "Nepavyko inicijuoti iššifravimo šifro konteksto: %s / %s." -#: ../libnm-util/crypto_gnutls.c:182 +#: ../libnm-util/crypto_gnutls.c:181 #, c-format msgid "Failed to set symmetric key for decryption: %s / %s." msgstr "Nepavyko iššifravimui nustatyti simetriško rakto: %s / %s." -#: ../libnm-util/crypto_gnutls.c:191 +#: ../libnm-util/crypto_gnutls.c:190 #, c-format msgid "Failed to set IV for decryption: %s / %s." msgstr "Nepavyko iššifravimui nustatyti IV: %s / %s." -#: ../libnm-util/crypto_gnutls.c:200 +#: ../libnm-util/crypto_gnutls.c:199 #, c-format msgid "Failed to decrypt the private key: %s / %s." msgstr "Nepavyko iššifruoti asmeninio rakto: %s / %s." -#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267 +#: ../libnm-util/crypto_gnutls.c:209 ../libnm-util/crypto_nss.c:263 #, c-format msgid "Failed to decrypt the private key: unexpected padding length." msgstr "Nepavyko iššifruoti asmeninio rakto: netikėtas užpildo ilgis." -#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278 +#: ../libnm-util/crypto_gnutls.c:220 ../libnm-util/crypto_nss.c:274 #, c-format msgid "Failed to decrypt the private key." msgstr "Nepavyko iššifruoti asmeninio rakto." -#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356 +#: ../libnm-util/crypto_gnutls.c:285 ../libnm-util/crypto_nss.c:352 #, c-format msgid "Could not allocate memory for encrypting." msgstr "Nepavyko išskirti atminties šifravimui." -#: ../libnm-util/crypto_gnutls.c:294 +#: ../libnm-util/crypto_gnutls.c:293 #, c-format msgid "Failed to initialize the encryption cipher context: %s / %s." msgstr "Nepavyko inicijuoti šifravimo šifro konteksto: %s / %s." -#: ../libnm-util/crypto_gnutls.c:303 +#: ../libnm-util/crypto_gnutls.c:302 #, c-format msgid "Failed to set symmetric key for encryption: %s / %s." msgstr "Nepavyko šifravimui nustatyti simetriško rakto: %s / %s." -#: ../libnm-util/crypto_gnutls.c:313 +#: ../libnm-util/crypto_gnutls.c:312 #, c-format msgid "Failed to set IV for encryption: %s / %s." msgstr "Nepavyko šifravimui nustatyti IV: %s / %s." -#: ../libnm-util/crypto_gnutls.c:322 +#: ../libnm-util/crypto_gnutls.c:321 #, c-format msgid "Failed to encrypt the data: %s / %s." msgstr "Nepavyko šifruoti duomenų: %s / %s." -#: ../libnm-util/crypto_gnutls.c:362 +#: ../libnm-util/crypto_gnutls.c:361 #, c-format msgid "Error initializing certificate data: %s" msgstr "Klaida inicijuojant liudijimo duomenis: %s" -#: ../libnm-util/crypto_gnutls.c:384 +#: ../libnm-util/crypto_gnutls.c:383 #, c-format msgid "Couldn't decode certificate: %s" msgstr "Nepavyko iškoduoti liudijimo: %s" -#: ../libnm-util/crypto_gnutls.c:408 +#: ../libnm-util/crypto_gnutls.c:407 #, c-format msgid "Couldn't initialize PKCS#12 decoder: %s" msgstr "Nepavyko inicializuoti PKCS#12 dekoderio: %s" -#: ../libnm-util/crypto_gnutls.c:421 +#: ../libnm-util/crypto_gnutls.c:420 #, c-format msgid "Couldn't decode PKCS#12 file: %s" msgstr "Nepavyko iškoduoti PKCS#12 failo: %s" -#: ../libnm-util/crypto_gnutls.c:433 +#: ../libnm-util/crypto_gnutls.c:432 #, c-format msgid "Couldn't verify PKCS#12 file: %s" msgstr "Nepavyko patvirtinti PKCS#12 failo: %s" +#: ../libnm-util/crypto_gnutls.c:460 +#, c-format +msgid "Couldn't initialize PKCS#8 decoder: %s" +msgstr "Nepavyko inicializuoti PKCS#8 dekoderio: %s" + +#: ../libnm-util/crypto_gnutls.c:483 +#, c-format +msgid "Couldn't decode PKCS#8 file: %s" +msgstr "Nepavyko iškoduoti PKCS#8 failo: %s" + #: ../libnm-util/crypto_nss.c:56 #, c-format msgid "Failed to initialize the crypto engine: %d." msgstr "Nepavyko inicijuoti šifravimo posistemės: %d." -#: ../libnm-util/crypto_nss.c:111 +#: ../libnm-util/crypto_nss.c:107 #, c-format msgid "Failed to initialize the MD5 context: %d." msgstr "Nepavyko inicijuoti MD5 konteksto: %d." -#: ../libnm-util/crypto_nss.c:179 +#: ../libnm-util/crypto_nss.c:175 #, c-format msgid "Invalid IV length (must be at least %d)." msgstr "Netinkamas IV ilgis (turi būti bent %d)." -#: ../libnm-util/crypto_nss.c:196 +#: ../libnm-util/crypto_nss.c:192 #, c-format msgid "Failed to initialize the decryption cipher slot." msgstr "Nepavyko inicijuoti iššifravimo šifro lizdo." -#: ../libnm-util/crypto_nss.c:206 +#: ../libnm-util/crypto_nss.c:202 #, c-format msgid "Failed to set symmetric key for decryption." msgstr "Nepavyko iššifravimui nustatyti simetriško rakto." -#: ../libnm-util/crypto_nss.c:216 +#: ../libnm-util/crypto_nss.c:212 #, c-format msgid "Failed to set IV for decryption." msgstr "Nepavyko iššifravimui nustatyti IV." -#: ../libnm-util/crypto_nss.c:224 +#: ../libnm-util/crypto_nss.c:220 #, c-format msgid "Failed to initialize the decryption context." msgstr "Nepavyko inicijuoti iššifravimo konteksto." -#: ../libnm-util/crypto_nss.c:237 +#: ../libnm-util/crypto_nss.c:233 #, c-format msgid "Failed to decrypt the private key: %d." msgstr "Nepavyko iššifruoti asmeninio rakto: %d." -#: ../libnm-util/crypto_nss.c:245 +#: ../libnm-util/crypto_nss.c:241 #, c-format msgid "Failed to decrypt the private key: decrypted data too large." msgstr "Nepavyko iššifruoti asmeninio rakto: iššifruoti duomenys per dideli." -#: ../libnm-util/crypto_nss.c:256 +#: ../libnm-util/crypto_nss.c:252 #, c-format msgid "Failed to finalize decryption of the private key: %d." msgstr "Nepavyko baigti asmeninio rakto iššifravimo: %d." -#: ../libnm-util/crypto_nss.c:364 +#: ../libnm-util/crypto_nss.c:360 #, c-format msgid "Failed to initialize the encryption cipher slot." msgstr "Nepavyko inicijuoti šifravimo šifro lizdo." -#: ../libnm-util/crypto_nss.c:372 +#: ../libnm-util/crypto_nss.c:368 #, c-format msgid "Failed to set symmetric key for encryption." msgstr "Nepavyko šifravimui nustatyti simetriško rakto." -#: ../libnm-util/crypto_nss.c:380 +#: ../libnm-util/crypto_nss.c:376 #, c-format msgid "Failed to set IV for encryption." msgstr "Nepavyko šifravimui nustatyti IV." -#: ../libnm-util/crypto_nss.c:388 +#: ../libnm-util/crypto_nss.c:384 #, c-format msgid "Failed to initialize the encryption context." msgstr "Nepavyko inicijuoti šifravimo konteksto." -#: ../libnm-util/crypto_nss.c:396 +#: ../libnm-util/crypto_nss.c:392 #, c-format msgid "Failed to encrypt: %d." msgstr "Nepavyko šifruoti: %d." -#: ../libnm-util/crypto_nss.c:404 +#: ../libnm-util/crypto_nss.c:400 #, c-format msgid "Unexpected amount of data after encrypting." msgstr "Netikėtas duomenų kiekis po šifravimo." -#: ../libnm-util/crypto_nss.c:447 +#: ../libnm-util/crypto_nss.c:443 #, c-format msgid "Couldn't decode certificate: %d" msgstr "Nepavyko iškoduoti liudijimo: %d" -#: ../libnm-util/crypto_nss.c:482 +#: ../libnm-util/crypto_nss.c:478 #, c-format msgid "Couldn't convert password to UCS2: %d" msgstr "Nepavyko konvertuoti slaptažodžio į UCS-2: %d" -#: ../libnm-util/crypto_nss.c:510 +#: ../libnm-util/crypto_nss.c:506 #, c-format msgid "Couldn't initialize PKCS#12 decoder: %d" msgstr "Nepavyko inicializuoti PKCS#12 dekoderio: %d" -#: ../libnm-util/crypto_nss.c:519 +#: ../libnm-util/crypto_nss.c:515 #, c-format msgid "Couldn't decode PKCS#12 file: %d" msgstr "Nepavyko iškoduoti PKCS#12 failo: %d" -#: ../libnm-util/crypto_nss.c:528 +#: ../libnm-util/crypto_nss.c:524 #, c-format msgid "Couldn't verify PKCS#12 file: %d" msgstr "Nepavyko patvirtinti PKCS#12 failo: %d" -#: ../libnm-util/crypto_nss.c:557 +#: ../libnm-util/crypto_nss.c:568 msgid "Could not generate random data." msgstr "Nepavyko sugeneruoti atsitiktinių duomenų." -#: ../libnm-util/nm-utils.c:1975 +#: ../libnm-util/nm-utils.c:2040 #, c-format msgid "Not enough memory to make encryption key." msgstr "Nepakanka atminties šifravimo raktui sukurti." -#: ../libnm-util/nm-utils.c:2085 +#: ../libnm-util/nm-utils.c:2150 msgid "Could not allocate memory for PEM file creation." msgstr "Nepakanka atminties PEM failui sukurti." -#: ../libnm-util/nm-utils.c:2097 +#: ../libnm-util/nm-utils.c:2162 #, c-format msgid "Could not allocate memory for writing IV to PEM file." msgstr "Nepakanka atminties IV įrašyti į PEM failą." -#: ../libnm-util/nm-utils.c:2109 +#: ../libnm-util/nm-utils.c:2174 #, c-format msgid "Could not allocate memory for writing encrypted key to PEM file." msgstr "Nepakanka atminties šifruotam raktui įrašyti į PEM failą." -#: ../libnm-util/nm-utils.c:2128 +#: ../libnm-util/nm-utils.c:2193 #, c-format msgid "Could not allocate memory for PEM file data." msgstr "Nepakanka atminties PEM failo duomenims." -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1 -msgid "Connection sharing via a protected WiFi network" -msgstr "Dalijimasis ryšiu naudojant apsaugotą WiFi tinklą" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2 -msgid "Connection sharing via an open WiFi network" -msgstr "Dalijimasis ryšiu naudojant atvirą WiFi tinklą" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3 -msgid "Modify persistent system hostname" -msgstr "Keisti pastovų sistemos vardą" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4 -msgid "Modify system connections" -msgstr "Keisti sistemos ryšius" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5 -msgid "System policy prevents modification of system settings" -msgstr "Sistemos politika neleidžia keisti sistemos nustatymų" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6 -msgid "System policy prevents modification of the persistent system hostname" -msgstr "Sistemos politika neleidžia keisti įsiminto sistemos vardo" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7 -msgid "System policy prevents sharing connections via a protected WiFi network" -msgstr "" -"Sistemos politika nelaidžia dalytis ryšiais naudojant apsaugotą WiFi tinklą" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8 -msgid "System policy prevents sharing connections via an open WiFi network" -msgstr "" -"Sistemos politika neleidžia dalytis ryšiais naudojant atvirą WiFi tinklą" - #: ../policy/org.freedesktop.NetworkManager.policy.in.h:1 -msgid "Allow control of network connections" -msgstr "Leisti valdyti tinklo ryšius" +msgid "Enable or disable system networking" +msgstr "Įjungti arba išjungti sistemos prieigą prie tinklo" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:2 -msgid "Allow use of user-specific connections" -msgstr "Leisti naudoti pasirinktinius naudotojo ryšius" +msgid "System policy prevents enabling or disabling system networking" +msgstr "" +"Sistemos politika neleidžia įjungti arba išjungti sistemos prieigos prie " +"tinklo" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:3 -msgid "Enable or disable WiFi devices" -msgstr "Įjungti arba išjungti WiFi įrenginius" - -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4 -msgid "Enable or disable mobile broadband devices" -msgstr "Įjungti arba išjungti mobiliojo plačiajuosčio ryšio įrenginius" - -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5 -msgid "Enable or disable system networking" -msgstr "Įjungti arba išjungti sistemos prieigą prie tinklo" - -#: ../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)" @@ -1650,91 +2182,245 @@ msgstr "" "Užmigdyti arba pažadinti NetworkManager (tai turėtų naudoti tik sistemos " "energijos valdymo posistemė)" -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 -msgid "System policy prevents control of network connections" -msgstr "Sistemos politika neleidžia valdyti tinklo ryšių" +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4 +msgid "System policy prevents putting NetworkManager to sleep or waking it up" +msgstr "Sistemos politika neleidžia užmigdyti arba pažadinti NetworkManager" -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8 +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5 +msgid "Enable or disable WiFi devices" +msgstr "Įjungti arba išjungti WiFi įrenginius" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6 msgid "System policy prevents enabling or disabling WiFi devices" msgstr "Sistemos politika neleidžia įjungti arba išjungti WiFi įrenginių" -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 +msgid "Enable or disable mobile broadband devices" +msgstr "Įjungti arba išjungti mobiliojo plačiajuosčio ryšio įrenginius" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8 msgid "System policy prevents enabling or disabling mobile broadband devices" msgstr "" "Sistemos politika neleidžia įjungti arba išjungti mobiliojo plačiajuosčio " "ryšio įrenginių" +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 +msgid "Enable or disable WiMAX mobile broadband devices" +msgstr "Įjungti arba išjungti WiMAX mobiliojo plačiajuosčio ryšio įrenginius" + #: ../policy/org.freedesktop.NetworkManager.policy.in.h:10 -msgid "System policy prevents enabling or disabling system networking" +msgid "" +"System policy prevents enabling or disabling WiMAX mobile broadband devices" msgstr "" -"Sistemos politika neleidžia įjungti arba išjungti sistemos prieigos prie " -"tinklo" +"Sistemos politika neleidžia įjungti arba išjungti WiMAX mobiliojo " +"plačiajuosčio ryšio įrenginių" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 -msgid "System policy prevents putting NetworkManager to sleep or waking it up" -msgstr "Sistemos politika neleidžia užmigdyti arba pažadinti NetworkManager" +msgid "Allow control of network connections" +msgstr "Leisti valdyti tinklo ryšius" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:12 -msgid "System policy prevents use of user-specific connections" -msgstr "Sistemos politika neleidžia naudoti pasirinktinių naudotojo ryšių" +msgid "System policy prevents control of network connections" +msgstr "Sistemos politika neleidžia valdyti tinklo ryšių" -#: ../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 "klaida apdorojant netlink pranešimą: %s" +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:13 +msgid "Connection sharing via a protected WiFi network" +msgstr "Dalijimasis ryšiu naudojant apsaugotą WiFi tinklą" -#: ../src/nm-netlink-monitor.c:214 -msgid "error occurred while waiting for data on socket" -msgstr "laukiant lizde duomenų įvyko klaida" +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14 +msgid "System policy prevents sharing connections via a protected WiFi network" +msgstr "" +"Sistemos politika nelaidžia dalytis ryšiais naudojant apsaugotą WiFi tinklą" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:15 +msgid "Connection sharing via an open WiFi network" +msgstr "Dalijimasis ryšiu naudojant atvirą WiFi tinklą" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:16 +msgid "System policy prevents sharing connections via an open WiFi network" +msgstr "" +"Sistemos politika neleidžia dalytis ryšiais naudojant atvirą WiFi tinklą" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:17 +msgid "Modify personal network connections" +msgstr "Keisti asmeninius tinklo ryšius" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:18 +msgid "System policy prevents modification of personal network settings" +msgstr "Sistemos politika neleidžia keisti asmeninių tinklų nustatymų" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:19 +msgid "Modify network connections for all users" +msgstr "Keisti visų naudotojų tinklo ryšius" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20 +msgid "System policy prevents modification of network settings for all users" +msgstr "" +"Sistemos politika neleidžia keisti tinklo nustatymų, skirtų visiems " +"naudotojams" -#: ../src/nm-netlink-monitor.c:254 +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21 +msgid "Modify persistent system hostname" +msgstr "Keisti pastovų sistemos vardą" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:22 +msgid "System policy prevents modification of the persistent system hostname" +msgstr "Sistemos politika neleidžia keisti įsiminto sistemos vardo" + +#: ../src/main.c:156 #, c-format -msgid "unable to connect to netlink for monitoring link status: %s" -msgstr "nepavyko prisijungti prie netlink saito būsenai stebėti: %s" +msgid "Failed to set signal mask: %d" +msgstr "Nepavyko nustatyti signalo kaukės: %d" -#: ../src/nm-netlink-monitor.c:265 +#: ../src/main.c:163 #, c-format -msgid "unable to enable netlink handle credential passing: %s" -msgstr "nepavyko įjungti netlink valdiklio įgaliojimams perduoti: %s" +msgid "Failed to create signal handling thread: %d" +msgstr "Nepavyko sukurti signalo apdorojimo gijos: %d" -#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353 +#: ../src/main.c:178 #, c-format -msgid "unable to allocate netlink handle for monitoring link status: %s" -msgstr "nepavyko rezervuoti netlink valdiklio saito būsenai stebėti: %s" +msgid "Opening %s failed: %s\n" +msgstr "Nepavyko atverti %s: %s\n" -#: ../src/nm-netlink-monitor.c:376 +#: ../src/main.c:184 #, c-format -msgid "unable to allocate netlink link cache for monitoring link status: %s" -msgstr "nepavyko rezervuoti netlink saito podėlio saito būsenai stebėti: %s" +msgid "Writing to %s failed: %s\n" +msgstr "Nepavyko rašymas į %s: %s\n" -#: ../src/nm-netlink-monitor.c:502 +#: ../src/main.c:189 #, c-format -msgid "unable to join netlink group: %s" -msgstr "nepavyko prisijungti prie netlink grupės: %s" +msgid "Closing %s failed: %s\n" +msgstr "Nepavyko užverti %s: %s\n" -#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642 +#: ../src/main.c:232 #, c-format -msgid "error updating link cache: %s" -msgstr "klaida atnaujinant saito podėlį: %s" +msgid "NetworkManager is already running (pid %ld)\n" +msgstr "NetworkManager jau veikia „pid %ld)\n" + +#: ../src/main.c:372 +msgid "Print NetworkManager version and exit" +msgstr "Parodyti NetworkManager versiją ir išeiti" + +#: ../src/main.c:373 +msgid "Don't become a daemon" +msgstr "Netapti demonu" -#: ../src/main.c:499 +#: ../src/main.c:374 +msgid "Make all warnings fatal" +msgstr "Paversti visus įspėjimus lemtingais" + +#: ../src/main.c:375 +msgid "Specify the location of a PID file" +msgstr "Nurodykite PID failo vietą" + +#: ../src/main.c:375 +msgid "filename" +msgstr "failo pavadinimas" + +#: ../src/main.c:376 +msgid "State file location" +msgstr "Būsenos failo vieta" + +#: ../src/main.c:376 +msgid "/path/to/state.file" +msgstr "/kelias/iki/būsenos.failo" + +#: ../src/main.c:377 +msgid "Config file location" +msgstr "Konfigūracijos failo vieta" + +#: ../src/main.c:377 +msgid "/path/to/config.file" +msgstr "/kelias/iki/konfigūracijos.failo" + +#: ../src/main.c:378 +msgid "List of plugins separated by ','" +msgstr "Įskiepių sąrašas skiriant „,“" + +#: ../src/main.c:378 +msgid "plugin1,plugin2" +msgstr "įskiepis1,įskiepis2" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:380 +msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" +msgstr "Žurnalo lygis: vienas iš [ERR, WARN, INFO, DEBUG]" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:383 +msgid "" +"Log domains separated by ',': any combination of\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," +"DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN," +"SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE," +"DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" +msgstr "" +"Žurnalo sritys skiriamos „,“: bet kokia reikšmių kombinacija\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," +"DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN," +"SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE," +"DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" + +#: ../src/main.c:396 +#, c-format +msgid "GModules are not supported on your platform!\n" +msgstr "GModules nepalaikomi jūsų platformoje\n" + +#: ../src/main.c:419 +msgid "" +"NetworkManager monitors all network connections and automatically\n" +"chooses the best connection to use. It also allows the user to\n" +"specify wireless access points which wireless cards in the computer\n" +"should associate with." +msgstr "" +"NetworkManager stebi visus tinklo ryšius ir automatiškai\n" +"pasirenka geriausią ryšį. Jis taip pat leidžia naudotojui\n" +"nurodyti belaidžio ryšio prieigos taškus, su kuriais susieti\n" +"jūsų kompiuterio belaidžio ryšio kortas." + +#: ../src/main.c:425 #, c-format msgid "Invalid option. Please use --help to see a list of valid options.\n" msgstr "" "Netinkama parinktis. Galimų parinkčių sąrašą galite pamatyti naudodami " "parametrą --help.\n" -#: ../src/main.c:570 +#: ../src/main.c:435 +#, c-format +msgid "You must be root to run NetworkManager!\n" +msgstr "Jūs turite būti root, kad paleistumėte NetworkManager!\n" + +#: ../src/main.c:456 +#, c-format +msgid "Failed to read configuration: (%d) %s\n" +msgstr "Nepavyko perskaityti konfigūracijos: (%d) %s\n" + +#: ../src/main.c:467 #, c-format msgid "%s. Please use --help to see a list of valid options.\n" msgstr "%s. Naudokite --help, galimų parinkčių sąrašui gauti.\n" -#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328 +#: ../src/main.c:474 +#, c-format +msgid "State file %s parsing failed: (%d) %s\n" +msgstr "Nepavyko perskaityti būsenos failo %s: (%d) %s\n" + +#: ../src/main.c:491 +#, c-format +msgid "Could not daemonize: %s [error %u]\n" +msgstr "Nepavyko tapri demonu: %s [klaida %u]\n" + +#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62 msgid "# Created by NetworkManager\n" msgstr "# Sukurta NetworkManager programos\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" @@ -1743,204 +2429,169 @@ msgstr "" "# Sulieta iš %s\n" "\n" -#: ../src/dhcp-manager/nm-dhcp-manager.c:284 +#: ../src/dhcp-manager/nm-dhcp-manager.c:266 msgid "no usable DHCP client could be found." msgstr "nerastas veikiantis DHCP klientas." -#: ../src/dhcp-manager/nm-dhcp-manager.c:293 +#: ../src/dhcp-manager/nm-dhcp-manager.c:275 msgid "'dhclient' could be found." msgstr "nerastas „dhclient“." -#: ../src/dhcp-manager/nm-dhcp-manager.c:303 +#: ../src/dhcp-manager/nm-dhcp-manager.c:285 msgid "'dhcpcd' could be found." msgstr "nerastas „dhcpcd“." -#: ../src/dhcp-manager/nm-dhcp-manager.c:311 +#: ../src/dhcp-manager/nm-dhcp-manager.c:293 #, c-format msgid "unsupported DHCP client '%s'" msgstr "nepalaikomas DHCP klientas „%s“." -#: ../src/logging/nm-logging.c:146 -#, c-format -msgid "Unknown log level '%s'" -msgstr "Nežinomas žurnalo vedimo lygis „%s“" - -#: ../src/logging/nm-logging.c:171 -#, c-format -msgid "Unknown log domain '%s'" -msgstr "Nežinoma žurnalo sritis „%s“" - -#: ../src/dns-manager/nm-dns-manager.c:384 +#: ../src/dns-manager/nm-dns-manager.c:376 msgid "NOTE: the libc resolver may not support more than 3 nameservers." msgstr "" "PASTABA: libc adresų nustatymo funkcija gali nepalaikyti daugiau nei 3 vardų " "serverių." -#: ../src/dns-manager/nm-dns-manager.c:386 +#: ../src/dns-manager/nm-dns-manager.c:378 msgid "The nameservers listed below may not be recognized." msgstr "Žemiau pateikti vardų serveriai gali būti neatpažinti." -#: ../src/settings/nm-default-wired-connection.c:157 +#: ../src/logging/nm-logging.c:130 #, c-format -msgid "Auto %s" -msgstr "Automatinis %s" - -#: ../system-settings/plugins/ifcfg-rh/reader.c:3412 -#: ../system-settings/plugins/ifnet/connection_parser.c:49 -msgid "System" -msgstr "Sistema" - -#~ msgid "Type" -#~ msgstr "Tipas" - -#~ msgid "Name" -#~ msgstr "Pavadinimas" - -#~ msgid "User connections:\n" -#~ msgstr "Naudotojo ryšiai:\n" - -#~ msgid "System-wide connections" -#~ msgstr "Sistemos ryšiai" - -#~ msgid "Default" -#~ msgstr "Numatyta" - -#~ msgid "Service" -#~ msgstr "Tarnyba" - -#~ msgid "%s, %s, Freq %d MHz, Rate %d Mb/s, Strength %d" -#~ msgstr "%s, %s, dažnis %d MHz, sparta %d Mb/s, stiprumas %d" - -#~ msgid "Device" -#~ msgstr "Įrenginys" - -#~ msgid "Driver" -#~ msgstr "Tvarkyklė" - -#~ msgid "State" -#~ msgstr "Būsena" - -#~ msgid "HW Address" -#~ msgstr "Aparatinis adresas" - -#~ msgid "" -#~ "\n" -#~ " Capabilities:\n" -#~ msgstr "" -#~ "\n" -#~ "Galimybės:\n" - -#~ msgid "Carrier Detect" -#~ msgstr "Perdavimo aptikimas" - -#~ msgid "Speed" -#~ msgstr "Sparta" +msgid "Unknown log level '%s'" +msgstr "Nežinomas žurnalo vedimo lygis „%s“" -#~ msgid "" -#~ "\n" -#~ " Wireless Properties\n" -#~ msgstr "" -#~ "\n" -#~ " Belaidžio ryšio savybės\n" +#: ../src/logging/nm-logging.c:155 +#, c-format +msgid "Unknown log domain '%s'" +msgstr "Nežinoma žurnalo sritis „%s“" -#~ msgid "WEP Encryption" -#~ msgstr "WEP šifravimas" +#: ../src/modem-manager/nm-modem-cdma.c:279 ../src/nm-device-bt.c:325 +#, c-format +msgid "CDMA connection %d" +msgstr "CDMA ryšys %d" -#~ msgid "WPA Encryption" -#~ msgstr "WPA šifravimas" +#: ../src/modem-manager/nm-modem-gsm.c:547 ../src/nm-device-bt.c:321 +#, c-format +msgid "GSM connection %d" +msgstr "GSM ryšys %d" -#~ msgid "WPA2 Encryption" -#~ msgstr "WPA2 šifravimas" +#: ../src/nm-device-bond.c:191 +#, c-format +msgid "Bond connection %d" +msgstr "Susieti ryšį %d" -#~ msgid "TKIP cipher" -#~ msgstr "TKIP šifras" +#: ../src/nm-device-bt.c:296 +#, c-format +msgid "PAN connection %d" +msgstr "PAN ryšys %d" -#~ msgid "CCMP cipher" -#~ msgstr "CCMP šifras" +#: ../src/nm-device-bt.c:329 +#, c-format +msgid "DUN connection %d" +msgstr "DUN ryšys %d" -#~ msgid "" -#~ "\n" -#~ " Wireless Access Points %s\n" -#~ msgstr "" -#~ "\n" -#~ " Belaidžiai prieigos taškai %s\n" +#: ../src/nm-device-ethernet.c:1326 +#, c-format +msgid "PPPoE connection %d" +msgstr "PPPoE ryšys %d" -#~ msgid "(* = current AP)" -#~ msgstr "(* = dabartinis prieigos taškas)" +#: ../src/nm-device-ethernet.c:1326 ../src/settings/nm-settings-utils.c:50 +#, c-format +msgid "Wired connection %d" +msgstr "Laidinis ryšys %d" -#~ msgid "" -#~ "\n" -#~ " Wired Properties\n" -#~ msgstr "" -#~ "\n" -#~ "Laidinio ryšio savybės\n" +#: ../src/nm-device-infiniband.c:303 +#, c-format +msgid "InfiniBand connection %d" +msgstr "InfiniBand ryšys %d" -#~ msgid "Carrier" -#~ msgstr "Perdavimas" +#: ../src/nm-device-olpc-mesh.c:293 +#, c-format +msgid "Mesh %d" +msgstr "Susiejimas %d" -#~ msgid "" -#~ "\n" -#~ " IPv4 Settings:\n" -#~ msgstr "" -#~ "\n" -#~ " IPv4 nustatymai:\n" +#: ../src/nm-device-vlan.c:362 +#, c-format +msgid "VLAN connection %d" +msgstr "VLAN ryšys %d" -#~ msgid "Address" -#~ msgstr "Adresas" +#: ../src/nm-manager.c:661 +#, c-format +msgid "VPN connection %d" +msgstr "VPN ryšys %d" -#~ msgid "Prefix" -#~ msgstr "Priešdėlis" +#: ../src/nm-netlink-monitor.c:148 ../src/nm-netlink-monitor.c:272 +#: ../src/nm-netlink-monitor.c:695 +#, c-format +msgid "error processing netlink message: %s" +msgstr "klaida apdorojant netlink pranešimą: %s" -#~ msgid "Gateway" -#~ msgstr "Šliuzas" +#: ../src/nm-netlink-monitor.c:251 +msgid "error occurred while waiting for data on socket" +msgstr "laukiant lizde duomenų įvyko klaida" -#~ msgid "Device:" -#~ msgstr "Įrenginys:" +#: ../src/nm-netlink-monitor.c:296 +#, c-format +msgid "unable to connect to netlink for monitoring link status: %s" +msgstr "nepavyko prisijungti prie netlink saito būsenai stebėti: %s" -#~ msgid "Error: hwaddr has to be specified." -#~ msgstr "Klaida: turi būti nurodytas hwaddr." +#: ../src/nm-netlink-monitor.c:307 +#, c-format +msgid "unable to enable netlink handle credential passing: %s" +msgstr "nepavyko įjungti netlink valdiklio įgaliojimams perduoti: %s" -#~ msgid "AP parameters" -#~ msgstr "Prieigos taško parametrai" +#: ../src/nm-netlink-monitor.c:330 ../src/nm-netlink-monitor.c:390 +#, c-format +msgid "unable to allocate netlink handle for monitoring link status: %s" +msgstr "nepavyko rezervuoti netlink valdiklio saito būsenai stebėti: %s" -#~ msgid "Frequency:" -#~ msgstr "Dažnis:" +#: ../src/nm-netlink-monitor.c:415 +#, c-format +msgid "unable to allocate netlink link cache for monitoring link status: %s" +msgstr "nepavyko rezervuoti netlink saito podėlio saito būsenai stebėti: %s" -#~ msgid "Mode:" -#~ msgstr "Veiksena:" +#: ../src/nm-netlink-monitor.c:542 +#, c-format +msgid "unable to join netlink group: %s" +msgstr "nepavyko prisijungti prie netlink grupės: %s" -#~ msgid "Ad-hoc" -#~ msgstr "Ad-hoc" +#: ../src/nm-netlink-monitor.c:671 ../src/nm-netlink-monitor.c:684 +#, c-format +msgid "error updating link cache: %s" +msgstr "klaida atnaujinant saito podėlį: %s" -#~ msgid "Maximal bitrate:" -#~ msgstr "Didžiausias galimas bitų dažnis:" +#: ../src/settings/plugins/ifcfg-rh/reader.c:93 +msgid "System" +msgstr "Sistema" -#~ msgid "Strength:" -#~ msgstr "Stiprumas:" +#: ../src/settings/plugins/ifcfg-rh/reader.c:3634 +msgid "Bond" +msgstr "Susieti" -#~ msgid "Flags:" -#~ msgstr "Požymiai:" +#~ msgid "SCOPE" +#~ msgstr "SRITIS" -#~ msgid "privacy" -#~ msgstr "privatumas" +#~ msgid "DBUS-SERVICE" +#~ msgstr "DBUS-TARNYBA" -#~ msgid "WPA flags:" -#~ msgstr "WPA požymiai:" +#~ msgid "system" +#~ msgstr "sisteminis" -#~ msgid "RSN flags:" -#~ msgstr "RSN požymiai:" +#~ msgid "user" +#~ msgstr "naudotojo" -#~ msgid "NM running:" -#~ msgstr "NM veikimas:" +#~ msgid "System connections" +#~ msgstr "Sistemos ryšiai" -#~ msgid "NM state:" -#~ msgstr "NM būsena" +#~ msgid "User connections" +#~ msgstr "Naudotojo ryšiai" -#~ msgid "NM wireless hardware:" -#~ msgstr "NM belaidė įranga:" +#~ msgid "Error: Obtaining active connection for '%s' failed." +#~ msgstr "Klaida: nepavyko „%s“ gauti aktyvaus ryšio." -#~ msgid "NM wireless:" -#~ msgstr "NM belaidis:" +#~ msgid "Error: Could not get user settings." +#~ msgstr "Klaida: nepavyko gauti naudotojo nustatymų." -#~ msgid "NM WWAN hardware:" -#~ msgstr "NM WWAN įranga:" +#~ msgid "IP4-SETTINGS" +#~ msgstr "IP4-PARAMETRAI" diff --git a/po/pl.po b/po/pl.po index 4ad67c92..7df64295 100644 --- a/po/pl.po +++ b/po/pl.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: NetworkManager\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=NetworkManager&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-02-24 15:25+0000\n" -"PO-Revision-Date: 2012-02-24 22:06+0100\n" +"POT-Creation-Date: 2012-05-10 03:24+0000\n" +"PO-Revision-Date: 2012-05-10 20:20+0200\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Language-Team: Polish <gnomepl@aviary.pl>\n" "Language: pl\n" @@ -23,8 +23,8 @@ msgstr "" "X-Poedit-Country: Poland\n" #: ../cli/src/common.c:32 ../cli/src/common.c:44 ../cli/src/common.c:52 -#: ../cli/src/common.c:63 ../cli/src/connections.c:119 -#: ../cli/src/connections.c:153 +#: ../cli/src/common.c:63 ../cli/src/connections.c:125 +#: ../cli/src/connections.c:159 msgid "GROUP" msgstr "GRUPA" @@ -58,18 +58,292 @@ msgstr "WINS" msgid "OPTION" msgstr "OPCJA" +#: ../cli/src/common.c:366 +msgid "unmanaged" +msgstr "niezarządzane" + +#: ../cli/src/common.c:368 +msgid "unavailable" +msgstr "niedostępne" + +#: ../cli/src/common.c:370 ../cli/src/network-manager.c:120 +msgid "disconnected" +msgstr "rozłączono" + +#: ../cli/src/common.c:372 +msgid "connecting (prepare)" +msgstr "łączenie (przygotowanie)" + +#: ../cli/src/common.c:374 +msgid "connecting (configuring)" +msgstr "łączenie (konfigurowanie)" + +#: ../cli/src/common.c:376 +msgid "connecting (need authentication)" +msgstr "łączenie (wymaga uwierzytelnienia)" + +#: ../cli/src/common.c:378 +msgid "connecting (getting IP configuration)" +msgstr "łączenie (pobieranie konfiguracji adresu IP)" + +#: ../cli/src/common.c:380 +msgid "connecting (checking IP connectivity)" +msgstr "łączenie (sprawdzanie łączności IP)" + +#: ../cli/src/common.c:382 +msgid "connecting (starting secondary connections)" +msgstr "łączenie (uruchamianie drugorzędnych połączeń)" + +#: ../cli/src/common.c:384 ../cli/src/network-manager.c:116 +msgid "connected" +msgstr "połączono" + +#: ../cli/src/common.c:386 ../cli/src/connections.c:621 +msgid "deactivating" +msgstr "deaktywowanie" + +#: ../cli/src/common.c:388 +msgid "connection failed" +msgstr "połączenie się nie powiodło" + +#: ../cli/src/common.c:390 ../cli/src/connections.c:624 +#: ../cli/src/connections.c:647 ../cli/src/connections.c:1333 +#: ../cli/src/devices.c:612 ../cli/src/network-manager.c:123 +#: ../cli/src/network-manager.c:185 ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:197 ../cli/src/network-manager.c:257 +#: ../cli/src/network-manager.c:273 ../cli/src/network-manager.c:431 +#: ../cli/src/network-manager.c:486 ../cli/src/network-manager.c:524 +#: ../cli/src/network-manager.c:563 ../cli/src/settings.c:563 +#: ../cli/src/settings.c:591 ../cli/src/utils.c:531 ../src/main.c:458 +#: ../src/main.c:477 +msgid "unknown" +msgstr "nieznane" + +#: ../cli/src/common.c:399 +msgid "No reason given" +msgstr "Nie podano przyczyny" + +#: ../cli/src/common.c:402 +msgid "Unknown error" +msgstr "Nieznany błąd" + +#: ../cli/src/common.c:405 +msgid "Device is now managed" +msgstr "Urządzenie jest teraz zarządzane" + +#: ../cli/src/common.c:408 +msgid "Device is now unmanaged" +msgstr "Urządzenie nie jest teraz zarządzane" + +#: ../cli/src/common.c:411 +msgid "The device could not be readied for configuration" +msgstr "Urządzenie nie może zostać odczytane do konfiguracji" + +#: ../cli/src/common.c:414 +msgid "" +"IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "" +"Konfiguracja IP nie mogła zostać zastrzeżona (brak dostępnego adresu, czasu " +"oczekiwania itp.)" + +#: ../cli/src/common.c:417 +msgid "The IP configuration is no longer valid" +msgstr "Konfiguracja IP nie jest już prawidłowa" + +#: ../cli/src/common.c:420 +msgid "Secrets were required, but not provided" +msgstr "Hasła są wymagane, ale nie zostały podane" + +#: ../cli/src/common.c:423 +msgid "802.1X supplicant disconnected" +msgstr "Suplikant 802.1X został rozłączony" + +#: ../cli/src/common.c:426 +msgid "802.1X supplicant configuration failed" +msgstr "Konfiguracja suplikanta 802.1X się nie powiodła" + +#: ../cli/src/common.c:429 +msgid "802.1X supplicant failed" +msgstr "Suplikant 802.1X się nie powiódł" + +#: ../cli/src/common.c:432 +msgid "802.1X supplicant took too long to authenticate" +msgstr "Suplikant 802.1X za długo się uwierzytelniał" + +#: ../cli/src/common.c:435 +msgid "PPP service failed to start" +msgstr "uruchomienie usługi PPP się nie powiodło" + +#: ../cli/src/common.c:438 +msgid "PPP service disconnected" +msgstr "Rozłączono z usługą PPP" + +#: ../cli/src/common.c:441 +msgid "PPP failed" +msgstr "Usługa PPP się nie powiodła" + +#: ../cli/src/common.c:444 +msgid "DHCP client failed to start" +msgstr "uruchomienie klienta DHCP się nie powiodło" + +#: ../cli/src/common.c:447 +msgid "DHCP client error" +msgstr "Błąd klienta DHCP" + +#: ../cli/src/common.c:450 +msgid "DHCP client failed" +msgstr "Klient DHCP się nie powiódł" + +#: ../cli/src/common.c:453 +msgid "Shared connection service failed to start" +msgstr "Uruchomienie usługi współdzielenia połączenia się nie powiodło" + +#: ../cli/src/common.c:456 +msgid "Shared connection service failed" +msgstr "Usługa współdzielenia połączenia się nie powiodła" + +#: ../cli/src/common.c:459 +msgid "AutoIP service failed to start" +msgstr "Uruchomienie usługi AutoIP się nie powiodło" + +#: ../cli/src/common.c:462 +msgid "AutoIP service error" +msgstr "Błąd usługi AutoIP" + +#: ../cli/src/common.c:465 +msgid "AutoIP service failed" +msgstr "Usługa AutoIP się nie powiodła" + +#: ../cli/src/common.c:468 +msgid "The line is busy" +msgstr "Linia jest zajęta" + +#: ../cli/src/common.c:471 +msgid "No dial tone" +msgstr "Brak sygnału telefonicznego" + +#: ../cli/src/common.c:474 +msgid "No carrier could be established" +msgstr "Nie można ustanowić operatora" + +#: ../cli/src/common.c:477 +msgid "The dialing request timed out" +msgstr "Żądanie zadzwonienia przekroczyło czas oczekiwania" + +#: ../cli/src/common.c:480 +msgid "The dialing attempt failed" +msgstr "Próba zadzwonienia się nie powiodła" + +#: ../cli/src/common.c:483 +msgid "Modem initialization failed" +msgstr "Zainicjowanie modemu się nie powiodło" + +#: ../cli/src/common.c:486 +msgid "Failed to select the specified APN" +msgstr "Wybranie podanego APN się nie powiodło" + +#: ../cli/src/common.c:489 +msgid "Not searching for networks" +msgstr "Sieci nie są wyszukiwane" + +#: ../cli/src/common.c:492 +msgid "Network registration denied" +msgstr "Odmówiono rejestracji sieci" + +#: ../cli/src/common.c:495 +msgid "Network registration timed out" +msgstr "Przekroczono czas oczekiwania rejestracji sieci" + +#: ../cli/src/common.c:498 +msgid "Failed to register with the requested network" +msgstr "Zarejestrowanie w żądanej sieci się nie powiodło" + +#: ../cli/src/common.c:501 +msgid "PIN check failed" +msgstr "Sprawdzenie kodu PIN się nie powiodło" + +#: ../cli/src/common.c:504 +msgid "Necessary firmware for the device may be missing" +msgstr "Brak wymaganego oprogramowania sprzętowego dla urządzenia" + +#: ../cli/src/common.c:507 +msgid "The device was removed" +msgstr "Urządzenie zostało usunięte" + +#: ../cli/src/common.c:510 +msgid "NetworkManager went to sleep" +msgstr "Usługa NetworkManager została uśpiona" + +#: ../cli/src/common.c:513 +msgid "The device's active connection disappeared" +msgstr "Aktywne połączenie urządzenia zniknęło" + +#: ../cli/src/common.c:516 +msgid "Device disconnected by user or client" +msgstr "Urządzenie zostało rozłączone przez użytkownika lub klienta" + +#: ../cli/src/common.c:519 +msgid "Carrier/link changed" +msgstr "Zmieniono operatora/łącze" + +#: ../cli/src/common.c:522 +msgid "The device's existing connection was assumed" +msgstr "Przyjęto istniejące połączenie urządzenia" + +#: ../cli/src/common.c:525 +msgid "The supplicant is now available" +msgstr "Suplikant jest teraz dostępny" + +#: ../cli/src/common.c:528 +msgid "The modem could not be found" +msgstr "Nie można odnaleźć modemu" + +#: ../cli/src/common.c:531 +msgid "The Bluetooth connection failed or timed out" +msgstr "" +"Połączenie Bluetooth się nie powiodło lub przekroczyło czas oczekiwania" + +#: ../cli/src/common.c:534 +msgid "GSM Modem's SIM card not inserted" +msgstr "Karta SIM modemu GSM nie została włożona" + +#: ../cli/src/common.c:537 +msgid "GSM Modem's SIM PIN required" +msgstr "Wymagany jest kod PIN karty SIM modemu GSM" + +#: ../cli/src/common.c:540 +msgid "GSM Modem's SIM PUK required" +msgstr "Wymagany jest kod PUK karty SIM modemu GSM" + +#: ../cli/src/common.c:543 +msgid "GSM Modem's SIM wrong" +msgstr "Karta SIM modemu GSM jest błędna" + +#: ../cli/src/common.c:546 +msgid "InfiniBand device does not support connected mode" +msgstr "Urządzenie InfiniBand nie obsługuje trybu połączonego" + +#: ../cli/src/common.c:549 +msgid "A dependency of the connection failed" +msgstr "Zależność połączenia się nie powiodła" + +#: ../cli/src/common.c:551 ../cli/src/devices.c:267 ../cli/src/devices.c:283 +#: ../cli/src/devices.c:403 ../cli/src/devices.c:447 +msgid "Unknown" +msgstr "Nieznane" + #. 0 #. used only for 'GENERAL' group listing -#: ../cli/src/connections.c:56 ../cli/src/connections.c:120 -#: ../cli/src/devices.c:100 ../cli/src/devices.c:121 ../cli/src/devices.c:131 -#: ../cli/src/devices.c:141 ../cli/src/devices.c:155 ../cli/src/devices.c:169 -#: ../cli/src/devices.c:191 +#: ../cli/src/connections.c:58 ../cli/src/connections.c:126 +#: ../cli/src/devices.c:103 ../cli/src/devices.c:124 ../cli/src/devices.c:134 +#: ../cli/src/devices.c:144 ../cli/src/devices.c:158 ../cli/src/devices.c:172 +#: ../cli/src/devices.c:194 msgid "NAME" msgstr "NAZWA" #. 0 #. 1 -#: ../cli/src/connections.c:57 ../cli/src/connections.c:121 +#: ../cli/src/connections.c:59 ../cli/src/connections.c:127 msgid "UUID" msgstr "UUID" @@ -77,28 +351,28 @@ msgstr "UUID" #. 0 #. 1 #. 2 -#: ../cli/src/connections.c:58 ../cli/src/connections.c:154 -#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:194 +#: ../cli/src/connections.c:60 ../cli/src/connections.c:160 +#: ../cli/src/devices.c:69 ../cli/src/devices.c:105 ../cli/src/devices.c:197 msgid "TYPE" msgstr "TYP" #. 2 -#: ../cli/src/connections.c:59 +#: ../cli/src/connections.c:61 msgid "TIMESTAMP" msgstr "OKRES-CZASU" #. 3 -#: ../cli/src/connections.c:60 +#: ../cli/src/connections.c:62 msgid "TIMESTAMP-REAL" msgstr "RZECZYWISTY-OKRES-CZASU" #. 4 -#: ../cli/src/connections.c:61 +#: ../cli/src/connections.c:63 msgid "AUTOCONNECT" msgstr "ŁĄCZENIE-AUTOMATYCZNE" #. 5 -#: ../cli/src/connections.c:62 +#: ../cli/src/connections.c:64 msgid "READONLY" msgstr "TYLKO-DO-ODCZYTU" @@ -107,13 +381,13 @@ msgstr "TYLKO-DO-ODCZYTU" #. 2 #. 11 #. 5 -#: ../cli/src/connections.c:63 ../cli/src/connections.c:128 -#: ../cli/src/devices.c:68 ../cli/src/devices.c:181 ../cli/src/devices.c:197 +#: ../cli/src/connections.c:65 ../cli/src/connections.c:134 +#: ../cli/src/devices.c:71 ../cli/src/devices.c:184 ../cli/src/devices.c:200 msgid "DBUS-PATH" msgstr "ŚCIEŻKA-DO-DBUS" #. 2 -#: ../cli/src/connections.c:122 +#: ../cli/src/connections.c:128 msgid "DEVICES" msgstr "URZĄDZENIA" @@ -121,82 +395,82 @@ msgstr "URZĄDZENIA" #. 1 #. 6 #. 1 -#: ../cli/src/connections.c:123 ../cli/src/devices.c:67 -#: ../cli/src/devices.c:107 ../cli/src/network-manager.c:39 +#: ../cli/src/connections.c:129 ../cli/src/devices.c:70 +#: ../cli/src/devices.c:110 ../cli/src/network-manager.c:39 msgid "STATE" msgstr "STAN" #. 4 -#: ../cli/src/connections.c:124 +#: ../cli/src/connections.c:130 msgid "DEFAULT" msgstr "DOMYŚLNE" #. 5 -#: ../cli/src/connections.c:125 +#: ../cli/src/connections.c:131 msgid "DEFAULT6" msgstr "DOMYŚLNE6" #. 6 -#: ../cli/src/connections.c:126 +#: ../cli/src/connections.c:132 msgid "SPEC-OBJECT" msgstr "KONKRETNY-OBIEKT" #. 7 #. 1 -#: ../cli/src/connections.c:127 ../cli/src/connections.c:141 +#: ../cli/src/connections.c:133 ../cli/src/connections.c:147 msgid "VPN" msgstr "VPN" #. 9 -#: ../cli/src/connections.c:129 +#: ../cli/src/connections.c:135 msgid "CON-PATH" msgstr "ŚCIEŻKA-DO-POŁĄCZENIA" #. 10 -#: ../cli/src/connections.c:130 +#: ../cli/src/connections.c:136 msgid "ZONE" msgstr "STREFA" #. 11 -#: ../cli/src/connections.c:131 +#: ../cli/src/connections.c:137 msgid "MASTER-PATH" msgstr "GŁÓWNA-ŚCIEŻKA" -#: ../cli/src/connections.c:139 ../cli/src/devices.c:77 +#: ../cli/src/connections.c:145 ../cli/src/devices.c:80 msgid "GENERAL" msgstr "OGÓLNE" #. 0 -#: ../cli/src/connections.c:140 +#: ../cli/src/connections.c:146 msgid "IP" msgstr "IP" #. 1 -#: ../cli/src/connections.c:155 +#: ../cli/src/connections.c:161 msgid "USERNAME" msgstr "NAZWA-UŻYTKOWNIKA" #. 2 -#: ../cli/src/connections.c:156 +#: ../cli/src/connections.c:162 msgid "GATEWAY" msgstr "BRAMA" #. 3 -#: ../cli/src/connections.c:157 +#: ../cli/src/connections.c:163 msgid "BANNER" msgstr "BANER" #. 4 -#: ../cli/src/connections.c:158 +#: ../cli/src/connections.c:164 msgid "VPN-STATE" msgstr "STAN-VPN" #. 5 -#: ../cli/src/connections.c:159 +#: ../cli/src/connections.c:165 msgid "CFG" msgstr "KONFIGURACJA" -#: ../cli/src/connections.c:180 +#: ../cli/src/connections.c:187 #, c-format msgid "" "Usage: nmcli con { COMMAND | help }\n" @@ -223,377 +497,355 @@ msgstr "" " down id <identyfikator> | uuid <identyfikator>\n" " delete id <identyfikator> | uuid <identyfikator>\n" -#: ../cli/src/connections.c:234 ../cli/src/connections.c:567 +#: ../cli/src/connections.c:246 ../cli/src/connections.c:597 #, c-format msgid "Error: 'con list': %s" msgstr "Błąd: \"con list\": %s" -#: ../cli/src/connections.c:236 ../cli/src/connections.c:569 +#: ../cli/src/connections.c:248 ../cli/src/connections.c:599 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Błąd: \"con list\": %s; dozwolone pola: %s" -#: ../cli/src/connections.c:244 +#: ../cli/src/connections.c:256 msgid "Connection details" msgstr "Szczegóły połączenia" -#: ../cli/src/connections.c:442 +#: ../cli/src/connections.c:472 msgid "never" msgstr "nigdy" #. "CAPABILITIES" #. Print header #. "WIFI-PROPERTIES" -#: ../cli/src/connections.c:443 ../cli/src/connections.c:444 -#: ../cli/src/connections.c:681 ../cli/src/connections.c:682 -#: ../cli/src/connections.c:684 ../cli/src/devices.c:586 -#: ../cli/src/devices.c:639 ../cli/src/devices.c:750 ../cli/src/devices.c:751 -#: ../cli/src/devices.c:783 ../cli/src/devices.c:809 ../cli/src/devices.c:810 -#: ../cli/src/devices.c:811 ../cli/src/devices.c:812 ../cli/src/devices.c:813 -#: ../cli/src/settings.c:576 ../cli/src/settings.c:646 -#: ../cli/src/settings.c:766 ../cli/src/settings.c:1048 -#: ../cli/src/settings.c:1049 ../cli/src/settings.c:1051 -#: ../cli/src/settings.c:1053 ../cli/src/settings.c:1054 -#: ../cli/src/settings.c:1182 ../cli/src/settings.c:1183 -#: ../cli/src/settings.c:1184 ../cli/src/settings.c:1185 -#: ../cli/src/settings.c:1260 ../cli/src/settings.c:1261 -#: ../cli/src/settings.c:1262 ../cli/src/settings.c:1263 +#: ../cli/src/connections.c:473 ../cli/src/connections.c:474 +#: ../cli/src/connections.c:711 ../cli/src/connections.c:712 +#: ../cli/src/connections.c:714 ../cli/src/devices.c:411 +#: ../cli/src/devices.c:464 ../cli/src/devices.c:578 ../cli/src/devices.c:579 +#: ../cli/src/devices.c:611 ../cli/src/devices.c:637 ../cli/src/devices.c:638 +#: ../cli/src/devices.c:639 ../cli/src/devices.c:640 ../cli/src/devices.c:641 +#: ../cli/src/network-manager.c:267 ../cli/src/settings.c:657 +#: ../cli/src/settings.c:727 ../cli/src/settings.c:847 +#: ../cli/src/settings.c:1129 ../cli/src/settings.c:1130 +#: ../cli/src/settings.c:1132 ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1135 ../cli/src/settings.c:1263 #: ../cli/src/settings.c:1264 ../cli/src/settings.c:1265 -#: ../cli/src/settings.c:1266 ../cli/src/settings.c:1267 -#: ../cli/src/settings.c:1268 ../cli/src/settings.c:1269 -#: ../cli/src/settings.c:1270 ../cli/src/settings.c:1271 -#: ../cli/src/settings.c:1272 ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1266 ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 ../cli/src/settings.c:1353 +#: ../cli/src/settings.c:1424 msgid "yes" msgstr "tak" -#: ../cli/src/connections.c:443 ../cli/src/connections.c:444 -#: ../cli/src/connections.c:681 ../cli/src/connections.c:682 -#: ../cli/src/connections.c:684 ../cli/src/devices.c:586 -#: ../cli/src/devices.c:639 ../cli/src/devices.c:750 ../cli/src/devices.c:751 -#: ../cli/src/devices.c:783 ../cli/src/devices.c:809 ../cli/src/devices.c:810 -#: ../cli/src/devices.c:811 ../cli/src/devices.c:812 ../cli/src/devices.c:813 -#: ../cli/src/settings.c:576 ../cli/src/settings.c:578 -#: ../cli/src/settings.c:646 ../cli/src/settings.c:766 -#: ../cli/src/settings.c:1048 ../cli/src/settings.c:1049 -#: ../cli/src/settings.c:1051 ../cli/src/settings.c:1053 -#: ../cli/src/settings.c:1054 ../cli/src/settings.c:1182 -#: ../cli/src/settings.c:1183 ../cli/src/settings.c:1184 -#: ../cli/src/settings.c:1185 ../cli/src/settings.c:1260 -#: ../cli/src/settings.c:1261 ../cli/src/settings.c:1262 +#: ../cli/src/connections.c:473 ../cli/src/connections.c:474 +#: ../cli/src/connections.c:711 ../cli/src/connections.c:712 +#: ../cli/src/connections.c:714 ../cli/src/devices.c:411 +#: ../cli/src/devices.c:464 ../cli/src/devices.c:578 ../cli/src/devices.c:579 +#: ../cli/src/devices.c:611 ../cli/src/devices.c:637 ../cli/src/devices.c:638 +#: ../cli/src/devices.c:639 ../cli/src/devices.c:640 ../cli/src/devices.c:641 +#: ../cli/src/network-manager.c:269 ../cli/src/settings.c:657 +#: ../cli/src/settings.c:659 ../cli/src/settings.c:727 +#: ../cli/src/settings.c:847 ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1130 ../cli/src/settings.c:1132 +#: ../cli/src/settings.c:1134 ../cli/src/settings.c:1135 #: ../cli/src/settings.c:1263 ../cli/src/settings.c:1264 #: ../cli/src/settings.c:1265 ../cli/src/settings.c:1266 -#: ../cli/src/settings.c:1267 ../cli/src/settings.c:1268 -#: ../cli/src/settings.c:1269 ../cli/src/settings.c:1270 -#: ../cli/src/settings.c:1271 ../cli/src/settings.c:1272 -#: ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1341 ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1353 ../cli/src/settings.c:1424 msgid "no" msgstr "nie" -#: ../cli/src/connections.c:518 +#: ../cli/src/connections.c:548 msgid "Connection list" msgstr "Lista połączeń" -#: ../cli/src/connections.c:531 ../cli/src/connections.c:1064 -#: ../cli/src/connections.c:1808 ../cli/src/connections.c:1823 -#: ../cli/src/connections.c:1832 ../cli/src/connections.c:1842 -#: ../cli/src/connections.c:1854 ../cli/src/connections.c:1949 -#: ../cli/src/connections.c:2051 ../cli/src/devices.c:1190 -#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314 -#: ../cli/src/devices.c:1322 ../cli/src/devices.c:1535 -#: ../cli/src/devices.c:1542 +#: ../cli/src/connections.c:561 ../cli/src/connections.c:1094 +#: ../cli/src/connections.c:1630 ../cli/src/connections.c:1645 +#: ../cli/src/connections.c:1654 ../cli/src/connections.c:1664 +#: ../cli/src/connections.c:1676 ../cli/src/connections.c:1784 +#: ../cli/src/connections.c:1886 ../cli/src/devices.c:1031 +#: ../cli/src/devices.c:1041 ../cli/src/devices.c:1159 +#: ../cli/src/devices.c:1167 ../cli/src/devices.c:1531 +#: ../cli/src/devices.c:1538 ../cli/src/devices.c:1552 +#: ../cli/src/devices.c:1559 ../cli/src/devices.c:1576 +#: ../cli/src/devices.c:1587 ../cli/src/devices.c:1808 +#: ../cli/src/devices.c:1815 #, c-format msgid "Error: %s argument is missing." msgstr "Błąd: brak parametru %s." -#: ../cli/src/connections.c:544 +#: ../cli/src/connections.c:574 #, c-format msgid "Error: %s - no such connection." msgstr "Błąd: %s - nie ma takiego połączenia." -#: ../cli/src/connections.c:550 ../cli/src/connections.c:1867 -#: ../cli/src/connections.c:1966 ../cli/src/connections.c:2058 -#: ../cli/src/devices.c:987 ../cli/src/devices.c:1067 -#: ../cli/src/devices.c:1214 ../cli/src/devices.c:1328 -#: ../cli/src/devices.c:1548 +#: ../cli/src/connections.c:580 ../cli/src/connections.c:1689 +#: ../cli/src/connections.c:1801 ../cli/src/connections.c:1893 +#: ../cli/src/devices.c:815 ../cli/src/devices.c:895 ../cli/src/devices.c:1055 +#: ../cli/src/devices.c:1173 ../cli/src/devices.c:1600 +#: ../cli/src/devices.c:1821 #, c-format msgid "Unknown parameter: %s\n" msgstr "Nieznany parametr: %s\n" -#: ../cli/src/connections.c:559 +#: ../cli/src/connections.c:589 #, c-format msgid "Error: no valid parameter specified." msgstr "Błąd: nie podano prawidłowego parametru." -#: ../cli/src/connections.c:574 ../cli/src/connections.c:2151 -#: ../cli/src/devices.c:1756 ../cli/src/network-manager.c:456 +#: ../cli/src/connections.c:604 ../cli/src/connections.c:1986 +#: ../cli/src/devices.c:2029 ../cli/src/network-manager.c:596 #, c-format msgid "Error: %s." msgstr "Błąd: %s." -#: ../cli/src/connections.c:587 +#: ../cli/src/connections.c:617 msgid "activating" msgstr "aktywowanie" -#: ../cli/src/connections.c:589 +#: ../cli/src/connections.c:619 msgid "activated" msgstr "aktywowano" -#: ../cli/src/connections.c:591 ../cli/src/devices.c:261 -msgid "deactivating" -msgstr "deaktywowanie" - -#: ../cli/src/connections.c:594 ../cli/src/connections.c:617 -#: ../cli/src/connections.c:1680 ../cli/src/devices.c:265 -#: ../cli/src/devices.c:784 ../cli/src/network-manager.c:111 -#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:176 -#: ../cli/src/network-manager.c:185 ../cli/src/network-manager.c:291 -#: ../cli/src/network-manager.c:346 ../cli/src/network-manager.c:384 -#: ../cli/src/network-manager.c:423 ../cli/src/settings.c:531 -#: ../cli/src/utils.c:499 ../src/main.c:443 ../src/main.c:462 -msgid "unknown" -msgstr "nieznane" - -#: ../cli/src/connections.c:603 +#: ../cli/src/connections.c:633 msgid "VPN connecting (prepare)" msgstr "Łączenie z VPN (przygotowanie)" -#: ../cli/src/connections.c:605 +#: ../cli/src/connections.c:635 msgid "VPN connecting (need authentication)" msgstr "Łączenie z VPN (wymaga uwierzytelnienia)" -#: ../cli/src/connections.c:607 +#: ../cli/src/connections.c:637 msgid "VPN connecting" msgstr "Łączenie z VPN" -#: ../cli/src/connections.c:609 +#: ../cli/src/connections.c:639 msgid "VPN connecting (getting IP configuration)" msgstr "Łączenie z VPN (pobieranie konfiguracji adresu IP)" -#: ../cli/src/connections.c:611 +#: ../cli/src/connections.c:641 msgid "VPN connected" msgstr "Połączono z VPN" -#: ../cli/src/connections.c:613 +#: ../cli/src/connections.c:643 msgid "VPN connection failed" msgstr "Połączenie z VPN się nie powiodło" -#: ../cli/src/connections.c:615 +#: ../cli/src/connections.c:645 msgid "VPN disconnected" msgstr "Rozłączono z VPN" -#: ../cli/src/connections.c:868 ../cli/src/connections.c:1092 +#: ../cli/src/connections.c:898 ../cli/src/connections.c:1122 #, c-format msgid "Error: 'con status': %s" msgstr "Błąd: \"con status\": %s" -#: ../cli/src/connections.c:870 ../cli/src/connections.c:1094 +#: ../cli/src/connections.c:900 ../cli/src/connections.c:1124 #, c-format msgid "Error: 'con status': %s; allowed fields: %s" msgstr "Błąd: \"con status\": %s; dozwolone pola: %s" -#: ../cli/src/connections.c:878 +#: ../cli/src/connections.c:908 msgid "Active connection details" msgstr "Szczegóły aktywnego połączenia" -#: ../cli/src/connections.c:1014 ../cli/src/connections.c:1882 -#: ../cli/src/connections.c:1981 ../cli/src/connections.c:2072 -#: ../cli/src/devices.c:1014 ../cli/src/devices.c:1076 -#: ../cli/src/devices.c:1229 ../cli/src/devices.c:1358 -#: ../cli/src/devices.c:1577 +#: ../cli/src/connections.c:1044 ../cli/src/connections.c:1704 +#: ../cli/src/connections.c:1816 ../cli/src/connections.c:1907 +#: ../cli/src/devices.c:842 ../cli/src/devices.c:904 ../cli/src/devices.c:1070 +#: ../cli/src/devices.c:1203 ../cli/src/devices.c:1622 +#: ../cli/src/devices.c:1850 ../cli/src/network-manager.c:311 #, c-format msgid "Error: Can't find out if NetworkManager is running: %s." msgstr "" "Błąd: nie można ustalić, czy usługa NetworkManager jest uruchomiona: %s." -#: ../cli/src/connections.c:1018 ../cli/src/connections.c:1886 -#: ../cli/src/connections.c:1985 ../cli/src/connections.c:2076 -#: ../cli/src/devices.c:1018 ../cli/src/devices.c:1080 -#: ../cli/src/devices.c:1233 ../cli/src/devices.c:1362 -#: ../cli/src/devices.c:1581 +#: ../cli/src/connections.c:1048 ../cli/src/connections.c:1708 +#: ../cli/src/connections.c:1820 ../cli/src/connections.c:1911 +#: ../cli/src/devices.c:846 ../cli/src/devices.c:908 ../cli/src/devices.c:1074 +#: ../cli/src/devices.c:1207 ../cli/src/devices.c:1626 +#: ../cli/src/devices.c:1854 ../cli/src/network-manager.c:315 #, c-format msgid "Error: NetworkManager is not running." msgstr "Błąd: usługa NetworkManager nie jest uruchomiona." -#: ../cli/src/connections.c:1050 +#: ../cli/src/connections.c:1080 msgid "Active connections" msgstr "Aktywne połączenia" -#: ../cli/src/connections.c:1075 +#: ../cli/src/connections.c:1105 #, c-format msgid "Error: '%s' is not an active connection." msgstr "Błąd: \"%s\" nie jest aktywnym połączeniem." -#: ../cli/src/connections.c:1080 +#: ../cli/src/connections.c:1110 #, c-format msgid "Error: unknown parameter: %s" msgstr "Błąd nieznany parametr: %s" -#: ../cli/src/connections.c:1564 +#: ../cli/src/connections.c:1217 #, c-format msgid "no active connection on device '%s'" msgstr "brak aktywnych połączeń na urządzeniu \"%s\"" -#: ../cli/src/connections.c:1572 +#: ../cli/src/connections.c:1225 #, c-format msgid "no active connection or device" msgstr "brak aktywnych połączeń na urządzeń" -#: ../cli/src/connections.c:1643 +#: ../cli/src/connections.c:1296 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "urządzenie \"%s\" nie jest zgodne z połączeniem \"%s\"" -#: ../cli/src/connections.c:1645 +#: ../cli/src/connections.c:1298 #, c-format msgid "no device found for connection '%s'" msgstr "nie odnaleziono urządzenia dla połączenia \"%s\"" -#: ../cli/src/connections.c:1656 +#: ../cli/src/connections.c:1309 msgid "unknown reason" msgstr "nieznany powód" -#: ../cli/src/connections.c:1658 +#: ../cli/src/connections.c:1311 msgid "none" msgstr "brak" -#: ../cli/src/connections.c:1660 +#: ../cli/src/connections.c:1313 msgid "the user was disconnected" msgstr "użytkownik został rozłączony" -#: ../cli/src/connections.c:1662 +#: ../cli/src/connections.c:1315 msgid "the base network connection was interrupted" msgstr "podstawowe połączenie sieciowe zostało przerwane" -#: ../cli/src/connections.c:1664 +#: ../cli/src/connections.c:1317 msgid "the VPN service stopped unexpectedly" msgstr "usługa VPN została nieoczekiwanie zatrzymana" -#: ../cli/src/connections.c:1666 +#: ../cli/src/connections.c:1319 msgid "the VPN service returned invalid configuration" msgstr "usługa VPN zwróciła nieprawidłową konfigurację" -#: ../cli/src/connections.c:1668 +#: ../cli/src/connections.c:1321 msgid "the connection attempt timed out" msgstr "próba połączenia przekroczyła czas oczekiwania" -#: ../cli/src/connections.c:1670 +#: ../cli/src/connections.c:1323 msgid "the VPN service did not start in time" msgstr "usługa VPN nie została uruchomiona w czasie" -#: ../cli/src/connections.c:1672 +#: ../cli/src/connections.c:1325 msgid "the VPN service failed to start" msgstr "uruchomienie usługi VPN się nie powiodło" -#: ../cli/src/connections.c:1674 +#: ../cli/src/connections.c:1327 msgid "no valid VPN secrets" msgstr "brak prawidłowych haseł VPN" -#: ../cli/src/connections.c:1676 +#: ../cli/src/connections.c:1329 msgid "invalid VPN secrets" msgstr "nieprawidłowe hasła VPN" -#: ../cli/src/connections.c:1678 +#: ../cli/src/connections.c:1331 msgid "the connection was removed" msgstr "połączenie zostało usunięte" -#: ../cli/src/connections.c:1692 -#, c-format -msgid "state: %s\n" -msgstr "stan: %s\n" - -#: ../cli/src/connections.c:1695 ../cli/src/connections.c:1721 +#: ../cli/src/connections.c:1348 ../cli/src/connections.c:1553 #, c-format -msgid "Connection activated\n" -msgstr "Aktywowano połączenie\n" +msgid "Connection successfully activated (D-Bus active path: %s)\n" +msgstr "" +"Połączenie zostało pomyślnie aktywowane (ścieżka aktywacji D-Bus: %s)\n" -#: ../cli/src/connections.c:1698 +#. Active connection failed and dissapeared, quit. +#: ../cli/src/connections.c:1353 ../cli/src/connections.c:1454 #, c-format msgid "Error: Connection activation failed." msgstr "Błąd: aktywacja połączenia się nie powiodła." -#: ../cli/src/connections.c:1717 +#: ../cli/src/connections.c:1378 #, c-format -msgid "state: %s (%d)\n" -msgstr "stan: %s (%d)\n" +msgid "VPN connection successfully activated (D-Bus active path: %s)\n" +msgstr "" +"Połączenie VPN zostało pomyślnie aktywowane (ścieżka aktywacji D-Bus: %s)\n" -#: ../cli/src/connections.c:1727 +#: ../cli/src/connections.c:1386 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Błąd: aktywacja połączenia się nie powiodła: %s." -#: ../cli/src/connections.c:1744 ../cli/src/devices.c:1136 +#: ../cli/src/connections.c:1483 ../cli/src/devices.c:964 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Błąd: przekroczono czas oczekiwania o %d sekund." -#: ../cli/src/connections.c:1757 +#: ../cli/src/connections.c:1544 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Błąd: aktywacja połączenia się nie powiodła: %s" -#: ../cli/src/connections.c:1763 -#, c-format -msgid "Active connection state: %s\n" -msgstr "Stan aktywnego połączenia: %s\n" - -#: ../cli/src/connections.c:1764 -#, c-format -msgid "Active connection path: %s\n" -msgstr "Ścieżka aktywnego połączenia: %s\n" - -#: ../cli/src/connections.c:1816 ../cli/src/connections.c:1957 -#: ../cli/src/connections.c:2085 +#: ../cli/src/connections.c:1638 ../cli/src/connections.c:1792 +#: ../cli/src/connections.c:1920 #, c-format msgid "Error: Unknown connection: %s." msgstr "Błąd: nieznane połączenie: %s." -#: ../cli/src/connections.c:1862 ../cli/src/devices.c:1208 +#: ../cli/src/connections.c:1684 ../cli/src/devices.c:1049 +#: ../cli/src/devices.c:1595 #, c-format msgid "Error: timeout value '%s' is not valid." msgstr "Błąd: wartość czasu oczekiwania \"%s\" jest nieprawidłowa." -#: ../cli/src/connections.c:1875 ../cli/src/connections.c:1974 -#: ../cli/src/connections.c:2065 +#: ../cli/src/connections.c:1697 ../cli/src/connections.c:1809 +#: ../cli/src/connections.c:1900 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Błąd: należy podać identyfikator lub UUID." -#: ../cli/src/connections.c:1903 +#: ../cli/src/connections.c:1729 #, c-format msgid "Error: No suitable device found: %s." msgstr "Błąd: nie odnaleziono odpowiedniego urządzenia: %s" -#: ../cli/src/connections.c:1905 +#: ../cli/src/connections.c:1731 #, c-format msgid "Error: No suitable device found." msgstr "Błąd: nie odnaleziono odpowiedniego urządzenia." -#: ../cli/src/connections.c:2010 +#: ../cli/src/connections.c:1845 #, c-format msgid "Warning: Connection not active\n" msgstr "Ostrzeżenie: połączenie nie jest aktywne\n" -#: ../cli/src/connections.c:2024 +#: ../cli/src/connections.c:1859 #, c-format msgid "Error: Connection deletion failed: %s" msgstr "Błąd: usunięcie połączenia się nie powiodło: %s" -#: ../cli/src/connections.c:2142 +#: ../cli/src/connections.c:1977 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Błąd: polecenie \"con\" \"%s\" jest nieprawidłowe." -#: ../cli/src/connections.c:2207 +#: ../cli/src/connections.c:2045 #, c-format msgid "Error: could not connect to D-Bus." msgstr "Błąd: nie można połączyć się z D-Bus." -#: ../cli/src/connections.c:2215 +#: ../cli/src/connections.c:2053 #, c-format msgid "Error: Could not get system settings." msgstr "Błąd: nie można uzyskać ustawień systemu." -#: ../cli/src/connections.c:2225 +#: ../cli/src/connections.c:2063 #, c-format msgid "Error: Can't obtain connections: settings service is not running." msgstr "" @@ -602,230 +854,230 @@ msgstr "" #. 0 #. 9 #. 3 -#: ../cli/src/devices.c:65 ../cli/src/devices.c:101 ../cli/src/devices.c:179 -#: ../cli/src/devices.c:195 +#: ../cli/src/devices.c:68 ../cli/src/devices.c:104 ../cli/src/devices.c:182 +#: ../cli/src/devices.c:198 msgid "DEVICE" msgstr "URZĄDZENIE" #. 0 -#: ../cli/src/devices.c:78 +#: ../cli/src/devices.c:81 msgid "CAPABILITIES" msgstr "MOŻLIWOŚCI" #. 1 -#: ../cli/src/devices.c:79 +#: ../cli/src/devices.c:82 msgid "WIFI-PROPERTIES" msgstr "WŁAŚCIWOŚCI-WIFI" #. 2 -#: ../cli/src/devices.c:80 +#: ../cli/src/devices.c:83 msgid "AP" msgstr "PUNKT-DOSTĘPOWY" #. 3 -#: ../cli/src/devices.c:81 +#: ../cli/src/devices.c:84 msgid "WIRED-PROPERTIES" msgstr "WŁAŚCIWOŚCI-POŁĄCZENIA-PRZEWODOWEGO" #. 4 -#: ../cli/src/devices.c:82 +#: ../cli/src/devices.c:85 msgid "WIMAX-PROPERTIES" msgstr "WŁAŚCIWOŚCI-WIMAX" #. 5 #. 0 -#: ../cli/src/devices.c:83 ../cli/src/devices.c:192 +#: ../cli/src/devices.c:86 ../cli/src/devices.c:195 msgid "NSP" msgstr "NSP" #. 6 -#: ../cli/src/devices.c:84 +#: ../cli/src/devices.c:87 msgid "IP4" msgstr "IP4" #. 7 -#: ../cli/src/devices.c:85 +#: ../cli/src/devices.c:88 msgid "DHCP4" msgstr "DHCP4" #. 8 -#: ../cli/src/devices.c:86 +#: ../cli/src/devices.c:89 msgid "IP6" msgstr "IP6" #. 9 -#: ../cli/src/devices.c:87 +#: ../cli/src/devices.c:90 msgid "DHCP6" msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:103 +#: ../cli/src/devices.c:106 msgid "VENDOR" msgstr "PRODUCENT" #. 3 -#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:107 msgid "PRODUCT" msgstr "PRODUKT" #. 4 -#: ../cli/src/devices.c:105 +#: ../cli/src/devices.c:108 msgid "DRIVER" msgstr "STEROWNIK" #. 5 -#: ../cli/src/devices.c:106 +#: ../cli/src/devices.c:109 msgid "HWADDR" msgstr "ADRES-SPRZĘTOWY" #. 7 -#: ../cli/src/devices.c:108 +#: ../cli/src/devices.c:111 msgid "REASON" msgstr "PRZYCZYNA" #. 8 -#: ../cli/src/devices.c:109 +#: ../cli/src/devices.c:112 msgid "UDI" msgstr "UDI" #. 9 -#: ../cli/src/devices.c:110 +#: ../cli/src/devices.c:113 msgid "IP-IFACE" msgstr "INTERFEJS-IP" #. 10 -#: ../cli/src/devices.c:111 +#: ../cli/src/devices.c:114 msgid "NM-MANAGED" msgstr "ZARZĄDZANE-PRZEZ-NM" #. 11 -#: ../cli/src/devices.c:112 +#: ../cli/src/devices.c:115 msgid "FIRMWARE-MISSING" msgstr "BRAK-OPROGRAMOWANIA-SPRZĘTOWEGO" #. 12 -#: ../cli/src/devices.c:113 +#: ../cli/src/devices.c:116 msgid "CONNECTION" msgstr "POŁĄCZENIE" #. 0 -#: ../cli/src/devices.c:122 +#: ../cli/src/devices.c:125 msgid "CARRIER-DETECT" msgstr "WYKRYWANIE-OPERATORA" #. 1 -#: ../cli/src/devices.c:123 +#: ../cli/src/devices.c:126 msgid "SPEED" msgstr "PRĘDKOŚĆ" #. 0 -#: ../cli/src/devices.c:132 +#: ../cli/src/devices.c:135 msgid "CARRIER" msgstr "OPERATOR" #. 0 -#: ../cli/src/devices.c:142 +#: ../cli/src/devices.c:145 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:143 +#: ../cli/src/devices.c:146 msgid "WPA" msgstr "WPA" #. 2 -#: ../cli/src/devices.c:144 +#: ../cli/src/devices.c:147 msgid "WPA2" msgstr "WPA2" #. 3 -#: ../cli/src/devices.c:145 +#: ../cli/src/devices.c:148 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:146 +#: ../cli/src/devices.c:149 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:156 +#: ../cli/src/devices.c:159 msgid "CTR-FREQ" msgstr "CZĘSTOTLIWOŚĆ-CTR" #. 1 -#: ../cli/src/devices.c:157 +#: ../cli/src/devices.c:160 msgid "RSSI" msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:158 +#: ../cli/src/devices.c:161 msgid "CINR" msgstr "CINR" #. 3 -#: ../cli/src/devices.c:159 +#: ../cli/src/devices.c:162 msgid "TX-POW" msgstr "TX-POW" #. 4 -#: ../cli/src/devices.c:160 +#: ../cli/src/devices.c:163 msgid "BSID" msgstr "BSID" #. 0 -#: ../cli/src/devices.c:170 +#: ../cli/src/devices.c:173 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:171 +#: ../cli/src/devices.c:174 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:172 +#: ../cli/src/devices.c:175 msgid "MODE" msgstr "TRYB" #. 3 -#: ../cli/src/devices.c:173 +#: ../cli/src/devices.c:176 msgid "FREQ" msgstr "CZĘSTOTLIWOŚĆ" #. 4 -#: ../cli/src/devices.c:174 +#: ../cli/src/devices.c:177 msgid "RATE" msgstr "OCENA" #. 5 #. 1 -#: ../cli/src/devices.c:175 ../cli/src/devices.c:193 +#: ../cli/src/devices.c:178 ../cli/src/devices.c:196 msgid "SIGNAL" msgstr "SYGNAŁ" #. 6 -#: ../cli/src/devices.c:176 +#: ../cli/src/devices.c:179 msgid "SECURITY" msgstr "ZABEZPIECZENIA" #. 7 -#: ../cli/src/devices.c:177 +#: ../cli/src/devices.c:180 msgid "WPA-FLAGS" msgstr "FLAGI-WPA" #. 8 -#: ../cli/src/devices.c:178 +#: ../cli/src/devices.c:181 msgid "RSN-FLAGS" msgstr "FLAGI-RSN" #. 10 #. 4 -#: ../cli/src/devices.c:180 ../cli/src/devices.c:196 +#: ../cli/src/devices.c:183 ../cli/src/devices.c:199 msgid "ACTIVE" msgstr "AKTYWNOŚĆ" -#: ../cli/src/devices.c:213 +#: ../cli/src/devices.c:218 #, c-format msgid "" "Usage: nmcli dev { COMMAND | help }\n" @@ -838,6 +1090,9 @@ msgid "" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" " wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] " +"[iface <iface>] [bssid <BSSID>] [name <name>]\n" +" [--private] [--nowait] [--timeout <timeout>]\n" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" @@ -851,462 +1106,281 @@ msgstr "" " list [iface <interfejs]\n" " disconnect iface <interfejs> [--nowait] [--timeout <czas>]\n" " wifi [list [iface <interfejs>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <hasło>] [wep-key-type key|phrase] " +"[iface <interfejs>] [bssid <BSSID>] [name <nazwa>]\n" +" [--private] [--nowait] [--timeout <czas>]\n" " wimax [list [iface <interfejs>] [nsp <nazwa>]]\n" -#: ../cli/src/devices.c:241 -msgid "unmanaged" -msgstr "niezarządzane" - -#: ../cli/src/devices.c:243 -msgid "unavailable" -msgstr "niedostępne" - -#: ../cli/src/devices.c:245 ../cli/src/network-manager.c:108 -msgid "disconnected" -msgstr "rozłączono" - -#: ../cli/src/devices.c:247 -msgid "connecting (prepare)" -msgstr "łączenie (przygotowanie)" - -#: ../cli/src/devices.c:249 -msgid "connecting (configuring)" -msgstr "łączenie (konfigurowanie)" - -#: ../cli/src/devices.c:251 -msgid "connecting (need authentication)" -msgstr "łączenie (wymaga uwierzytelnienia)" - -#: ../cli/src/devices.c:253 -msgid "connecting (getting IP configuration)" -msgstr "łączenie (pobieranie konfiguracji adresu IP)" - -#: ../cli/src/devices.c:255 -msgid "connecting (checking IP connectivity)" -msgstr "łączenie (sprawdzanie łączności IP)" - -#: ../cli/src/devices.c:257 -msgid "connecting (starting secondary connections)" -msgstr "łączenie (uruchamianie drugorzędnych połączeń)" - -#: ../cli/src/devices.c:259 ../cli/src/network-manager.c:104 -msgid "connected" -msgstr "połączono" - -#: ../cli/src/devices.c:263 -msgid "connection failed" -msgstr "połączenie się nie powiodło" - -#: ../cli/src/devices.c:274 -msgid "No reason given" -msgstr "Nie podano przyczyny" - -#: ../cli/src/devices.c:277 -msgid "Unknown error" -msgstr "Nieznany błąd" - -#: ../cli/src/devices.c:280 -msgid "Device is now managed" -msgstr "Urządzenie jest teraz zarządzane" - -#: ../cli/src/devices.c:283 -msgid "Device is now unmanaged" -msgstr "Urządzenie nie jest teraz zarządzane" - -#: ../cli/src/devices.c:286 -msgid "The device could not be readied for configuration" -msgstr "Urządzenie nie może zostać odczytane do konfiguracji" - -#: ../cli/src/devices.c:289 -msgid "" -"IP configuration could not be reserved (no available address, timeout, etc)" -msgstr "" -"Konfiguracja IP nie mogła zostać zastrzeżona (brak dostępnego adresu, czasu " -"oczekiwania itp.)" - -#: ../cli/src/devices.c:292 -msgid "The IP configuration is no longer valid" -msgstr "Konfiguracja IP nie jest już prawidłowa" - -#: ../cli/src/devices.c:295 -msgid "Secrets were required, but not provided" -msgstr "Hasła są wymagane, ale nie zostały podane" - -#: ../cli/src/devices.c:298 -msgid "802.1X supplicant disconnected" -msgstr "Suplikant 802.1X został rozłączony" - -#: ../cli/src/devices.c:301 -msgid "802.1X supplicant configuration failed" -msgstr "Konfiguracja suplikanta 802.1X się nie powiodła" - -#: ../cli/src/devices.c:304 -msgid "802.1X supplicant failed" -msgstr "Suplikant 802.1X się nie powiódł" - -#: ../cli/src/devices.c:307 -msgid "802.1X supplicant took too long to authenticate" -msgstr "Suplikant 802.1X za długo się uwierzytelniał" - -#: ../cli/src/devices.c:310 -msgid "PPP service failed to start" -msgstr "uruchomienie usługi PPP się nie powiodło" - -#: ../cli/src/devices.c:313 -msgid "PPP service disconnected" -msgstr "Rozłączono z usługą PPP" - #: ../cli/src/devices.c:316 -msgid "PPP failed" -msgstr "Usługa PPP się nie powiodła" - -#: ../cli/src/devices.c:319 -msgid "DHCP client failed to start" -msgstr "uruchomienie klienta DHCP się nie powiodło" - -#: ../cli/src/devices.c:322 -msgid "DHCP client error" -msgstr "Błąd klienta DHCP" - -#: ../cli/src/devices.c:325 -msgid "DHCP client failed" -msgstr "Klient DHCP się nie powiódł" - -#: ../cli/src/devices.c:328 -msgid "Shared connection service failed to start" -msgstr "Uruchomienie usługi współdzielenia połączenia się nie powiodło" - -#: ../cli/src/devices.c:331 -msgid "Shared connection service failed" -msgstr "Usługa współdzielenia połączenia się nie powiodła" - -#: ../cli/src/devices.c:334 -msgid "AutoIP service failed to start" -msgstr "Uruchomienie usługi AutoIP się nie powiodło" - -#: ../cli/src/devices.c:337 -msgid "AutoIP service error" -msgstr "Błąd usługi AutoIP" - -#: ../cli/src/devices.c:340 -msgid "AutoIP service failed" -msgstr "Usługa AutoIP się nie powiodła" - -#: ../cli/src/devices.c:343 -msgid "The line is busy" -msgstr "Linia jest zajęta" - -#: ../cli/src/devices.c:346 -msgid "No dial tone" -msgstr "Brak sygnału telefonicznego" - -#: ../cli/src/devices.c:349 -msgid "No carrier could be established" -msgstr "Nie można ustanowić operatora" - -#: ../cli/src/devices.c:352 -msgid "The dialing request timed out" -msgstr "Żądanie zadzwonienia przekroczyło czas oczekiwania" - -#: ../cli/src/devices.c:355 -msgid "The dialing attempt failed" -msgstr "Próba zadzwonienia się nie powiodła" - -#: ../cli/src/devices.c:358 -msgid "Modem initialization failed" -msgstr "Zainicjowanie modemu się nie powiodło" - -#: ../cli/src/devices.c:361 -msgid "Failed to select the specified APN" -msgstr "Wybranie podanego APN się nie powiodło" - -#: ../cli/src/devices.c:364 -msgid "Not searching for networks" -msgstr "Sieci nie są wyszukiwane" - -#: ../cli/src/devices.c:367 -msgid "Network registration denied" -msgstr "Odmówiono rejestracji sieci" - -#: ../cli/src/devices.c:370 -msgid "Network registration timed out" -msgstr "Przekroczono czas oczekiwania rejestracji sieci" - -#: ../cli/src/devices.c:373 -msgid "Failed to register with the requested network" -msgstr "Zarejestrowanie w żądanej sieci się nie powiodło" - -#: ../cli/src/devices.c:376 -msgid "PIN check failed" -msgstr "Sprawdzenie kodu PIN się nie powiodło" - -#: ../cli/src/devices.c:379 -msgid "Necessary firmware for the device may be missing" -msgstr "Brak wymaganego oprogramowania sprzętowego dla urządzenia" - -#: ../cli/src/devices.c:382 -msgid "The device was removed" -msgstr "Urządzenie zostało usunięte" - -#: ../cli/src/devices.c:385 -msgid "NetworkManager went to sleep" -msgstr "Usługa NetworkManager została uśpiona" - -#: ../cli/src/devices.c:388 -msgid "The device's active connection disappeared" -msgstr "Aktywne połączenie urządzenia zniknęło" - -#: ../cli/src/devices.c:391 -msgid "Device disconnected by user or client" -msgstr "Urządzenie zostało rozłączone przez użytkownika lub klienta" - -#: ../cli/src/devices.c:394 -msgid "Carrier/link changed" -msgstr "Zmieniono operatora/łącze" - -#: ../cli/src/devices.c:397 -msgid "The device's existing connection was assumed" -msgstr "Przyjęto istniejące połączenie urządzenia" - -#: ../cli/src/devices.c:400 -msgid "The supplicant is now available" -msgstr "Suplikant jest teraz dostępny" - -#: ../cli/src/devices.c:403 -msgid "The modem could not be found" -msgstr "Nie można odnaleźć modemu" - -#: ../cli/src/devices.c:406 -msgid "The Bluetooth connection failed or timed out" -msgstr "" -"Połączenie Bluetooth się nie powiodło lub przekroczyło czas oczekiwania" - -#: ../cli/src/devices.c:409 -msgid "GSM Modem's SIM card not inserted" -msgstr "Karta SIM modemu GSM nie została włożona" - -#: ../cli/src/devices.c:412 -msgid "GSM Modem's SIM PIN required" -msgstr "Wymagany jest kod PIN karty SIM modemu GSM" - -#: ../cli/src/devices.c:415 -msgid "GSM Modem's SIM PUK required" -msgstr "Wymagany jest kod PUK karty SIM modemu GSM" - -#: ../cli/src/devices.c:418 -msgid "GSM Modem's SIM wrong" -msgstr "Karta SIM modemu GSM jest błędna" - -#: ../cli/src/devices.c:421 -msgid "InfiniBand device does not support connected mode" -msgstr "Urządzenie InfiniBand nie obsługuje trybu połączonego" - -#: ../cli/src/devices.c:423 ../cli/src/devices.c:446 ../cli/src/devices.c:458 -#: ../cli/src/devices.c:578 ../cli/src/devices.c:622 -msgid "Unknown" -msgstr "Nieznane" - -#: ../cli/src/devices.c:491 msgid "(none)" msgstr "(brak)" -#: ../cli/src/devices.c:547 +#: ../cli/src/devices.c:372 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:548 +#: ../cli/src/devices.c:373 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:557 +#: ../cli/src/devices.c:382 msgid "Encrypted: " msgstr "Zaszyfrowane: " -#: ../cli/src/devices.c:562 +#: ../cli/src/devices.c:387 msgid "WEP " msgstr "WEP " -#: ../cli/src/devices.c:564 +#: ../cli/src/devices.c:389 msgid "WPA " msgstr "WPA " -#: ../cli/src/devices.c:566 +#: ../cli/src/devices.c:391 msgid "WPA2 " msgstr "WPA2 " -#: ../cli/src/devices.c:569 +#: ../cli/src/devices.c:394 msgid "Enterprise " msgstr "Enterprise " -#: ../cli/src/devices.c:578 +#: ../cli/src/devices.c:403 msgid "Ad-Hoc" msgstr "Ad-hoc" -#: ../cli/src/devices.c:578 +#: ../cli/src/devices.c:403 msgid "Infrastructure" msgstr "Infrastruktura" -#: ../cli/src/devices.c:613 +#: ../cli/src/devices.c:438 msgid "Home" msgstr "Dom" -#: ../cli/src/devices.c:616 +#: ../cli/src/devices.c:441 msgid "Partner" msgstr "Partner" -#: ../cli/src/devices.c:619 +#: ../cli/src/devices.c:444 msgid "Roaming" msgstr "Roaming" -#: ../cli/src/devices.c:691 +#: ../cli/src/devices.c:516 #, c-format msgid "Error: 'dev list': %s" msgstr "Błąd: \"dev list\": %s" -#: ../cli/src/devices.c:693 +#: ../cli/src/devices.c:518 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Błąd: \"dev list\": %s; dozwolone pola: %s" -#: ../cli/src/devices.c:702 +#: ../cli/src/devices.c:527 msgid "Device details" msgstr "Informacje o urządzeniu" -#: ../cli/src/devices.c:744 ../cli/src/devices.c:745 ../cli/src/devices.c:1152 -#: ../cli/src/utils.c:445 +#: ../cli/src/devices.c:572 ../cli/src/devices.c:573 ../cli/src/devices.c:990 +#: ../cli/src/utils.c:477 msgid "(unknown)" msgstr "(nieznane)" -#: ../cli/src/devices.c:753 +#: ../cli/src/devices.c:581 msgid "not connected" msgstr "niepołączono" -#: ../cli/src/devices.c:780 +#: ../cli/src/devices.c:608 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:853 +#: ../cli/src/devices.c:681 msgid "on" msgstr "włączone" -#: ../cli/src/devices.c:853 +#: ../cli/src/devices.c:681 msgid "off" msgstr "wyłączone" -#: ../cli/src/devices.c:1004 +#: ../cli/src/devices.c:832 #, c-format msgid "Error: 'dev status': %s" msgstr "Błąd: \"dev status\": %s" -#: ../cli/src/devices.c:1006 +#: ../cli/src/devices.c:834 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Błąd: \"dev status\": %s; dozwolone pola: %s" -#: ../cli/src/devices.c:1029 +#: ../cli/src/devices.c:857 msgid "Status of devices" msgstr "Stan urządzenia" -#: ../cli/src/devices.c:1060 +#: ../cli/src/devices.c:888 #, c-format msgid "Error: '%s' argument is missing." msgstr "Błąd: brak parametru \"%s\"." -#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253 -#: ../cli/src/devices.c:1390 ../cli/src/devices.c:1609 +#: ../cli/src/devices.c:929 ../cli/src/devices.c:1094 +#: ../cli/src/devices.c:1235 ../cli/src/devices.c:1882 #, c-format msgid "Error: Device '%s' not found." msgstr "Błąd: nie odnaleziono urządzenia \"%s\"." -#: ../cli/src/devices.c:1124 +#: ../cli/src/devices.c:952 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Powodzenie: urządzenie \"%s\" zostało rozłączone." -#: ../cli/src/devices.c:1149 +#: ../cli/src/devices.c:987 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Błąd: rozłączenie urządzenia \"%s\" (%s) się nie powiodło: %s" -#: ../cli/src/devices.c:1157 +#: ../cli/src/devices.c:1000 #, c-format -msgid "Device state: %d (%s)\n" -msgstr "Stan urządzenia: %d (%s)\n" +msgid "Device '%s' has been disconnected.\n" +msgstr "Urządzenie \"%s\" zostało rozłączone.\n" -#: ../cli/src/devices.c:1222 +#: ../cli/src/devices.c:1063 #, c-format msgid "Error: iface has to be specified." msgstr "Błąd: należy podać interfejs." -#: ../cli/src/devices.c:1348 +#: ../cli/src/devices.c:1193 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Błąd: \"dev wifi\": %s" -#: ../cli/src/devices.c:1350 +#: ../cli/src/devices.c:1195 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Błąd: \"dev wifi\": %s; dozwolone pola: %s" -#: ../cli/src/devices.c:1373 +#: ../cli/src/devices.c:1218 msgid "WiFi scan list" msgstr "Lista skanowania sieci WiFi" -#: ../cli/src/devices.c:1410 ../cli/src/devices.c:1464 +#: ../cli/src/devices.c:1255 ../cli/src/devices.c:1309 #, c-format msgid "Error: Access point with bssid '%s' not found." msgstr "Błąd: nie odnaleziono punktu dostępowego z BSSID \"%s\"." -#: ../cli/src/devices.c:1427 +#: ../cli/src/devices.c:1272 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Błąd: urządzenie \"%s\" nie jest urządzeniem WiFi." -#: ../cli/src/devices.c:1491 +#: ../cli/src/devices.c:1340 ../cli/src/devices.c:1386 +#, c-format +msgid "Connection with UUID '%s' created and activated on device '%s'\n" +msgstr "Utworzono i aktywowano połączenie o UUID \"%s\" na urządzeniu \"%s\"\n" + +#: ../cli/src/devices.c:1345 +#, c-format +msgid "Error: Connection activation failed: (%d) %s." +msgstr "Błąd: aktywacja połączenia się nie powiodła: (%d) %s." + +#: ../cli/src/devices.c:1370 +#, c-format +msgid "Error: Failed to add/activate new connection: (%d) %s" +msgstr "Błąd: dodanie/aktywacja nowego połączenia się nie powiodła: (%d) %s" + +#: ../cli/src/devices.c:1378 +#, c-format +msgid "Error: Failed to add/activate new connection: Unknown error" +msgstr "" +"Błąd: dodanie/aktywacja nowego połączenia się nie powiodła: nieznany błąd" + +#: ../cli/src/devices.c:1522 +#, c-format +msgid "Error: SSID or BSSID are missing." +msgstr "Błąd: brak SSID lub BSSID." + +#: ../cli/src/devices.c:1545 +#, c-format +msgid "Error: bssid argument value '%s' is not a valid BSSID." +msgstr "Błąd: wartość parametru BSSID \"%s\" nie jest prawidłowym BSSID." + +#: ../cli/src/devices.c:1569 +#, c-format +msgid "" +"Error: wep-key-type argument value '%s' is invalid, use 'key' or 'phrase'." +msgstr "" +"Błąd: wartość \"%s\" parametru wep-key-type jest nieprawidłowa, należy użyć " +"\"key\" lub \"phrase\"." + +#: ../cli/src/devices.c:1609 +#, c-format +msgid "Error: BSSID to connect to (%s) differs from bssid argument (%s)." +msgstr "Błąd: BSSID do połączenia (%s) różni się od parametru BSSID (%s)." + +#: ../cli/src/devices.c:1615 +#, c-format +msgid "Error: Parameter '%s' is neither SSID nor BSSID." +msgstr "Błąd: parametr \"%s\" nie wynosi SSID ani BSSID." + +#: ../cli/src/devices.c:1644 +#, c-format +msgid "Error: Device '%s' is not a Wi-Fi device." +msgstr "Błąd: urządzenie \"%s\" nie jest urządzeniem WiFi." + +#: ../cli/src/devices.c:1646 +#, c-format +msgid "Error: No Wi-Fi device found." +msgstr "Błąd: nie odnaleziono urządzenia WiFi." + +#: ../cli/src/devices.c:1664 +#, c-format +msgid "Error: No network with SSID '%s' found." +msgstr "Błąd: nie odnaleziono sieci z SSID \"%s\"." + +#: ../cli/src/devices.c:1666 +#, c-format +msgid "Error: No access point with BSSID '%s' found." +msgstr "Błąd: nie odnaleziono punktu dostępowego z BSSID \"%s\"." + +#: ../cli/src/devices.c:1764 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Błąd: polecenie \"dev wifi\" \"%s\" jest nieprawidłowe." -#: ../cli/src/devices.c:1567 +#: ../cli/src/devices.c:1840 #, c-format msgid "Error: 'dev wimax': %s" msgstr "Błąd: \"dev wimax\": %s" -#: ../cli/src/devices.c:1569 +#: ../cli/src/devices.c:1842 #, c-format msgid "Error: 'dev wimax': %s; allowed fields: %s" msgstr "Błąd: \"dev wimax\": %s; dozwolone pola: %s" -#: ../cli/src/devices.c:1592 +#: ../cli/src/devices.c:1865 msgid "WiMAX NSP list" msgstr "Lista NSP sieci WiMAX" -#: ../cli/src/devices.c:1629 +#: ../cli/src/devices.c:1902 #, c-format msgid "Error: NSP with name '%s' not found." msgstr "Błąd: nie odnaleziono NSP o nazwie \"%s\"." -#: ../cli/src/devices.c:1640 +#: ../cli/src/devices.c:1913 #, c-format msgid "Error: Device '%s' is not a WiMAX device." msgstr "Błąd: urządzenie \"%s\" nie jest urządzeniem WiMAX." -#: ../cli/src/devices.c:1671 +#: ../cli/src/devices.c:1944 #, c-format msgid "Error: Access point with nsp '%s' not found." msgstr "Błąd: nie odnaleziono punktu dostępowego z NSP \"%s\"." -#: ../cli/src/devices.c:1698 +#: ../cli/src/devices.c:1971 #, c-format msgid "Error: 'dev wimax' command '%s' is not valid." msgstr "Błąd: polecenie \"dev wimax\" \"%s\" jest nieprawidłowe." -#: ../cli/src/devices.c:1748 +#: ../cli/src/devices.c:2021 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Błąd: polecenie \"dev\" \"%s\" jest nieprawidłowe." @@ -1355,16 +1429,27 @@ msgstr "SPRZĘT-WIMAX" msgid "WIMAX" msgstr "WIMAX" -#: ../cli/src/network-manager.c:67 +#: ../cli/src/network-manager.c:62 +msgid "PERMISSION" +msgstr "UPRAWNIENIE" + +#. 0 +#: ../cli/src/network-manager.c:63 +msgid "VALUE" +msgstr "WARTOŚĆ" + +#: ../cli/src/network-manager.c:77 #, c-format msgid "" "Usage: nmcli nm { COMMAND | help }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan | " +"wimax }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan }\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" @@ -1374,153 +1459,173 @@ msgid "" msgstr "" "Użycie: nmcli nm { POLECENIE | help }\n" "\n" -" POLECENIE := { status | enable | sleep | wifi | wwan | wimax }\n" +" POLECENIE := { status | permissions | enable | sleep | wifi | wwan | " +"wimax }\n" "\n" -" POLECENIE := { status | enable | sleep | wifi | wwan }\n" +" POLECENIE := { status | permissions | enable | sleep | wifi | wwan }\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" " wwan [on|off]\n" " wimax [on|off]\n" -#: ../cli/src/network-manager.c:96 +#: ../cli/src/network-manager.c:108 msgid "asleep" msgstr "wstrzymane" -#: ../cli/src/network-manager.c:98 +#: ../cli/src/network-manager.c:110 msgid "connecting" msgstr "łączenie" -#: ../cli/src/network-manager.c:100 +#: ../cli/src/network-manager.c:112 msgid "connected (local only)" msgstr "połączono (tylko lokalnie)" -#: ../cli/src/network-manager.c:102 +#: ../cli/src/network-manager.c:114 msgid "connected (site only)" msgstr "połączono (tylko witryny)" -#: ../cli/src/network-manager.c:106 +#: ../cli/src/network-manager.c:118 msgid "disconnecting" msgstr "rozłączanie" -#: ../cli/src/network-manager.c:146 +#: ../cli/src/network-manager.c:158 #, c-format msgid "Error: 'nm status': %s" msgstr "Błąd: \"nm status\": %s" -#: ../cli/src/network-manager.c:148 +#: ../cli/src/network-manager.c:160 #, c-format msgid "Error: 'nm status': %s; allowed fields: %s" msgstr "Błąd: \"nm status\": %s; dozwolone pola: %s" #. create NMClient -#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:162 -#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 -#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 -#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 -#: ../cli/src/network-manager.c:421 +#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:174 +#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "enabled" msgstr "włączone" -#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:162 -#: ../cli/src/network-manager.c:163 ../cli/src/network-manager.c:164 -#: ../cli/src/network-manager.c:165 ../cli/src/network-manager.c:167 -#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:289 -#: ../cli/src/network-manager.c:344 ../cli/src/network-manager.c:382 -#: ../cli/src/network-manager.c:421 +#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:174 +#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "disabled" msgstr "wyłączone" -#: ../cli/src/network-manager.c:181 +#: ../cli/src/network-manager.c:193 msgid "NetworkManager status" msgstr "Stan usługi NetworkManager" #. Print header -#: ../cli/src/network-manager.c:184 +#: ../cli/src/network-manager.c:196 msgid "running" msgstr "uruchamiany" -#: ../cli/src/network-manager.c:184 +#: ../cli/src/network-manager.c:196 msgid "not running" msgstr "nieuruchomiony" -#: ../cli/src/network-manager.c:215 ../cli/src/utils.c:425 +#: ../cli/src/network-manager.c:271 +msgid "auth" +msgstr "uwierzytelnianie" + +#: ../cli/src/network-manager.c:301 +#, c-format +msgid "Error: 'nm permissions': %s" +msgstr "Błąd: \"nm permissions\": %s" + +#: ../cli/src/network-manager.c:303 +#, c-format +msgid "Error: 'nm permissions': %s; allowed fields: %s" +msgstr "Błąd: \"nm permissions\": %s; dozwolone pola: %s" + +#: ../cli/src/network-manager.c:324 +msgid "NetworkManager permissions" +msgstr "Uprawnienia usługi NetworkManager" + +#: ../cli/src/network-manager.c:350 ../cli/src/utils.c:457 #, c-format msgid "Error: Couldn't connect to system bus: %s" msgstr "Błąd: nie można połączyć się z magistralą systemową: %s" -#: ../cli/src/network-manager.c:226 +#: ../cli/src/network-manager.c:361 #, c-format msgid "Error: Couldn't create D-Bus object proxy." msgstr "Błąd: nie można utworzyć pośrednika obiektu usługi D-Bus." -#: ../cli/src/network-manager.c:232 +#: ../cli/src/network-manager.c:367 #, c-format msgid "Error in sleep: %s" msgstr "Błąd w poleceniu sleep: %s" -#: ../cli/src/network-manager.c:276 ../cli/src/network-manager.c:331 -#: ../cli/src/network-manager.c:369 ../cli/src/network-manager.c:408 +#: ../cli/src/network-manager.c:416 ../cli/src/network-manager.c:471 +#: ../cli/src/network-manager.c:509 ../cli/src/network-manager.c:548 #, c-format msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s" msgstr "" "Błąd: wartość \"%s\" opcji \"--fields\" jest nieprawidłowa; dozwolone pola: " "%s." -#: ../cli/src/network-manager.c:284 +#: ../cli/src/network-manager.c:424 msgid "Networking enabled" msgstr "Sieć jest włączona" -#: ../cli/src/network-manager.c:300 +#: ../cli/src/network-manager.c:440 #, c-format msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'." msgstr "" "Błąd: nieprawidłowy parametr \"enable\": \"%s\"; należy użyć \"true\" lub " "\"false\"." -#: ../cli/src/network-manager.c:310 +#: ../cli/src/network-manager.c:450 #, c-format msgid "Error: Sleeping status is not exported by NetworkManager." msgstr "Błąd: stan snu nie jest eksportowany przez usługę NetworkManager." -#: ../cli/src/network-manager.c:318 +#: ../cli/src/network-manager.c:458 #, c-format msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." msgstr "" "Błąd: nieprawidłowy parametr \"sleep\": \"%s\"; należy użyć \"true\" lub " "\"false\"." -#: ../cli/src/network-manager.c:339 +#: ../cli/src/network-manager.c:479 msgid "WiFi enabled" msgstr "WiFi jest włączone" -#: ../cli/src/network-manager.c:355 +#: ../cli/src/network-manager.c:495 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Błąd: nieprawidłowy parametr \"wifi\": \"%s\"." -#: ../cli/src/network-manager.c:377 +#: ../cli/src/network-manager.c:517 msgid "WWAN enabled" msgstr "WWAN jest włączone" -#: ../cli/src/network-manager.c:393 +#: ../cli/src/network-manager.c:533 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Błąd: nieprawidłowy parametr \"wwan\": \"%s\"." -#: ../cli/src/network-manager.c:416 +#: ../cli/src/network-manager.c:556 msgid "WiMAX enabled" msgstr "WiMAX jest włączone" -#: ../cli/src/network-manager.c:432 +#: ../cli/src/network-manager.c:572 #, c-format msgid "Error: invalid 'wimax' parameter: '%s'." msgstr "Błąd: nieprawidłowy parametr \"wimax\": \"%s\"." -#: ../cli/src/network-manager.c:445 +#: ../cli/src/network-manager.c:585 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Błąd: parametr \"nm\" \"%s\" jest nieprawidłowy." @@ -1635,88 +1740,104 @@ msgstr "Błąd: nie można utworzyć obiektu NMClient." msgid "Success" msgstr "Powodzenie" -#: ../cli/src/settings.c:465 +#: ../cli/src/settings.c:497 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (klucz-szesnastkowy-ascii))" -#: ../cli/src/settings.c:467 +#: ../cli/src/settings.c:499 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (104/128-bitowe hasło)" -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:502 #, c-format msgid "%d (unknown)" msgstr "%d (nieznane)" -#: ../cli/src/settings.c:496 +#: ../cli/src/settings.c:528 msgid "0 (unknown)" msgstr "0 (nieznane)" -#: ../cli/src/settings.c:502 +#: ../cli/src/settings.c:534 msgid "any, " msgstr "dowolne, " -#: ../cli/src/settings.c:504 +#: ../cli/src/settings.c:536 msgid "900 MHz, " msgstr "900 MHz, " -#: ../cli/src/settings.c:506 +#: ../cli/src/settings.c:538 msgid "1800 MHz, " msgstr "1800 MHz, " -#: ../cli/src/settings.c:508 +#: ../cli/src/settings.c:540 msgid "1900 MHz, " msgstr "1900 MHz, " -#: ../cli/src/settings.c:510 +#: ../cli/src/settings.c:542 msgid "850 MHz, " msgstr "850 MHz, " -#: ../cli/src/settings.c:512 +#: ../cli/src/settings.c:544 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:514 +#: ../cli/src/settings.c:546 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:516 +#: ../cli/src/settings.c:548 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:518 +#: ../cli/src/settings.c:550 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:520 +#: ../cli/src/settings.c:552 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:522 +#: ../cli/src/settings.c:554 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:524 +#: ../cli/src/settings.c:556 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:526 +#: ../cli/src/settings.c:558 msgid "WCDMA 3GPP UMTS 1900 MHz, " msgstr "WCDMA 3GPP UMTS 1900 MHz, " -#: ../cli/src/settings.c:528 +#: ../cli/src/settings.c:560 msgid "WCDMA 3GPP UMTS 2600 MHz, " msgstr "WCDMA 3GPP UMTS 2600 MHz, " -#: ../cli/src/settings.c:650 ../cli/src/settings.c:846 -#: ../cli/src/settings.c:1550 +#: ../cli/src/settings.c:578 +msgid "0 (NONE)" +msgstr "0 (BRAK)" + +#: ../cli/src/settings.c:584 +msgid "REORDER_HEADERS, " +msgstr "ZMIANA_KOLEJNOŚCI_NAGŁÓWKÓW, " + +#: ../cli/src/settings.c:586 +msgid "GVRP, " +msgstr "GVRP, " + +#: ../cli/src/settings.c:588 +msgid "LOOSE_BINDING, " +msgstr "LUŹNE_DOWIĄZANIE, " + +#: ../cli/src/settings.c:731 ../cli/src/settings.c:927 +#: ../cli/src/settings.c:1631 msgid "auto" msgstr "automatyczne" -#: ../cli/src/settings.c:840 ../cli/src/settings.c:843 -#: ../cli/src/settings.c:844 ../cli/src/utils.c:247 +#: ../cli/src/settings.c:921 ../cli/src/settings.c:924 +#: ../cli/src/settings.c:925 ../cli/src/utils.c:279 msgid "not set" msgstr "nieustawione" @@ -1730,40 +1851,40 @@ msgstr "Błąd podczas konwertowania adresu IPv4 \"0x%X\" na formę tekstową" msgid "Error converting IP6 address '%s' to text form" msgstr "Błąd podczas konwertowania adresu IPv6 \"%s\" na formę tekstową" -#: ../cli/src/utils.c:200 +#: ../cli/src/utils.c:232 #, c-format msgid "field '%s' has to be alone" msgstr "pole \"%s\" musi być same" -#: ../cli/src/utils.c:203 +#: ../cli/src/utils.c:235 #, c-format msgid "invalid field '%s'" msgstr "nieprawidłowe pole \"%s\"" -#: ../cli/src/utils.c:222 +#: ../cli/src/utils.c:254 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "Opcja \"--terse\" wymaga podania opcji \"--fields\"" -#: ../cli/src/utils.c:226 +#: ../cli/src/utils.c:258 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "" "Opcja \"--terse\" wymaga konkretnej wartości opcji \"--fields\", nie \"%s\"" -#: ../cli/src/utils.c:436 +#: ../cli/src/utils.c:468 #, c-format msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" msgstr "" "Błąd: nie można utworzyć pośrednika obiektu usługi D-Bus dla org.freedesktop." "DBus" -#: ../cli/src/utils.c:444 +#: ../cli/src/utils.c:476 #, c-format msgid "Error: NameHasOwner request failed: %s" msgstr "Błąd: żądanie NameHasOwner się nie powiodło: %s" -#: ../cli/src/utils.c:489 +#: ../cli/src/utils.c:521 #, c-format msgid "" "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --" @@ -1772,7 +1893,7 @@ msgstr "" "Ostrzeżenie: wersje programu nmcli (%s) i usługi NetworkManager (%s) się nie " "zgadzają. Użycie opcji --nocheck ukrywa ostrzeżenie.\n" -#: ../cli/src/utils.c:498 +#: ../cli/src/utils.c:530 #, c-format msgid "" "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force " @@ -2137,28 +2258,28 @@ msgstr "Nie można zweryfikować pliku PKCS#12: %d" msgid "Could not generate random data." msgstr "Nie można utworzyć losowych danych." -#: ../libnm-util/nm-utils.c:2034 +#: ../libnm-util/nm-utils.c:2040 #, c-format msgid "Not enough memory to make encryption key." msgstr "Brak wystarczającej ilości pamięci, aby utworzyć klucz szyfrowania." -#: ../libnm-util/nm-utils.c:2144 +#: ../libnm-util/nm-utils.c:2150 msgid "Could not allocate memory for PEM file creation." msgstr "Nie można przydzielić pamięci do utworzenia pliku PEM." -#: ../libnm-util/nm-utils.c:2156 +#: ../libnm-util/nm-utils.c:2162 #, c-format msgid "Could not allocate memory for writing IV to PEM file." msgstr "Nie można przydzielić pamięci do zapisywania IV do pliku PEM." -#: ../libnm-util/nm-utils.c:2168 +#: ../libnm-util/nm-utils.c:2174 #, c-format msgid "Could not allocate memory for writing encrypted key to PEM file." msgstr "" "Nie można przydzielić pamięci do zapisywania zaszyfrowanego klucza do pliku " "PEM." -#: ../libnm-util/nm-utils.c:2187 +#: ../libnm-util/nm-utils.c:2193 #, c-format msgid "Could not allocate memory for PEM file data." msgstr "Nie można przydzielić pamięci dla danych pliku PEM." @@ -2269,82 +2390,87 @@ msgid "System policy prevents modification of the persistent system hostname" msgstr "" "Polityka systemu powstrzymuje modyfikację trwałej systemowej nazwy komputera" -#: ../src/main.c:143 +#: ../src/main.c:156 +#, c-format +msgid "Failed to set signal mask: %d" +msgstr "Ustawienie maski sygnału nie powiodło: %d" + +#: ../src/main.c:163 #, c-format -msgid "Failed to initialize SIGTERM pipe: %d" -msgstr "Zainicjowanie potoku SIGTERM się nie powiodło: %d" +msgid "Failed to create signal handling thread: %d" +msgstr "Utworzenie wątku obsługującego sygnały się nie powiodło: %d" -#: ../src/main.c:174 +#: ../src/main.c:178 #, c-format msgid "Opening %s failed: %s\n" msgstr "Otwarcie %s się nie powiodło: %s\n" -#: ../src/main.c:180 +#: ../src/main.c:184 #, c-format msgid "Writing to %s failed: %s\n" msgstr "Zapisanie do %s się nie powiodło: %s\n" -#: ../src/main.c:185 +#: ../src/main.c:189 #, c-format msgid "Closing %s failed: %s\n" msgstr "Zamknięcie %s się nie powiodło: %s\n" -#: ../src/main.c:228 +#: ../src/main.c:232 #, c-format msgid "NetworkManager is already running (pid %ld)\n" msgstr "Usługa NetworkManager jest już uruchomiona (PID %ld)\n" -#: ../src/main.c:365 +#: ../src/main.c:372 msgid "Print NetworkManager version and exit" msgstr "Wyświetla wersję usługi NetworkManager i kończy działanie" -#: ../src/main.c:366 +#: ../src/main.c:373 msgid "Don't become a daemon" msgstr "Bez zmiany w usługę" -#: ../src/main.c:367 +#: ../src/main.c:374 msgid "Make all warnings fatal" msgstr "Wszystkie ostrzeżenia jako krytyczne" -#: ../src/main.c:368 +#: ../src/main.c:375 msgid "Specify the location of a PID file" msgstr "Podaje położenie pliku PID" -#: ../src/main.c:368 +#: ../src/main.c:375 msgid "filename" msgstr "nazwa pliku" -#: ../src/main.c:369 +#: ../src/main.c:376 msgid "State file location" msgstr "Położenie pliku stanu" -#: ../src/main.c:369 +#: ../src/main.c:376 msgid "/path/to/state.file" msgstr "/ścieżka/do/pliku.stanu" -#: ../src/main.c:370 +#: ../src/main.c:377 msgid "Config file location" msgstr "Położenie pliku konfiguracji" -#: ../src/main.c:370 +#: ../src/main.c:377 msgid "/path/to/config.file" msgstr "/ścieżka/do/pliku.konfiguracji" -#: ../src/main.c:371 +#: ../src/main.c:378 msgid "List of plugins separated by ','" msgstr "Lista wtyczek oddzielonych \",\"" -#: ../src/main.c:371 +#: ../src/main.c:378 msgid "plugin1,plugin2" msgstr "wtyczka1,wtyczka2" #. Translators: Do not translate the values in the square brackets -#: ../src/main.c:373 +#: ../src/main.c:380 msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" msgstr "Poziom dziennika: jeden z [ERR, WARN, INFO, DEBUG]" #. Translators: Do not translate the values in the square brackets -#: ../src/main.c:376 +#: ../src/main.c:383 msgid "" "Log domains separated by ',': any combination of\n" " [NONE,HW,RFKILL,ETHER,WIFI,BT,MB," @@ -2364,12 +2490,12 @@ msgstr "" "DEVICE,OLPC,WIMAX,\n" " INFINIBAND,FIREWALL]" -#: ../src/main.c:386 +#: ../src/main.c:396 #, c-format msgid "GModules are not supported on your platform!\n" msgstr "GModules nie są obsługiwane na tej platformie.\n" -#: ../src/main.c:405 +#: ../src/main.c:419 msgid "" "NetworkManager monitors all network connections and automatically\n" "chooses the best connection to use. It also allows the user to\n" @@ -2381,33 +2507,33 @@ msgstr "" "wybranie bezprzewodowych punktów dostępowych, z którymi karty\n" "sieciowe w komputerze powinny być powiązane." -#: ../src/main.c:411 +#: ../src/main.c:425 #, c-format msgid "Invalid option. Please use --help to see a list of valid options.\n" msgstr "" "Nieprawidłowa opcja. Parametr --help wyświetli listę prawidłowych opcji.\n" -#: ../src/main.c:421 +#: ../src/main.c:435 #, c-format msgid "You must be root to run NetworkManager!\n" msgstr "Tylko root może uruchamiać usługę NetworkManager.\n" -#: ../src/main.c:441 +#: ../src/main.c:456 #, c-format msgid "Failed to read configuration: (%d) %s\n" msgstr "Odczytanie konfiguracji się nie powiodło: (%d) %s\n" -#: ../src/main.c:452 +#: ../src/main.c:467 #, c-format msgid "%s. Please use --help to see a list of valid options.\n" msgstr "%s. Parametr --help wyświetli listę prawidłowych opcji.\n" -#: ../src/main.c:459 +#: ../src/main.c:474 #, c-format msgid "State file %s parsing failed: (%d) %s\n" msgstr "Przetworzenie pliku stanu %s się nie powiodło: (%d) %s\n" -#: ../src/main.c:476 +#: ../src/main.c:491 #, c-format msgid "Could not daemonize: %s [error %u]\n" msgstr "Nie można zmienić w usługę: %s [błąd %u]\n" @@ -2465,12 +2591,12 @@ msgstr "Nieznana domena dziennika \"%s\"" msgid "CDMA connection %d" msgstr "Połączenie CDMA %d" -#: ../src/modem-manager/nm-modem-gsm.c:512 ../src/nm-device-bt.c:321 +#: ../src/modem-manager/nm-modem-gsm.c:547 ../src/nm-device-bt.c:321 #, c-format msgid "GSM connection %d" msgstr "Połączenie GSM %d" -#: ../src/nm-device-bond.c:190 +#: ../src/nm-device-bond.c:191 #, c-format msgid "Bond connection %d" msgstr "Połączenie wiązane %d" @@ -2485,12 +2611,12 @@ msgstr "Połączenie PAN %d" msgid "DUN connection %d" msgstr "Połączenie DUN %d" -#: ../src/nm-device-ethernet.c:1433 +#: ../src/nm-device-ethernet.c:1326 #, c-format msgid "PPPoE connection %d" msgstr "Połączenie PPPoE %d" -#: ../src/nm-device-ethernet.c:1433 ../src/settings/nm-settings-utils.c:50 +#: ../src/nm-device-ethernet.c:1326 ../src/settings/nm-settings-utils.c:50 #, c-format msgid "Wired connection %d" msgstr "Połączenie przewodowe %d" @@ -2505,7 +2631,12 @@ msgstr "Połączenie InfiniBand %d" msgid "Mesh %d" msgstr "Sieć kratowa %d" -#: ../src/nm-manager.c:627 +#: ../src/nm-device-vlan.c:362 +#, c-format +msgid "VLAN connection %d" +msgstr "Połączenie VLAN %d" + +#: ../src/nm-manager.c:661 #, c-format msgid "VPN connection %d" msgstr "Połączenie VPN %d" @@ -2556,11 +2687,10 @@ msgstr "nie można dołączyć do grupy netlink: %s" msgid "error updating link cache: %s" msgstr "błąd podczas aktualizowania pamięci podręcznej połączenia: %s" -#: ../src/settings/plugins/ifcfg-rh/reader.c:92 -#: ../src/settings/plugins/ifnet/connection_parser.c:51 +#: ../src/settings/plugins/ifcfg-rh/reader.c:93 msgid "System" msgstr "Systemowe" -#: ../src/settings/plugins/ifcfg-rh/reader.c:3652 +#: ../src/settings/plugins/ifcfg-rh/reader.c:3634 msgid "Bond" msgstr "Wiązane" diff --git a/po/sl.po b/po/sl.po index 3a14c179..fa7d89e3 100644 --- a/po/sl.po +++ b/po/sl.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: NetworkManager master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-02-22 15:25+0000\n" -"PO-Revision-Date: 2012-02-22 20:38+0100\n" -"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n" +"POT-Creation-Date: 2012-06-11 15:25+0000\n" +"PO-Revision-Date: 2012-06-16 23:23+0100\n" +"Last-Translator: filmsi\n" "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,8 +28,8 @@ msgstr "" #: ../cli/src/common.c:44 #: ../cli/src/common.c:52 #: ../cli/src/common.c:63 -#: ../cli/src/connections.c:119 -#: ../cli/src/connections.c:153 +#: ../cli/src/connections.c:128 +#: ../cli/src/connections.c:162 msgid "GROUP" msgstr "SKUPINA" @@ -43,7 +43,7 @@ msgstr "NASLOV" #: ../cli/src/common.c:34 #: ../cli/src/common.c:54 msgid "ROUTE" -msgstr "POT POVEZAVE" +msgstr "POT-POVEZAVE" #. 2 #: ../cli/src/common.c:35 @@ -68,24 +68,314 @@ msgstr "WINS" msgid "OPTION" msgstr "MOŽNOST" +#: ../cli/src/common.c:366 +msgid "unmanaged" +msgstr "neupravljano" + +#: ../cli/src/common.c:368 +msgid "unavailable" +msgstr "ni razpoložljivo" + +#: ../cli/src/common.c:370 +#: ../cli/src/network-manager.c:120 +msgid "disconnected" +msgstr "povezava je prekinjena" + +#: ../cli/src/common.c:372 +msgid "connecting (prepare)" +msgstr "povezovanje (priprava)" + +#: ../cli/src/common.c:374 +msgid "connecting (configuring)" +msgstr "povezovanje (nastavljanje)" + +#: ../cli/src/common.c:376 +msgid "connecting (need authentication)" +msgstr "povezovanje (zahteva overitev)" + +#: ../cli/src/common.c:378 +msgid "connecting (getting IP configuration)" +msgstr "povezovanje (pridobivanje nastavitev IP)" + +#: ../cli/src/common.c:380 +msgid "connecting (checking IP connectivity)" +msgstr "povezovanje (preverjanje povezljivosti IP)" + +#: ../cli/src/common.c:382 +msgid "connecting (starting secondary connections)" +msgstr "povezovanje (zagon drugotnih povezav)" + +#: ../cli/src/common.c:384 +#: ../cli/src/network-manager.c:116 +msgid "connected" +msgstr "povezano" + +#: ../cli/src/common.c:386 +#: ../cli/src/connections.c:633 +msgid "deactivating" +msgstr "onemogočanje" + +#: ../cli/src/common.c:388 +msgid "connection failed" +msgstr "povezava je spodletela" + +#: ../cli/src/common.c:390 +#: ../cli/src/connections.c:636 +#: ../cli/src/connections.c:659 +#: ../cli/src/connections.c:1349 +#: ../cli/src/devices.c:622 +#: ../cli/src/network-manager.c:123 +#: ../cli/src/network-manager.c:185 +#: ../cli/src/network-manager.c:188 +#: ../cli/src/network-manager.c:197 +#: ../cli/src/network-manager.c:257 +#: ../cli/src/network-manager.c:273 +#: ../cli/src/network-manager.c:431 +#: ../cli/src/network-manager.c:486 +#: ../cli/src/network-manager.c:524 +#: ../cli/src/network-manager.c:563 +#: ../cli/src/settings.c:583 +#: ../cli/src/settings.c:611 +#: ../cli/src/utils.c:531 +#: ../src/main.c:462 +#: ../src/main.c:481 +msgid "unknown" +msgstr "neznano" + +#: ../cli/src/common.c:399 +msgid "No reason given" +msgstr "Razlog ni podan" + +#: ../cli/src/common.c:402 +msgid "Unknown error" +msgstr "Neznana napaka" + +#: ../cli/src/common.c:405 +msgid "Device is now managed" +msgstr "Naprava je zdaj upravljana" + +#: ../cli/src/common.c:408 +msgid "Device is now unmanaged" +msgstr "Naprava zdaj ni upravljana" + +#: ../cli/src/common.c:411 +msgid "The device could not be readied for configuration" +msgstr "Naprave ni mogoče pripraviti za prilagoditev" + +#: ../cli/src/common.c:414 +msgid "IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "Prilagoditve IP ni mogoče rezervirati (naslov ni na voljo, časovna prekoračitev itn.)" + +#: ../cli/src/common.c:417 +msgid "The IP configuration is no longer valid" +msgstr "Prilagoditev IP ni več veljavna" + +#: ../cli/src/common.c:420 +msgid "Secrets were required, but not provided" +msgstr "Zahtevana so bila ustrezna gesla, ki pa niso bila podana" + +#: ../cli/src/common.c:423 +msgid "802.1X supplicant disconnected" +msgstr "Prosilnik 802.1X je odklopljen" + +#: ../cli/src/common.c:426 +msgid "802.1X supplicant configuration failed" +msgstr "Prilagoditev prosilnika 802.1X je spodletela" + +#: ../cli/src/common.c:429 +msgid "802.1X supplicant failed" +msgstr "Prosilnik 802.1X je spodletel" + +#: ../cli/src/common.c:432 +msgid "802.1X supplicant took too long to authenticate" +msgstr "Prosilnik 802.1X je potreboval preveč časa za overjanje" + +#: ../cli/src/common.c:435 +msgid "PPP service failed to start" +msgstr "Storitev PPP ni uspešno zagnana" + +#: ../cli/src/common.c:438 +msgid "PPP service disconnected" +msgstr "Storitev PPP je prekinjena" + +#: ../cli/src/common.c:441 +msgid "PPP failed" +msgstr "PPP je spodletel" + +#: ../cli/src/common.c:444 +msgid "DHCP client failed to start" +msgstr "Začenjanje odjemalca DHCP je spodletelo" + +#: ../cli/src/common.c:447 +msgid "DHCP client error" +msgstr "Napaka odjemalca DHCP" + +#: ../cli/src/common.c:450 +msgid "DHCP client failed" +msgstr "Odjemalec DHCP je spodletel" + +#: ../cli/src/common.c:453 +msgid "Shared connection service failed to start" +msgstr "Začenjanje storitve souporabe povezave je spodletelo." + +#: ../cli/src/common.c:456 +msgid "Shared connection service failed" +msgstr "Storitev souporabe povezave je spodletela." + +#: ../cli/src/common.c:459 +msgid "AutoIP service failed to start" +msgstr "Začenjanje storitve AutoIP je spodletelo." + +#: ../cli/src/common.c:462 +msgid "AutoIP service error" +msgstr "Napaka storitve AutoIP" + +#: ../cli/src/common.c:465 +msgid "AutoIP service failed" +msgstr "Storitev AutoIP je spodletela" + +#: ../cli/src/common.c:468 +msgid "The line is busy" +msgstr "Povezava je zasedena" + +#: ../cli/src/common.c:471 +msgid "No dial tone" +msgstr "Ni klicnega signala" + +#: ../cli/src/common.c:474 +msgid "No carrier could be established" +msgstr "Ni mogoče vzpostaviti signala povezave" + +#: ../cli/src/common.c:477 +msgid "The dialing request timed out" +msgstr "Zahteva klicanja je časovno potekla" + +#: ../cli/src/common.c:480 +msgid "The dialing attempt failed" +msgstr "Poskus klicanja je spodletel" + +#: ../cli/src/common.c:483 +msgid "Modem initialization failed" +msgstr "Začenjanje modema spodletelo" + +#: ../cli/src/common.c:486 +msgid "Failed to select the specified APN" +msgstr "Izbor določenega APN je spodletel" + +#: ../cli/src/common.c:489 +msgid "Not searching for networks" +msgstr "Iskanje omrežij ni dejavno" + +#: ../cli/src/common.c:492 +msgid "Network registration denied" +msgstr "Vpis omrežja je zavrnjen" + +#: ../cli/src/common.c:495 +msgid "Network registration timed out" +msgstr "Čas za vpis omrežja je potekel" + +#: ../cli/src/common.c:498 +msgid "Failed to register with the requested network" +msgstr "Vpis v zahtevano omrežje je spodletel" + +#: ../cli/src/common.c:501 +msgid "PIN check failed" +msgstr "Preverjanje PIN je spodletelo" + +#: ../cli/src/common.c:504 +msgid "Necessary firmware for the device may be missing" +msgstr "Morda napravi manjka zahtevana strojna programska oprema" + +#: ../cli/src/common.c:507 +msgid "The device was removed" +msgstr "Naprava je bila odstranjena" + +#: ../cli/src/common.c:510 +msgid "NetworkManager went to sleep" +msgstr "NetworkManager je prešel v pripravljenost" + +#: ../cli/src/common.c:513 +msgid "The device's active connection disappeared" +msgstr "Dejavna povezava naprave je izginila" + +#: ../cli/src/common.c:516 +msgid "Device disconnected by user or client" +msgstr "Uporabnik ali odjemalec je odklopil napravo" + +#: ../cli/src/common.c:519 +msgid "Carrier/link changed" +msgstr "Signal/Povezava se je spremenila" + +#: ../cli/src/common.c:522 +msgid "The device's existing connection was assumed" +msgstr "Predviden je bila obstoječa povezava naprave" + +#: ../cli/src/common.c:525 +msgid "The supplicant is now available" +msgstr "Prosilnik je zdaj na voljo" + +#: ../cli/src/common.c:528 +msgid "The modem could not be found" +msgstr "Modema ni mogoče najti." + +#: ../cli/src/common.c:531 +msgid "The Bluetooth connection failed or timed out" +msgstr "Povezava Bluetooth je spodletela ali pa je časovno potekla" + +#: ../cli/src/common.c:534 +msgid "GSM Modem's SIM card not inserted" +msgstr "Kartica SIM modema GSM ni vstavljena" + +#: ../cli/src/common.c:537 +msgid "GSM Modem's SIM PIN required" +msgstr "Zahtevana je koda PIN kartice SIM modema GSM" + +#: ../cli/src/common.c:540 +msgid "GSM Modem's SIM PUK required" +msgstr "Zahtevana je koda PUK kartice SIM modema GSM" + +#: ../cli/src/common.c:543 +msgid "GSM Modem's SIM wrong" +msgstr "Kartica SIM modema GSM ni ustrezna" + +#: ../cli/src/common.c:546 +msgid "InfiniBand device does not support connected mode" +msgstr "Naprava InfiniBand ne podpira povezanega načina" + +#: ../cli/src/common.c:549 +msgid "A dependency of the connection failed" +msgstr "Odvisnost povezave je spodletela" + +#: ../cli/src/common.c:552 +msgid "A problem with the RFC 2684 Ethernet over ADSL bridge" +msgstr "Težava z Ethernet RFC 2684 prek mostu ADSL" + +#: ../cli/src/common.c:555 +#: ../cli/src/devices.c:274 +#: ../cli/src/devices.c:290 +#: ../cli/src/devices.c:410 +#: ../cli/src/devices.c:454 +msgid "Unknown" +msgstr "Neznano" + #. 0 #. used only for 'GENERAL' group listing -#: ../cli/src/connections.c:56 -#: ../cli/src/connections.c:120 -#: ../cli/src/devices.c:100 -#: ../cli/src/devices.c:121 -#: ../cli/src/devices.c:131 -#: ../cli/src/devices.c:141 -#: ../cli/src/devices.c:155 -#: ../cli/src/devices.c:169 -#: ../cli/src/devices.c:191 +#: ../cli/src/connections.c:59 +#: ../cli/src/connections.c:129 +#: ../cli/src/devices.c:105 +#: ../cli/src/devices.c:129 +#: ../cli/src/devices.c:139 +#: ../cli/src/devices.c:149 +#: ../cli/src/devices.c:163 +#: ../cli/src/devices.c:177 +#: ../cli/src/devices.c:199 msgid "NAME" msgstr "IME" #. 0 #. 1 -#: ../cli/src/connections.c:57 -#: ../cli/src/connections.c:121 +#: ../cli/src/connections.c:60 +#: ../cli/src/connections.c:130 msgid "UUID" msgstr "UUID" @@ -93,136 +383,138 @@ msgstr "UUID" #. 0 #. 1 #. 2 -#: ../cli/src/connections.c:58 -#: ../cli/src/connections.c:154 -#: ../cli/src/devices.c:66 -#: ../cli/src/devices.c:102 -#: ../cli/src/devices.c:194 +#: ../cli/src/connections.c:61 +#: ../cli/src/connections.c:163 +#: ../cli/src/devices.c:71 +#: ../cli/src/devices.c:107 +#: ../cli/src/devices.c:202 msgid "TYPE" msgstr "VRSTA" #. 2 -#: ../cli/src/connections.c:59 +#: ../cli/src/connections.c:62 msgid "TIMESTAMP" -msgstr "ČASOVNI ŽIG" +msgstr "ČASOVNI-ŽIG" #. 3 -#: ../cli/src/connections.c:60 +#: ../cli/src/connections.c:63 msgid "TIMESTAMP-REAL" -msgstr "REAL-ČASOVNI ŽIG" +msgstr "REAL-ČASOVNI-ŽIG" #. 4 -#: ../cli/src/connections.c:61 +#. 13 +#: ../cli/src/connections.c:64 +#: ../cli/src/devices.c:119 msgid "AUTOCONNECT" -msgstr "SAMODEJNO POVEŽI" +msgstr "SAMODEJNO-POVEŽI" #. 5 -#: ../cli/src/connections.c:62 +#: ../cli/src/connections.c:65 msgid "READONLY" -msgstr "SAMO ZA BRANJE" +msgstr "SAMO-ZA-BRANJE" #. 6 #. 8 #. 2 #. 11 #. 5 -#: ../cli/src/connections.c:63 -#: ../cli/src/connections.c:128 -#: ../cli/src/devices.c:68 -#: ../cli/src/devices.c:181 -#: ../cli/src/devices.c:197 +#: ../cli/src/connections.c:66 +#: ../cli/src/connections.c:137 +#: ../cli/src/devices.c:73 +#: ../cli/src/devices.c:189 +#: ../cli/src/devices.c:205 msgid "DBUS-PATH" msgstr "DBUS-POT" #. 2 -#: ../cli/src/connections.c:122 +#: ../cli/src/connections.c:131 msgid "DEVICES" msgstr "NAPRAVE" #. 3 #. 1 -#. 6 +#. 8 #. 1 -#: ../cli/src/connections.c:123 -#: ../cli/src/devices.c:67 -#: ../cli/src/devices.c:107 +#: ../cli/src/connections.c:132 +#: ../cli/src/devices.c:72 +#: ../cli/src/devices.c:114 #: ../cli/src/network-manager.c:39 msgid "STATE" msgstr "STANJE" #. 4 -#: ../cli/src/connections.c:124 +#: ../cli/src/connections.c:133 msgid "DEFAULT" msgstr "PRIVZETO" #. 5 -#: ../cli/src/connections.c:125 +#: ../cli/src/connections.c:134 msgid "DEFAULT6" msgstr "PRIVZETO6" #. 6 -#: ../cli/src/connections.c:126 +#: ../cli/src/connections.c:135 msgid "SPEC-OBJECT" msgstr "SPEC-PREDMET" #. 7 #. 1 -#: ../cli/src/connections.c:127 -#: ../cli/src/connections.c:141 +#: ../cli/src/connections.c:136 +#: ../cli/src/connections.c:150 msgid "VPN" msgstr "VPN" #. 9 -#: ../cli/src/connections.c:129 +#: ../cli/src/connections.c:138 msgid "CON-PATH" -msgstr "POT POVEZAVE" +msgstr "POT-POVEZAVE" #. 10 -#: ../cli/src/connections.c:130 +#: ../cli/src/connections.c:139 msgid "ZONE" -msgstr "ČASOVNI PAS" +msgstr "ČASOVNI-PAS" #. 11 -#: ../cli/src/connections.c:131 +#: ../cli/src/connections.c:140 msgid "MASTER-PATH" -msgstr "GLAVNA POT" +msgstr "GLAVNA-POT" -#: ../cli/src/connections.c:139 -#: ../cli/src/devices.c:77 +#: ../cli/src/connections.c:148 +#: ../cli/src/devices.c:82 msgid "GENERAL" msgstr "SPLOŠNO" #. 0 -#: ../cli/src/connections.c:140 +#: ../cli/src/connections.c:149 msgid "IP" msgstr "IP" #. 1 -#: ../cli/src/connections.c:155 +#: ../cli/src/connections.c:164 msgid "USERNAME" -msgstr "UPORABNIŠKO IME" +msgstr "UPORABNIŠKO-IME" #. 2 -#: ../cli/src/connections.c:156 +#: ../cli/src/connections.c:165 msgid "GATEWAY" msgstr "PREHOD" #. 3 -#: ../cli/src/connections.c:157 +#: ../cli/src/connections.c:166 msgid "BANNER" msgstr "PASICA" #. 4 -#: ../cli/src/connections.c:158 +#: ../cli/src/connections.c:167 msgid "VPN-STATE" msgstr "STANJE-VPN" #. 5 -#: ../cli/src/connections.c:159 +#: ../cli/src/connections.c:168 msgid "CFG" msgstr "CFG" -#: ../cli/src/connections.c:180 +#: ../cli/src/connections.c:190 #, c-format msgid "" "Usage: nmcli con { COMMAND | help }\n" @@ -245,460 +537,443 @@ msgstr "" " down id <id> | uuid <id>\n" " delete id <id> | uuid <id>\n" -#: ../cli/src/connections.c:234 -#: ../cli/src/connections.c:567 +#: ../cli/src/connections.c:249 +#: ../cli/src/connections.c:609 #, c-format msgid "Error: 'con list': %s" msgstr "Napaka: 'con list': %s" -#: ../cli/src/connections.c:236 -#: ../cli/src/connections.c:569 +#: ../cli/src/connections.c:251 +#: ../cli/src/connections.c:611 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Napaka: 'con list': %s; dovoljena so polja: %s" -#: ../cli/src/connections.c:244 +#: ../cli/src/connections.c:259 msgid "Connection details" msgstr "Podatki o povezavi" -#: ../cli/src/connections.c:442 +#: ../cli/src/connections.c:484 msgid "never" msgstr "nikoli" #. "CAPABILITIES" #. Print header #. "WIFI-PROPERTIES" -#: ../cli/src/connections.c:443 -#: ../cli/src/connections.c:444 -#: ../cli/src/connections.c:681 -#: ../cli/src/connections.c:682 -#: ../cli/src/connections.c:684 -#: ../cli/src/devices.c:586 -#: ../cli/src/devices.c:639 -#: ../cli/src/devices.c:750 -#: ../cli/src/devices.c:751 -#: ../cli/src/devices.c:783 -#: ../cli/src/devices.c:809 -#: ../cli/src/devices.c:810 -#: ../cli/src/devices.c:811 -#: ../cli/src/devices.c:812 -#: ../cli/src/devices.c:813 -#: ../cli/src/settings.c:576 -#: ../cli/src/settings.c:646 -#: ../cli/src/settings.c:766 -#: ../cli/src/settings.c:1048 -#: ../cli/src/settings.c:1049 -#: ../cli/src/settings.c:1051 -#: ../cli/src/settings.c:1053 -#: ../cli/src/settings.c:1054 -#: ../cli/src/settings.c:1182 -#: ../cli/src/settings.c:1183 -#: ../cli/src/settings.c:1184 -#: ../cli/src/settings.c:1185 -#: ../cli/src/settings.c:1260 -#: ../cli/src/settings.c:1261 -#: ../cli/src/settings.c:1262 -#: ../cli/src/settings.c:1263 -#: ../cli/src/settings.c:1264 -#: ../cli/src/settings.c:1265 -#: ../cli/src/settings.c:1266 -#: ../cli/src/settings.c:1267 -#: ../cli/src/settings.c:1268 -#: ../cli/src/settings.c:1269 -#: ../cli/src/settings.c:1270 -#: ../cli/src/settings.c:1271 -#: ../cli/src/settings.c:1272 -#: ../cli/src/settings.c:1343 +#: ../cli/src/connections.c:485 +#: ../cli/src/connections.c:486 +#: ../cli/src/connections.c:714 +#: ../cli/src/connections.c:715 +#: ../cli/src/connections.c:717 +#: ../cli/src/devices.c:418 +#: ../cli/src/devices.c:471 +#: ../cli/src/devices.c:587 +#: ../cli/src/devices.c:588 +#: ../cli/src/devices.c:589 +#: ../cli/src/devices.c:621 +#: ../cli/src/devices.c:647 +#: ../cli/src/devices.c:648 +#: ../cli/src/devices.c:649 +#: ../cli/src/devices.c:650 +#: ../cli/src/devices.c:651 +#: ../cli/src/network-manager.c:267 +#: ../cli/src/settings.c:677 +#: ../cli/src/settings.c:747 +#: ../cli/src/settings.c:867 +#: ../cli/src/settings.c:1149 +#: ../cli/src/settings.c:1150 +#: ../cli/src/settings.c:1152 +#: ../cli/src/settings.c:1154 +#: ../cli/src/settings.c:1155 +#: ../cli/src/settings.c:1283 +#: ../cli/src/settings.c:1284 +#: ../cli/src/settings.c:1285 +#: ../cli/src/settings.c:1286 +#: ../cli/src/settings.c:1361 +#: ../cli/src/settings.c:1362 +#: ../cli/src/settings.c:1363 +#: ../cli/src/settings.c:1364 +#: ../cli/src/settings.c:1365 +#: ../cli/src/settings.c:1366 +#: ../cli/src/settings.c:1367 +#: ../cli/src/settings.c:1368 +#: ../cli/src/settings.c:1369 +#: ../cli/src/settings.c:1370 +#: ../cli/src/settings.c:1371 +#: ../cli/src/settings.c:1372 +#: ../cli/src/settings.c:1373 +#: ../cli/src/settings.c:1444 msgid "yes" msgstr "da" -#: ../cli/src/connections.c:443 -#: ../cli/src/connections.c:444 -#: ../cli/src/connections.c:681 -#: ../cli/src/connections.c:682 -#: ../cli/src/connections.c:684 -#: ../cli/src/devices.c:586 -#: ../cli/src/devices.c:639 -#: ../cli/src/devices.c:750 -#: ../cli/src/devices.c:751 -#: ../cli/src/devices.c:783 -#: ../cli/src/devices.c:809 -#: ../cli/src/devices.c:810 -#: ../cli/src/devices.c:811 -#: ../cli/src/devices.c:812 -#: ../cli/src/devices.c:813 -#: ../cli/src/settings.c:576 -#: ../cli/src/settings.c:578 -#: ../cli/src/settings.c:646 -#: ../cli/src/settings.c:766 -#: ../cli/src/settings.c:1048 -#: ../cli/src/settings.c:1049 -#: ../cli/src/settings.c:1051 -#: ../cli/src/settings.c:1053 -#: ../cli/src/settings.c:1054 -#: ../cli/src/settings.c:1182 -#: ../cli/src/settings.c:1183 -#: ../cli/src/settings.c:1184 -#: ../cli/src/settings.c:1185 -#: ../cli/src/settings.c:1260 -#: ../cli/src/settings.c:1261 -#: ../cli/src/settings.c:1262 -#: ../cli/src/settings.c:1263 -#: ../cli/src/settings.c:1264 -#: ../cli/src/settings.c:1265 -#: ../cli/src/settings.c:1266 -#: ../cli/src/settings.c:1267 -#: ../cli/src/settings.c:1268 -#: ../cli/src/settings.c:1269 -#: ../cli/src/settings.c:1270 -#: ../cli/src/settings.c:1271 -#: ../cli/src/settings.c:1272 -#: ../cli/src/settings.c:1343 +#: ../cli/src/connections.c:485 +#: ../cli/src/connections.c:486 +#: ../cli/src/connections.c:714 +#: ../cli/src/connections.c:715 +#: ../cli/src/connections.c:717 +#: ../cli/src/devices.c:418 +#: ../cli/src/devices.c:471 +#: ../cli/src/devices.c:587 +#: ../cli/src/devices.c:588 +#: ../cli/src/devices.c:589 +#: ../cli/src/devices.c:621 +#: ../cli/src/devices.c:647 +#: ../cli/src/devices.c:648 +#: ../cli/src/devices.c:649 +#: ../cli/src/devices.c:650 +#: ../cli/src/devices.c:651 +#: ../cli/src/network-manager.c:269 +#: ../cli/src/settings.c:677 +#: ../cli/src/settings.c:679 +#: ../cli/src/settings.c:747 +#: ../cli/src/settings.c:867 +#: ../cli/src/settings.c:1149 +#: ../cli/src/settings.c:1150 +#: ../cli/src/settings.c:1152 +#: ../cli/src/settings.c:1154 +#: ../cli/src/settings.c:1155 +#: ../cli/src/settings.c:1283 +#: ../cli/src/settings.c:1284 +#: ../cli/src/settings.c:1285 +#: ../cli/src/settings.c:1286 +#: ../cli/src/settings.c:1361 +#: ../cli/src/settings.c:1362 +#: ../cli/src/settings.c:1363 +#: ../cli/src/settings.c:1364 +#: ../cli/src/settings.c:1365 +#: ../cli/src/settings.c:1366 +#: ../cli/src/settings.c:1367 +#: ../cli/src/settings.c:1368 +#: ../cli/src/settings.c:1369 +#: ../cli/src/settings.c:1370 +#: ../cli/src/settings.c:1371 +#: ../cli/src/settings.c:1372 +#: ../cli/src/settings.c:1373 +#: ../cli/src/settings.c:1444 msgid "no" msgstr "ne" -#: ../cli/src/connections.c:518 +#: ../cli/src/connections.c:560 msgid "Connection list" msgstr "Seznam povezav" -#: ../cli/src/connections.c:531 -#: ../cli/src/connections.c:1064 -#: ../cli/src/connections.c:1808 -#: ../cli/src/connections.c:1823 -#: ../cli/src/connections.c:1832 -#: ../cli/src/connections.c:1842 -#: ../cli/src/connections.c:1854 -#: ../cli/src/connections.c:1949 -#: ../cli/src/connections.c:2051 -#: ../cli/src/devices.c:1190 -#: ../cli/src/devices.c:1200 -#: ../cli/src/devices.c:1314 -#: ../cli/src/devices.c:1322 -#: ../cli/src/devices.c:1535 -#: ../cli/src/devices.c:1542 +#: ../cli/src/connections.c:573 +#: ../cli/src/connections.c:1110 +#: ../cli/src/connections.c:1646 +#: ../cli/src/connections.c:1661 +#: ../cli/src/connections.c:1670 +#: ../cli/src/connections.c:1680 +#: ../cli/src/connections.c:1692 +#: ../cli/src/connections.c:1800 +#: ../cli/src/connections.c:1902 +#: ../cli/src/devices.c:1041 +#: ../cli/src/devices.c:1051 +#: ../cli/src/devices.c:1169 +#: ../cli/src/devices.c:1177 +#: ../cli/src/devices.c:1541 +#: ../cli/src/devices.c:1548 +#: ../cli/src/devices.c:1562 +#: ../cli/src/devices.c:1569 +#: ../cli/src/devices.c:1586 +#: ../cli/src/devices.c:1597 +#: ../cli/src/devices.c:1818 +#: ../cli/src/devices.c:1825 #, c-format msgid "Error: %s argument is missing." msgstr "Napaka: manjka argument %s." -#: ../cli/src/connections.c:544 +#: ../cli/src/connections.c:586 #, c-format msgid "Error: %s - no such connection." msgstr "Napaka: %s - povezava ne obstaja." -#: ../cli/src/connections.c:550 -#: ../cli/src/connections.c:1867 -#: ../cli/src/connections.c:1966 -#: ../cli/src/connections.c:2058 -#: ../cli/src/devices.c:987 -#: ../cli/src/devices.c:1067 -#: ../cli/src/devices.c:1214 -#: ../cli/src/devices.c:1328 -#: ../cli/src/devices.c:1548 +#: ../cli/src/connections.c:592 +#: ../cli/src/connections.c:1705 +#: ../cli/src/connections.c:1817 +#: ../cli/src/connections.c:1909 +#: ../cli/src/devices.c:825 +#: ../cli/src/devices.c:905 +#: ../cli/src/devices.c:1065 +#: ../cli/src/devices.c:1183 +#: ../cli/src/devices.c:1610 +#: ../cli/src/devices.c:1831 #, c-format msgid "Unknown parameter: %s\n" msgstr "Neznan parameter: %s\n" -#: ../cli/src/connections.c:559 +#: ../cli/src/connections.c:601 #, c-format msgid "Error: no valid parameter specified." msgstr "Napaka: ni podanega veljavnega parametra." -#: ../cli/src/connections.c:574 -#: ../cli/src/connections.c:2151 -#: ../cli/src/devices.c:1756 -#: ../cli/src/network-manager.c:456 +#: ../cli/src/connections.c:616 +#: ../cli/src/connections.c:2002 +#: ../cli/src/devices.c:2039 +#: ../cli/src/network-manager.c:596 #, c-format msgid "Error: %s." msgstr "Napaka: %s." -#: ../cli/src/connections.c:587 +#: ../cli/src/connections.c:629 msgid "activating" msgstr "začenjanje" -#: ../cli/src/connections.c:589 +#: ../cli/src/connections.c:631 msgid "activated" msgstr "začeto" -#: ../cli/src/connections.c:591 -#: ../cli/src/devices.c:261 -msgid "deactivating" -msgstr "onemogočanje" - -#: ../cli/src/connections.c:594 -#: ../cli/src/connections.c:617 -#: ../cli/src/connections.c:1680 -#: ../cli/src/devices.c:265 -#: ../cli/src/devices.c:784 -#: ../cli/src/network-manager.c:111 -#: ../cli/src/network-manager.c:173 -#: ../cli/src/network-manager.c:176 -#: ../cli/src/network-manager.c:185 -#: ../cli/src/network-manager.c:291 -#: ../cli/src/network-manager.c:346 -#: ../cli/src/network-manager.c:384 -#: ../cli/src/network-manager.c:423 -#: ../cli/src/settings.c:531 -#: ../cli/src/utils.c:499 -#: ../src/main.c:450 -#: ../src/main.c:469 -msgid "unknown" -msgstr "neznano" - -#: ../cli/src/connections.c:603 +#: ../cli/src/connections.c:645 msgid "VPN connecting (prepare)" msgstr "VPN povezovanje (priprava)" -#: ../cli/src/connections.c:605 +#: ../cli/src/connections.c:647 msgid "VPN connecting (need authentication)" msgstr "VPN povezovanje (zahtevana je overitev)" -#: ../cli/src/connections.c:607 +#: ../cli/src/connections.c:649 msgid "VPN connecting" msgstr "VPN povezovanje" -#: ../cli/src/connections.c:609 +#: ../cli/src/connections.c:651 msgid "VPN connecting (getting IP configuration)" msgstr "VPN povezovanje (pridobivanje nastavitev IP)" -#: ../cli/src/connections.c:611 +#: ../cli/src/connections.c:653 msgid "VPN connected" msgstr "Povezan v VPN" -#: ../cli/src/connections.c:613 +#: ../cli/src/connections.c:655 msgid "VPN connection failed" msgstr "Povezava z VPN je spodletela" -#: ../cli/src/connections.c:615 +#: ../cli/src/connections.c:657 msgid "VPN disconnected" msgstr "Povezava z VPN je prekinjena" -#: ../cli/src/connections.c:868 -#: ../cli/src/connections.c:1092 +#: ../cli/src/connections.c:710 +#: ../cli/src/connections.c:720 +msgid "N/A" +msgstr "ni na voljo" + +#: ../cli/src/connections.c:914 +#: ../cli/src/connections.c:1138 #, c-format msgid "Error: 'con status': %s" msgstr "Napaka: 'con status': %s" -#: ../cli/src/connections.c:870 -#: ../cli/src/connections.c:1094 +#: ../cli/src/connections.c:916 +#: ../cli/src/connections.c:1140 #, c-format msgid "Error: 'con status': %s; allowed fields: %s" msgstr "Napaka: 'con status': %s; dovoljena polja: %s" -#: ../cli/src/connections.c:878 +#: ../cli/src/connections.c:924 msgid "Active connection details" msgstr "Podrobnosti dejavne povezave" -#: ../cli/src/connections.c:1014 -#: ../cli/src/connections.c:1882 -#: ../cli/src/connections.c:1981 -#: ../cli/src/connections.c:2072 -#: ../cli/src/devices.c:1014 -#: ../cli/src/devices.c:1076 -#: ../cli/src/devices.c:1229 -#: ../cli/src/devices.c:1358 -#: ../cli/src/devices.c:1577 +#: ../cli/src/connections.c:1060 +#: ../cli/src/connections.c:1720 +#: ../cli/src/connections.c:1832 +#: ../cli/src/connections.c:1923 +#: ../cli/src/devices.c:852 +#: ../cli/src/devices.c:914 +#: ../cli/src/devices.c:1080 +#: ../cli/src/devices.c:1213 +#: ../cli/src/devices.c:1632 +#: ../cli/src/devices.c:1860 +#: ../cli/src/network-manager.c:311 #, c-format msgid "Error: Can't find out if NetworkManager is running: %s." msgstr "Napaka: ni mogoče ugotoviti, ali se program NetworkManager izvaja: %s." -#: ../cli/src/connections.c:1018 -#: ../cli/src/connections.c:1886 -#: ../cli/src/connections.c:1985 -#: ../cli/src/connections.c:2076 -#: ../cli/src/devices.c:1018 -#: ../cli/src/devices.c:1080 -#: ../cli/src/devices.c:1233 -#: ../cli/src/devices.c:1362 -#: ../cli/src/devices.c:1581 +#: ../cli/src/connections.c:1064 +#: ../cli/src/connections.c:1724 +#: ../cli/src/connections.c:1836 +#: ../cli/src/connections.c:1927 +#: ../cli/src/devices.c:856 +#: ../cli/src/devices.c:918 +#: ../cli/src/devices.c:1084 +#: ../cli/src/devices.c:1217 +#: ../cli/src/devices.c:1636 +#: ../cli/src/devices.c:1864 +#: ../cli/src/network-manager.c:315 #, c-format msgid "Error: NetworkManager is not running." msgstr "Napaka: program NetworkManager ni zagnan." -#: ../cli/src/connections.c:1050 +#: ../cli/src/connections.c:1096 msgid "Active connections" msgstr "Dejavne povezave" -#: ../cli/src/connections.c:1075 +#: ../cli/src/connections.c:1121 #, c-format msgid "Error: '%s' is not an active connection." msgstr "Napaka: '%s' ni dejavna povezava." -#: ../cli/src/connections.c:1080 +#: ../cli/src/connections.c:1126 #, c-format msgid "Error: unknown parameter: %s" msgstr "Napaka: neznan parameter: %s" -#: ../cli/src/connections.c:1564 +#: ../cli/src/connections.c:1233 #, c-format msgid "no active connection on device '%s'" msgstr "ni dejavnih povezav na napravi '%s'" -#: ../cli/src/connections.c:1572 +#: ../cli/src/connections.c:1241 #, c-format msgid "no active connection or device" msgstr "ni dejavne povezave ali naprave" -#: ../cli/src/connections.c:1643 +#: ../cli/src/connections.c:1312 #, c-format msgid "device '%s' not compatible with connection '%s'" msgstr "naprava '%s' ni združljiva s povezavo '%s'" -#: ../cli/src/connections.c:1645 +#: ../cli/src/connections.c:1314 #, c-format msgid "no device found for connection '%s'" msgstr "ni naprave za povezavo '%s'" -#: ../cli/src/connections.c:1656 +#: ../cli/src/connections.c:1325 msgid "unknown reason" msgstr "neznan vzrok" -#: ../cli/src/connections.c:1658 +#: ../cli/src/connections.c:1327 msgid "none" msgstr "brez" -#: ../cli/src/connections.c:1660 +#: ../cli/src/connections.c:1329 msgid "the user was disconnected" msgstr "povezava z uporabnikom je prekinjena" -#: ../cli/src/connections.c:1662 +#: ../cli/src/connections.c:1331 msgid "the base network connection was interrupted" msgstr "osnovna omrežna povezava je bila prekinjena" -#: ../cli/src/connections.c:1664 +#: ../cli/src/connections.c:1333 msgid "the VPN service stopped unexpectedly" msgstr "storitev VPN je nepričakovano zaustavljena" -#: ../cli/src/connections.c:1666 +#: ../cli/src/connections.c:1335 msgid "the VPN service returned invalid configuration" msgstr "storitev VPN je vrnila neveljavne nastavitve" -#: ../cli/src/connections.c:1668 +#: ../cli/src/connections.c:1337 msgid "the connection attempt timed out" msgstr "poskus povezave je časovno potekel" -#: ../cli/src/connections.c:1670 +#: ../cli/src/connections.c:1339 msgid "the VPN service did not start in time" msgstr "storitev VPN se ni pravočasno začela" -#: ../cli/src/connections.c:1672 +#: ../cli/src/connections.c:1341 msgid "the VPN service failed to start" msgstr "storitev VPN ni uspešno začeta" -#: ../cli/src/connections.c:1674 +#: ../cli/src/connections.c:1343 msgid "no valid VPN secrets" msgstr "ni veljavnih VPN skrivnosti" -#: ../cli/src/connections.c:1676 +#: ../cli/src/connections.c:1345 msgid "invalid VPN secrets" msgstr "neveljavne VPN skrivnosti" -#: ../cli/src/connections.c:1678 +#: ../cli/src/connections.c:1347 msgid "the connection was removed" msgstr "povezava je odstranjena" -#: ../cli/src/connections.c:1692 -#, c-format -msgid "state: %s\n" -msgstr "stanje: %s\n" - -#: ../cli/src/connections.c:1695 -#: ../cli/src/connections.c:1721 +#: ../cli/src/connections.c:1364 +#: ../cli/src/connections.c:1569 #, c-format -msgid "Connection activated\n" -msgstr "Povezava je omogočena\n" +msgid "Connection successfully activated (D-Bus active path: %s)\n" +msgstr "Povezava uspešno aktivirana (dejavna pot D-Bus: %s)\n" -#: ../cli/src/connections.c:1698 +#. Active connection failed and dissapeared, quit. +#: ../cli/src/connections.c:1369 +#: ../cli/src/connections.c:1470 #, c-format msgid "Error: Connection activation failed." msgstr "Napaka: začenjanje povezave ni uspelo." -#: ../cli/src/connections.c:1717 +#: ../cli/src/connections.c:1394 #, c-format -msgid "state: %s (%d)\n" -msgstr "stanje: %s (%d)\n" +msgid "VPN connection successfully activated (D-Bus active path: %s)\n" +msgstr "Povezava VPN uspešno aktivirana (dejavna pot D-Bus: %s)\n" -#: ../cli/src/connections.c:1727 +#: ../cli/src/connections.c:1402 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Napaka: začenjanje povezave ni uspelo: %s." -#: ../cli/src/connections.c:1744 -#: ../cli/src/devices.c:1136 +#: ../cli/src/connections.c:1499 +#: ../cli/src/devices.c:974 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Napaka: časovna omejitev %d sekund je potekla." -#: ../cli/src/connections.c:1757 +#: ../cli/src/connections.c:1560 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Napaka: začenjanje povezave ni uspelo: %s." -#: ../cli/src/connections.c:1763 -#, c-format -msgid "Active connection state: %s\n" -msgstr "Stanje dejavne povezave: %s\n" - -#: ../cli/src/connections.c:1764 -#, c-format -msgid "Active connection path: %s\n" -msgstr "Pot dejavne povezave: %s\n" - -#: ../cli/src/connections.c:1816 -#: ../cli/src/connections.c:1957 -#: ../cli/src/connections.c:2085 +#: ../cli/src/connections.c:1654 +#: ../cli/src/connections.c:1808 +#: ../cli/src/connections.c:1936 #, c-format msgid "Error: Unknown connection: %s." msgstr "Napaka: neznana povezava: %s." -#: ../cli/src/connections.c:1862 -#: ../cli/src/devices.c:1208 +#: ../cli/src/connections.c:1700 +#: ../cli/src/devices.c:1059 +#: ../cli/src/devices.c:1605 #, c-format msgid "Error: timeout value '%s' is not valid." msgstr "Napaka: vrednost časovne omejitve '%s' ni veljavna." -#: ../cli/src/connections.c:1875 -#: ../cli/src/connections.c:1974 -#: ../cli/src/connections.c:2065 +#: ../cli/src/connections.c:1713 +#: ../cli/src/connections.c:1825 +#: ../cli/src/connections.c:1916 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Napaka: podatek id ali uuid ni naveden." -#: ../cli/src/connections.c:1903 +#: ../cli/src/connections.c:1745 #, c-format msgid "Error: No suitable device found: %s." msgstr "Napaka: ni mogoče najti ustrezne naprave: %s." -#: ../cli/src/connections.c:1905 +#: ../cli/src/connections.c:1747 #, c-format msgid "Error: No suitable device found." msgstr "Napaka: ni mogoče najti ustrezne naprave." -#: ../cli/src/connections.c:2010 +#: ../cli/src/connections.c:1861 #, c-format msgid "Warning: Connection not active\n" msgstr "Opozorilo: povezava ni dejavna\n" -#: ../cli/src/connections.c:2024 +#: ../cli/src/connections.c:1875 #, c-format msgid "Error: Connection deletion failed: %s" msgstr "Napaka: brisanje povezave ni uspelo: %s" -#: ../cli/src/connections.c:2142 +#: ../cli/src/connections.c:1993 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Napaka: ukaz 'con' '%s' ni veljaven." -#: ../cli/src/connections.c:2207 +#: ../cli/src/connections.c:2061 #, c-format msgid "Error: could not connect to D-Bus." msgstr "Napaka: povezava z D-Bus ni mogoča." -#: ../cli/src/connections.c:2215 +#: ../cli/src/connections.c:2069 #, c-format msgid "Error: Could not get system settings." msgstr "Napaka: ni mogoče pridobiti sistemskih nastavitev." -#: ../cli/src/connections.c:2225 +#: ../cli/src/connections.c:2079 #, c-format msgid "Error: Can't obtain connections: settings service is not running." msgstr "Napaka: ni mogoče pridobiti povezav: storitev nastavitev ni zagnana." @@ -706,235 +981,247 @@ msgstr "Napaka: ni mogoče pridobiti povezav: storitev nastavitev ni zagnana." #. 0 #. 9 #. 3 -#: ../cli/src/devices.c:65 -#: ../cli/src/devices.c:101 -#: ../cli/src/devices.c:179 -#: ../cli/src/devices.c:195 +#: ../cli/src/devices.c:70 +#: ../cli/src/devices.c:106 +#: ../cli/src/devices.c:187 +#: ../cli/src/devices.c:203 msgid "DEVICE" msgstr "NAPRAVA" #. 0 -#: ../cli/src/devices.c:78 +#: ../cli/src/devices.c:83 msgid "CAPABILITIES" msgstr "ZMOŽNOSTI" #. 1 -#: ../cli/src/devices.c:79 +#: ../cli/src/devices.c:84 msgid "WIFI-PROPERTIES" msgstr "WIFI-LASTNOSTI" #. 2 -#: ../cli/src/devices.c:80 +#: ../cli/src/devices.c:85 msgid "AP" msgstr "AP" #. 3 -#: ../cli/src/devices.c:81 +#: ../cli/src/devices.c:86 msgid "WIRED-PROPERTIES" -msgstr "LASTNOSTI ŽIČNE POVEZAVE" +msgstr "LASTNOSTI-ŽIČNE-POVEZAVE" #. 4 -#: ../cli/src/devices.c:82 +#: ../cli/src/devices.c:87 msgid "WIMAX-PROPERTIES" msgstr "WIMAX-LASTNOSTI" #. 5 #. 0 -#: ../cli/src/devices.c:83 -#: ../cli/src/devices.c:192 +#: ../cli/src/devices.c:88 +#: ../cli/src/devices.c:200 msgid "NSP" msgstr "NSP" #. 6 -#: ../cli/src/devices.c:84 +#: ../cli/src/devices.c:89 msgid "IP4" msgstr "IP4" #. 7 -#: ../cli/src/devices.c:85 +#: ../cli/src/devices.c:90 msgid "DHCP4" msgstr "DHCP4" #. 8 -#: ../cli/src/devices.c:86 +#: ../cli/src/devices.c:91 msgid "IP6" msgstr "IP6" #. 9 -#: ../cli/src/devices.c:87 +#: ../cli/src/devices.c:92 msgid "DHCP6" msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:103 +#: ../cli/src/devices.c:108 msgid "VENDOR" msgstr "PONUDNIK" #. 3 -#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:109 msgid "PRODUCT" msgstr "IZDELEK" #. 4 -#: ../cli/src/devices.c:105 +#: ../cli/src/devices.c:110 msgid "DRIVER" msgstr "GONILNIK" #. 5 -#: ../cli/src/devices.c:106 +#: ../cli/src/devices.c:111 +#| msgid "VERSION" +msgid "DRIVER-VERSION" +msgstr "RAZLIČICA-GONILNIKA" + +#. 6 +#: ../cli/src/devices.c:112 +#| msgid "FIRMWARE-MISSING" +msgid "FIRMWARE-VERSION" +msgstr "RAZLIČICA-STROJNEGA-PROGRAMA" + +#. 7 +#: ../cli/src/devices.c:113 msgid "HWADDR" msgstr "HWADDR" -#. 7 -#: ../cli/src/devices.c:108 +#. 9 +#: ../cli/src/devices.c:115 msgid "REASON" msgstr "RAZLOG" -#. 8 -#: ../cli/src/devices.c:109 +#. 10 +#: ../cli/src/devices.c:116 msgid "UDI" msgstr "UDI" -#. 9 -#: ../cli/src/devices.c:110 +#. 11 +#: ../cli/src/devices.c:117 msgid "IP-IFACE" msgstr "IP-VMESNIK" -#. 10 -#: ../cli/src/devices.c:111 +#. 12 +#: ../cli/src/devices.c:118 msgid "NM-MANAGED" msgstr "NM-UPRAVLJANO" -#. 11 -#: ../cli/src/devices.c:112 +#. 14 +#: ../cli/src/devices.c:120 msgid "FIRMWARE-MISSING" -msgstr "MANJKA STROJNA PROGRAMSKA OPREMA" +msgstr "MANJKA-STROJNA-PROGRAMSKA-OPREMA" -#. 12 -#: ../cli/src/devices.c:113 +#. 15 +#: ../cli/src/devices.c:121 msgid "CONNECTION" msgstr "POVEZAVA" #. 0 -#: ../cli/src/devices.c:122 +#: ../cli/src/devices.c:130 msgid "CARRIER-DETECT" msgstr "ZAZNAVA-OPERATERJA" #. 1 -#: ../cli/src/devices.c:123 +#: ../cli/src/devices.c:131 msgid "SPEED" msgstr "HITROST" #. 0 -#: ../cli/src/devices.c:132 +#: ../cli/src/devices.c:140 msgid "CARRIER" msgstr "OPERATER" #. 0 -#: ../cli/src/devices.c:142 +#: ../cli/src/devices.c:150 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:143 +#: ../cli/src/devices.c:151 msgid "WPA" msgstr "WPA" #. 2 -#: ../cli/src/devices.c:144 +#: ../cli/src/devices.c:152 msgid "WPA2" msgstr "WPA2" #. 3 -#: ../cli/src/devices.c:145 +#: ../cli/src/devices.c:153 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:146 +#: ../cli/src/devices.c:154 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:156 +#: ../cli/src/devices.c:164 msgid "CTR-FREQ" msgstr "CTR-FREQ" #. 1 -#: ../cli/src/devices.c:157 +#: ../cli/src/devices.c:165 msgid "RSSI" msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:158 +#: ../cli/src/devices.c:166 msgid "CINR" msgstr "CINR" #. 3 -#: ../cli/src/devices.c:159 +#: ../cli/src/devices.c:167 msgid "TX-POW" msgstr "TX-POW" #. 4 -#: ../cli/src/devices.c:160 +#: ../cli/src/devices.c:168 msgid "BSID" msgstr "BSID" #. 0 -#: ../cli/src/devices.c:170 +#: ../cli/src/devices.c:178 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:171 +#: ../cli/src/devices.c:179 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:172 +#: ../cli/src/devices.c:180 msgid "MODE" msgstr "NAČIN" #. 3 -#: ../cli/src/devices.c:173 +#: ../cli/src/devices.c:181 msgid "FREQ" msgstr "FREKVENCA" #. 4 -#: ../cli/src/devices.c:174 +#: ../cli/src/devices.c:182 msgid "RATE" msgstr "HITROST" #. 5 #. 1 -#: ../cli/src/devices.c:175 -#: ../cli/src/devices.c:193 +#: ../cli/src/devices.c:183 +#: ../cli/src/devices.c:201 msgid "SIGNAL" msgstr "SIGNAL" #. 6 -#: ../cli/src/devices.c:176 +#: ../cli/src/devices.c:184 msgid "SECURITY" msgstr "VARNOST" #. 7 -#: ../cli/src/devices.c:177 +#: ../cli/src/devices.c:185 msgid "WPA-FLAGS" msgstr "WPA-ZASTAVICE" #. 8 -#: ../cli/src/devices.c:178 +#: ../cli/src/devices.c:186 msgid "RSN-FLAGS" msgstr "RSN-ZASTAVICE" #. 10 #. 4 -#: ../cli/src/devices.c:180 -#: ../cli/src/devices.c:196 +#: ../cli/src/devices.c:188 +#: ../cli/src/devices.c:204 msgid "ACTIVE" msgstr "DEJAVNO" -#: ../cli/src/devices.c:213 +#: ../cli/src/devices.c:223 #, c-format msgid "" "Usage: nmcli dev { COMMAND | help }\n" @@ -947,6 +1234,8 @@ msgid "" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" " wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [iface <iface>] [bssid <BSSID>] [name <name>]\n" +" [--private] [--nowait] [--timeout <timeout>]\n" " wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" @@ -959,470 +1248,283 @@ msgstr "" " status\n" " list [iface <vmesnik>]\n" " disconnect iface <vmesnik> [--nowait] [--timeout <zakasnitev>]\n" -" wifi [list [iface <vmesnik>] [bssid <BSSID>]]\n" +" wifi connect <(B)SSID> [password <geslo>] [wep-key-type key|phrase] [iface <vmesnik>] [bssid <BSSID>] [name <ime>]\n" +" [--private] [--nowait] [--timeout <zakasnitev>]\n" " wimax [list [iface <vmesnik>] [nsp <ime>]]\n" "\n" -#: ../cli/src/devices.c:241 -msgid "unmanaged" -msgstr "neupravljano" - -#: ../cli/src/devices.c:243 -msgid "unavailable" -msgstr "ni razpoložljivo" - -#: ../cli/src/devices.c:245 -#: ../cli/src/network-manager.c:108 -msgid "disconnected" -msgstr "povezava je prekinjena" - -#: ../cli/src/devices.c:247 -msgid "connecting (prepare)" -msgstr "povezovanje (priprava)" - -#: ../cli/src/devices.c:249 -msgid "connecting (configuring)" -msgstr "povezovanje (nastavljanje)" - -#: ../cli/src/devices.c:251 -msgid "connecting (need authentication)" -msgstr "povezovanje (zahteva overitev)" - -#: ../cli/src/devices.c:253 -msgid "connecting (getting IP configuration)" -msgstr "povezovanje (pridobivanje nastavitev IP)" - -#: ../cli/src/devices.c:255 -msgid "connecting (checking IP connectivity)" -msgstr "povezovanje (preverjanje povezljivosti IP)" - -#: ../cli/src/devices.c:257 -msgid "connecting (starting secondary connections)" -msgstr "povezovanje (zagon drugotnih povezav)" - -#: ../cli/src/devices.c:259 -#: ../cli/src/network-manager.c:104 -msgid "connected" -msgstr "povezano" - -#: ../cli/src/devices.c:263 -msgid "connection failed" -msgstr "povezava je spodletela" - -#: ../cli/src/devices.c:274 -msgid "No reason given" -msgstr "Razlog ni podan" - -#: ../cli/src/devices.c:277 -msgid "Unknown error" -msgstr "Neznana napaka" - -#: ../cli/src/devices.c:280 -msgid "Device is now managed" -msgstr "Naprava je zdaj upravljana" - -#: ../cli/src/devices.c:283 -msgid "Device is now unmanaged" -msgstr "Naprava zdaj ni upravljana" - -#: ../cli/src/devices.c:286 -msgid "The device could not be readied for configuration" -msgstr "Naprave ni mogoče pripraviti za prilagoditev" - -#: ../cli/src/devices.c:289 -msgid "IP configuration could not be reserved (no available address, timeout, etc)" -msgstr "Prilagoditve IP ni mogoče rezervirati (naslov ni na voljo, časovna prekoračitev itn.)" - -#: ../cli/src/devices.c:292 -msgid "The IP configuration is no longer valid" -msgstr "Prilagoditev IP ni več veljavna" - -#: ../cli/src/devices.c:295 -msgid "Secrets were required, but not provided" -msgstr "Zahtevana so bila ustrezna gesla, ki pa niso bila podana" - -#: ../cli/src/devices.c:298 -msgid "802.1X supplicant disconnected" -msgstr "Prosilnik 802.1X je odklopljen" - -#: ../cli/src/devices.c:301 -msgid "802.1X supplicant configuration failed" -msgstr "Prilagoditev prosilnika 802.1X je spodletela" - -#: ../cli/src/devices.c:304 -msgid "802.1X supplicant failed" -msgstr "Prosilnik 802.1X je spodletel" - -#: ../cli/src/devices.c:307 -msgid "802.1X supplicant took too long to authenticate" -msgstr "Prosilnik 802.1X je potreboval preveč časa za overjanje" - -#: ../cli/src/devices.c:310 -msgid "PPP service failed to start" -msgstr "Storitev PPP ni uspešno zagnana" - -#: ../cli/src/devices.c:313 -msgid "PPP service disconnected" -msgstr "Storitev PPP je prekinjena" - -#: ../cli/src/devices.c:316 -msgid "PPP failed" -msgstr "PPP je spodletel" - -#: ../cli/src/devices.c:319 -msgid "DHCP client failed to start" -msgstr "Začenjanje odjemalca DHCP je spodletelo" - -#: ../cli/src/devices.c:322 -msgid "DHCP client error" -msgstr "Napaka odjemalca DHCP" - -#: ../cli/src/devices.c:325 -msgid "DHCP client failed" -msgstr "Odjemalec DHCP je spodletel" - -#: ../cli/src/devices.c:328 -msgid "Shared connection service failed to start" -msgstr "Začenjanje storitve souporabe povezave je spodletelo." - -#: ../cli/src/devices.c:331 -msgid "Shared connection service failed" -msgstr "Storitev souporabe povezave je spodletela." - -#: ../cli/src/devices.c:334 -msgid "AutoIP service failed to start" -msgstr "Začenjanje storitve AutoIP je spodletelo." - -#: ../cli/src/devices.c:337 -msgid "AutoIP service error" -msgstr "Napaka storitve AutoIP" - -#: ../cli/src/devices.c:340 -msgid "AutoIP service failed" -msgstr "Storitev AutoIP je spodletela" - -#: ../cli/src/devices.c:343 -msgid "The line is busy" -msgstr "Povezava je zasedena" - -#: ../cli/src/devices.c:346 -msgid "No dial tone" -msgstr "Ni klicnega signala" - -#: ../cli/src/devices.c:349 -msgid "No carrier could be established" -msgstr "Ni mogoče vzpostaviti signala povezave" - -#: ../cli/src/devices.c:352 -msgid "The dialing request timed out" -msgstr "Zahteva klicanja je časovno potekla" - -#: ../cli/src/devices.c:355 -msgid "The dialing attempt failed" -msgstr "Poskus klicanja je spodletel" - -#: ../cli/src/devices.c:358 -msgid "Modem initialization failed" -msgstr "Začenjanje modema spodletelo" - -#: ../cli/src/devices.c:361 -msgid "Failed to select the specified APN" -msgstr "Izbor določenega APN je spodletel" - -#: ../cli/src/devices.c:364 -msgid "Not searching for networks" -msgstr "Iskanje omrežij ni dejavno" - -#: ../cli/src/devices.c:367 -msgid "Network registration denied" -msgstr "Vpis omrežja je zavrnjen" - -#: ../cli/src/devices.c:370 -msgid "Network registration timed out" -msgstr "Čas za vpis omrežja je potekel" - -#: ../cli/src/devices.c:373 -msgid "Failed to register with the requested network" -msgstr "Vpis v zahtevano omrežje je spodletel" - -#: ../cli/src/devices.c:376 -msgid "PIN check failed" -msgstr "Preverjanje PIN je spodletelo" - -#: ../cli/src/devices.c:379 -msgid "Necessary firmware for the device may be missing" -msgstr "Morda napravi manjka zahtevana strojna programska oprema" - -#: ../cli/src/devices.c:382 -msgid "The device was removed" -msgstr "Naprava je bila odstranjena" - -#: ../cli/src/devices.c:385 -msgid "NetworkManager went to sleep" -msgstr "NetworkManager je prešel v pripravljenost" - -#: ../cli/src/devices.c:388 -msgid "The device's active connection disappeared" -msgstr "Dejavna povezava naprave je izginila" - -#: ../cli/src/devices.c:391 -msgid "Device disconnected by user or client" -msgstr "Uporabnik ali odjemalec je odklopil napravo" - -#: ../cli/src/devices.c:394 -msgid "Carrier/link changed" -msgstr "Signal/Povezava se je spremenila" - -#: ../cli/src/devices.c:397 -msgid "The device's existing connection was assumed" -msgstr "Predviden je bila obstoječa povezava naprave" - -#: ../cli/src/devices.c:400 -msgid "The supplicant is now available" -msgstr "Prosilnik je zdaj na voljo" - -#: ../cli/src/devices.c:403 -msgid "The modem could not be found" -msgstr "Modema ni mogoče najti." - -#: ../cli/src/devices.c:406 -msgid "The Bluetooth connection failed or timed out" -msgstr "Povezava Bluetooth je spodletela ali pa je časovno potekla" - -#: ../cli/src/devices.c:409 -msgid "GSM Modem's SIM card not inserted" -msgstr "Kartica SIM modema GSM ni vstavljena" - -#: ../cli/src/devices.c:412 -msgid "GSM Modem's SIM PIN required" -msgstr "Zahtevana je koda PIN kartice SIM modema GSM" - -#: ../cli/src/devices.c:415 -msgid "GSM Modem's SIM PUK required" -msgstr "Zahtevana je koda PUK kartice SIM modema GSM" - -#: ../cli/src/devices.c:418 -msgid "GSM Modem's SIM wrong" -msgstr "Kartica SIM modema GSM ni ustrezna" - -#: ../cli/src/devices.c:421 -msgid "Infiniband device does not support connected mode" -msgstr "Naprava Infiniband ne podpira povezanega načina" - -#: ../cli/src/devices.c:423 -#: ../cli/src/devices.c:446 -#: ../cli/src/devices.c:458 -#: ../cli/src/devices.c:578 -#: ../cli/src/devices.c:622 -msgid "Unknown" -msgstr "Neznano" - -#: ../cli/src/devices.c:491 +#: ../cli/src/devices.c:323 msgid "(none)" msgstr "(brez)" -#: ../cli/src/devices.c:547 +#: ../cli/src/devices.c:379 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:548 +#: ../cli/src/devices.c:380 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:557 +#: ../cli/src/devices.c:389 msgid "Encrypted: " msgstr "Šifrirano: " -#: ../cli/src/devices.c:562 +#: ../cli/src/devices.c:394 msgid "WEP " msgstr "WEP " -#: ../cli/src/devices.c:564 +#: ../cli/src/devices.c:396 msgid "WPA " msgstr "WPA " -#: ../cli/src/devices.c:566 +#: ../cli/src/devices.c:398 msgid "WPA2 " msgstr "WPA2 " -#: ../cli/src/devices.c:569 +#: ../cli/src/devices.c:401 msgid "Enterprise " msgstr "Podjetniški " -#: ../cli/src/devices.c:578 +#: ../cli/src/devices.c:410 msgid "Ad-Hoc" msgstr "Ad-Hoc" -#: ../cli/src/devices.c:578 +#: ../cli/src/devices.c:410 msgid "Infrastructure" msgstr "infrastruktura" -#: ../cli/src/devices.c:613 +#: ../cli/src/devices.c:445 msgid "Home" msgstr "Domov" -#: ../cli/src/devices.c:616 +#: ../cli/src/devices.c:448 msgid "Partner" msgstr "Partner" -#: ../cli/src/devices.c:619 +#: ../cli/src/devices.c:451 msgid "Roaming" msgstr "Gostovanje" -#: ../cli/src/devices.c:691 +#: ../cli/src/devices.c:523 #, c-format msgid "Error: 'dev list': %s" msgstr "Napaka: 'dev list': %s" -#: ../cli/src/devices.c:693 +#: ../cli/src/devices.c:525 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Napaka: 'dev list': %s; dovoljena polja: %s" -#: ../cli/src/devices.c:702 +#: ../cli/src/devices.c:534 msgid "Device details" msgstr "Podrobnosti naprave" -#: ../cli/src/devices.c:744 -#: ../cli/src/devices.c:745 -#: ../cli/src/devices.c:1152 -#: ../cli/src/utils.c:445 +#: ../cli/src/devices.c:579 +#: ../cli/src/devices.c:582 +#: ../cli/src/devices.c:1000 +#: ../cli/src/utils.c:477 msgid "(unknown)" msgstr "(neznano)" -#: ../cli/src/devices.c:753 +#: ../cli/src/devices.c:591 msgid "not connected" msgstr "brez povezave" -#: ../cli/src/devices.c:780 +#: ../cli/src/devices.c:618 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:853 +#: ../cli/src/devices.c:691 msgid "on" msgstr "omogočeno" -#: ../cli/src/devices.c:853 +#: ../cli/src/devices.c:691 msgid "off" msgstr "onemogočeno" -#: ../cli/src/devices.c:1004 +#: ../cli/src/devices.c:842 #, c-format msgid "Error: 'dev status': %s" msgstr "Napaka: 'dev status': %s" -#: ../cli/src/devices.c:1006 +#: ../cli/src/devices.c:844 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Napaka: 'dev status': %s; dovoljena polja: %s" -#: ../cli/src/devices.c:1029 +#: ../cli/src/devices.c:867 msgid "Status of devices" msgstr "Stanje naprav" -#: ../cli/src/devices.c:1060 +#: ../cli/src/devices.c:898 #, c-format msgid "Error: '%s' argument is missing." msgstr "Napaka: manjka argument '%s'" -#: ../cli/src/devices.c:1101 -#: ../cli/src/devices.c:1253 -#: ../cli/src/devices.c:1390 -#: ../cli/src/devices.c:1609 +#: ../cli/src/devices.c:939 +#: ../cli/src/devices.c:1104 +#: ../cli/src/devices.c:1245 +#: ../cli/src/devices.c:1892 #, c-format msgid "Error: Device '%s' not found." msgstr "Napaka: naprave '%s' ni mogoče najti" -#: ../cli/src/devices.c:1124 +#: ../cli/src/devices.c:962 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Obvestilo: povezava naprave '%s' je uspešno prekinjena." -#: ../cli/src/devices.c:1149 +#: ../cli/src/devices.c:997 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Napaka: prišlo je do napake med prekinjanjem naprave '%s' (%s): %s" -#: ../cli/src/devices.c:1157 +#: ../cli/src/devices.c:1010 #, c-format -msgid "Device state: %d (%s)\n" -msgstr "Stanje naprave: %d (%s)\n" +msgid "Device '%s' has been disconnected.\n" +msgstr "Naprava '%s' je bila odklopljena.\n" -#: ../cli/src/devices.c:1222 +#: ../cli/src/devices.c:1073 #, c-format msgid "Error: iface has to be specified." msgstr "Napaka: iface nastavitev mora določena." -#: ../cli/src/devices.c:1348 +#: ../cli/src/devices.c:1203 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Napaka: 'dev wifi': %s" -#: ../cli/src/devices.c:1350 +#: ../cli/src/devices.c:1205 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Napaka: 'dev wifi': %s; dovoljena polja: %s" -#: ../cli/src/devices.c:1373 +#: ../cli/src/devices.c:1228 msgid "WiFi scan list" msgstr "WiFi seznam preiskovanja" -#: ../cli/src/devices.c:1410 -#: ../cli/src/devices.c:1464 +#: ../cli/src/devices.c:1265 +#: ../cli/src/devices.c:1319 #, c-format msgid "Error: Access point with bssid '%s' not found." msgstr "Napaka: dostopne točke z bssid '%s' ni mogoče najti." -#: ../cli/src/devices.c:1427 +#: ../cli/src/devices.c:1282 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Napaka: naprava '%s' ni veljavna WiFi naprava." -#: ../cli/src/devices.c:1491 +#: ../cli/src/devices.c:1350 +#: ../cli/src/devices.c:1396 +#, c-format +msgid "Connection with UUID '%s' created and activated on device '%s'\n" +msgstr "Povezava z UUID '%s' na napravi '%s' ustvarjena in aktivirana\n" + +#: ../cli/src/devices.c:1355 +#, c-format +msgid "Error: Connection activation failed: (%d) %s." +msgstr "Napaka: začenjanje povezave ni uspelo: (%d) %s." + +#: ../cli/src/devices.c:1380 +#, c-format +msgid "Error: Failed to add/activate new connection: (%d) %s" +msgstr "Napaka: dodajanje/aktiviranje nove povezave je spodletelo: (%d) %s" + +#: ../cli/src/devices.c:1388 +#, c-format +msgid "Error: Failed to add/activate new connection: Unknown error" +msgstr "Napaka: dodajanje/aktivacija nove povezave ni uspela - neznana napaka" + +#: ../cli/src/devices.c:1532 +#, c-format +msgid "Error: SSID or BSSID are missing." +msgstr "Napaka: manjka SSID ali BSSID." + +#: ../cli/src/devices.c:1555 +#, c-format +msgid "Error: bssid argument value '%s' is not a valid BSSID." +msgstr "Napaka: vrednost bssid '%s' ni veljavna oznaka BSSID." + +#: ../cli/src/devices.c:1579 +#, c-format +msgid "Error: wep-key-type argument value '%s' is invalid, use 'key' or 'phrase'." +msgstr "Napaka: vrednost wep-key-type '%s' ni veljavna, uporabite zgolj 'key' ali 'phrase'." + +#: ../cli/src/devices.c:1619 +#, c-format +msgid "Error: BSSID to connect to (%s) differs from bssid argument (%s)." +msgstr "Napaka: BSSID za povezavo z (%s) se razlikuje od podane vrednosti bssid (%s)." + +#: ../cli/src/devices.c:1625 +#, c-format +msgid "Error: Parameter '%s' is neither SSID nor BSSID." +msgstr "Napaka: parameter '%s' ni niti SSID niti BSSID." + +#: ../cli/src/devices.c:1654 +#, c-format +msgid "Error: Device '%s' is not a Wi-Fi device." +msgstr "Napaka: naprava '%s' ni naprava WiFi." + +#: ../cli/src/devices.c:1656 +#, c-format +msgid "Error: No Wi-Fi device found." +msgstr "Napaka: naprave WiFi ni mogoče najti." + +#: ../cli/src/devices.c:1674 +#, c-format +msgid "Error: No network with SSID '%s' found." +msgstr "Napaka: omrežja s SSID '%s' ni mogoče najti." + +#: ../cli/src/devices.c:1676 +#, c-format +msgid "Error: No access point with BSSID '%s' found." +msgstr "Napaka: dostopne točke z BSSID '%s' ni mogoče najti." + +#: ../cli/src/devices.c:1774 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Napaka: 'dev wifi' ukaz '%s' ni veljaven." -#: ../cli/src/devices.c:1567 +#: ../cli/src/devices.c:1850 #, c-format msgid "Error: 'dev wimax': %s" msgstr "Napaka: 'dev wimax': %s" -#: ../cli/src/devices.c:1569 +#: ../cli/src/devices.c:1852 #, c-format msgid "Error: 'dev wimax': %s; allowed fields: %s" msgstr "Napaka: 'dev wimax': %s; dovoljena polja: %s" -#: ../cli/src/devices.c:1592 +#: ../cli/src/devices.c:1875 msgid "WiMAX NSP list" msgstr "Seznam ponudnikov storitev WiMAX" -#: ../cli/src/devices.c:1629 +#: ../cli/src/devices.c:1912 #, c-format msgid "Error: NSP with name '%s' not found." msgstr "Napaka: ponudnika omrežnih storitev '%s' ni mogoče najti" -#: ../cli/src/devices.c:1640 +#: ../cli/src/devices.c:1923 #, c-format msgid "Error: Device '%s' is not a WiMAX device." msgstr "Napaka: naprava '%s' ni naprava WiMAX." -#: ../cli/src/devices.c:1671 +#: ../cli/src/devices.c:1954 #, c-format msgid "Error: Access point with nsp '%s' not found." msgstr "Napaka: dostopne točke z nsp '%s' ni mogoče najti." -#: ../cli/src/devices.c:1698 +#: ../cli/src/devices.c:1981 #, c-format msgid "Error: 'dev wimax' command '%s' is not valid." msgstr "Napaka: 'dev wimax' ukaz '%s' ni veljaven." -#: ../cli/src/devices.c:1748 +#: ../cli/src/devices.c:2031 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Napaka: 'dev' ukaz '%s' ni veljaven." @@ -1471,16 +1573,26 @@ msgstr "WIFI-STROJNA OPREMA" msgid "WIMAX" msgstr "WIMAX" -#: ../cli/src/network-manager.c:67 +#: ../cli/src/network-manager.c:62 +msgid "PERMISSION" +msgstr "DOVOLJENJE" + +#. 0 +#: ../cli/src/network-manager.c:63 +msgid "VALUE" +msgstr "VREDNOST" + +#: ../cli/src/network-manager.c:77 #, c-format msgid "" "Usage: nmcli nm { COMMAND | help }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan | wimax }\n" "\n" -" COMMAND := { status | enable | sleep | wifi | wwan }\n" +" COMMAND := { status | permissions | enable | sleep | wifi | wwan }\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" @@ -1490,11 +1602,12 @@ msgid "" msgstr "" "Uporaba: nmcli nm { UKAZ | help }\n" "\n" -" UKAZ := { status | enable | sleep | wifi | wwan | wimax}\n" +" UKAZ := { status | permissions | enable | sleep | wifi | wwan | wimax}\n" "\n" -" UKAZ := { status | enable | sleep | wifi | wwan}\n" +" UKAZ := { status | permissions | enable | sleep | wifi | wwan}\n" "\n" " status\n" +" permissions\n" " enable [true|false]\n" " sleep [true|false]\n" " wifi [on|off]\n" @@ -1502,149 +1615,167 @@ msgstr "" " wimax [on|off]\n" "\n" -#: ../cli/src/network-manager.c:96 +#: ../cli/src/network-manager.c:108 msgid "asleep" msgstr "v mirovanju" -#: ../cli/src/network-manager.c:98 +#: ../cli/src/network-manager.c:110 msgid "connecting" msgstr "povezovanje" -#: ../cli/src/network-manager.c:100 +#: ../cli/src/network-manager.c:112 msgid "connected (local only)" msgstr "povezan (le krajevno)" -#: ../cli/src/network-manager.c:102 +#: ../cli/src/network-manager.c:114 msgid "connected (site only)" msgstr "povezan (le mesto)" -#: ../cli/src/network-manager.c:106 +#: ../cli/src/network-manager.c:118 msgid "disconnecting" msgstr "prekinjanje povezave" -#: ../cli/src/network-manager.c:146 +#: ../cli/src/network-manager.c:158 #, c-format msgid "Error: 'nm status': %s" msgstr "Napaka: 'nm status': %s" -#: ../cli/src/network-manager.c:148 +#: ../cli/src/network-manager.c:160 #, c-format msgid "Error: 'nm status': %s; allowed fields: %s" msgstr "Napaka: 'nm status': %s; dovoljena polja: %s" #. create NMClient -#: ../cli/src/network-manager.c:161 -#: ../cli/src/network-manager.c:162 -#: ../cli/src/network-manager.c:163 -#: ../cli/src/network-manager.c:164 -#: ../cli/src/network-manager.c:165 -#: ../cli/src/network-manager.c:167 -#: ../cli/src/network-manager.c:168 -#: ../cli/src/network-manager.c:289 -#: ../cli/src/network-manager.c:344 -#: ../cli/src/network-manager.c:382 -#: ../cli/src/network-manager.c:421 +#: ../cli/src/network-manager.c:173 +#: ../cli/src/network-manager.c:174 +#: ../cli/src/network-manager.c:175 +#: ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 +#: ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 +#: ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 +#: ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "enabled" msgstr "omogočeno" -#: ../cli/src/network-manager.c:161 -#: ../cli/src/network-manager.c:162 -#: ../cli/src/network-manager.c:163 -#: ../cli/src/network-manager.c:164 -#: ../cli/src/network-manager.c:165 -#: ../cli/src/network-manager.c:167 -#: ../cli/src/network-manager.c:168 -#: ../cli/src/network-manager.c:289 -#: ../cli/src/network-manager.c:344 -#: ../cli/src/network-manager.c:382 -#: ../cli/src/network-manager.c:421 +#: ../cli/src/network-manager.c:173 +#: ../cli/src/network-manager.c:174 +#: ../cli/src/network-manager.c:175 +#: ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:177 +#: ../cli/src/network-manager.c:179 +#: ../cli/src/network-manager.c:180 +#: ../cli/src/network-manager.c:429 +#: ../cli/src/network-manager.c:484 +#: ../cli/src/network-manager.c:522 +#: ../cli/src/network-manager.c:561 msgid "disabled" msgstr "onemogočeno" -#: ../cli/src/network-manager.c:181 +#: ../cli/src/network-manager.c:193 msgid "NetworkManager status" msgstr "Stanje NetworkManager" #. Print header -#: ../cli/src/network-manager.c:184 +#: ../cli/src/network-manager.c:196 msgid "running" msgstr "v teku" -#: ../cli/src/network-manager.c:184 +#: ../cli/src/network-manager.c:196 msgid "not running" msgstr "ni v teku" -#: ../cli/src/network-manager.c:215 -#: ../cli/src/utils.c:425 +#: ../cli/src/network-manager.c:271 +msgid "auth" +msgstr "overjanje" + +#: ../cli/src/network-manager.c:301 +#, c-format +msgid "Error: 'nm permissions': %s" +msgstr "Napaka: 'nm permissions': %s" + +#: ../cli/src/network-manager.c:303 +#, c-format +msgid "Error: 'nm permissions': %s; allowed fields: %s" +msgstr "Napaka: 'nm permissions': %s; dovoljena polja: %s" + +#: ../cli/src/network-manager.c:324 +msgid "NetworkManager permissions" +msgstr "Pravice NetworkManager" + +#: ../cli/src/network-manager.c:350 +#: ../cli/src/utils.c:457 #, c-format msgid "Error: Couldn't connect to system bus: %s" msgstr "Napaka: ni se mogoče povezati s sistemskim vodilom: %s" -#: ../cli/src/network-manager.c:226 +#: ../cli/src/network-manager.c:361 #, c-format msgid "Error: Couldn't create D-Bus object proxy." msgstr "Napaka: ni mogoče ustvariti posredniškega predmeta vodila D-Bus." -#: ../cli/src/network-manager.c:232 +#: ../cli/src/network-manager.c:367 #, c-format msgid "Error in sleep: %s" msgstr "Napaka v mirovanju: %s" -#: ../cli/src/network-manager.c:276 -#: ../cli/src/network-manager.c:331 -#: ../cli/src/network-manager.c:369 -#: ../cli/src/network-manager.c:408 +#: ../cli/src/network-manager.c:416 +#: ../cli/src/network-manager.c:471 +#: ../cli/src/network-manager.c:509 +#: ../cli/src/network-manager.c:548 #, c-format msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s" msgstr "Napaka: vrednost '--fields' '%s' ni veljavna, dovoljena polja: %s" -#: ../cli/src/network-manager.c:284 +#: ../cli/src/network-manager.c:424 msgid "Networking enabled" msgstr "Omrežje je omogočeno" -#: ../cli/src/network-manager.c:300 +#: ../cli/src/network-manager.c:440 #, c-format msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'." msgstr "Napaka: neveljaven parameter 'enable': '%s'; uporabite 'true' ali 'false'." -#: ../cli/src/network-manager.c:310 +#: ../cli/src/network-manager.c:450 #, c-format msgid "Error: Sleeping status is not exported by NetworkManager." msgstr "Napaka: stanje v mirovanju ni izvoženo s programom NetworkManager." -#: ../cli/src/network-manager.c:318 +#: ../cli/src/network-manager.c:458 #, c-format msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." msgstr "Napaka: neveljaven parameter 'sleep': '%s'; uporabite 'true' ali 'false'." -#: ../cli/src/network-manager.c:339 +#: ../cli/src/network-manager.c:479 msgid "WiFi enabled" msgstr "WiFi je omogočen" -#: ../cli/src/network-manager.c:355 +#: ../cli/src/network-manager.c:495 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Napaka: neveljaven 'wifi' parameter: '%s'." -#: ../cli/src/network-manager.c:377 +#: ../cli/src/network-manager.c:517 msgid "WWAN enabled" msgstr "WWAN je omogočen" -#: ../cli/src/network-manager.c:393 +#: ../cli/src/network-manager.c:533 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Napaka: neveljaven 'wwan' parameter: '%s'." -#: ../cli/src/network-manager.c:416 +#: ../cli/src/network-manager.c:556 msgid "WiMAX enabled" msgstr "WiMAX je omogočen" -#: ../cli/src/network-manager.c:432 +#: ../cli/src/network-manager.c:572 #, c-format msgid "Error: invalid 'wimax' parameter: '%s'." msgstr "Napaka: neveljaven parameter 'wimax': '%s'." -#: ../cli/src/network-manager.c:445 +#: ../cli/src/network-manager.c:585 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Napaka: ukaz 'nm' '%s' ni veljaven" @@ -1753,94 +1884,103 @@ msgstr "Napaka: ni mogoče ustvariti predmeta NMClient." msgid "Success" msgstr "Uspešno zaključeno" -#: ../cli/src/settings.c:465 +#: ../cli/src/settings.c:517 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (šestnajstiški-ascii-ključ)" -#: ../cli/src/settings.c:467 +#: ../cli/src/settings.c:519 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (104/128-bitno šifrirno geslo)" -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:522 #, c-format msgid "%d (unknown)" msgstr "%d (neznano)" -#: ../cli/src/settings.c:496 +#: ../cli/src/settings.c:548 msgid "0 (unknown)" msgstr "0 (neznano)" -#: ../cli/src/settings.c:502 +#: ../cli/src/settings.c:554 msgid "any, " msgstr "karkoli, " -#: ../cli/src/settings.c:504 +#: ../cli/src/settings.c:556 msgid "900 MHz, " msgstr "900 MHz, " -#: ../cli/src/settings.c:506 +#: ../cli/src/settings.c:558 msgid "1800 MHz, " msgstr "1800 MHz, " -#: ../cli/src/settings.c:508 +#: ../cli/src/settings.c:560 msgid "1900 MHz, " msgstr "1900 MHz, " -#: ../cli/src/settings.c:510 +#: ../cli/src/settings.c:562 msgid "850 MHz, " msgstr "850 MHz, " -#: ../cli/src/settings.c:512 +#: ../cli/src/settings.c:564 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:514 +#: ../cli/src/settings.c:566 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:516 +#: ../cli/src/settings.c:568 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:518 +#: ../cli/src/settings.c:570 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:520 +#: ../cli/src/settings.c:572 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:522 +#: ../cli/src/settings.c:574 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:524 +#: ../cli/src/settings.c:576 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:526 +#: ../cli/src/settings.c:578 msgid "WCDMA 3GPP UMTS 1900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:528 +#: ../cli/src/settings.c:580 msgid "WCDMA 3GPP UMTS 2600 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:650 -#: ../cli/src/settings.c:846 -#: ../cli/src/settings.c:1550 +#: ../cli/src/settings.c:598 +msgid "0 (NONE)" +msgstr "0 (BREZ)" + +#: ../cli/src/settings.c:604 +msgid "REORDER_HEADERS, " +msgstr "PRERAZVRSTI_GLAVE," + +#: ../cli/src/settings.c:606 +msgid "GVRP, " +msgstr "GVRP," + +#: ../cli/src/settings.c:608 +msgid "LOOSE_BINDING, " +msgstr "OHLAPNE_VEZAVE," + +#: ../cli/src/settings.c:751 +#: ../cli/src/settings.c:947 +#: ../cli/src/settings.c:1651 msgid "auto" msgstr "samodejno" -#: ../cli/src/settings.c:840 -#: ../cli/src/settings.c:843 -#: ../cli/src/settings.c:844 -#: ../cli/src/utils.c:247 -msgid "not set" -msgstr "ni nastavljeno" - #: ../cli/src/utils.c:103 #, c-format msgid "Error converting IP4 address '0x%X' to text form" @@ -1851,42 +1991,42 @@ msgstr "Napaka med pretvarjanjem naslova IP4 '0x%X' v besedilno obliko" msgid "Error converting IP6 address '%s' to text form" msgstr "Napaka med pretvarjanjem naslova IP6 '%s' v besedilno obliko" -#: ../cli/src/utils.c:200 +#: ../cli/src/utils.c:232 #, c-format msgid "field '%s' has to be alone" msgstr "polje '%s' mora biti samostojno." -#: ../cli/src/utils.c:203 +#: ../cli/src/utils.c:235 #, c-format msgid "invalid field '%s'" msgstr "neveljavno polje '%s'" -#: ../cli/src/utils.c:222 +#: ../cli/src/utils.c:254 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "Možnost '--terse' zahteva podan argument '--fields'" -#: ../cli/src/utils.c:226 +#: ../cli/src/utils.c:258 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "Možnost '--terse' zahteva posebne vrednosti '--polja' in ne '%s'" -#: ../cli/src/utils.c:436 +#: ../cli/src/utils.c:468 #, c-format msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" msgstr "Napaka: ni mogoče ustvariti posredniškega predmeta D-Bus za org.freedesktop.DBus" -#: ../cli/src/utils.c:444 +#: ../cli/src/utils.c:476 #, c-format msgid "Error: NameHasOwner request failed: %s" msgstr "Napaka: zahteva NameHasOwner ni uspela: %s" -#: ../cli/src/utils.c:489 +#: ../cli/src/utils.c:521 #, c-format msgid "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --nocheck to suppress the warning.\n" msgstr "Opozorilo: različici nmcli (%s) in NetworkManager (%s) se ne ujemata. Uporabite --nocheck, da onemogočite opozorilo.\n" -#: ../cli/src/utils.c:498 +#: ../cli/src/utils.c:530 #, c-format msgid "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force execution using --nocheck, but the results are unpredictable." msgstr "Napaka: različici nmcli (%s) in NetworkManager (%s) se ne ujemata. Izvajanje vsilite z --nocheck, rezultati pa niso napovedljivi." @@ -2240,26 +2380,26 @@ msgstr "Datoteke PCKS#12 ni mogoče preveriti: %d" msgid "Could not generate random data." msgstr "Naključnih podatkov ni mogoče ustvariti." -#: ../libnm-util/nm-utils.c:2034 +#: ../libnm-util/nm-utils.c:2040 #, c-format msgid "Not enough memory to make encryption key." msgstr "Ni dovolj pomnilnika za ustvarjanje šifrirnega ključa." -#: ../libnm-util/nm-utils.c:2144 +#: ../libnm-util/nm-utils.c:2150 msgid "Could not allocate memory for PEM file creation." msgstr "Ni mogoče dodeliti pomnilnika za ustvarjanje datoteke PEM." -#: ../libnm-util/nm-utils.c:2156 +#: ../libnm-util/nm-utils.c:2162 #, c-format msgid "Could not allocate memory for writing IV to PEM file." msgstr "Ni mogoče dodeliti pomnilnika za zapis IV v datoteko PEM." -#: ../libnm-util/nm-utils.c:2168 +#: ../libnm-util/nm-utils.c:2174 #, c-format msgid "Could not allocate memory for writing encrypted key to PEM file." msgstr "Ni mogoče dodeliti pomnilnika za zapis šifriranega ključa v datoteko PEM." -#: ../libnm-util/nm-utils.c:2187 +#: ../libnm-util/nm-utils.c:2193 #, c-format msgid "Could not allocate memory for PEM file data." msgstr "Ni mogoče dodeliti pomnilnika za podatke datoteke PEM." @@ -2352,101 +2492,106 @@ msgstr "Spremeni trajno sistemsko ime gostitelja" msgid "System policy prevents modification of the persistent system hostname" msgstr "Sistemska pravila preprečujejo spremembo imena gostitelja trajnega sistema" -#: ../src/main.c:143 +#: ../src/main.c:158 +#, c-format +msgid "Failed to set signal mask: %d" +msgstr "Določanje maske signala je spodletelo: %d" + +#: ../src/main.c:167 #, c-format -msgid "Failed to initialize SIGTERM pipe: %d" -msgstr "Začenjanje veci SIGTERM je spodletelo: %d" +msgid "Failed to create signal handling thread: %d" +msgstr "Ustvarjanje niti obravnave signala je spodletelo: %d" -#: ../src/main.c:174 +#: ../src/main.c:182 #, c-format msgid "Opening %s failed: %s\n" msgstr "Odpiranje %s je spodletelo: %s\n" -#: ../src/main.c:180 +#: ../src/main.c:188 #, c-format msgid "Writing to %s failed: %s\n" msgstr "Zapisovanje v %s je spodletelo: %s\n" -#: ../src/main.c:185 +#: ../src/main.c:193 #, c-format msgid "Closing %s failed: %s\n" msgstr "Zapiranje %s je spodletelo: %s\n" -#: ../src/main.c:228 +#: ../src/main.c:236 #, c-format msgid "NetworkManager is already running (pid %ld)\n" msgstr "Program NetworkManager je že zagnan (pid %ld)\n" -#: ../src/main.c:368 +#: ../src/main.c:376 msgid "Print NetworkManager version and exit" msgstr "Izpiši različico programa NetworkManager in končaj" -#: ../src/main.c:369 +#: ../src/main.c:377 msgid "Don't become a daemon" msgstr "Ne postani ozadnji program" -#: ../src/main.c:370 +#: ../src/main.c:378 msgid "Make all warnings fatal" msgstr "Vsa opozorila naj bodo podana kot usodna" -#: ../src/main.c:371 +#: ../src/main.c:379 msgid "Specify the location of a PID file" msgstr "Določite mesto datoteke PID" -#: ../src/main.c:371 +#: ../src/main.c:379 msgid "filename" msgstr "ime datoteke" -#: ../src/main.c:372 +#: ../src/main.c:380 msgid "State file location" msgstr "Mesto datoteke stanja" -#: ../src/main.c:372 +#: ../src/main.c:380 msgid "/path/to/state.file" msgstr "/pot/do/state.file" -#: ../src/main.c:373 +#: ../src/main.c:381 msgid "Config file location" msgstr "Mesto datoteke nastavitev" -#: ../src/main.c:373 +#: ../src/main.c:381 msgid "/path/to/config.file" msgstr "/pot/do/config.file" -#: ../src/main.c:374 +#: ../src/main.c:382 msgid "List of plugins separated by ','" msgstr "Seznam vstavkov, ločenih z vejico" -#: ../src/main.c:374 +#: ../src/main.c:382 msgid "plugin1,plugin2" msgstr "vstavek1,vstavek2" #. Translators: Do not translate the values in the square brackets -#: ../src/main.c:376 +#: ../src/main.c:384 msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" msgstr "Raven beleženja: ena izmed [ERR, WARN, INFO, DEBUG]" #. Translators: Do not translate the values in the square brackets -#: ../src/main.c:379 +#: ../src/main.c:387 msgid "" "Log domains separated by ',': any combination of\n" " [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,\n" " WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,\n" " AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,\n" -" INFINIBAND,FIREWALL]" +" INFINIBAND,FIREWALL,ADSL]" msgstr "" "Beleži domene, ločene z vejico: poljubna kombinacija\n" " [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,\n" " WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,\n" " AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,\n" -" INFINIBAND,FIREWALL]" +" INFINIBAND,FIREWALL,ADSL]" -#: ../src/main.c:392 +#: ../src/main.c:400 #, c-format msgid "GModules are not supported on your platform!\n" msgstr "V vašem sistemskem okolju Gmoduli niso podprti!\n" -#: ../src/main.c:411 +#: ../src/main.c:423 msgid "" "NetworkManager monitors all network connections and automatically\n" "chooses the best connection to use. It also allows the user to\n" @@ -2458,32 +2603,32 @@ msgstr "" "brezžičnih dostopnih točk, s katerimi naj se povezujejo\n" "brezžični omrežni vmesniki računalnika." -#: ../src/main.c:417 +#: ../src/main.c:429 #, c-format msgid "Invalid option. Please use --help to see a list of valid options.\n" msgstr "Neveljavna možnost. Uporabite --help za seznam veljavnih možnosti.\n" -#: ../src/main.c:427 +#: ../src/main.c:439 #, c-format msgid "You must be root to run NetworkManager!\n" msgstr "Za zagon programa NetworkManager so zahtevana skrbniška dovoljenja!\n" -#: ../src/main.c:448 +#: ../src/main.c:460 #, c-format msgid "Failed to read configuration: (%d) %s\n" msgstr "Branje nastavitev je spodletelo: (%d) %s\n" -#: ../src/main.c:459 +#: ../src/main.c:471 #, c-format msgid "%s. Please use --help to see a list of valid options.\n" msgstr "%s. Uporabite --help za prikaz seznam veljavnih možnosti.\n" -#: ../src/main.c:466 +#: ../src/main.c:478 #, c-format msgid "State file %s parsing failed: (%d) %s\n" msgstr "Razčlenjevanje datoteke stanja %s je spodletelo: (%d) %s\n" -#: ../src/main.c:483 +#: ../src/main.c:495 #, c-format msgid "Could not daemonize: %s [error %u]\n" msgstr "Opravila ni mogoče pretvoriti za ozadnje delovanje: %s [napaka %u]\n" @@ -2518,20 +2663,20 @@ msgstr "'dhcpcd' ni mogoče najti." msgid "unsupported DHCP client '%s'" msgstr "nepodprt odjemalec DHCP '%s'" -#: ../src/dns-manager/nm-dns-manager.c:376 +#: ../src/dns-manager/nm-dns-manager.c:383 msgid "NOTE: the libc resolver may not support more than 3 nameservers." msgstr "OPOMBA: razreševalnik libc morda ne podpira več kot 3 imenskih strežnikov." -#: ../src/dns-manager/nm-dns-manager.c:378 +#: ../src/dns-manager/nm-dns-manager.c:385 msgid "The nameservers listed below may not be recognized." msgstr "Navedeni imenski strežniki morda ne bodo prepoznani." -#: ../src/logging/nm-logging.c:130 +#: ../src/logging/nm-logging.c:131 #, c-format msgid "Unknown log level '%s'" msgstr "Neznana raven beleženja '%s'" -#: ../src/logging/nm-logging.c:155 +#: ../src/logging/nm-logging.c:156 #, c-format msgid "Unknown log domain '%s'" msgstr "Neznana domena beleženja '%s'" @@ -2542,17 +2687,22 @@ msgstr "Neznana domena beleženja '%s'" msgid "CDMA connection %d" msgstr "Povezava CDMA %d" -#: ../src/modem-manager/nm-modem-gsm.c:512 +#: ../src/modem-manager/nm-modem-gsm.c:547 #: ../src/nm-device-bt.c:321 #, c-format msgid "GSM connection %d" msgstr "Povezava GSM %d" -#: ../src/nm-device-bond.c:192 +#: ../src/nm-device-bond.c:191 #, c-format msgid "Bond connection %d" msgstr "Povezava vezi %d" +#: ../src/nm-device-adsl.c:193 +#, c-format +msgid "ADSL connection %d" +msgstr "Povezava ADSL %d" + #: ../src/nm-device-bt.c:296 #, c-format msgid "PAN connection %d" @@ -2563,12 +2713,12 @@ msgstr "Povezava PAN %d" msgid "DUN connection %d" msgstr "Povezava DUN %d" -#: ../src/nm-device-ethernet.c:1326 +#: ../src/nm-device-ethernet.c:1327 #, c-format msgid "PPPoE connection %d" msgstr "Povezava PPPoE %d" -#: ../src/nm-device-ethernet.c:1326 +#: ../src/nm-device-ethernet.c:1327 #: ../src/settings/nm-settings-utils.c:50 #, c-format msgid "Wired connection %d" @@ -2576,21 +2726,20 @@ msgstr "Žična povezava %d" #: ../src/nm-device-infiniband.c:303 #, c-format -msgid "Infiniband connection %d" -msgstr "Povezava Infiniband %d" +msgid "InfiniBand connection %d" +msgstr "Povezava InfiniBand %d" -#: ../src/nm-device-olpc-mesh.c:293 +#: ../src/nm-device-olpc-mesh.c:303 #, c-format msgid "Mesh %d" msgstr "Mreža %d" -#: ../src/nm-device-vlan.c:311 +#: ../src/nm-device-vlan.c:362 #, c-format -#| msgid "VPN connection %d" msgid "VLAN connection %d" msgstr "Povezava VLAN %d" -#: ../src/nm-manager.c:661 +#: ../src/nm-manager.c:660 #, c-format msgid "VPN connection %d" msgstr "Povezava VPN %d" @@ -2638,11 +2787,11 @@ msgstr "skupini netlink se ni mogoče pridružiti: %s" msgid "error updating link cache: %s" msgstr "napaka med posodabljanjem predpomnilnika povezave: %s" -#: ../src/settings/plugins/ifcfg-rh/reader.c:93 -#: ../src/settings/plugins/ifnet/connection_parser.c:51 +#: ../src/settings/plugins/ifcfg-rh/reader.c:94 msgid "System" msgstr "Sistem" -#: ../src/settings/plugins/ifcfg-rh/reader.c:3632 +#: ../src/settings/plugins/ifcfg-rh/reader.c:3641 msgid "Bond" msgstr "Vez" + diff --git a/po/sv.po b/po/sv.po index eb8da2ea..9f66eb65 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,16 +1,16 @@ # Swedish messages for NetworkManager. -# Copyright (C) 2004, 2005, 2006, 2008, 2009, 2010 Free Software Foundation, Inc. +# Copyright (C) 2004-2012 Free Software Foundation, Inc. # Christian Rose <menthos@menthos.com>, 2004, 2005, 2006. -# Daniel Nylander <po@danielnylander.se>, 2006, 2008, 2009, 2010. +# Daniel Nylander <po@danielnylander.se>, 2006, 2008, 2009, 2010, 2012. # # $Id: sv.po,v 1.14 2006/12/10 18:34:55 dnylande Exp $ # 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-09-20 15:25+0000\n" -"PO-Revision-Date: 2010-12-29 12:23+0100\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-03-30 15:25+0000\n" +"PO-Revision-Date: 2012-03-31 13:52+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" @@ -18,974 +18,1467 @@ msgstr "" "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 -msgid "NAME" -msgstr "NAMN" +#: ../cli/src/common.c:32 +#: ../cli/src/common.c:44 +#: ../cli/src/common.c:52 +#: ../cli/src/common.c:63 +#: ../cli/src/connections.c:125 +#: ../cli/src/connections.c:159 +msgid "GROUP" +msgstr "GRUPP" #. 0 -#: ../cli/src/connections.c:61 -#: ../cli/src/connections.c:76 -msgid "UUID" -msgstr "UUID" +#: ../cli/src/common.c:33 +#: ../cli/src/common.c:53 +msgid "ADDRESS" +msgstr "ADRESS" #. 1 -#: ../cli/src/connections.c:62 -msgid "DEVICES" -msgstr "ENHETER" +#: ../cli/src/common.c:34 +#: ../cli/src/common.c:54 +msgid "ROUTE" +msgstr "RUTT" #. 2 -#: ../cli/src/connections.c:63 -#: ../cli/src/connections.c:78 -msgid "SCOPE" -msgstr "OMFÅNG" +#: ../cli/src/common.c:35 +#: ../cli/src/common.c:55 +msgid "DNS" +msgstr "DNS" #. 3 -#: ../cli/src/connections.c:64 -msgid "DEFAULT" -msgstr "STANDARD" +#: ../cli/src/common.c:36 +#: ../cli/src/common.c:56 +msgid "DOMAIN" +msgstr "DOMÄN" #. 4 -#: ../cli/src/connections.c:65 -msgid "DBUS-SERVICE" -msgstr "DBUS-TJÄNST" +#: ../cli/src/common.c:37 +msgid "WINS" +msgstr "WINS" -#. 5 -#: ../cli/src/connections.c:66 -msgid "SPEC-OBJECT" -msgstr "SPEC-OBJECT" +#. 0 +#: ../cli/src/common.c:45 +#: ../cli/src/common.c:64 +msgid "OPTION" +msgstr "FLAGGA" -#. 6 -#: ../cli/src/connections.c:67 -msgid "VPN" -msgstr "VPN" +#. 0 +#. used only for 'GENERAL' group listing +#: ../cli/src/connections.c:58 +#: ../cli/src/connections.c:126 +#: ../cli/src/devices.c:102 +#: ../cli/src/devices.c:123 +#: ../cli/src/devices.c:133 +#: ../cli/src/devices.c:143 +#: ../cli/src/devices.c:157 +#: ../cli/src/devices.c:171 +#: ../cli/src/devices.c:193 +msgid "NAME" +msgstr "NAMN" + +#. 0 +#. 1 +#: ../cli/src/connections.c:59 +#: ../cli/src/connections.c:127 +msgid "UUID" +msgstr "UUID" #. 1 #. 0 #. 1 -#: ../cli/src/connections.c:77 -#: ../cli/src/devices.c:62 -#: ../cli/src/devices.c:90 +#. 2 +#: ../cli/src/connections.c:60 +#: ../cli/src/connections.c:160 +#: ../cli/src/devices.c:68 +#: ../cli/src/devices.c:104 +#: ../cli/src/devices.c:196 msgid "TYPE" msgstr "TYP" -#. 3 -#: ../cli/src/connections.c:79 +#. 2 +#: ../cli/src/connections.c:61 msgid "TIMESTAMP" msgstr "TIDSSTÄMPEL" -#. 4 -#: ../cli/src/connections.c:80 +#. 3 +#: ../cli/src/connections.c:62 msgid "TIMESTAMP-REAL" msgstr "TIMESTAMP-REAL" -#. 5 -#: ../cli/src/connections.c:81 +#. 4 +#: ../cli/src/connections.c:63 msgid "AUTOCONNECT" msgstr "AUTOCONNECT" -#. 6 -#: ../cli/src/connections.c:82 +#. 5 +#: ../cli/src/connections.c:64 msgid "READONLY" msgstr "SKRIVSKYDDAD" -#. 7 -#: ../cli/src/connections.c:83 +#. 6 +#. 8 +#. 2 +#. 11 +#. 5 +#: ../cli/src/connections.c:65 +#: ../cli/src/connections.c:134 +#: ../cli/src/devices.c:70 +#: ../cli/src/devices.c:183 +#: ../cli/src/devices.c:199 msgid "DBUS-PATH" msgstr "DBUS-SÖKVÄG" -#: ../cli/src/connections.c:159 +#. 2 +#: ../cli/src/connections.c:128 +msgid "DEVICES" +msgstr "ENHETER" + +#. 3 +#. 1 +#. 6 +#. 1 +#: ../cli/src/connections.c:129 +#: ../cli/src/devices.c:69 +#: ../cli/src/devices.c:109 +#: ../cli/src/network-manager.c:39 +msgid "STATE" +msgstr "TILLSTÅND" + +#. 4 +#: ../cli/src/connections.c:130 +msgid "DEFAULT" +msgstr "STANDARD" + +#. 5 +#: ../cli/src/connections.c:131 +msgid "DEFAULT6" +msgstr "STANDARD6" + +#. 6 +#: ../cli/src/connections.c:132 +msgid "SPEC-OBJECT" +msgstr "SPEC-OBJECT" + +#. 7 +#. 1 +#: ../cli/src/connections.c:133 +#: ../cli/src/connections.c:147 +msgid "VPN" +msgstr "VPN" + +#. 9 +#: ../cli/src/connections.c:135 +msgid "CON-PATH" +msgstr "ANS-SÖKV" + +#. 10 +#: ../cli/src/connections.c:136 +msgid "ZONE" +msgstr "ZON" + +#. 11 +#: ../cli/src/connections.c:137 +msgid "MASTER-PATH" +msgstr "HUVUDSÖKVÄG" + +#: ../cli/src/connections.c:145 +#: ../cli/src/devices.c:79 +msgid "GENERAL" +msgstr "ALLMÄNT" + +#. 0 +#: ../cli/src/connections.c:146 +msgid "IP" +msgstr "IP" + +#. 1 +#: ../cli/src/connections.c:161 +msgid "USERNAME" +msgstr "ANVÄNDARNAMN" + +#. 2 +#: ../cli/src/connections.c:162 +msgid "GATEWAY" +msgstr "GATEWAY" + +#. 3 +#: ../cli/src/connections.c:163 +msgid "BANNER" +msgstr "BANDEROLL" + +#. 4 +#: ../cli/src/connections.c:164 +msgid "VPN-STATE" +msgstr "VPN-TILLSTÅND" + +#. 5 +#: ../cli/src/connections.c:165 +msgid "CFG" +msgstr "KFG" + +#: ../cli/src/connections.c:186 #, c-format msgid "" "Usage: nmcli con { COMMAND | help }\n" -" COMMAND := { list | status | up | down }\n" +" COMMAND := { list | status | up | down | delete }\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" +" list [id <id> | uuid <id>]\n" +" status [id <id> | uuid <id> | path <path>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [nsp <name>] [--nowait] [--timeout <timeout>]\n" +" up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout <timeout>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" msgstr "" "Användning: nmcli con { KOMMANDO | help }\n" -" KOMMANDO := { list | status | up | down }\n" +" KOMMANDO := { list | status | up | down | delete }\n" "\n" -" list [id <id> | uuid <id> | system | användare]\n" -" status\n" +" list [id <id> | uuid <id>]\n" +" status [id <id> | uuid <id> | path <sökväg>]\n" " up id <id> | uuid <id> [iface <gränssnitt>] [ap <hwaddr>] [--nowait] [--timeout <tidsgräns>]\n" +" up id <id> | uuid <id> [iface <gränssnitt>] [ap <BSSID>] [--nowait] [--timeout <tidsgräns>]\n" " down id <id> | uuid <id>\n" +" delete id <id> | uuid <id>\n" -#: ../cli/src/connections.c:199 -#: ../cli/src/connections.c:540 +#: ../cli/src/connections.c:240 +#: ../cli/src/connections.c:591 #, c-format msgid "Error: 'con list': %s" msgstr "Fel: \"con list\": %s" -#: ../cli/src/connections.c:201 -#: ../cli/src/connections.c:542 +#: ../cli/src/connections.c:242 +#: ../cli/src/connections.c:593 #, c-format msgid "Error: 'con list': %s; allowed fields: %s" msgstr "Fel: \"con list\": %s; tillåtna fält: %s" -#: ../cli/src/connections.c:209 +#: ../cli/src/connections.c:250 msgid "Connection details" msgstr "Anslutningsdetaljer" -#: ../cli/src/connections.c:384 -#: ../cli/src/connections.c:605 -msgid "system" -msgstr "system" - -#: ../cli/src/connections.c:384 -#: ../cli/src/connections.c:605 -msgid "user" -msgstr "användare" - -#: ../cli/src/connections.c:386 +#: ../cli/src/connections.c:466 msgid "never" msgstr "aldrig" #. "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:467 +#: ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 +#: ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 +#: ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 +#: ../cli/src/devices.c:762 +#: ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 +#: ../cli/src/devices.c:821 +#: ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 +#: ../cli/src/devices.c:824 +#: ../cli/src/devices.c:825 +#: ../cli/src/settings.c:656 +#: ../cli/src/settings.c:726 +#: ../cli/src/settings.c:846 +#: ../cli/src/settings.c:1128 +#: ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1131 +#: ../cli/src/settings.c:1133 +#: ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1262 +#: ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1340 +#: ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1423 msgid "yes" msgstr "ja" -#: ../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 +#: ../cli/src/connections.c:467 +#: ../cli/src/connections.c:468 +#: ../cli/src/connections.c:705 +#: ../cli/src/connections.c:706 +#: ../cli/src/connections.c:708 +#: ../cli/src/devices.c:595 +#: ../cli/src/devices.c:648 +#: ../cli/src/devices.c:762 +#: ../cli/src/devices.c:763 +#: ../cli/src/devices.c:795 +#: ../cli/src/devices.c:821 +#: ../cli/src/devices.c:822 +#: ../cli/src/devices.c:823 +#: ../cli/src/devices.c:824 +#: ../cli/src/devices.c:825 +#: ../cli/src/settings.c:656 +#: ../cli/src/settings.c:658 +#: ../cli/src/settings.c:726 +#: ../cli/src/settings.c:846 +#: ../cli/src/settings.c:1128 +#: ../cli/src/settings.c:1129 +#: ../cli/src/settings.c:1131 +#: ../cli/src/settings.c:1133 +#: ../cli/src/settings.c:1134 +#: ../cli/src/settings.c:1262 +#: ../cli/src/settings.c:1263 +#: ../cli/src/settings.c:1264 +#: ../cli/src/settings.c:1265 +#: ../cli/src/settings.c:1340 +#: ../cli/src/settings.c:1341 +#: ../cli/src/settings.c:1342 +#: ../cli/src/settings.c:1343 +#: ../cli/src/settings.c:1344 +#: ../cli/src/settings.c:1345 +#: ../cli/src/settings.c:1346 +#: ../cli/src/settings.c:1347 +#: ../cli/src/settings.c:1348 +#: ../cli/src/settings.c:1349 +#: ../cli/src/settings.c:1350 +#: ../cli/src/settings.c:1351 +#: ../cli/src/settings.c:1352 +#: ../cli/src/settings.c:1423 msgid "no" msgstr "nej" -#: ../cli/src/connections.c:461 -#: ../cli/src/connections.c:504 -msgid "System connections" -msgstr "systemanslutningar" +#: ../cli/src/connections.c:542 +msgid "Connection list" +msgstr "Anslutningslista" -#: ../cli/src/connections.c:466 -#: ../cli/src/connections.c:517 -msgid "User connections" -msgstr "Användaranslutningar" - -#: ../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:555 +#: ../cli/src/connections.c:1088 +#: ../cli/src/connections.c:1456 +#: ../cli/src/connections.c:1471 +#: ../cli/src/connections.c:1480 +#: ../cli/src/connections.c:1490 +#: ../cli/src/connections.c:1502 +#: ../cli/src/connections.c:1601 +#: ../cli/src/connections.c:1703 +#: ../cli/src/devices.c:1202 +#: ../cli/src/devices.c:1212 +#: ../cli/src/devices.c:1326 +#: ../cli/src/devices.c:1334 +#: ../cli/src/devices.c:1547 +#: ../cli/src/devices.c:1554 #, c-format msgid "Error: %s argument is missing." msgstr "Fel: %s-argument saknas." -#: ../cli/src/connections.c:491 +#: ../cli/src/connections.c:568 #, c-format msgid "Error: %s - no such connection." msgstr "Fel: %s - ingen sådan anslutning." -#: ../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:574 +#: ../cli/src/connections.c:1515 +#: ../cli/src/connections.c:1618 +#: ../cli/src/connections.c:1710 +#: ../cli/src/devices.c:999 +#: ../cli/src/devices.c:1079 +#: ../cli/src/devices.c:1226 +#: ../cli/src/devices.c:1340 +#: ../cli/src/devices.c:1560 #, c-format msgid "Unknown parameter: %s\n" msgstr "Okänd parameter: %s\n" -#: ../cli/src/connections.c:532 +#: ../cli/src/connections.c:583 #, c-format msgid "Error: no valid parameter specified." msgstr "Fel: ingen giltig parameter angiven." -#: ../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:598 +#: ../cli/src/connections.c:1803 +#: ../cli/src/devices.c:1768 +#: ../cli/src/network-manager.c:456 #, c-format msgid "Error: %s." msgstr "Fel: %s." -#: ../cli/src/connections.c:653 -#, c-format -msgid "Error: 'con status': %s" -msgstr "Fel: \"con status\": %s" - -#: ../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:662 -msgid "Active connections" -msgstr "Aktiva anslutningar" - -#: ../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:1038 -#, c-format -msgid "no active connection or device" -msgstr "ingen aktiv anslutning eller enhet" - -#: ../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:1090 -#, c-format -msgid "no device found for connection '%s'" -msgstr "ingen enhet hittades för anslutningen \"%s\"" - -#: ../cli/src/connections.c:1101 +#: ../cli/src/connections.c:611 msgid "activating" msgstr "aktiverar" -#: ../cli/src/connections.c:1103 +#: ../cli/src/connections.c:613 msgid "activated" msgstr "aktiverad" -#: ../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 +#: ../cli/src/connections.c:615 +#: ../cli/src/devices.c:263 +msgid "deactivating" +msgstr "inaktiverar" + +#: ../cli/src/connections.c:618 +#: ../cli/src/connections.c:641 +#: ../cli/src/connections.c:1327 +#: ../cli/src/devices.c:267 +#: ../cli/src/devices.c:796 +#: ../cli/src/network-manager.c:111 +#: ../cli/src/network-manager.c:173 +#: ../cli/src/network-manager.c:176 +#: ../cli/src/network-manager.c:185 +#: ../cli/src/network-manager.c:291 +#: ../cli/src/network-manager.c:346 +#: ../cli/src/network-manager.c:384 +#: ../cli/src/network-manager.c:423 +#: ../cli/src/settings.c:563 +#: ../cli/src/settings.c:591 +#: ../cli/src/utils.c:499 +#: ../src/main.c:450 +#: ../src/main.c:469 msgid "unknown" msgstr "okänt" -#: ../cli/src/connections.c:1115 +#: ../cli/src/connections.c:627 msgid "VPN connecting (prepare)" msgstr "VPN ansluter (förbereder)" -#: ../cli/src/connections.c:1117 +#: ../cli/src/connections.c:629 msgid "VPN connecting (need authentication)" msgstr "VPN ansluter (behöver autentisering)" -#: ../cli/src/connections.c:1119 +#: ../cli/src/connections.c:631 msgid "VPN connecting" msgstr "VPN ansluter" -#: ../cli/src/connections.c:1121 +#: ../cli/src/connections.c:633 msgid "VPN connecting (getting IP configuration)" msgstr "VPN ansluter (hämtar IP-konfiguration)" -#: ../cli/src/connections.c:1123 +#: ../cli/src/connections.c:635 msgid "VPN connected" msgstr "VPN ansluten" -#: ../cli/src/connections.c:1125 +#: ../cli/src/connections.c:637 msgid "VPN connection failed" msgstr "VPN-anslutning misslyckades" -#: ../cli/src/connections.c:1127 +#: ../cli/src/connections.c:639 msgid "VPN disconnected" msgstr "VPN frånkopplad" -#: ../cli/src/connections.c:1138 +#: ../cli/src/connections.c:892 +#: ../cli/src/connections.c:1116 +#, c-format +msgid "Error: 'con status': %s" +msgstr "Fel: \"con status\": %s" + +#: ../cli/src/connections.c:894 +#: ../cli/src/connections.c:1118 +#, c-format +msgid "Error: 'con status': %s; allowed fields: %s" +msgstr "Fel: \"con status\": %s; tillåtna fält: %s" + +#: ../cli/src/connections.c:902 +msgid "Active connection details" +msgstr "Detaljer för aktiv anslutning" + +#: ../cli/src/connections.c:1038 +#: ../cli/src/connections.c:1530 +#: ../cli/src/connections.c:1633 +#: ../cli/src/connections.c:1724 +#: ../cli/src/devices.c:1026 +#: ../cli/src/devices.c:1088 +#: ../cli/src/devices.c:1241 +#: ../cli/src/devices.c:1370 +#: ../cli/src/devices.c:1589 +#, c-format +msgid "Error: Can't find out if NetworkManager is running: %s." +msgstr "Fel: Kunde inte ta reda på om Nätverkshanterare är igång: %s." + +#: ../cli/src/connections.c:1042 +#: ../cli/src/connections.c:1534 +#: ../cli/src/connections.c:1637 +#: ../cli/src/connections.c:1728 +#: ../cli/src/devices.c:1030 +#: ../cli/src/devices.c:1092 +#: ../cli/src/devices.c:1245 +#: ../cli/src/devices.c:1374 +#: ../cli/src/devices.c:1593 +#, c-format +msgid "Error: NetworkManager is not running." +msgstr "Fel: Nätverkshanterare är inte igång." + +#: ../cli/src/connections.c:1074 +msgid "Active connections" +msgstr "Aktiva anslutningar" + +#: ../cli/src/connections.c:1099 +#, c-format +msgid "Error: '%s' is not an active connection." +msgstr "Fel: \"%s\" är inte en aktiv anslutning." + +#: ../cli/src/connections.c:1104 +#, c-format +msgid "Error: unknown parameter: %s" +msgstr "Fel: okänd parameter: %s" + +#: ../cli/src/connections.c:1211 +#, c-format +msgid "no active connection on device '%s'" +msgstr "ingen aktiv anslutning på enheten \"%s\"" + +#: ../cli/src/connections.c:1219 +#, c-format +msgid "no active connection or device" +msgstr "ingen aktiv anslutning eller enhet" + +#: ../cli/src/connections.c:1290 +#, c-format +msgid "device '%s' not compatible with connection '%s'" +msgstr "enheten \"%s\" är inte kompatibel med anslutningen \"%s\"" + +#: ../cli/src/connections.c:1292 +#, c-format +msgid "no device found for connection '%s'" +msgstr "ingen enhet hittades för anslutningen \"%s\"" + +#: ../cli/src/connections.c:1303 msgid "unknown reason" msgstr "okänd anledning" -#: ../cli/src/connections.c:1140 +#: ../cli/src/connections.c:1305 msgid "none" msgstr "ingen" -#: ../cli/src/connections.c:1142 +#: ../cli/src/connections.c:1307 msgid "the user was disconnected" msgstr "användaren kopplades från" -#: ../cli/src/connections.c:1144 +#: ../cli/src/connections.c:1309 msgid "the base network connection was interrupted" msgstr "basnätverksanslutningen avbröts" -#: ../cli/src/connections.c:1146 +#: ../cli/src/connections.c:1311 msgid "the VPN service stopped unexpectedly" msgstr "VPN-tjänsten stoppades oväntat" -#: ../cli/src/connections.c:1148 +#: ../cli/src/connections.c:1313 msgid "the VPN service returned invalid configuration" msgstr "VPN-tjänsten returnerade en ogiltig konfiguration" -#: ../cli/src/connections.c:1150 +#: ../cli/src/connections.c:1315 msgid "the connection attempt timed out" msgstr "anslutningsförsöket översteg tidsgränsen" -#: ../cli/src/connections.c:1152 +#: ../cli/src/connections.c:1317 msgid "the VPN service did not start in time" msgstr "VPN-tjänsten startade inte i tid" -#: ../cli/src/connections.c:1154 +#: ../cli/src/connections.c:1319 msgid "the VPN service failed to start" msgstr "VPN-tjänsten misslyckades med att starta" -#: ../cli/src/connections.c:1156 +#: ../cli/src/connections.c:1321 msgid "no valid VPN secrets" msgstr "inga giltiga VPN-hemligheter" -#: ../cli/src/connections.c:1158 +#: ../cli/src/connections.c:1323 msgid "invalid VPN secrets" msgstr "ogiltiga VPN-hemligheter" -#: ../cli/src/connections.c:1160 +#: ../cli/src/connections.c:1325 msgid "the connection was removed" msgstr "anslutningen togs bort" -#: ../cli/src/connections.c:1174 +#: ../cli/src/connections.c:1339 #, c-format msgid "state: %s\n" msgstr "tillstånd: %s\n" -#: ../cli/src/connections.c:1177 -#: ../cli/src/connections.c:1203 +#: ../cli/src/connections.c:1342 +#: ../cli/src/connections.c:1368 #, c-format msgid "Connection activated\n" msgstr "Anslutning aktiverad\n" -#: ../cli/src/connections.c:1180 +#: ../cli/src/connections.c:1345 #, c-format msgid "Error: Connection activation failed." msgstr "Fel: Aktivering av anslutning misslyckades." -#: ../cli/src/connections.c:1199 +#: ../cli/src/connections.c:1364 #, c-format msgid "state: %s (%d)\n" msgstr "tillstånd: %s (%d)\n" -#: ../cli/src/connections.c:1209 +#: ../cli/src/connections.c:1374 #, c-format msgid "Error: Connection activation failed: %s." msgstr "Fel: Aktivering av anslutning misslyckades: %s." -#: ../cli/src/connections.c:1226 -#: ../cli/src/devices.c:909 +#: ../cli/src/connections.c:1391 +#: ../cli/src/devices.c:1148 #, c-format msgid "Error: Timeout %d sec expired." msgstr "Fel: Tidsgränsen %d sekunder gick ut." -#: ../cli/src/connections.c:1269 +#: ../cli/src/connections.c:1404 #, c-format msgid "Error: Connection activation failed: %s" msgstr "Fel: Aktivering av anslutning misslyckades: %s" -#: ../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:1292 +#: ../cli/src/connections.c:1410 #, c-format msgid "Active connection state: %s\n" msgstr "Tillstånd för aktiv anslutning: %s\n" -#: ../cli/src/connections.c:1293 +#: ../cli/src/connections.c:1411 #, c-format msgid "Active connection path: %s\n" msgstr "Sökväg för aktiv anslutning: %s\n" -#: ../cli/src/connections.c:1347 -#: ../cli/src/connections.c:1468 +#: ../cli/src/connections.c:1464 +#: ../cli/src/connections.c:1609 +#: ../cli/src/connections.c:1737 #, c-format msgid "Error: Unknown connection: %s." msgstr "Fel: Okänd anslutning: %s." -#: ../cli/src/connections.c:1382 -#: ../cli/src/devices.c:980 +#: ../cli/src/connections.c:1510 +#: ../cli/src/devices.c:1220 #, 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:1395 -#: ../cli/src/connections.c:1485 +#: ../cli/src/connections.c:1523 +#: ../cli/src/connections.c:1626 +#: ../cli/src/connections.c:1717 #, c-format msgid "Error: id or uuid has to be specified." msgstr "Fel: id eller uuid måste anges." -#: ../cli/src/connections.c:1415 +#: ../cli/src/connections.c:1555 #, c-format msgid "Error: No suitable device found: %s." msgstr "Fel: Ingen lämplig enhet hittades: %s." -#: ../cli/src/connections.c:1417 +#: ../cli/src/connections.c:1557 #, c-format msgid "Error: No suitable device found." msgstr "Fel: Ingen lämplig enhet hittades." -#: ../cli/src/connections.c:1512 +#: ../cli/src/connections.c:1662 #, c-format msgid "Warning: Connection not active\n" msgstr "Varning: Anslutningen är inte aktiv\n" -#: ../cli/src/connections.c:1569 +#: ../cli/src/connections.c:1676 +#, c-format +msgid "Error: Connection deletion failed: %s" +msgstr "Fel: Borttagning av anslutning misslyckades: %s" + +#: ../cli/src/connections.c:1794 #, c-format msgid "Error: 'con' command '%s' is not valid." msgstr "Fel: \"con\"-kommandot \"%s\" är inte giltigt." -#: ../cli/src/connections.c:1605 +#: ../cli/src/connections.c:1859 #, c-format msgid "Error: could not connect to D-Bus." msgstr "Fel: kunde inte ansluta till D-Bus." -#: ../cli/src/connections.c:1612 +#: ../cli/src/connections.c:1867 #, c-format msgid "Error: Could not get system settings." msgstr "Fel: Kunde inte få systeminställningar." -#: ../cli/src/connections.c:1620 +#: ../cli/src/connections.c:1877 #, c-format -msgid "Error: Could not get user settings." -msgstr "Fel: Kunde inte få användarinställningar." - -#: ../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." +msgid "Error: Can't obtain connections: settings service is not running." +msgstr "Fel: Kan inte läsa av anslutningar: inställningstjänster är inte igång." #. 0 #. 9 -#: ../cli/src/devices.c:61 -#: ../cli/src/devices.c:89 -#: ../cli/src/devices.c:184 +#. 3 +#: ../cli/src/devices.c:67 +#: ../cli/src/devices.c:103 +#: ../cli/src/devices.c:181 +#: ../cli/src/devices.c:197 msgid "DEVICE" msgstr "ENHET" -#. 1 -#. 4 #. 0 -#: ../cli/src/devices.c:63 -#: ../cli/src/devices.c:93 -#: ../cli/src/network-manager.c:36 -msgid "STATE" -msgstr "TILLSTÅND" - -#: ../cli/src/devices.c:72 -msgid "GENERAL" -msgstr "ALLMÄNT" - -#. 0 -#: ../cli/src/devices.c:73 +#: ../cli/src/devices.c:80 msgid "CAPABILITIES" msgstr "FÖRMÅGOR" #. 1 -#: ../cli/src/devices.c:74 +#: ../cli/src/devices.c:81 msgid "WIFI-PROPERTIES" msgstr "WIFI-EGENSKAPER" #. 2 -#: ../cli/src/devices.c:75 +#: ../cli/src/devices.c:82 msgid "AP" msgstr "AP" #. 3 -#: ../cli/src/devices.c:76 +#: ../cli/src/devices.c:83 msgid "WIRED-PROPERTIES" msgstr "TRÅDADE-EGENSKAPER" #. 4 -#: ../cli/src/devices.c:77 -msgid "IP4-SETTINGS" -msgstr "IP4-INSTÄLLNINGAR" +#: ../cli/src/devices.c:84 +msgid "WIMAX-PROPERTIES" +msgstr "WIMAX-EGENSKAPER" #. 5 -#: ../cli/src/devices.c:78 -msgid "IP4-DNS" -msgstr "IP4-DNS" +#. 0 +#: ../cli/src/devices.c:85 +#: ../cli/src/devices.c:194 +msgid "NSP" +msgstr "NSP" #. 6 -#: ../cli/src/devices.c:79 -msgid "IP6-SETTINGS" -msgstr "IP6-INSTÄLLNINGAR" +#: ../cli/src/devices.c:86 +msgid "IP4" +msgstr "IP4" #. 7 -#: ../cli/src/devices.c:80 -msgid "IP6-DNS" -msgstr "IP6-DNS" +#: ../cli/src/devices.c:87 +msgid "DHCP4" +msgstr "DHCP4" + +#. 8 +#: ../cli/src/devices.c:88 +msgid "IP6" +msgstr "IP6" + +#. 9 +#: ../cli/src/devices.c:89 +msgid "DHCP6" +msgstr "DHCP6" #. 2 -#: ../cli/src/devices.c:91 +#: ../cli/src/devices.c:105 +msgid "VENDOR" +msgstr "TILLVERKARE" + +#. 3 +#: ../cli/src/devices.c:106 +msgid "PRODUCT" +msgstr "PRODUKT" + +#. 4 +#: ../cli/src/devices.c:107 msgid "DRIVER" msgstr "DRIVRUTIN" -#. 3 -#: ../cli/src/devices.c:92 +#. 5 +#: ../cli/src/devices.c:108 msgid "HWADDR" msgstr "HWADDR" +#. 7 +#: ../cli/src/devices.c:110 +msgid "REASON" +msgstr "ANLEDNING" + +#. 8 +#: ../cli/src/devices.c:111 +msgid "UDI" +msgstr "UDI" + +#. 9 +#: ../cli/src/devices.c:112 +msgid "IP-IFACE" +msgstr "IP-GRÄNS" + +#. 10 +#: ../cli/src/devices.c:113 +msgid "NM-MANAGED" +msgstr "NM-HANTERAD" + +#. 11 +#: ../cli/src/devices.c:114 +msgid "FIRMWARE-MISSING" +msgstr "FAST-PROGRAMVARA-SAKNAS" + +#. 12 +#: ../cli/src/devices.c:115 +msgid "CONNECTION" +msgstr "ANSLUTNING" + #. 0 -#: ../cli/src/devices.c:102 +#: ../cli/src/devices.c:124 msgid "CARRIER-DETECT" msgstr "CARRIER-DETECT" #. 1 -#: ../cli/src/devices.c:103 +#: ../cli/src/devices.c:125 msgid "SPEED" msgstr "HASTIGHET" #. 0 -#: ../cli/src/devices.c:112 +#: ../cli/src/devices.c:134 msgid "CARRIER" msgstr "BÄRARE" #. 0 -#: ../cli/src/devices.c:122 +#: ../cli/src/devices.c:144 msgid "WEP" msgstr "WEP" #. 1 -#: ../cli/src/devices.c:123 +#: ../cli/src/devices.c:145 msgid "WPA" msgstr "WPA" #. 2 -#: ../cli/src/devices.c:124 +#: ../cli/src/devices.c:146 msgid "WPA2" msgstr "WPA2" #. 3 -#: ../cli/src/devices.c:125 +#: ../cli/src/devices.c:147 msgid "TKIP" msgstr "TKIP" #. 4 -#: ../cli/src/devices.c:126 +#: ../cli/src/devices.c:148 msgid "CCMP" msgstr "CCMP" #. 0 -#: ../cli/src/devices.c:135 -#: ../cli/src/devices.c:146 -msgid "ADDRESS" -msgstr "ADRESS" +#: ../cli/src/devices.c:158 +msgid "CTR-FREQ" +msgstr "CTR-FREQ" #. 1 -#: ../cli/src/devices.c:136 -#: ../cli/src/devices.c:147 -msgid "PREFIX" -msgstr "PREFIX" +#: ../cli/src/devices.c:159 +msgid "RSSI" +msgstr "RSSI" #. 2 -#: ../cli/src/devices.c:137 -#: ../cli/src/devices.c:148 -msgid "GATEWAY" -msgstr "GATEWAY" +#: ../cli/src/devices.c:160 +msgid "CINR" +msgstr "CINR" -#. 0 -#: ../cli/src/devices.c:157 -#: ../cli/src/devices.c:166 -msgid "DNS" -msgstr "DNS" +#. 3 +#: ../cli/src/devices.c:161 +msgid "TX-POW" +msgstr "TX-POW" + +#. 4 +#: ../cli/src/devices.c:162 +msgid "BSID" +msgstr "BSID" #. 0 -#: ../cli/src/devices.c:175 +#: ../cli/src/devices.c:172 msgid "SSID" msgstr "SSID" #. 1 -#: ../cli/src/devices.c:176 +#: ../cli/src/devices.c:173 msgid "BSSID" msgstr "BSSID" #. 2 -#: ../cli/src/devices.c:177 +#: ../cli/src/devices.c:174 msgid "MODE" msgstr "LÄGE" #. 3 -#: ../cli/src/devices.c:178 +#: ../cli/src/devices.c:175 msgid "FREQ" msgstr "FREK" #. 4 -#: ../cli/src/devices.c:179 +#: ../cli/src/devices.c:176 msgid "RATE" msgstr "FREKVENS" #. 5 -#: ../cli/src/devices.c:180 +#. 1 +#: ../cli/src/devices.c:177 +#: ../cli/src/devices.c:195 msgid "SIGNAL" msgstr "SIGNAL" #. 6 -#: ../cli/src/devices.c:181 +#: ../cli/src/devices.c:178 msgid "SECURITY" msgstr "SÄKERHET" #. 7 -#: ../cli/src/devices.c:182 +#: ../cli/src/devices.c:179 msgid "WPA-FLAGS" msgstr "WPA-FLAGGOR" #. 8 -#: ../cli/src/devices.c:183 +#: ../cli/src/devices.c:180 msgid "RSN-FLAGS" msgstr "RSN-FLAGGOR" #. 10 -#: ../cli/src/devices.c:185 +#. 4 +#: ../cli/src/devices.c:182 +#: ../cli/src/devices.c:198 msgid "ACTIVE" msgstr "AKTIV" -#: ../cli/src/devices.c:208 +#: ../cli/src/devices.c:215 #, c-format msgid "" "Usage: nmcli dev { COMMAND | help }\n" "\n" +" COMMAND := { status | list | disconnect | wifi | wimax }\n" +"\n" " COMMAND := { status | list | disconnect | wifi }\n" "\n" " status\n" " list [iface <iface>]\n" " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n" -" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n" +" wifi [list [iface <iface>] [bssid <BSSID>]]\n" +" wimax [list [iface <iface>] [nsp <name>]]\n" "\n" msgstr "" "Användning: nmcli dev { KOMMANDO | help }\n" "\n" +" KOMMANDO := { status | list | disconnect | wifi | wimax }\n" +"\n" " KOMMANDO := { status | list | disconnect | wifi }\n" "\n" " status\n" " list [iface <gränssnitt>]\n" " disconnect iface <gränssnitt> [--nowait] [--timeout <tidsgräns>]\n" -" wifi [list [iface <gränssnitt>] [hwaddr <maskinvaruadress>]]\n" +" wifi [list [iface <gränssnitt>] [bssid <BSSID>]]\n" +" wimax [list [iface <gränssnitt>] [nsp <namn>]]\n" "\n" -#: ../cli/src/devices.c:228 +#: ../cli/src/devices.c:243 msgid "unmanaged" msgstr "ohanterad" -#: ../cli/src/devices.c:230 +#: ../cli/src/devices.c:245 msgid "unavailable" msgstr "otillgänglig" -#: ../cli/src/devices.c:232 -#: ../cli/src/network-manager.c:91 +#: ../cli/src/devices.c:247 +#: ../cli/src/network-manager.c:108 msgid "disconnected" msgstr "frånkopplad" -#: ../cli/src/devices.c:234 +#: ../cli/src/devices.c:249 msgid "connecting (prepare)" msgstr "ansluter (förbereder)" -#: ../cli/src/devices.c:236 +#: ../cli/src/devices.c:251 msgid "connecting (configuring)" msgstr "ansluter (konfigurerar)" -#: ../cli/src/devices.c:238 +#: ../cli/src/devices.c:253 msgid "connecting (need authentication)" msgstr "ansluter (behöver autentisering)" -#: ../cli/src/devices.c:240 +#: ../cli/src/devices.c:255 msgid "connecting (getting IP configuration)" msgstr "ansluter (hämtar IP-konfiguration)" -#: ../cli/src/devices.c:242 -#: ../cli/src/network-manager.c:89 +#: ../cli/src/devices.c:257 +msgid "connecting (checking IP connectivity)" +msgstr "ansluter (kontrollerar IP-anslutning)" + +#: ../cli/src/devices.c:259 +msgid "connecting (starting secondary connections)" +msgstr "ansluter (startar sekundära anslutningar)" + +#: ../cli/src/devices.c:261 +#: ../cli/src/network-manager.c:104 msgid "connected" msgstr "ansluten" -#: ../cli/src/devices.c:244 +#: ../cli/src/devices.c:265 msgid "connection failed" msgstr "anslutningen misslyckades" -#: ../cli/src/devices.c:267 -#: ../cli/src/devices.c:424 +#: ../cli/src/devices.c:276 +msgid "No reason given" +msgstr "Ingen anledning angiven" + +#: ../cli/src/devices.c:279 +msgid "Unknown error" +msgstr "Okänt fel" + +#: ../cli/src/devices.c:282 +msgid "Device is now managed" +msgstr "Enheten är nu hanterad" + +#: ../cli/src/devices.c:285 +msgid "Device is now unmanaged" +msgstr "Enheten är nu ohanterad" + +#: ../cli/src/devices.c:288 +msgid "The device could not be readied for configuration" +msgstr "Enheten kunde inte göras färdig för konfiguration" + +#: ../cli/src/devices.c:291 +msgid "IP configuration could not be reserved (no available address, timeout, etc)" +msgstr "IP-konfigurationen kunde inte reserveras (ingen tillgänglig adress, tidsgräns, etc)" + +#: ../cli/src/devices.c:294 +msgid "The IP configuration is no longer valid" +msgstr "IP-konfigurationen är inte längre giltig" + +#: ../cli/src/devices.c:297 +msgid "Secrets were required, but not provided" +msgstr "Hemligheter krävdes men angavs inte" + +#: ../cli/src/devices.c:300 +msgid "802.1X supplicant disconnected" +msgstr "802.1X-supplikanten kopplade från" + +#: ../cli/src/devices.c:303 +msgid "802.1X supplicant configuration failed" +msgstr "Konfiguration av 802.1X-supplikanten misslyckades" + +#: ../cli/src/devices.c:306 +msgid "802.1X supplicant failed" +msgstr "802.1X-supplikanten misslyckades" + +#: ../cli/src/devices.c:309 +msgid "802.1X supplicant took too long to authenticate" +msgstr "802.1X-supplikanten tog för lång tid att autentisera" + +#: ../cli/src/devices.c:312 +msgid "PPP service failed to start" +msgstr "PPP-tjänsten misslyckades med att starta" + +#: ../cli/src/devices.c:315 +msgid "PPP service disconnected" +msgstr "PPP-tjänsten kopplades från" + +#: ../cli/src/devices.c:318 +msgid "PPP failed" +msgstr "PPP misslyckades" + +#: ../cli/src/devices.c:321 +msgid "DHCP client failed to start" +msgstr "DHCP-klienten misslyckades med att starta" + +#: ../cli/src/devices.c:324 +msgid "DHCP client error" +msgstr "Fel i DHCP-klient" + +#: ../cli/src/devices.c:327 +msgid "DHCP client failed" +msgstr "DHCP-klienten misslyckades" + +#: ../cli/src/devices.c:330 +msgid "Shared connection service failed to start" +msgstr "Tjänst för delad anslutning misslyckades med att starta" + +#: ../cli/src/devices.c:333 +msgid "Shared connection service failed" +msgstr "Tjänst för delad anslutning misslyckades" + +#: ../cli/src/devices.c:336 +msgid "AutoIP service failed to start" +msgstr "AutoIP-tjänsten misslyckades med att starta" + +#: ../cli/src/devices.c:339 +msgid "AutoIP service error" +msgstr "Fel i AutoIP-tjänsten" + +#: ../cli/src/devices.c:342 +msgid "AutoIP service failed" +msgstr "AutoIP-tjänsten misslyckades" + +#: ../cli/src/devices.c:345 +msgid "The line is busy" +msgstr "Linjen är upptagen" + +#: ../cli/src/devices.c:348 +msgid "No dial tone" +msgstr "Ingen rington" + +#: ../cli/src/devices.c:351 +msgid "No carrier could be established" +msgstr "Ingen bärare kunde etableras" + +#: ../cli/src/devices.c:354 +msgid "The dialing request timed out" +msgstr "Uppringningsbegäran översteg tidsgränsen" + +#: ../cli/src/devices.c:357 +msgid "The dialing attempt failed" +msgstr "Uppringningsförsöket misslyckades" + +#: ../cli/src/devices.c:360 +msgid "Modem initialization failed" +msgstr "Initiering av modem misslyckades" + +#: ../cli/src/devices.c:363 +msgid "Failed to select the specified APN" +msgstr "Misslyckades med att välja angiven APN" + +#: ../cli/src/devices.c:366 +msgid "Not searching for networks" +msgstr "Söker inte efter nätverk" + +#: ../cli/src/devices.c:369 +msgid "Network registration denied" +msgstr "Nätverksregistreringen nekades" + +#: ../cli/src/devices.c:372 +msgid "Network registration timed out" +msgstr "Tidsgränsen för nätverksregistrering överstegs" + +#: ../cli/src/devices.c:375 +msgid "Failed to register with the requested network" +msgstr "Misslyckades med att registrera mot det begärda nätverket" + +#: ../cli/src/devices.c:378 +msgid "PIN check failed" +msgstr "Kontroll av PIN-kod misslyckades" + +#: ../cli/src/devices.c:381 +msgid "Necessary firmware for the device may be missing" +msgstr "Nödvändig fast programvara för enheten kanske saknas" + +#: ../cli/src/devices.c:384 +msgid "The device was removed" +msgstr "Enheten togs bort" + +#: ../cli/src/devices.c:387 +msgid "NetworkManager went to sleep" +msgstr "Nätverkshanterare somnade" + +#: ../cli/src/devices.c:390 +msgid "The device's active connection disappeared" +msgstr "Enhetens aktiva anslutning försvann" + +#: ../cli/src/devices.c:393 +msgid "Device disconnected by user or client" +msgstr "Enheten kopplades från av användare eller klient" + +#: ../cli/src/devices.c:396 +msgid "Carrier/link changed" +msgstr "Bärare/länk ändrades" + +#: ../cli/src/devices.c:399 +msgid "The device's existing connection was assumed" +msgstr "Enhetens befintliga anslutning antogs" + +#: ../cli/src/devices.c:402 +msgid "The supplicant is now available" +msgstr "Supplikanten finns nu tillgänglig" + +#: ../cli/src/devices.c:405 +msgid "The modem could not be found" +msgstr "Modemet kunde inte hittas" + +#: ../cli/src/devices.c:408 +msgid "The Bluetooth connection failed or timed out" +msgstr "Blåtandsanslutningen misslyckades eller översteg tidsgränsen" + +#: ../cli/src/devices.c:411 +msgid "GSM Modem's SIM card not inserted" +msgstr "SIM-kortet i GSM-modemet är inte anslutet" + +#: ../cli/src/devices.c:414 +msgid "GSM Modem's SIM PIN required" +msgstr "PIN-kod för SIM-kortet i GSM-modemet krävs" + +#: ../cli/src/devices.c:417 +msgid "GSM Modem's SIM PUK required" +msgstr "PUK-kod för SIM-kortet i GSM-modemet krävs" + +#: ../cli/src/devices.c:420 +msgid "GSM Modem's SIM wrong" +msgstr "SIM-kortet i GSM-modemet är felaktigt" + +#: ../cli/src/devices.c:423 +#| msgid "Infiniband device does not support connected mode" +msgid "InfiniBand device does not support connected mode" +msgstr "InfiniBand-enheten saknar stöd för anslutet läge" + +#: ../cli/src/devices.c:426 +#| msgid "connection failed" +msgid "A dependency of the connection failed" +msgstr "Ett beroende för anslutningen misslyckades" + +#: ../cli/src/devices.c:428 +#: ../cli/src/devices.c:451 +#: ../cli/src/devices.c:467 +#: ../cli/src/devices.c:587 +#: ../cli/src/devices.c:631 msgid "Unknown" msgstr "Okänt" -#: ../cli/src/devices.c:299 +#: ../cli/src/devices.c:500 msgid "(none)" msgstr "(ingen)" -#: ../cli/src/devices.c:324 -#, c-format -msgid "%s: error converting IP4 address 0x%X" -msgstr "%s: fel vid konvertering av IP4-adress 0x%X" - -#: ../cli/src/devices.c:393 +#: ../cli/src/devices.c:556 #, c-format msgid "%u MHz" msgstr "%u MHz" -#: ../cli/src/devices.c:394 +#: ../cli/src/devices.c:557 #, c-format msgid "%u MB/s" msgstr "%u MB/s" -#: ../cli/src/devices.c:403 +#: ../cli/src/devices.c:566 msgid "Encrypted: " msgstr "Krypterad: " -#: ../cli/src/devices.c:408 +#: ../cli/src/devices.c:571 msgid "WEP " msgstr "WEP " -#: ../cli/src/devices.c:410 +#: ../cli/src/devices.c:573 msgid "WPA " msgstr "WPA " -#: ../cli/src/devices.c:412 +#: ../cli/src/devices.c:575 msgid "WPA2 " msgstr "WPA2 " -#: ../cli/src/devices.c:415 +#: ../cli/src/devices.c:578 msgid "Enterprise " msgstr "Företag" -#: ../cli/src/devices.c:424 +#: ../cli/src/devices.c:587 msgid "Ad-Hoc" msgstr "Ad-Hoc" -#: ../cli/src/devices.c:424 +#: ../cli/src/devices.c:587 msgid "Infrastructure" msgstr "Infrastruktur" -#: ../cli/src/devices.c:486 +#: ../cli/src/devices.c:622 +msgid "Home" +msgstr "Hem" + +#: ../cli/src/devices.c:625 +msgid "Partner" +msgstr "Partner" + +#: ../cli/src/devices.c:628 +msgid "Roaming" +msgstr "Roaming" + +#: ../cli/src/devices.c:700 #, c-format msgid "Error: 'dev list': %s" msgstr "Fel: \"dev list\": %s" -#: ../cli/src/devices.c:488 +#: ../cli/src/devices.c:702 #, c-format msgid "Error: 'dev list': %s; allowed fields: %s" msgstr "Fel: \"dev list\": %s; tillåtna fält: %s" -#: ../cli/src/devices.c:497 +#: ../cli/src/devices.c:711 msgid "Device details" msgstr "Enhetsdetaljer" -#: ../cli/src/devices.c:527 -#: ../cli/src/devices.c:925 +#: ../cli/src/devices.c:756 +#: ../cli/src/devices.c:757 +#: ../cli/src/devices.c:1164 +#: ../cli/src/utils.c:445 msgid "(unknown)" msgstr "(okänt)" -#: ../cli/src/devices.c:528 -msgid "unknown)" -msgstr "okänt)" +#: ../cli/src/devices.c:765 +msgid "not connected" +msgstr "inte ansluten" -#: ../cli/src/devices.c:554 +#: ../cli/src/devices.c:792 #, c-format msgid "%u Mb/s" msgstr "%u Mb/s" #. Print header #. "WIRED-PROPERTIES" -#: ../cli/src/devices.c:627 +#: ../cli/src/devices.c:865 msgid "on" msgstr "på" -#: ../cli/src/devices.c:627 +#: ../cli/src/devices.c:865 msgid "off" msgstr "av" -#: ../cli/src/devices.c:808 +#: ../cli/src/devices.c:1016 #, c-format msgid "Error: 'dev status': %s" msgstr "Fel: \"dev status\": %s" -#: ../cli/src/devices.c:810 +#: ../cli/src/devices.c:1018 #, c-format msgid "Error: 'dev status': %s; allowed fields: %s" msgstr "Fel: \"dev status\": %s; tillåtna fält: %s" -#: ../cli/src/devices.c:817 +#: ../cli/src/devices.c:1041 msgid "Status of devices" msgstr "Status för enheter" -#: ../cli/src/devices.c:845 +#: ../cli/src/devices.c:1072 #, c-format msgid "Error: '%s' argument is missing." msgstr "Fel: \"%s\"-argument saknas." -#: ../cli/src/devices.c:874 -#: ../cli/src/devices.c:1013 -#: ../cli/src/devices.c:1136 +#: ../cli/src/devices.c:1113 +#: ../cli/src/devices.c:1265 +#: ../cli/src/devices.c:1402 +#: ../cli/src/devices.c:1621 #, c-format msgid "Error: Device '%s' not found." msgstr "Fel: Enheten \"%s\" hittades inte." -#: ../cli/src/devices.c:897 +#: ../cli/src/devices.c:1136 #, c-format msgid "Success: Device '%s' successfully disconnected." msgstr "Lyckades: Enheten \"%s\" kopplades från." -#: ../cli/src/devices.c:922 +#: ../cli/src/devices.c:1161 #, c-format msgid "Error: Device '%s' (%s) disconnecting failed: %s" msgstr "Fel: Frånkoppling av enheten \"%s\" (%s) misslyckades: %s" -#: ../cli/src/devices.c:930 +#: ../cli/src/devices.c:1169 #, c-format msgid "Device state: %d (%s)\n" msgstr "Enhetstillstånd: %d (%s)\n" -#: ../cli/src/devices.c:994 +#: ../cli/src/devices.c:1234 #, c-format msgid "Error: iface has to be specified." msgstr "Fel: gränssnitt (iface) måste anges." -#: ../cli/src/devices.c:1112 +#: ../cli/src/devices.c:1360 #, c-format msgid "Error: 'dev wifi': %s" msgstr "Fel: \"dev wifi\": %s" -#: ../cli/src/devices.c:1114 +#: ../cli/src/devices.c:1362 #, c-format msgid "Error: 'dev wifi': %s; allowed fields: %s" msgstr "Fel: \"dev wifi\": %s; tillåtna fält: %s" -#: ../cli/src/devices.c:1121 +#: ../cli/src/devices.c:1385 msgid "WiFi scan list" msgstr "WiFi-avsökningslista" -#: ../cli/src/devices.c:1156 -#: ../cli/src/devices.c:1210 +#: ../cli/src/devices.c:1422 +#: ../cli/src/devices.c:1476 #, c-format -msgid "Error: Access point with hwaddr '%s' not found." -msgstr "Fel: Accesspunkt med hwaddr \"%s\" hittades inte." +msgid "Error: Access point with bssid '%s' not found." +msgstr "Fel: Accesspunkt med bssid \"%s\" hittades inte." -#: ../cli/src/devices.c:1173 +#: ../cli/src/devices.c:1439 #, c-format msgid "Error: Device '%s' is not a WiFi device." msgstr "Fel: Enheten \"%s\" är inte en WiFi-enhet." -#: ../cli/src/devices.c:1237 +#: ../cli/src/devices.c:1503 #, c-format msgid "Error: 'dev wifi' command '%s' is not valid." msgstr "Fel: \"dev wifi\"-kommandot \"%s\" är inte giltigt." -#: ../cli/src/devices.c:1284 +#: ../cli/src/devices.c:1579 +#, c-format +msgid "Error: 'dev wimax': %s" +msgstr "Fel: \"dev wimax\": %s" + +#: ../cli/src/devices.c:1581 +#, c-format +msgid "Error: 'dev wimax': %s; allowed fields: %s" +msgstr "Fel: \"dev wimax\": %s; tillåtna fält: %s" + +#: ../cli/src/devices.c:1604 +msgid "WiMAX NSP list" +msgstr "WiMAX NSP-lista" + +#: ../cli/src/devices.c:1641 +#, c-format +msgid "Error: NSP with name '%s' not found." +msgstr "Fel: NSP med namnet \"%s\" hittades inte." + +#: ../cli/src/devices.c:1652 +#, c-format +msgid "Error: Device '%s' is not a WiMAX device." +msgstr "Fel: Enheten \"%s\" är inte en WiMAX-enhet." + +#: ../cli/src/devices.c:1683 +#, c-format +msgid "Error: Access point with nsp '%s' not found." +msgstr "Fel: Accesspunkt med nsp \"%s\" hittades inte." + +#: ../cli/src/devices.c:1710 +#, c-format +msgid "Error: 'dev wimax' command '%s' is not valid." +msgstr "Fel: \"dev wimax\"-kommandot \"%s\" är inte giltigt." + +#: ../cli/src/devices.c:1760 #, c-format msgid "Error: 'dev' command '%s' is not valid." msgstr "Fel: \"dev\"-kommandot \"%s\" är inte giltigt." -#: ../cli/src/network-manager.c:35 +#: ../cli/src/network-manager.c:37 msgid "RUNNING" msgstr "KÖR" -#. 1 -#: ../cli/src/network-manager.c:37 +#. 0 +#: ../cli/src/network-manager.c:38 +msgid "VERSION" +msgstr "VERSION" + +#. 2 +#: ../cli/src/network-manager.c:40 msgid "NET-ENABLED" msgstr "NÄT-AKTIVERAT" -#. 2 -#: ../cli/src/network-manager.c:38 +#. 3 +#: ../cli/src/network-manager.c:41 msgid "WIFI-HARDWARE" msgstr "WIFI-MASKINVARA" -#. 3 -#: ../cli/src/network-manager.c:39 +#. 4 +#: ../cli/src/network-manager.c:42 msgid "WIFI" msgstr "WIFI" -#. 4 -#: ../cli/src/network-manager.c:40 +#. 5 +#: ../cli/src/network-manager.c:43 msgid "WWAN-HARDWARE" msgstr "WWAN-MASKINVARA" -#. 5 -#: ../cli/src/network-manager.c:41 +#. 6 +#: ../cli/src/network-manager.c:44 msgid "WWAN" msgstr "WWAN" -#: ../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" +#. 7 +#: ../cli/src/network-manager.c:45 +msgid "WIMAX-HARDWARE" +msgstr "WIMAX-MASKINVARA" + +#. 8 +#: ../cli/src/network-manager.c:46 +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" " COMMAND := { status | enable | sleep | wifi | wwan }\n" "\n" " status\n" @@ -993,10 +1486,13 @@ msgid "" " sleep [true|false]\n" " wifi [on|off]\n" " wwan [on|off]\n" +" wimax [on|off]\n" "\n" msgstr "" "Användning: nmcli nm { KOMMANDO | help }\n" "\n" +" KOMMANDO := { status | enable | sleep | wifi | wwan | wimax }\n" +"\n" " KOMMANDO := { status | enable | sleep | wifi | wwan }\n" "\n" " status\n" @@ -1004,133 +1500,157 @@ msgstr "" " 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:96 msgid "asleep" msgstr "sover" -#: ../cli/src/network-manager.c:87 +#: ../cli/src/network-manager.c:98 msgid "connecting" msgstr "ansluter" -#: ../cli/src/network-manager.c:128 +#: ../cli/src/network-manager.c:100 +msgid "connected (local only)" +msgstr "ansluten (endast lokalt)" + +#: ../cli/src/network-manager.c:102 +msgid "connected (site only)" +msgstr "ansluten (endast plats)" + +#: ../cli/src/network-manager.c:106 +msgid "disconnecting" +msgstr "kopplar från" + +#: ../cli/src/network-manager.c:146 #, c-format msgid "Error: 'nm status': %s" msgstr "Fel: \"nm status\": %s" -#: ../cli/src/network-manager.c:130 +#: ../cli/src/network-manager.c:148 #, 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:137 -msgid "NetworkManager status" -msgstr "Status för Nätverkshanterare" - -#. 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 +#. create NMClient +#: ../cli/src/network-manager.c:161 +#: ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 +#: ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 +#: ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 +#: ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 +#: ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "enabled" msgstr "aktiverad" -#: ../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:161 +#: ../cli/src/network-manager.c:162 +#: ../cli/src/network-manager.c:163 +#: ../cli/src/network-manager.c:164 +#: ../cli/src/network-manager.c:165 +#: ../cli/src/network-manager.c:167 +#: ../cli/src/network-manager.c:168 +#: ../cli/src/network-manager.c:289 +#: ../cli/src/network-manager.c:344 +#: ../cli/src/network-manager.c:382 +#: ../cli/src/network-manager.c:421 msgid "disabled" msgstr "inaktiverad" -#: ../cli/src/network-manager.c:152 +#: ../cli/src/network-manager.c:181 +msgid "NetworkManager status" +msgstr "Status för Nätverkshanterare" + +#. Print header +#: ../cli/src/network-manager.c:184 msgid "running" msgstr "kör" -#: ../cli/src/network-manager.c:152 +#: ../cli/src/network-manager.c:184 msgid "not running" msgstr "kör inte" -#: ../cli/src/network-manager.c:175 +#: ../cli/src/network-manager.c:215 +#: ../cli/src/utils.c:425 #, 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 +#: ../cli/src/network-manager.c:226 #, 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 +#: ../cli/src/network-manager.c:232 #, 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 +#: ../cli/src/network-manager.c:276 +#: ../cli/src/network-manager.c:331 +#: ../cli/src/network-manager.c:369 +#: ../cli/src/network-manager.c:408 #, c-format 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:245 -#| msgid "WiFi enabled" +#: ../cli/src/network-manager.c:284 msgid "Networking enabled" msgstr "Nätverk aktiverat" -#: ../cli/src/network-manager.c:256 +#: ../cli/src/network-manager.c:300 #, 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 +#: ../cli/src/network-manager.c:310 #, 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 +#: ../cli/src/network-manager.c:318 #, 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 +#: ../cli/src/network-manager.c:339 msgid "WiFi enabled" msgstr "WiFi aktiverat" -#: ../cli/src/network-manager.c:305 +#: ../cli/src/network-manager.c:355 #, c-format msgid "Error: invalid 'wifi' parameter: '%s'." msgstr "Fel: ogiltig \"wifi\"-parameter: \"%s\"." -#: ../cli/src/network-manager.c:326 +#: ../cli/src/network-manager.c:377 msgid "WWAN enabled" msgstr "WWAN aktiverat" -#: ../cli/src/network-manager.c:337 +#: ../cli/src/network-manager.c:393 #, c-format msgid "Error: invalid 'wwan' parameter: '%s'." msgstr "Fel: ogiltig \"wwan\"-parameter: \"%s\"." -#: ../cli/src/network-manager.c:348 +#: ../cli/src/network-manager.c:416 +msgid "WiMAX enabled" +msgstr "WiMAX aktiverat" + +#: ../cli/src/network-manager.c:432 +#, c-format +msgid "Error: invalid 'wimax' parameter: '%s'." +msgstr "Fel: ogiltig \"wimax\"-parameter: \"%s\"." + +#: ../cli/src/network-manager.c:445 #, c-format msgid "Error: 'nm' command '%s' is not valid." msgstr "Fel: \"nm\"-kommandot \"%s\" är inte giltigt." -#: ../cli/src/nmcli.c:69 +#: ../cli/src/nmcli.c:64 #, c-format msgid "" "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n" @@ -1141,6 +1661,7 @@ msgid "" " -m[ode] tabular|multiline output mode\n" " -f[ields] <field1,field2,...>|all|common specify fields to output\n" " -e[scape] yes|no escape columns separators in values\n" +" -n[ocheck] don't check nmcli and NetworkManager versions\n" " -v[ersion] show program version\n" " -h[elp] print this help\n" "\n" @@ -1158,6 +1679,7 @@ msgstr "" " -m[ode] tabular|multiline utdataläge\n" " -f[ields] <field1,field2,...>|all|common ange fält för utdata\n" " -e[scape] yes|no escape för kolumnavgränsare i värden\n" +" -n[ocheck] kontrollera inte version av nmcli och Nätverkshanterare\n" " -v[ersion] visa programversion\n" " -h[elp] skriv ut denna hjälp\n" "\n" @@ -1167,654 +1689,827 @@ msgstr "" " dev enheter hanterade av Nätverkshanterare\n" "\n" -#: ../cli/src/nmcli.c:113 +#: ../cli/src/nmcli.c:109 #, c-format msgid "Error: Object '%s' is unknown, try 'nmcli help'." msgstr "Fel: Objektet \"%s\" är okänt, prova \"nmcli help\"." -#: ../cli/src/nmcli.c:143 +#: ../cli/src/nmcli.c:139 #, c-format msgid "Error: Option '--terse' is specified the second time." msgstr "Fel: Flaggan \"--terse\" har angivits en andra gång." -#: ../cli/src/nmcli.c:148 +#: ../cli/src/nmcli.c:144 #, c-format msgid "Error: Option '--terse' is mutually exclusive with '--pretty'." msgstr "Fel: Flaggan \"--terse\" är ömsesidigt uteslutande med \"--pretty\"." -#: ../cli/src/nmcli.c:156 +#: ../cli/src/nmcli.c:152 #, c-format msgid "Error: Option '--pretty' is specified the second time." msgstr "Fel: Flaggan \"--pretty\" har angivits en andra gång." -#: ../cli/src/nmcli.c:161 +#: ../cli/src/nmcli.c:157 #, c-format msgid "Error: Option '--pretty' is mutually exclusive with '--terse'." msgstr "Fel: Flaggan \"--pretty\" är ömsesidigt uteslutande med \"--terse\"." -#: ../cli/src/nmcli.c:171 -#: ../cli/src/nmcli.c:187 +#: ../cli/src/nmcli.c:167 +#: ../cli/src/nmcli.c:183 #, c-format msgid "Error: missing argument for '%s' option." msgstr "Fel: argument för flaggan \"%s\" saknas." -#: ../cli/src/nmcli.c:180 -#: ../cli/src/nmcli.c:196 +#: ../cli/src/nmcli.c:176 +#: ../cli/src/nmcli.c:192 #, c-format msgid "Error: '%s' is not valid argument for '%s' option." msgstr "Fel: \"%s\" är inte ett giltigt argument för flaggan \"%s\"." -#: ../cli/src/nmcli.c:203 +#: ../cli/src/nmcli.c:199 #, c-format msgid "Error: fields for '%s' options are missing." msgstr "Fel: fält för \"%s\"-flaggor saknas." -#: ../cli/src/nmcli.c:209 +#: ../cli/src/nmcli.c:207 #, c-format msgid "nmcli tool, version %s\n" msgstr "nmcli-verktyg, version %s\n" -#: ../cli/src/nmcli.c:215 +#: ../cli/src/nmcli.c:213 #, c-format msgid "Error: Option '%s' is unknown, try 'nmcli -help'." msgstr "Fel: Flaggan \"%s\" är okänd, prova \"nmcli -help\"." -#: ../cli/src/nmcli.c:234 +#: ../cli/src/nmcli.c:232 #, c-format msgid "Caught signal %d, shutting down..." msgstr "Fångade signal %d, stänger av..." -#: ../cli/src/nmcli.c:259 -#, c-format -msgid "Error: Could not connect to NetworkManager." -msgstr "Fel: Kunde inte ansluta till Nätverkshanterare." +#: ../cli/src/nmcli.c:257 +msgid "Error: Could not create NMClient object." +msgstr "Fel: Kunde inte skapa NMClient-objekt." -#: ../cli/src/nmcli.c:275 +#: ../cli/src/nmcli.c:273 msgid "Success" msgstr "Lyckades" -#: ../cli/src/settings.c:411 +#: ../cli/src/settings.c:497 #, c-format msgid "%d (hex-ascii-key)" msgstr "%d (hex-ascii-nyckel)" -#: ../cli/src/settings.c:413 +#: ../cli/src/settings.c:499 #, c-format msgid "%d (104/128-bit passphrase)" msgstr "%d (104/128-bitars lösenfras)" -#: ../cli/src/settings.c:416 +#: ../cli/src/settings.c:502 #, c-format msgid "%d (unknown)" msgstr "%d (okänt)" -#: ../cli/src/settings.c:442 +#: ../cli/src/settings.c:528 msgid "0 (unknown)" msgstr "0 (okänt)" -#: ../cli/src/settings.c:448 +#: ../cli/src/settings.c:534 msgid "any, " msgstr "valfri, " -#: ../cli/src/settings.c:450 +#: ../cli/src/settings.c:536 msgid "900 MHz, " msgstr "900 MHz, " -#: ../cli/src/settings.c:452 +#: ../cli/src/settings.c:538 msgid "1800 MHz, " msgstr "1800 MHz, " -#: ../cli/src/settings.c:454 +#: ../cli/src/settings.c:540 msgid "1900 MHz, " msgstr "1900 MHz, " -#: ../cli/src/settings.c:456 +#: ../cli/src/settings.c:542 msgid "850 MHz, " msgstr "850 MHz, " -#: ../cli/src/settings.c:458 +#: ../cli/src/settings.c:544 msgid "WCDMA 3GPP UMTS 2100 MHz, " msgstr "WCDMA 3GPP UMTS 2100 MHz, " -#: ../cli/src/settings.c:460 +#: ../cli/src/settings.c:546 msgid "WCDMA 3GPP UMTS 1800 MHz, " msgstr "WCDMA 3GPP UMTS 1800 MHz, " -#: ../cli/src/settings.c:462 +#: ../cli/src/settings.c:548 msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, " -#: ../cli/src/settings.c:464 +#: ../cli/src/settings.c:550 msgid "WCDMA 3GPP UMTS 800 MHz, " msgstr "WCDMA 3GPP UMTS 800 MHz, " -#: ../cli/src/settings.c:466 +#: ../cli/src/settings.c:552 msgid "WCDMA 3GPP UMTS 850 MHz, " msgstr "WCDMA 3GPP UMTS 850 MHz, " -#: ../cli/src/settings.c:468 +#: ../cli/src/settings.c:554 msgid "WCDMA 3GPP UMTS 900 MHz, " msgstr "WCDMA 3GPP UMTS 900 MHz, " -#: ../cli/src/settings.c:470 +#: ../cli/src/settings.c:556 msgid "WCDMA 3GPP UMTS 1700 MHz, " msgstr "WCDMA 3GPP UMTS 1700 MHz, " -#: ../cli/src/settings.c:554 -#: ../cli/src/settings.c:721 +#: ../cli/src/settings.c:558 +msgid "WCDMA 3GPP UMTS 1900 MHz, " +msgstr "WCDMA 3GPP UMTS 1900 MHz, " + +#: ../cli/src/settings.c:560 +msgid "WCDMA 3GPP UMTS 2600 MHz, " +msgstr "WCDMA 3GPP UMTS 2600 MHz, " + +#: ../cli/src/settings.c:578 +msgid "0 (NONE)" +msgstr "0 (INGEN)" + +#: ../cli/src/settings.c:584 +msgid "REORDER_HEADERS, " +msgstr "REORDER_HEADERS, " + +#: ../cli/src/settings.c:586 +msgid "GVRP, " +msgstr "GVRP, " + +#: ../cli/src/settings.c:588 +msgid "LOOSE_BINDING, " +msgstr "LOOSE_BINDING, " + +#: ../cli/src/settings.c:730 +#: ../cli/src/settings.c:926 +#: ../cli/src/settings.c:1630 msgid "auto" msgstr "auto" -#: ../cli/src/settings.c:716 -#: ../cli/src/settings.c:719 -#: ../cli/src/settings.c:720 -#: ../cli/src/utils.c:172 +#: ../cli/src/settings.c:920 +#: ../cli/src/settings.c:923 +#: ../cli/src/settings.c:924 +#: ../cli/src/utils.c:247 msgid "not set" msgstr "inte inställd" -#: ../cli/src/utils.c:124 +#: ../cli/src/utils.c:103 +#, c-format +msgid "Error converting IP4 address '0x%X' to text form" +msgstr "Fel vid konvertering av IP4-adress \"0x%X\" till textformat" + +#: ../cli/src/utils.c:131 +#, c-format +msgid "Error converting IP6 address '%s' to text form" +msgstr "Fel vid konvertering av IP6-adress \"%s\" till textformat" + +#: ../cli/src/utils.c:200 #, c-format msgid "field '%s' has to be alone" msgstr "fältet \"%s\" måste vara ensamt" -#: ../cli/src/utils.c:127 +#: ../cli/src/utils.c:203 #, c-format msgid "invalid field '%s'" msgstr "ogiltigt fält \"%s\"" -#: ../cli/src/utils.c:146 +#: ../cli/src/utils.c:222 #, c-format msgid "Option '--terse' requires specifying '--fields'" msgstr "Flaggan \"--terse\" kräver att \"--fields\" anges" -#: ../cli/src/utils.c:150 +#: ../cli/src/utils.c:226 #, c-format msgid "Option '--terse' requires specific '--fields' option values , not '%s'" msgstr "Flaggan \"--terse\" kräver specifika värden för \"--fields\"-flagga , inte \"%s\"" -#: ../libnm-util/crypto.c:120 +#: ../cli/src/utils.c:436 +#, c-format +msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus" +msgstr "Fel: Kunde inte skapa proxy för D-Bus-objekt för org.freedesktop.DBus" + +#: ../cli/src/utils.c:444 +#, c-format +msgid "Error: NameHasOwner request failed: %s" +msgstr "Fel: NameHasOwner-begäran misslyckades: %s" + +#: ../cli/src/utils.c:489 +#, c-format +msgid "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --nocheck to suppress the warning.\n" +msgstr "Varning: versionerna för nmcli (%s) och NetworkManager (%s) stämmer inte överens. Använd --nocheck för att inte visa varningen.\n" + +#: ../cli/src/utils.c:498 +#, c-format +msgid "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force execution using --nocheck, but the results are unpredictable." +msgstr "Fel: versionerna för nmcli (%s) och NetworkManager (%s) stämmer inte överens. Tvinga körning med --nocheck, men resultatet är inte förutsägbart." + +#: ../libnm-util/crypto.c:133 #, c-format msgid "PEM key file had no end tag '%s'." msgstr "PEM-nyckelfilen hade ingen sluttagg \"%s\"." -#: ../libnm-util/crypto.c:130 +#: ../libnm-util/crypto.c:146 #, c-format msgid "Doesn't look like a PEM private key file." msgstr "Ser inte ut som en privat PEM-nyckelfil." -#: ../libnm-util/crypto.c:138 +#: ../libnm-util/crypto.c:154 #, c-format msgid "Not enough memory to store PEM file data." msgstr "Inte tillräckligt mycket minne för att lagra PEM-fildata." -#: ../libnm-util/crypto.c:154 +#: ../libnm-util/crypto.c:170 #, c-format msgid "Malformed PEM file: Proc-Type was not first tag." msgstr "Felformulerad PEM-fil: Proc-Type var inte första taggen." -#: ../libnm-util/crypto.c:162 +#: ../libnm-util/crypto.c:178 #, c-format msgid "Malformed PEM file: unknown Proc-Type tag '%s'." msgstr "Felformulerad PEM-fil: okänd Proc-Type-tagg \"%s\"." -#: ../libnm-util/crypto.c:172 +#: ../libnm-util/crypto.c:188 #, c-format msgid "Malformed PEM file: DEK-Info was not the second tag." msgstr "Felformulerad PEM-fil: DEK-Info var inte andra taggen." -#: ../libnm-util/crypto.c:183 +#: ../libnm-util/crypto.c:199 #, c-format msgid "Malformed PEM file: no IV found in DEK-Info tag." msgstr "Felformulerad PEM-fil: ingen IV hittades i DEK-Info-taggen." -#: ../libnm-util/crypto.c:190 +#: ../libnm-util/crypto.c:206 #, c-format msgid "Malformed PEM file: invalid format of IV in DEK-Info tag." msgstr "Felformulerad PEM-fil: ogiltigt format för IV i DEK-Info-taggen." -#: ../libnm-util/crypto.c:203 +#: ../libnm-util/crypto.c:219 #, c-format msgid "Malformed PEM file: unknown private key cipher '%s'." msgstr "Felformulerad PEM-fil: okänt chiffer för privat nyckel \"%s\"." -#: ../libnm-util/crypto.c:222 +#: ../libnm-util/crypto.c:238 #, c-format msgid "Could not decode private key." msgstr "Kunde inte avkoda privat nyckel." -#: ../libnm-util/crypto.c:267 -#, c-format -msgid "PEM certificate '%s' had no end tag '%s'." -msgstr "PEM-certifikatet \"%s\" hade ingen sluttagg \"%s\"." +#: ../libnm-util/crypto.c:284 +msgid "Failed to find expected PKCS#8 start tag." +msgstr "Misslyckades med att hitta förväntad PKCS#8-starttagg." -#: ../libnm-util/crypto.c:277 +#: ../libnm-util/crypto.c:292 #, c-format -msgid "Failed to decode certificate." -msgstr "Misslyckades med att avkoda certifikat." +msgid "Failed to find expected PKCS#8 end tag '%s'." +msgstr "Misslyckades med att hitta förväntad PKCS#8-sluttagg \"%s\"." -#: ../libnm-util/crypto.c:286 +#: ../libnm-util/crypto.c:312 +msgid "Not enough memory to store private key data." +msgstr "Inte tillräckligt mycket minne för att lagra privat nyckeldata." + +#: ../libnm-util/crypto.c:317 +msgid "Failed to decode PKCS#8 private key." +msgstr "Misslyckades med att avkoda privat PKCS#8-nyckel." + +#: ../libnm-util/crypto.c:339 +#: ../libnm-util/crypto.c:625 #, c-format msgid "Not enough memory to store certificate data." msgstr "Inte tillräckligt mycket minne för att lagra certifikatdata." -#: ../libnm-util/crypto.c:294 -#, c-format -msgid "Not enough memory to store file data." -msgstr "Inte tillräckligt mycket minne för att lagra fildata." - -#: ../libnm-util/crypto.c:324 +#: ../libnm-util/crypto.c:365 #, c-format msgid "IV must be an even number of bytes in length." msgstr "IV måste vara ett jämnt antal byte i längd." -#: ../libnm-util/crypto.c:333 +#: ../libnm-util/crypto.c:374 #, c-format msgid "Not enough memory to store the IV." msgstr "Inte tillräckligt mycket minne för att lagra IV." -#: ../libnm-util/crypto.c:344 +#: ../libnm-util/crypto.c:385 #, c-format msgid "IV contains non-hexadecimal digits." msgstr "IV innehåller icke-hexadecimala siffror." -#: ../libnm-util/crypto.c:382 -#: ../libnm-util/crypto_gnutls.c:148 -#: ../libnm-util/crypto_gnutls.c:266 -#: ../libnm-util/crypto_nss.c:171 -#: ../libnm-util/crypto_nss.c:336 +#: ../libnm-util/crypto.c:423 +#: ../libnm-util/crypto_gnutls.c:147 +#: ../libnm-util/crypto_gnutls.c:265 +#: ../libnm-util/crypto_nss.c:167 +#: ../libnm-util/crypto_nss.c:332 #, c-format msgid "Private key cipher '%s' was unknown." msgstr "Privata nyckelchiffret \"%s\" var okänt." -#: ../libnm-util/crypto.c:391 +#: ../libnm-util/crypto.c:432 #, c-format msgid "Not enough memory to decrypt private key." msgstr "Inte tillräckligt mycket minne för att dekryptera privat nyckel." -#: ../libnm-util/crypto.c:511 +#: ../libnm-util/crypto.c:497 +#, c-format +msgid "Not enough memory to store decrypted private key." +msgstr "Inte tillräckligt mycket minne för att lagra dekrypterad privat nyckel." + +#: ../libnm-util/crypto.c:542 #, c-format msgid "Unable to determine private key type." msgstr "Kunde inte bestämma typ av privat nyckel." -#: ../libnm-util/crypto.c:530 +#: ../libnm-util/crypto.c:597 #, c-format -msgid "Not enough memory to store decrypted private key." -msgstr "Inte tillräckligt mycket minne för att lagra dekrypterad privat nyckel." +msgid "PEM certificate had no start tag '%s'." +msgstr "PEM-certifikatet hade ingen starttagg \"%s\"." -#: ../libnm-util/crypto_gnutls.c:49 +#: ../libnm-util/crypto.c:606 +#, c-format +msgid "PEM certificate had no end tag '%s'." +msgstr "PEM-certifikatet hade ingen sluttagg \"%s\"." + +#: ../libnm-util/crypto.c:630 +#, c-format +msgid "Failed to decode certificate." +msgstr "Misslyckades med att avkoda certifikat." + +#: ../libnm-util/crypto_gnutls.c:50 msgid "Failed to initialize the crypto engine." msgstr "Misslyckades med att initiera krypteringsmotorn." -#: ../libnm-util/crypto_gnutls.c:93 +#: ../libnm-util/crypto_gnutls.c:92 #, c-format msgid "Failed to initialize the MD5 engine: %s / %s." msgstr "Misslyckades med att initiera MD5-motorn: %s / %s." -#: ../libnm-util/crypto_gnutls.c:156 +#: ../libnm-util/crypto_gnutls.c:155 #, c-format msgid "Invalid IV length (must be at least %zd)." msgstr "Ogiltig IV-längd (måste vara minst %zd)." -#: ../libnm-util/crypto_gnutls.c:165 -#: ../libnm-util/crypto_nss.c:188 +#: ../libnm-util/crypto_gnutls.c:164 +#: ../libnm-util/crypto_nss.c:184 #, c-format msgid "Not enough memory for decrypted key buffer." msgstr "Inte tillräckligt mycket minne för buffert för dekrypterade nycklar." -#: ../libnm-util/crypto_gnutls.c:173 +#: ../libnm-util/crypto_gnutls.c:172 #, c-format msgid "Failed to initialize the decryption cipher context: %s / %s." msgstr "Misslyckades med att initiera chifferkontexten för dekryptering: %s / %s." -#: ../libnm-util/crypto_gnutls.c:182 +#: ../libnm-util/crypto_gnutls.c:181 #, c-format msgid "Failed to set symmetric key for decryption: %s / %s." msgstr "Misslyckades med att ställa in symmetrisk nyckel för dekryptering: %s / %s." -#: ../libnm-util/crypto_gnutls.c:191 +#: ../libnm-util/crypto_gnutls.c:190 #, c-format msgid "Failed to set IV for decryption: %s / %s." msgstr "Misslyckades med att ställa in IV för dekryptering: %s / %s." -#: ../libnm-util/crypto_gnutls.c:200 +#: ../libnm-util/crypto_gnutls.c:199 #, c-format msgid "Failed to decrypt the private key: %s / %s." msgstr "Misslyckades med att dekryptera den privata nyckeln: %s / %s." -#: ../libnm-util/crypto_gnutls.c:210 -#: ../libnm-util/crypto_nss.c:267 +#: ../libnm-util/crypto_gnutls.c:209 +#: ../libnm-util/crypto_nss.c:263 #, c-format msgid "Failed to decrypt the private key: unexpected padding length." msgstr "Misslyckades med att dekryptera privata nyckeln: oväntad utfyllningslängd." -#: ../libnm-util/crypto_gnutls.c:221 -#: ../libnm-util/crypto_nss.c:278 +#: ../libnm-util/crypto_gnutls.c:220 +#: ../libnm-util/crypto_nss.c:274 #, c-format msgid "Failed to decrypt the private key." msgstr "Misslyckades med att dekryptera privata nyckeln." -#: ../libnm-util/crypto_gnutls.c:286 -#: ../libnm-util/crypto_nss.c:356 +#: ../libnm-util/crypto_gnutls.c:285 +#: ../libnm-util/crypto_nss.c:352 #, c-format msgid "Could not allocate memory for encrypting." msgstr "Kunde inte allokera minne för kryptering." -#: ../libnm-util/crypto_gnutls.c:294 +#: ../libnm-util/crypto_gnutls.c:293 #, c-format msgid "Failed to initialize the encryption cipher context: %s / %s." msgstr "Misslyckades med att initiera chifferkontexten för kryptering: %s / %s." -#: ../libnm-util/crypto_gnutls.c:303 +#: ../libnm-util/crypto_gnutls.c:302 #, c-format msgid "Failed to set symmetric key for encryption: %s / %s." msgstr "Misslyckades med att ställa in symmetrisk nyckel för kryptering: %s / %s." -#: ../libnm-util/crypto_gnutls.c:313 +#: ../libnm-util/crypto_gnutls.c:312 #, c-format msgid "Failed to set IV for encryption: %s / %s." msgstr "Misslyckades med att ställa in IV för kryptering: %s / %s." -#: ../libnm-util/crypto_gnutls.c:322 +#: ../libnm-util/crypto_gnutls.c:321 #, c-format msgid "Failed to encrypt the data: %s / %s." msgstr "Misslyckades med att kryptera datat: %s / %s." -#: ../libnm-util/crypto_gnutls.c:362 +#: ../libnm-util/crypto_gnutls.c:361 #, c-format msgid "Error initializing certificate data: %s" msgstr "Fel vid initiering av certifikatdata: %s" -#: ../libnm-util/crypto_gnutls.c:384 +#: ../libnm-util/crypto_gnutls.c:383 #, c-format msgid "Couldn't decode certificate: %s" msgstr "Kunde inte avkoda certifikat: %s" -#: ../libnm-util/crypto_gnutls.c:408 +#: ../libnm-util/crypto_gnutls.c:407 #, c-format msgid "Couldn't initialize PKCS#12 decoder: %s" msgstr "Kunde inte initiera PKCS#12-avkodare: %s" -#: ../libnm-util/crypto_gnutls.c:421 +#: ../libnm-util/crypto_gnutls.c:420 #, c-format msgid "Couldn't decode PKCS#12 file: %s" msgstr "Kunde inte avkoda PKCS#12-fil: %s" -#: ../libnm-util/crypto_gnutls.c:433 +#: ../libnm-util/crypto_gnutls.c:432 #, c-format msgid "Couldn't verify PKCS#12 file: %s" msgstr "Kunde inte verifiera PKCS#12-fil: %s" +#: ../libnm-util/crypto_gnutls.c:460 +#, c-format +msgid "Couldn't initialize PKCS#8 decoder: %s" +msgstr "Kunde inte initiera PKCS#8-avkodare: %s" + +#: ../libnm-util/crypto_gnutls.c:483 +#, c-format +msgid "Couldn't decode PKCS#8 file: %s" +msgstr "Kunde inte avkoda PKCS#8-fil: %s" + #: ../libnm-util/crypto_nss.c:56 #, c-format msgid "Failed to initialize the crypto engine: %d." msgstr "Misslyckades med att initiera krypteringsmotorn: %d." -#: ../libnm-util/crypto_nss.c:111 +#: ../libnm-util/crypto_nss.c:107 #, c-format msgid "Failed to initialize the MD5 context: %d." msgstr "Misslyckades med att initiera MD5-kontexten: %d." -#: ../libnm-util/crypto_nss.c:179 +#: ../libnm-util/crypto_nss.c:175 #, c-format msgid "Invalid IV length (must be at least %d)." msgstr "Ogiltig IV-längd (måste vara minst %d)." -#: ../libnm-util/crypto_nss.c:196 +#: ../libnm-util/crypto_nss.c:192 #, c-format msgid "Failed to initialize the decryption cipher slot." msgstr "Misslyckades med att initiera dekrypteringschifferplatsen." -#: ../libnm-util/crypto_nss.c:206 +#: ../libnm-util/crypto_nss.c:202 #, c-format msgid "Failed to set symmetric key for decryption." msgstr "Misslyckades med att ställa in symmetrisk nyckel för dekryptering." -#: ../libnm-util/crypto_nss.c:216 +#: ../libnm-util/crypto_nss.c:212 #, c-format msgid "Failed to set IV for decryption." msgstr "Misslyckades med att ställa in IV för dekryptering." -#: ../libnm-util/crypto_nss.c:224 +#: ../libnm-util/crypto_nss.c:220 #, c-format msgid "Failed to initialize the decryption context." msgstr "Misslyckades med att initiera dekrypteringskontexten." -#: ../libnm-util/crypto_nss.c:237 +#: ../libnm-util/crypto_nss.c:233 #, c-format msgid "Failed to decrypt the private key: %d." msgstr "Misslyckades med att dekryptera privata nyckeln: %d." -#: ../libnm-util/crypto_nss.c:245 +#: ../libnm-util/crypto_nss.c:241 #, c-format msgid "Failed to decrypt the private key: decrypted data too large." msgstr "Misslyckades med att dekryptera privata nyckeln: dekrypterat data är för stort." -#: ../libnm-util/crypto_nss.c:256 +#: ../libnm-util/crypto_nss.c:252 #, c-format msgid "Failed to finalize decryption of the private key: %d." msgstr "Misslyckades med att färdigställa dekryptering av den privata nyckeln: %d." -#: ../libnm-util/crypto_nss.c:364 +#: ../libnm-util/crypto_nss.c:360 #, c-format msgid "Failed to initialize the encryption cipher slot." msgstr "Misslyckades med att initiera krypteringschifferplatsen." -#: ../libnm-util/crypto_nss.c:372 +#: ../libnm-util/crypto_nss.c:368 #, c-format msgid "Failed to set symmetric key for encryption." msgstr "Misslyckades med att ställa in symmetrisk nyckel för kryptering." -#: ../libnm-util/crypto_nss.c:380 +#: ../libnm-util/crypto_nss.c:376 #, c-format msgid "Failed to set IV for encryption." msgstr "Misslyckades med att ställa in IV för kryptering." -#: ../libnm-util/crypto_nss.c:388 +#: ../libnm-util/crypto_nss.c:384 #, c-format msgid "Failed to initialize the encryption context." msgstr "Misslyckades med att initiera krypteringskontexten." -#: ../libnm-util/crypto_nss.c:396 +#: ../libnm-util/crypto_nss.c:392 #, c-format msgid "Failed to encrypt: %d." msgstr "Misslyckades med att kryptera: %d." -#: ../libnm-util/crypto_nss.c:404 +#: ../libnm-util/crypto_nss.c:400 #, c-format msgid "Unexpected amount of data after encrypting." msgstr "Oväntad mängd data efter kryptering." -#: ../libnm-util/crypto_nss.c:447 +#: ../libnm-util/crypto_nss.c:443 #, c-format msgid "Couldn't decode certificate: %d" msgstr "Kunde inte avkoda certifikat: %d" -#: ../libnm-util/crypto_nss.c:482 +#: ../libnm-util/crypto_nss.c:478 #, c-format msgid "Couldn't convert password to UCS2: %d" msgstr "Kunde inte konvertera lösenord till UCS2: %d" -#: ../libnm-util/crypto_nss.c:510 +#: ../libnm-util/crypto_nss.c:506 #, c-format msgid "Couldn't initialize PKCS#12 decoder: %d" msgstr "Kunde inte initiera PKCS#12-avkodare: %d" -#: ../libnm-util/crypto_nss.c:519 +#: ../libnm-util/crypto_nss.c:515 #, c-format msgid "Couldn't decode PKCS#12 file: %d" msgstr "Kunde inte avkoda PKCS#12-fil: %d" -#: ../libnm-util/crypto_nss.c:528 +#: ../libnm-util/crypto_nss.c:524 #, c-format msgid "Couldn't verify PKCS#12 file: %d" msgstr "Kunde inte verifiera PKCS#12-fil: %d" -#: ../libnm-util/crypto_nss.c:557 +#: ../libnm-util/crypto_nss.c:568 msgid "Could not generate random data." msgstr "Kunde inte generera slumpmässigt data." -#: ../libnm-util/nm-utils.c:1975 +#: ../libnm-util/nm-utils.c:2040 #, c-format msgid "Not enough memory to make encryption key." msgstr "Inte tillräckligt mycket minne för att skapa krypteringsnyckel." -#: ../libnm-util/nm-utils.c:2085 +#: ../libnm-util/nm-utils.c:2150 msgid "Could not allocate memory for PEM file creation." msgstr "Kunde inte allokera minne för att skapa PEM-fil." -#: ../libnm-util/nm-utils.c:2097 +#: ../libnm-util/nm-utils.c:2162 #, c-format msgid "Could not allocate memory for writing IV to PEM file." msgstr "Kunde inte allokera minne för skrivning av IV till PEM-fil." -#: ../libnm-util/nm-utils.c:2109 +#: ../libnm-util/nm-utils.c:2174 #, c-format msgid "Could not allocate memory for writing encrypted key to PEM file." msgstr "Kunde inte allokera minne för skrivning av krypterad nyckel till PEM-fil." -#: ../libnm-util/nm-utils.c:2128 +#: ../libnm-util/nm-utils.c:2193 #, c-format msgid "Could not allocate memory for PEM file data." msgstr "Kunde inte allokera minne för PEM-fildata." -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1 -msgid "Connection sharing via a protected WiFi network" -msgstr "Anslutningsdelning via ett skyddat trådlöst nätverk" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2 -msgid "Connection sharing via an open WiFi network" -msgstr "Anslutningsdelning via ett öppet trådlöst nätverk" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3 -msgid "Modify persistent system hostname" -msgstr "Ändra bestående värdnamn för systemet" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4 -msgid "Modify system connections" -msgstr "Ändra systemanslutningar" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5 -msgid "System policy prevents modification of system settings" -msgstr "Systemets policy förhindrar ändring av systeminställningar" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6 -msgid "System policy prevents modification of the persistent system hostname" -msgstr "Systemets policy förhindrar ändring av bestående värdnamn för systemet" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7 -msgid "System policy prevents sharing connections via a protected WiFi network" -msgstr "Systemets policy förhindrar delning av anslutningar via ett skyddat trådlöst nätverk" - -#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8 -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 "Allow control of network connections" -msgstr "Tillåt kontroll av nätverksanslutningar" +msgid "Enable or disable system networking" +msgstr "Aktivera eller inaktivera systemnätverk" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:2 -msgid "Allow use of user-specific connections" -msgstr "Tillåt användning av användarspecifika anslutningar" +msgid "System policy prevents enabling or disabling system networking" +msgstr "Systemets policy förhindrar aktivering eller inaktivering av systemnätverk" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:3 -msgid "Enable or disable WiFi devices" -msgstr "Aktivera eller inaktivera WiFi-enheter" +msgid "Put NetworkManager to sleep or wake it up (should only be used by system power management)" +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:4 -msgid "Enable or disable mobile broadband devices" -msgstr "Aktivera eller inaktivera mobila bredbandsenheter" +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:5 -msgid "Enable or disable system networking" -msgstr "Aktivera eller inaktivera systemnätverk" +msgid "Enable or disable WiFi devices" +msgstr "Aktivera eller inaktivera WiFi-enheter" #: ../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 "Försätt Nätverkshanterare i vänteläge eller återställ efter det (bör endast användas av systemets strömhantering)" +msgid "System policy prevents enabling or disabling WiFi devices" +msgstr "Systemets policy förhindrar aktivering eller inaktivering av WiFi-enheter" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 -msgid "System policy prevents control of network connections" -msgstr "Systemets policy förhindrar kontroll av nätverksanslutningar" +msgid "Enable or disable mobile broadband devices" +msgstr "Aktivera eller inaktivera mobila bredbandsenheter" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:8 -msgid "System policy prevents enabling or disabling WiFi devices" -msgstr "Systemets policy förhindrar aktivering eller inaktivering av WiFi-enheter" - -#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 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:9 +msgid "Enable or disable WiMAX mobile broadband devices" +msgstr "Aktivera eller inaktivera mobila WiMAX-bredbandsenheter" + #: ../policy/org.freedesktop.NetworkManager.policy.in.h:10 -msgid "System policy prevents enabling or disabling system networking" -msgstr "Systemets policy förhindrar aktivering eller inaktivering av systemnätverk" +msgid "System policy prevents enabling or disabling WiMAX mobile broadband devices" +msgstr "Systemets policy förhindrar aktivering eller inaktivering av mobila WiMAX-bredbandsenheter" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 -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" +msgid "Allow control of network connections" +msgstr "Tillåt kontroll av nätverksanslutningar" #: ../policy/org.freedesktop.NetworkManager.policy.in.h:12 -msgid "System policy prevents use of user-specific connections" -msgstr "Systemets policy förhindrar användning av användarspecifika anslutningar" +msgid "System policy prevents control of network connections" +msgstr "Systemets policy förhindrar kontroll av nätverksanslutningar" -#: ../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 "fel vid behandling av netlink-meddelande: %s" +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:13 +msgid "Connection sharing via a protected WiFi network" +msgstr "Anslutningsdelning via ett skyddat trådlöst nätverk" -#: ../src/nm-netlink-monitor.c:214 -msgid "error occurred while waiting for data on socket" -msgstr "fel inträffade vid väntan på data i uttaget" +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14 +msgid "System policy prevents sharing connections via a protected WiFi network" +msgstr "Systemets policy förhindrar delning av anslutningar via ett skyddat trådlöst nätverk" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:15 +msgid "Connection sharing via an open WiFi network" +msgstr "Anslutningsdelning via ett öppet trådlöst nätverk" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:16 +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:17 +msgid "Modify personal network connections" +msgstr "Ändra personliga nätverksanslutningar" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:18 +msgid "System policy prevents modification of personal network settings" +msgstr "Systemets policy förhindrar ändring av personliga nätverksinställningar" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:19 +msgid "Modify network connections for all users" +msgstr "Ändra nätverksanslutningar för alla användare" -#: ../src/nm-netlink-monitor.c:254 +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20 +msgid "System policy prevents modification of network settings for all users" +msgstr "Systemets policy förhindrar ändring av nätverksinställningar för alla användare" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21 +msgid "Modify persistent system hostname" +msgstr "Ändra bestående värdnamn för systemet" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:22 +msgid "System policy prevents modification of the persistent system hostname" +msgstr "Systemets policy förhindrar ändring av bestående värdnamn för systemet" + +#: ../src/main.c:143 #, c-format -msgid "unable to connect to netlink for monitoring link status: %s" -msgstr "kan inte ansluta till netlink för övervakning av länkstatus: %s" +msgid "Failed to initialize SIGTERM pipe: %d" +msgstr "Misslyckades med att initiera SIGTERM-rör: %d" -#: ../src/nm-netlink-monitor.c:265 +#: ../src/main.c:174 #, c-format -msgid "unable to enable netlink handle credential passing: %s" -msgstr "kunde inte aktivera behörighetshantering för netlink-handtag: %s" +msgid "Opening %s failed: %s\n" +msgstr "Öppnandet av %s misslyckades: %s\n" -#: ../src/nm-netlink-monitor.c:291 -#: ../src/nm-netlink-monitor.c:353 +#: ../src/main.c:180 #, c-format -msgid "unable to allocate netlink handle for monitoring link status: %s" -msgstr "kan inte allokera netlink-handtag för övervakning av länkstatus: %s" +msgid "Writing to %s failed: %s\n" +msgstr "Skrivning till %s misslyckades: %s\n" -#: ../src/nm-netlink-monitor.c:376 +#: ../src/main.c:185 #, c-format -msgid "unable to allocate netlink link cache for monitoring link status: %s" -msgstr "kan inte allokera netlink-länkcache för övervakning av länkstatus: %s" +msgid "Closing %s failed: %s\n" +msgstr "Stängning av %s misslyckades: %s\n" -#: ../src/nm-netlink-monitor.c:502 +#: ../src/main.c:228 #, c-format -msgid "unable to join netlink group: %s" -msgstr "kan inte gå med i netlink-grupp: %s" +msgid "NetworkManager is already running (pid %ld)\n" +msgstr "Nätverkshanterare är redan igång (pid %ld)\n" + +#: ../src/main.c:368 +msgid "Print NetworkManager version and exit" +msgstr "Skriv ut version av Nätverkshanterare och avsluta" + +#: ../src/main.c:369 +msgid "Don't become a daemon" +msgstr "Bli inte en demon" + +#: ../src/main.c:370 +msgid "Make all warnings fatal" +msgstr "Gör alla varningar till ödesdigra" + +#: ../src/main.c:371 +msgid "Specify the location of a PID file" +msgstr "Ange platsen för en PID-fil" -#: ../src/nm-netlink-monitor.c:629 -#: ../src/nm-netlink-monitor.c:642 +#: ../src/main.c:371 +msgid "filename" +msgstr "filnamn" + +#: ../src/main.c:372 +msgid "State file location" +msgstr "Plats för tillståndsfil" + +#: ../src/main.c:372 +msgid "/path/to/state.file" +msgstr "/sökväg/till/tillstånds.fil" + +#: ../src/main.c:373 +msgid "Config file location" +msgstr "Plats för konfigurationsfil" + +#: ../src/main.c:373 +msgid "/path/to/config.file" +msgstr "/sökväg/till/konfigurations.fil" + +#: ../src/main.c:374 +msgid "List of plugins separated by ','" +msgstr "Lista över insticksmoduler separerade med \",\"" + +#: ../src/main.c:374 +msgid "plugin1,plugin2" +msgstr "insticksmodul1,insticksmodul2" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:376 +msgid "Log level: one of [ERR, WARN, INFO, DEBUG]" +msgstr "Loggnivå: en av [ERR, WARN, INFO, DEBUG]" + +#. Translators: Do not translate the values in the square brackets +#: ../src/main.c:379 +msgid "" +"Log domains separated by ',': any combination of\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" +msgstr "" +"Loggdomäner separerade med \",\": någon kombination av\n" +" [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,\n" +" WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,\n" +" AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,\n" +" INFINIBAND,FIREWALL]" + +#: ../src/main.c:392 #, c-format -msgid "error updating link cache: %s" -msgstr "fel vid uppdatering av länkcache: %s" +msgid "GModules are not supported on your platform!\n" +msgstr "GModules stöds inte på din plattform!\n" + +#: ../src/main.c:411 +msgid "" +"NetworkManager monitors all network connections and automatically\n" +"chooses the best connection to use. It also allows the user to\n" +"specify wireless access points which wireless cards in the computer\n" +"should associate with." +msgstr "" +"Nätverkshanterare övervakar alla nätverksanslutningar och väljer\n" +"automatiskt den bästa anslutningen att använda. Den tillåter även\n" +"att användaren anger trådlösa accesspunkter som trådlösa nätverks-\n" +"kort i datorn ska associeras med." -#: ../src/main.c:499 +#: ../src/main.c:417 #, 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:570 +#: ../src/main.c:427 +#, c-format +msgid "You must be root to run NetworkManager!\n" +msgstr "Du måste vara root för att köra Nätverkshanterare!\n" + +#: ../src/main.c:448 +#, c-format +msgid "Failed to read configuration: (%d) %s\n" +msgstr "Misslyckades med att läsa konfiguration: (%d) %s\n" + +#: ../src/main.c:459 #, c-format 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:328 +#: ../src/main.c:466 +#, c-format +msgid "State file %s parsing failed: (%d) %s\n" +msgstr "Tolkning av tillståndsfilen %s misslyckades: (%d) %s\n" + +#: ../src/main.c:483 +#, c-format +msgid "Could not daemonize: %s [error %u]\n" +msgstr "Kunde inte bli demon: %s [fel %u]\n" + +#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62 msgid "# Created by NetworkManager\n" msgstr "# Skapad av Nätverkshanterare\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" @@ -1823,53 +2518,200 @@ msgstr "" "# Sammanfogad från %s\n" "\n" -#: ../src/dhcp-manager/nm-dhcp-manager.c:284 +#: ../src/dhcp-manager/nm-dhcp-manager.c:266 msgid "no usable DHCP client could be found." msgstr "ingen användbar DHCP-klient hittades." -#: ../src/dhcp-manager/nm-dhcp-manager.c:293 +#: ../src/dhcp-manager/nm-dhcp-manager.c:275 msgid "'dhclient' could be found." msgstr "\"dhclient\" kunde inte hittas." -#: ../src/dhcp-manager/nm-dhcp-manager.c:303 +#: ../src/dhcp-manager/nm-dhcp-manager.c:285 msgid "'dhcpcd' could be found." msgstr "\"dhcpcd\" kunde inte hittas." -#: ../src/dhcp-manager/nm-dhcp-manager.c:311 +#: ../src/dhcp-manager/nm-dhcp-manager.c:293 #, c-format msgid "unsupported DHCP client '%s'" msgstr "DHCP-klienten \"%s\" stöds inte" -#: ../src/logging/nm-logging.c:146 +#: ../src/dns-manager/nm-dns-manager.c:376 +msgid "NOTE: the libc resolver may not support more than 3 nameservers." +msgstr "OBSERVERA: uppslag via glibc kanske inte har stöd för fler än 3 namnservrar." + +#: ../src/dns-manager/nm-dns-manager.c:378 +msgid "The nameservers listed below may not be recognized." +msgstr "Namnservrarna listade nedan kanske inte kommer att kännas igen." + +#: ../src/logging/nm-logging.c:130 #, c-format msgid "Unknown log level '%s'" msgstr "Okänd loggnivå \"%s\"" -#: ../src/logging/nm-logging.c:171 +#: ../src/logging/nm-logging.c:155 #, c-format msgid "Unknown log domain '%s'" msgstr "Okänd loggdomän \"%s\"" -#: ../src/dns-manager/nm-dns-manager.c:384 -msgid "NOTE: the libc resolver may not support more than 3 nameservers." -msgstr "OBSERVERA: uppslag via glibc kanske inte har stöd för fler än 3 namnservrar." +#: ../src/modem-manager/nm-modem-cdma.c:279 +#: ../src/nm-device-bt.c:325 +#, c-format +msgid "CDMA connection %d" +msgstr "CDMA-anslutning %d" -#: ../src/dns-manager/nm-dns-manager.c:386 -msgid "The nameservers listed below may not be recognized." -msgstr "Namnservrarna listade nedan kanske inte kommer att kännas igen." +#: ../src/modem-manager/nm-modem-gsm.c:547 +#: ../src/nm-device-bt.c:321 +#, c-format +msgid "GSM connection %d" +msgstr "GSM-anslutning %d" + +#: ../src/nm-device-bond.c:191 +#, c-format +msgid "Bond connection %d" +msgstr "Bond-anslutning %d" + +#: ../src/nm-device-bt.c:296 +#, c-format +msgid "PAN connection %d" +msgstr "PAN-anslutning %d" + +#: ../src/nm-device-bt.c:329 +#, c-format +msgid "DUN connection %d" +msgstr "DUN-anslutning %d" + +#: ../src/nm-device-ethernet.c:1326 +#, c-format +msgid "PPPoE connection %d" +msgstr "PPPoE-anslutning %d" + +#: ../src/nm-device-ethernet.c:1326 +#: ../src/settings/nm-settings-utils.c:50 +#, c-format +msgid "Wired connection %d" +msgstr "Trådbunden anslutning %d" + +#: ../src/nm-device-infiniband.c:303 +#, c-format +#| msgid "Infiniband connection %d" +msgid "InfiniBand connection %d" +msgstr "InfiniBand-anslutning %d" + +#: ../src/nm-device-olpc-mesh.c:293 +#, c-format +msgid "Mesh %d" +msgstr "Mesh %d" -#: ../src/settings/nm-default-wired-connection.c:157 +#: ../src/nm-device-vlan.c:362 #, c-format -msgid "Auto %s" -msgstr "Automatisk %s" +#| msgid "PAN connection %d" +msgid "VLAN connection %d" +msgstr "VLAN-anslutning %d" -#: ../system-settings/plugins/ifcfg-rh/reader.c:3412 -#: ../system-settings/plugins/ifnet/connection_parser.c:49 +#: ../src/nm-manager.c:661 +#, c-format +msgid "VPN connection %d" +msgstr "VPN-anslutning %d" + +#: ../src/nm-netlink-monitor.c:148 +#: ../src/nm-netlink-monitor.c:272 +#: ../src/nm-netlink-monitor.c:695 +#, c-format +msgid "error processing netlink message: %s" +msgstr "fel vid behandling av netlink-meddelande: %s" + +#: ../src/nm-netlink-monitor.c:251 +msgid "error occurred while waiting for data on socket" +msgstr "fel inträffade vid väntan på data i uttaget" + +#: ../src/nm-netlink-monitor.c:296 +#, c-format +msgid "unable to connect to netlink for monitoring link status: %s" +msgstr "kan inte ansluta till netlink för övervakning av länkstatus: %s" + +#: ../src/nm-netlink-monitor.c:307 +#, c-format +msgid "unable to enable netlink handle credential passing: %s" +msgstr "kunde inte aktivera behörighetshantering för netlink-handtag: %s" + +#: ../src/nm-netlink-monitor.c:330 +#: ../src/nm-netlink-monitor.c:390 +#, c-format +msgid "unable to allocate netlink handle for monitoring link status: %s" +msgstr "kan inte allokera netlink-handtag för övervakning av länkstatus: %s" + +#: ../src/nm-netlink-monitor.c:415 +#, c-format +msgid "unable to allocate netlink link cache for monitoring link status: %s" +msgstr "kan inte allokera netlink-länkcache för övervakning av länkstatus: %s" + +#: ../src/nm-netlink-monitor.c:542 +#, c-format +msgid "unable to join netlink group: %s" +msgstr "kan inte gå med i netlink-grupp: %s" + +#: ../src/nm-netlink-monitor.c:671 +#: ../src/nm-netlink-monitor.c:684 +#, c-format +msgid "error updating link cache: %s" +msgstr "fel vid uppdatering av länkcache: %s" + +#: ../src/settings/plugins/ifcfg-rh/reader.c:93 msgid "System" msgstr "System" +#: ../src/settings/plugins/ifcfg-rh/reader.c:3634 +msgid "Bond" +msgstr "Bond" + +#~ msgid "SCOPE" +#~ msgstr "OMFÅNG" + +#~ msgid "DBUS-SERVICE" +#~ msgstr "DBUS-TJÄNST" + +#~ msgid "system" +#~ msgstr "system" + +#~ msgid "user" +#~ msgstr "användare" + +#~ msgid "System connections" +#~ msgstr "systemanslutningar" + +#~ msgid "User connections" +#~ msgstr "Användaranslutningar" + +#~ msgid "Error: Obtaining active connection for '%s' failed." +#~ msgstr "Fel: Hämtning av aktiv anslutning för \"%s\" misslyckades." + +#~ msgid "Error: Could not get user settings." +#~ msgstr "Fel: Kunde inte få användarinställningar." + +#~ msgid "IP4-SETTINGS" +#~ msgstr "IP4-INSTÄLLNINGAR" + +#~ msgid "IP6-SETTINGS" +#~ msgstr "IP6-INSTÄLLNINGAR" + +#~ msgid "PREFIX" +#~ msgstr "PREFIX" + +#~ msgid "unknown)" +#~ msgstr "okänt)" + +#~ msgid "Allow use of user-specific connections" +#~ msgstr "Tillåt användning av användarspecifika anslutningar" + +#~ msgid "System policy prevents use of user-specific connections" +#~ msgstr "" +#~ "Systemets policy förhindrar användning av användarspecifika anslutningar" + +#~ msgid "Auto %s" +#~ msgstr "Automatisk %s" + #~ msgid "Type" #~ msgstr "Typ" + #~ msgid "Name" #~ msgstr "Namn" - diff --git a/policy/Makefile.in b/policy/Makefile.in index 20001d37..d6e72c53 100644 --- a/policy/Makefile.in +++ b/policy/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -159,6 +159,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -254,6 +258,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -292,6 +299,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/policy/org.freedesktop.NetworkManager.policy b/policy/org.freedesktop.NetworkManager.policy index 84a66106..5e4eb8b4 100644 --- a/policy/org.freedesktop.NetworkManager.policy +++ b/policy/org.freedesktop.NetworkManager.policy @@ -315,12 +315,14 @@ <description xml:lang="id">Aktifkan atau matikan perangkat broadband bergerak WiMAX</description> <description xml:lang="it">Abilitare o disabilitare dispositivi WiMAX a banda larga mobile</description> <description xml:lang="ko">와이맥스 모바일 광대역 장치 사용 여부</description> + <description xml:lang="lt">Įjungti arba išjungti WiMAX mobiliojo plačiajuosčio ryšio įrenginius</description> <description xml:lang="ml">WiMAX മുബൈല് ബ്രോഡ്ബാന്റ് ഡിവൈസുകള് പ്രവര്ത്തനസജ്ജമാക്കുകയോ പ്രവര്ത്തനരഹിതമാക്കുകയോ ചെയ്യുക</description> <description xml:lang="mr">WiMAX मोबाईल ब्रॉडबँड साधने सुरू किंवा बंद करा</description> <description xml:lang="pl">Włączenie lub wyłączenie urządzeń komórkowych WiMAX</description> <description xml:lang="pt_BR">Habilita ou desabilita dispositivos móveis WiMAX</description> <description xml:lang="ru">Включить или выключить устройства мобильных сетей WiMax</description> <description xml:lang="sl">Omogoči ali onemogoči mobilne širokopasovne naprave WiMAX</description> + <description xml:lang="sv">Aktivera eller inaktivera mobila WiMAX-bredbandsenheter</description> <description xml:lang="tr">WiMAX mobil genişbant aygıtlarını etkinleştir ya da etkisizleştir</description> <description xml:lang="uk">Увімкнути або вимкнути пристрої широкосмугових мобільних мереж WiMAX</description> <message>System policy prevents enabling or disabling WiMAX mobile broadband devices</message> @@ -336,12 +338,14 @@ <message xml:lang="id">Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak WiMAX</message> <message xml:lang="it">La politica di sistema impedisce di abilitare o disabilitare i dispositivi WiMAX a banda larga mobile</message> <message xml:lang="ko">시스템 정책이 와이맥스 모바일 광대역 장치의 사용 여부 설정을 금지합니다</message> + <message xml:lang="lt">Sistemos politika neleidžia įjungti arba išjungti WiMAX mobiliojo plačiajuosčio ryšio įrenginių</message> <message xml:lang="ml">iMAX മുബൈല് ബ്രോഡ്ബാന്റ് ഡിവൈസുകള് പ്രവര്ത്തനസജ്ജമാക്കുകയോ പ്രവര്ത്തനരഹിതമാക്കുകയോ ചെയ്യുന്നത് സിസ്റ്റം പോളിസി തടയുന്നു</message> <message xml:lang="mr">प्रणाली करार WiMAX मोबाईल ब्रॉडबँड साधनांना सुरू किंवा बंद होण्यापासून रोखते</message> <message xml:lang="pl">Polityka systemu powstrzymuje włączenie lub wyłączenie urządzeń komórkowych WiMAX</message> <message xml:lang="pt_BR">Políticas de sistema previnem a habilitação ou desabilitação de dispositivos móveis de banda larga WiMAX</message> <message xml:lang="ru">Системная политика запрещает включение или выключение устройств мобильной связи WiMAX</message> <message xml:lang="sl">Sistemska določila preprečujejo omogočanje ali onemogočanje mobilnih širokopasovnih naprav WiMAX</message> + <message xml:lang="sv">Systemets policy förhindrar aktivering eller inaktivering av mobila WiMAX-bredbandsenheter</message> <message xml:lang="tr">Sistem kuralları, WiMAX mobil genişbant aygıtlarını etkinleştirmeyi ya da etkisizleştirmeyi engelliyor</message> <message xml:lang="uk">Правила системи забороняють вмикання або вимикання пристроїв широкосмугових мобільних мереж WiMAX</message> <defaults> @@ -620,12 +624,14 @@ <description xml:lang="id">Ubah koneksi jaringan personal</description> <description xml:lang="it">Modificare le connessioni personali</description> <description xml:lang="ko">개인 네트워크 연결을 수정합니다</description> + <description xml:lang="lt">Keisti asmeninius tinklo ryšius</description> <description xml:lang="ml">സ്വന്തമായ നെറ്റ്വര്ക്ക് കണക്ഷനുകളില് മാറ്റം വരുത്തുക</description> <description xml:lang="mr">वैयक्तिक नेटवर्क जोडणी संपादित करा</description> <description xml:lang="pl">Modyfikacja osobistych połączeń sieciowych</description> <description xml:lang="pt_BR">Modificar conexões pessoais de rede</description> <description xml:lang="ru">Редактировать личные настройки подключения</description> <description xml:lang="sl">Spremeni osebne omrežne povezave</description> + <description xml:lang="sv">Ändra personliga nätverksanslutningar</description> <description xml:lang="tr">Kişisel ağ bağlantılarını düzenle</description> <description xml:lang="uk">Змінити параметри особистих з’єднань з мережею</description> <message>System policy prevents modification of personal network settings</message> @@ -639,12 +645,14 @@ <message xml:lang="id">Kebijakan sistem mencegah pengubahan tatanan jaringan pribadi</message> <message xml:lang="it">La politica di sistema impedisce di modificare le impostazioni di rete personali</message> <message xml:lang="ko">시스템 정책이 개인 네트워크 설정의 수정을 금지합니다</message> + <message xml:lang="lt">Sistemos politika neleidžia keisti asmeninių tinklų nustatymų</message> <message xml:lang="ml"> സ്വന്തമായ നെറ്റ്വര്ക്ക് സജ്ജീകരണങ്ങള് മാറ്റം വരുത്തുന്നതു് സിസ്റ്റം പോളിസി തടയുന്നു</message> <message xml:lang="mr">प्रणाली करार, व्यक्तिगत नेटवर्क सेटिंग्स् संपादीत करण्यापासून रोखते</message> <message xml:lang="pl">Polityka systemu powstrzymuje modyfikację osobistych ustawień systemowych</message> <message xml:lang="pt_BR">Políticas de sistema previnem modificação das configurações pessoais de redes</message> <message xml:lang="ru">Системная политика запрещает изменение персональных настроек сети</message> <message xml:lang="sl">Sistemska določila preprečujejo spreminjanje osebnih omrežnih nastavitev</message> + <message xml:lang="sv">Systemets policy förhindrar ändring av personliga nätverksinställningar</message> <message xml:lang="tr">Sistem kuralları, kişisel ağ ayarlarının değiştirilmesine izin vermiyor</message> <message xml:lang="uk">Правила системи забороняють внесення змін до особистих параметрів мережі</message> <defaults> @@ -665,11 +673,13 @@ <description xml:lang="id">Ubah koneksi jaringan bagi semua pengguna</description> <description xml:lang="it">Modifica le connessioni di sistema per tutti gli utenti</description> <description xml:lang="ko">모든 사용자의 네트워크 연결을 수정합니다</description> + <description xml:lang="lt">Keisti visų naudotojų tinklo ryšius</description> <description xml:lang="mr">सर्व वापरकर्त्यांकरीता नेटवर्क जोडणी संपादित करा</description> <description xml:lang="pl">Modyfikacja połączeń sieciowych dla wszystkich użytkowników</description> <description xml:lang="pt_BR">Modificar conexões de rede para todos os usuários</description> <description xml:lang="ru">Изменить подключения доступные всем пользователям</description> <description xml:lang="sl">Spremeni omrežne povezave za vse uporabnike</description> + <description xml:lang="sv">Ändra nätverksanslutningar för alla användare</description> <description xml:lang="tr">Tüm kullanıcılar için ağ bağlantılarını düzenle</description> <description xml:lang="uk">Внести зміни до мережевих з’єднань всіх користувачів</description> <message>System policy prevents modification of network settings for all users</message> @@ -683,11 +693,13 @@ <message xml:lang="id">Kebijakan sistem mencegah pengubahan tatanan sistem bagi semua pengguna</message> <message xml:lang="it">La politica di sistema impedisce di modificare le impostazioni di rete per tutti gli utenti</message> <message xml:lang="ko">시스템 정책이 모든 사용자의 네트워크 설정의 수정을 금지합니다</message> + <message xml:lang="lt">Sistemos politika neleidžia keisti tinklo nustatymų, skirtų visiems naudotojams</message> <message xml:lang="mr">प्रणाली करार सर्व वापरकर्त्यांना नेटवर्क सेटिंग्स् संपादीत करण्यापासून रोखते</message> <message xml:lang="pl">Polityka systemu powstrzymuje modyfikację ustawień sieciowych dla wszystkich użytkowników</message> <message xml:lang="pt_BR">Políticas de sistema previnem modificação das configurações de rede para todos os usuários</message> <message xml:lang="ru">Системная политика запрещает изменение настроек для всех пользователей</message> <message xml:lang="sl">Sistemska določila preprečujejo spreminjanje sistemskih nastavitev za vse uporabnike</message> + <message xml:lang="sv">Systemets policy förhindrar ändring av nätverksinställningar för alla användare</message> <message xml:lang="tr">Sistem kuralları, tüm kullanıcılar için ağ ayarlarının değiştirilmesine izin vermiyor</message> <message xml:lang="uk">Правила системи забороняють внесення змін до параметрів мережі для всіх користувачів</message> <defaults> diff --git a/src/Makefile.am b/src/Makefile.am index f46fbab3..7930c286 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,7 @@ SUBDIRS= \ generated \ logging \ + posix-signals \ dns-manager \ vpn-manager \ dhcp-manager \ @@ -27,6 +28,7 @@ INCLUDES = -I${top_srcdir} \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/src/dns-manager \ -I${top_srcdir}/src/vpn-manager \ -I${top_srcdir}/src/dhcp-manager \ @@ -120,6 +122,8 @@ NetworkManager_SOURCES = \ nm-device-private.h \ nm-device-ethernet.c \ nm-device-ethernet.h \ + nm-device-adsl.c \ + nm-device-adsl.h \ nm-device-wifi.c \ nm-device-wifi.h \ nm-device-wired.c \ @@ -187,7 +191,9 @@ NetworkManager_SOURCES = \ nm-rfkill.h \ nm-session-monitor.h \ nm-session-utils.c \ - nm-session-utils.h + nm-session-utils.h \ + nm-connection-provider.h \ + nm-connection-provider.c if WITH_CONCHECK NetworkManager_SOURCES += nm-connectivity.c nm-connectivity.h @@ -218,6 +224,9 @@ nm-device-ethernet-glue.h: $(top_srcdir)/introspection/nm-device-ethernet.xml nm-device-infiniband-glue.h: $(top_srcdir)/introspection/nm-device-infiniband.xml $(AM_V_GEN) dbus-binding-tool --prefix=nm_device_infiniband --mode=glib-server --output=$@ $< +nm-device-adsl-glue.h: $(top_srcdir)/introspection/nm-device-adsl.xml + $(AM_V_GEN) dbus-binding-tool --prefix=nm_device_adsl --mode=glib-server --output=$@ $< + nm-device-wifi-glue.h: $(top_srcdir)/introspection/nm-device-wifi.xml $(AM_V_GEN) dbus-binding-tool --prefix=nm_device_wifi --mode=glib-server --output=$@ $< @@ -259,6 +268,7 @@ BUILT_SOURCES = \ nm-device-infiniband-glue.h \ nm-device-bond-glue.h \ nm-device-vlan-glue.h \ + nm-device-adsl-glue.h \ nm-device-wifi-glue.h \ nm-device-olpc-mesh-glue.h \ nm-device-bt-glue.h \ @@ -296,6 +306,7 @@ endif NetworkManager_LDADD = \ ./generated/libnm-generated.la \ ./logging/libnm-logging.la \ + ./posix-signals/libnm-posix-signals.la \ ./dns-manager/libdns-manager.la \ ./vpn-manager/libvpn-manager.la \ ./dhcp-manager/libdhcp-manager.la \ diff --git a/src/Makefile.in b/src/Makefile.in index 715658e8..e1c0fff4 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -58,7 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -97,20 +97,21 @@ am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" \ PROGRAMS = $(libexec_PROGRAMS) $(sbin_PROGRAMS) am__NetworkManager_SOURCES_DIST = nm-call-store.c nm-call-store.h \ nm-device.c nm-device.h nm-device-private.h \ - nm-device-ethernet.c nm-device-ethernet.h nm-device-wifi.c \ - nm-device-wifi.h nm-device-wired.c nm-device-wired.h \ - nm-device-olpc-mesh.c nm-device-olpc-mesh.h nm-device-bt.c \ - nm-device-bt.h nm-device-modem.h nm-device-modem.c \ - nm-device-infiniband.c nm-device-infiniband.h nm-device-bond.c \ - nm-device-bond.h nm-device-vlan.c nm-device-vlan.h \ - nm-wifi-ap.c nm-wifi-ap.h nm-wifi-ap-utils.c \ - nm-wifi-ap-utils.h nm-dbus-manager.h nm-dbus-manager.c \ - nm-udev-manager.c nm-udev-manager.h nm-device-factory.h \ - nm-hostname-provider.c nm-hostname-provider.h nm-ip4-config.c \ - nm-ip4-config.h nm-ip6-config.c nm-ip6-config.h \ - nm-active-connection.h nm-active-connection.c nm-config.h \ - nm-config.c main.c nm-policy.c nm-policy.h nm-policy-hosts.c \ - nm-policy-hosts.h nm-policy-hostname.c nm-policy-hostname.h \ + nm-device-ethernet.c nm-device-ethernet.h nm-device-adsl.c \ + nm-device-adsl.h nm-device-wifi.c nm-device-wifi.h \ + nm-device-wired.c nm-device-wired.h nm-device-olpc-mesh.c \ + nm-device-olpc-mesh.h nm-device-bt.c nm-device-bt.h \ + nm-device-modem.h nm-device-modem.c nm-device-infiniband.c \ + nm-device-infiniband.h nm-device-bond.c nm-device-bond.h \ + nm-device-vlan.c nm-device-vlan.h nm-wifi-ap.c nm-wifi-ap.h \ + nm-wifi-ap-utils.c nm-wifi-ap-utils.h nm-dbus-manager.h \ + nm-dbus-manager.c nm-udev-manager.c nm-udev-manager.h \ + nm-device-factory.h nm-hostname-provider.c \ + nm-hostname-provider.h nm-ip4-config.c nm-ip4-config.h \ + nm-ip6-config.c nm-ip6-config.h nm-active-connection.h \ + nm-active-connection.c nm-config.h nm-config.c main.c \ + nm-policy.c nm-policy.h nm-policy-hosts.c nm-policy-hosts.h \ + nm-policy-hostname.c nm-policy-hostname.h \ NetworkManagerUtils.c NetworkManagerUtils.h nm-system.c \ nm-system.h nm-manager.c nm-manager.h nm-manager-auth.c \ nm-manager-auth.h nm-netlink-monitor.c nm-netlink-monitor.h \ @@ -120,7 +121,8 @@ am__NetworkManager_SOURCES_DIST = nm-call-store.c nm-call-store.h \ nm-properties-changed-signal.h nm-dhcp4-config.c \ nm-dhcp4-config.h nm-dhcp6-config.c nm-dhcp6-config.h \ nm-rfkill.h nm-session-monitor.h nm-session-utils.c \ - nm-session-utils.h nm-connectivity.c nm-connectivity.h \ + nm-session-utils.h nm-connection-provider.h \ + nm-connection-provider.c nm-connectivity.c nm-connectivity.h \ nm-session-monitor-systemd.c nm-session-monitor-ck.c \ nm-session-monitor-null.c @WITH_CONCHECK_TRUE@am__objects_1 = \ @@ -131,6 +133,7 @@ am__NetworkManager_SOURCES_DIST = nm-call-store.c nm-call-store.h \ am_NetworkManager_OBJECTS = NetworkManager-nm-call-store.$(OBJEXT) \ NetworkManager-nm-device.$(OBJEXT) \ NetworkManager-nm-device-ethernet.$(OBJEXT) \ + NetworkManager-nm-device-adsl.$(OBJEXT) \ NetworkManager-nm-device-wifi.$(OBJEXT) \ NetworkManager-nm-device-wired.$(OBJEXT) \ NetworkManager-nm-device-olpc-mesh.$(OBJEXT) \ @@ -163,12 +166,16 @@ am_NetworkManager_OBJECTS = NetworkManager-nm-call-store.$(OBJEXT) \ NetworkManager-nm-properties-changed-signal.$(OBJEXT) \ NetworkManager-nm-dhcp4-config.$(OBJEXT) \ NetworkManager-nm-dhcp6-config.$(OBJEXT) \ - NetworkManager-nm-session-utils.$(OBJEXT) $(am__objects_1) \ - $(am__objects_2) $(am__objects_3) $(am__objects_4) + NetworkManager-nm-session-utils.$(OBJEXT) \ + NetworkManager-nm-connection-provider.$(OBJEXT) \ + $(am__objects_1) $(am__objects_2) $(am__objects_3) \ + $(am__objects_4) NetworkManager_OBJECTS = $(am_NetworkManager_OBJECTS) @WITH_CONCHECK_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) NetworkManager_DEPENDENCIES = ./generated/libnm-generated.la \ - ./logging/libnm-logging.la ./dns-manager/libdns-manager.la \ + ./logging/libnm-logging.la \ + ./posix-signals/libnm-posix-signals.la \ + ./dns-manager/libdns-manager.la \ ./vpn-manager/libvpn-manager.la \ ./dhcp-manager/libdhcp-manager.la \ ./ip6-manager/libip6-manager.la \ @@ -263,10 +270,10 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ distdir ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = generated logging dns-manager vpn-manager dhcp-manager \ - ip6-manager supplicant-manager ppp-manager backends \ - dnsmasq-manager modem-manager bluez-manager firewall-manager \ - wifi settings wimax . tests +DIST_SUBDIRS = generated logging posix-signals dns-manager vpn-manager \ + dhcp-manager ip6-manager supplicant-manager ppp-manager \ + backends dnsmasq-manager modem-manager bluez-manager \ + firewall-manager wifi settings wimax . tests DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -365,6 +372,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -460,6 +471,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -498,6 +512,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -518,16 +534,17 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = generated logging dns-manager vpn-manager dhcp-manager \ - ip6-manager supplicant-manager ppp-manager backends \ - dnsmasq-manager modem-manager bluez-manager firewall-manager \ - wifi settings $(am__append_1) . tests +SUBDIRS = generated logging posix-signals dns-manager vpn-manager \ + dhcp-manager ip6-manager supplicant-manager ppp-manager \ + backends dnsmasq-manager modem-manager bluez-manager \ + firewall-manager wifi settings $(am__append_1) . tests INCLUDES = -I${top_srcdir} \ -I${top_srcdir}/include \ -I${top_builddir}/include \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/src/dns-manager \ -I${top_srcdir}/src/vpn-manager \ -I${top_srcdir}/src/dhcp-manager \ @@ -607,10 +624,11 @@ libtest_wifi_ap_utils_la_LIBADD = \ NetworkManager_SOURCES = nm-call-store.c nm-call-store.h nm-device.c \ nm-device.h nm-device-private.h nm-device-ethernet.c \ - nm-device-ethernet.h nm-device-wifi.c nm-device-wifi.h \ - nm-device-wired.c nm-device-wired.h nm-device-olpc-mesh.c \ - nm-device-olpc-mesh.h nm-device-bt.c nm-device-bt.h \ - nm-device-modem.h nm-device-modem.c nm-device-infiniband.c \ + nm-device-ethernet.h nm-device-adsl.c nm-device-adsl.h \ + nm-device-wifi.c nm-device-wifi.h nm-device-wired.c \ + nm-device-wired.h nm-device-olpc-mesh.c nm-device-olpc-mesh.h \ + nm-device-bt.c nm-device-bt.h nm-device-modem.h \ + nm-device-modem.c nm-device-infiniband.c \ nm-device-infiniband.h nm-device-bond.c nm-device-bond.h \ nm-device-vlan.c nm-device-vlan.h nm-wifi-ap.c nm-wifi-ap.h \ nm-wifi-ap-utils.c nm-wifi-ap-utils.h nm-dbus-manager.h \ @@ -630,7 +648,8 @@ NetworkManager_SOURCES = nm-call-store.c nm-call-store.h nm-device.c \ nm-properties-changed-signal.h nm-dhcp4-config.c \ nm-dhcp4-config.h nm-dhcp6-config.c nm-dhcp6-config.h \ nm-rfkill.h nm-session-monitor.h nm-session-utils.c \ - nm-session-utils.h $(am__append_2) $(am__append_3) \ + nm-session-utils.h nm-connection-provider.h \ + nm-connection-provider.c $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) BUILT_SOURCES = \ nm-access-point-glue.h \ @@ -640,6 +659,7 @@ BUILT_SOURCES = \ nm-device-infiniband-glue.h \ nm-device-bond-glue.h \ nm-device-vlan-glue.h \ + nm-device-adsl-glue.h \ nm-device-wifi-glue.h \ nm-device-olpc-mesh-glue.h \ nm-device-bt-glue.h \ @@ -660,7 +680,9 @@ NetworkManager_CPPFLAGS = $(DBUS_CFLAGS) $(GLIB_CFLAGS) \ -DNM_RUN_DIR=\"$(rundir)\" -DNMLOCALEDIR=\"$(datadir)/locale\" \ -DNMPLUGINDIR=\"$(pkglibdir)\" $(am__append_6) NetworkManager_LDADD = ./generated/libnm-generated.la \ - ./logging/libnm-logging.la ./dns-manager/libdns-manager.la \ + ./logging/libnm-logging.la \ + ./posix-signals/libnm-posix-signals.la \ + ./dns-manager/libdns-manager.la \ ./vpn-manager/libvpn-manager.la \ ./dhcp-manager/libdhcp-manager.la \ ./ip6-manager/libip6-manager.la \ @@ -853,8 +875,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-active-connection.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-call-store.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-config.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-connection-provider.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-connectivity.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-dbus-manager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-device-adsl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-device-bond.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-device-bt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NetworkManager-nm-device-ethernet.Po@am__quote@ @@ -1018,6 +1042,22 @@ NetworkManager-nm-device-ethernet.obj: nm-device-ethernet.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkManager-nm-device-ethernet.obj `if test -f 'nm-device-ethernet.c'; then $(CYGPATH_W) 'nm-device-ethernet.c'; else $(CYGPATH_W) '$(srcdir)/nm-device-ethernet.c'; fi` +NetworkManager-nm-device-adsl.o: nm-device-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkManager-nm-device-adsl.o -MD -MP -MF $(DEPDIR)/NetworkManager-nm-device-adsl.Tpo -c -o NetworkManager-nm-device-adsl.o `test -f 'nm-device-adsl.c' || echo '$(srcdir)/'`nm-device-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/NetworkManager-nm-device-adsl.Tpo $(DEPDIR)/NetworkManager-nm-device-adsl.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-device-adsl.c' object='NetworkManager-nm-device-adsl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkManager-nm-device-adsl.o `test -f 'nm-device-adsl.c' || echo '$(srcdir)/'`nm-device-adsl.c + +NetworkManager-nm-device-adsl.obj: nm-device-adsl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkManager-nm-device-adsl.obj -MD -MP -MF $(DEPDIR)/NetworkManager-nm-device-adsl.Tpo -c -o NetworkManager-nm-device-adsl.obj `if test -f 'nm-device-adsl.c'; then $(CYGPATH_W) 'nm-device-adsl.c'; else $(CYGPATH_W) '$(srcdir)/nm-device-adsl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/NetworkManager-nm-device-adsl.Tpo $(DEPDIR)/NetworkManager-nm-device-adsl.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-device-adsl.c' object='NetworkManager-nm-device-adsl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkManager-nm-device-adsl.obj `if test -f 'nm-device-adsl.c'; then $(CYGPATH_W) 'nm-device-adsl.c'; else $(CYGPATH_W) '$(srcdir)/nm-device-adsl.c'; fi` + NetworkManager-nm-device-wifi.o: nm-device-wifi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkManager-nm-device-wifi.o -MD -MP -MF $(DEPDIR)/NetworkManager-nm-device-wifi.Tpo -c -o NetworkManager-nm-device-wifi.o `test -f 'nm-device-wifi.c' || echo '$(srcdir)/'`nm-device-wifi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/NetworkManager-nm-device-wifi.Tpo $(DEPDIR)/NetworkManager-nm-device-wifi.Po @@ -1546,6 +1586,22 @@ NetworkManager-nm-session-utils.obj: nm-session-utils.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkManager-nm-session-utils.obj `if test -f 'nm-session-utils.c'; then $(CYGPATH_W) 'nm-session-utils.c'; else $(CYGPATH_W) '$(srcdir)/nm-session-utils.c'; fi` +NetworkManager-nm-connection-provider.o: nm-connection-provider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkManager-nm-connection-provider.o -MD -MP -MF $(DEPDIR)/NetworkManager-nm-connection-provider.Tpo -c -o NetworkManager-nm-connection-provider.o `test -f 'nm-connection-provider.c' || echo '$(srcdir)/'`nm-connection-provider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/NetworkManager-nm-connection-provider.Tpo $(DEPDIR)/NetworkManager-nm-connection-provider.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-connection-provider.c' object='NetworkManager-nm-connection-provider.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkManager-nm-connection-provider.o `test -f 'nm-connection-provider.c' || echo '$(srcdir)/'`nm-connection-provider.c + +NetworkManager-nm-connection-provider.obj: nm-connection-provider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkManager-nm-connection-provider.obj -MD -MP -MF $(DEPDIR)/NetworkManager-nm-connection-provider.Tpo -c -o NetworkManager-nm-connection-provider.obj `if test -f 'nm-connection-provider.c'; then $(CYGPATH_W) 'nm-connection-provider.c'; else $(CYGPATH_W) '$(srcdir)/nm-connection-provider.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/NetworkManager-nm-connection-provider.Tpo $(DEPDIR)/NetworkManager-nm-connection-provider.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-connection-provider.c' object='NetworkManager-nm-connection-provider.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkManager-nm-connection-provider.obj `if test -f 'nm-connection-provider.c'; then $(CYGPATH_W) 'nm-connection-provider.c'; else $(CYGPATH_W) '$(srcdir)/nm-connection-provider.c'; fi` + NetworkManager-nm-connectivity.o: nm-connectivity.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkManager_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkManager-nm-connectivity.o -MD -MP -MF $(DEPDIR)/NetworkManager-nm-connectivity.Tpo -c -o NetworkManager-nm-connectivity.o `test -f 'nm-connectivity.c' || echo '$(srcdir)/'`nm-connectivity.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/NetworkManager-nm-connectivity.Tpo $(DEPDIR)/NetworkManager-nm-connectivity.Po @@ -2015,6 +2071,9 @@ nm-device-ethernet-glue.h: $(top_srcdir)/introspection/nm-device-ethernet.xml nm-device-infiniband-glue.h: $(top_srcdir)/introspection/nm-device-infiniband.xml $(AM_V_GEN) dbus-binding-tool --prefix=nm_device_infiniband --mode=glib-server --output=$@ $< +nm-device-adsl-glue.h: $(top_srcdir)/introspection/nm-device-adsl.xml + $(AM_V_GEN) dbus-binding-tool --prefix=nm_device_adsl --mode=glib-server --output=$@ $< + nm-device-wifi-glue.h: $(top_srcdir)/introspection/nm-device-wifi.xml $(AM_V_GEN) dbus-binding-tool --prefix=nm_device_wifi --mode=glib-server --output=$@ $< diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index 6c2c0446..952b4e5d 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.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) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2004 - 2012 Red Hat, Inc. * Copyright (C) 2005 - 2008 Novell, Inc. */ @@ -41,6 +41,7 @@ #include "nm-setting-wireless.h" #include "nm-setting-wireless-security.h" #include "nm-manager-auth.h" +#include "nm-posix-signals.h" /* * nm_ethernet_address_is_valid @@ -94,7 +95,7 @@ nm_spawn_process (const char *args) return -1; } - if (!g_spawn_sync ("/", argv, NULL, 0, NULL, NULL, NULL, NULL, &status, &error)) { + if (!g_spawn_sync ("/", argv, NULL, 0, nm_unblock_posix_signals, NULL, NULL, NULL, &status, &error)) { nm_log_warn (LOGD_CORE, "could not spawn process '%s': %s", args, error->message); g_error_free (error); } diff --git a/src/backends/Makefile.in b/src/backends/Makefile.in index 9c6f7d0c..48895fd3 100644 --- a/src/backends/Makefile.in +++ b/src/backends/Makefile.in @@ -60,7 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -214,6 +214,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -309,6 +313,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -347,6 +354,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/backends/NetworkManagerRedHat.c b/src/backends/NetworkManagerRedHat.c index c14eb837..843b03b2 100644 --- a/src/backends/NetworkManagerRedHat.c +++ b/src/backends/NetworkManagerRedHat.c @@ -35,7 +35,11 @@ void nm_backend_update_dns (void) { /* Invalidate the nscd host cache since we changed resolv.conf */ if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_EXECUTABLE | G_FILE_TEST_IS_REGULAR)) { - nm_spawn_process ("/etc/init.d/nscd condrestart"); + if (g_file_test ("/etc/init.d/nscd", G_FILE_TEST_EXISTS)) + nm_spawn_process ("/etc/init.d/nscd condrestart"); + else if (g_file_test ("/bin/systemctl", G_FILE_TEST_IS_EXECUTABLE)) + nm_spawn_process ("/bin/systemctl condrestart nscd.service"); + nm_spawn_process ("/usr/sbin/nscd -i hosts"); } } diff --git a/src/bluez-manager/Makefile.in b/src/bluez-manager/Makefile.in index efb5ab4e..eb9b464b 100644 --- a/src/bluez-manager/Makefile.in +++ b/src/bluez-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -171,6 +171,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -266,6 +270,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -304,6 +311,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/bluez-manager/nm-bluez-adapter.c b/src/bluez-manager/nm-bluez-adapter.c index 27a85e78..4c36f3de 100644 --- a/src/bluez-manager/nm-bluez-adapter.c +++ b/src/bluez-manager/nm-bluez-adapter.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 - 2012 Red Hat, Inc. */ #include <glib.h> @@ -41,6 +41,9 @@ typedef struct { char *address; GHashTable *devices; + + /* Cached for devices */ + NMConnectionProvider *provider; } NMBluezAdapterPrivate; @@ -85,23 +88,18 @@ nm_bluez_adapter_get_initialized (NMBluezAdapter *self) return NM_BLUEZ_ADAPTER_GET_PRIVATE (self)->initialized; } -static void -devices_to_list (gpointer key, gpointer data, gpointer user_data) -{ - NMBluezDevice *device = NM_BLUEZ_DEVICE (data); - GSList **list = user_data; - - if (nm_bluez_device_get_usable (device)) - *list = g_slist_append (*list, data); -} - GSList * nm_bluez_adapter_get_devices (NMBluezAdapter *self) { - NMBluezAdapterPrivate *priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); GSList *devices = NULL; + GHashTableIter iter; + NMBluezDevice *device; - g_hash_table_foreach (priv->devices, devices_to_list, &devices); + g_hash_table_iter_init (&iter, NM_BLUEZ_ADAPTER_GET_PRIVATE (self)->devices); + while (g_hash_table_iter_next (&iter, NULL, (gpointer) &device)) { + if (nm_bluez_device_get_usable (device)) + devices = g_slist_append (devices, device); + } return devices; } @@ -109,16 +107,19 @@ static void device_usable (NMBluezDevice *device, GParamSpec *pspec, gpointer user_data) { NMBluezAdapter *self = NM_BLUEZ_ADAPTER (user_data); - NMBluezAdapterPrivate *priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); + gboolean usable = nm_bluez_device_get_usable (device); - if (nm_bluez_device_get_usable (device)) + nm_log_dbg (LOGD_BT, "(%s): bluez device now %s", + nm_bluez_device_get_path (device), + usable ? "usable" : "unusable"); + + if (usable) { + nm_log_dbg (LOGD_BT, "(%s): bluez device address %s", + nm_bluez_device_get_path (device), + nm_bluez_device_get_address (device)); g_signal_emit (self, signals[DEVICE_ADDED], 0, device); - else { - g_object_ref (device); - g_hash_table_remove (priv->devices, nm_bluez_device_get_path (device)); + } else g_signal_emit (self, signals[DEVICE_REMOVED], 0, device); - g_object_unref (device); - } } static void @@ -127,6 +128,9 @@ device_initialized (NMBluezDevice *device, gboolean success, gpointer user_data) NMBluezAdapter *self = NM_BLUEZ_ADAPTER (user_data); NMBluezAdapterPrivate *priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); + nm_log_dbg (LOGD_BT, "(%s): bluez device %s", + nm_bluez_device_get_path (device), + success ? "initialized" : "failed to initialize"); if (!success) g_hash_table_remove (priv->devices, nm_bluez_device_get_path (device)); } @@ -138,10 +142,12 @@ device_created (DBusGProxy *proxy, const char *path, gpointer user_data) NMBluezAdapterPrivate *priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); NMBluezDevice *device; - device = nm_bluez_device_new (path); + device = nm_bluez_device_new (path, priv->provider); g_signal_connect (device, "initialized", G_CALLBACK (device_initialized), self); g_signal_connect (device, "notify::usable", G_CALLBACK (device_usable), self); - g_hash_table_insert (priv->devices, g_strdup (path), device); + g_hash_table_insert (priv->devices, (gpointer) nm_bluez_device_get_path (device), device); + + nm_log_dbg (LOGD_BT, "(%s): new bluez device found", path); } static void @@ -151,10 +157,12 @@ device_removed (DBusGProxy *proxy, const char *path, gpointer user_data) NMBluezAdapterPrivate *priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); NMBluezDevice *device; + nm_log_dbg (LOGD_BT, "(%s): bluez device removed", path); + device = g_hash_table_lookup (priv->devices, path); if (device) { g_object_ref (device); - g_hash_table_remove (priv->devices, path); + g_hash_table_remove (priv->devices, nm_bluez_device_get_path (device)); g_signal_emit (self, signals[DEVICE_REMOVED], 0, device); g_object_unref (device); } @@ -214,8 +222,10 @@ query_properties (NMBluezAdapter *self) } } +/***********************************************************/ + NMBluezAdapter * -nm_bluez_adapter_new (const char *path) +nm_bluez_adapter_new (const char *path, NMConnectionProvider *provider) { NMBluezAdapter *self; NMBluezAdapterPrivate *priv; @@ -229,6 +239,9 @@ nm_bluez_adapter_new (const char *path) return NULL; priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); + + priv->provider = provider; + dbus_mgr = nm_dbus_manager_get (); connection = nm_dbus_manager_get_connection (dbus_mgr); @@ -258,7 +271,23 @@ nm_bluez_adapter_init (NMBluezAdapter *self) NMBluezAdapterPrivate *priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal, - g_free, g_object_unref); + NULL, g_object_unref); +} + +static void +dispose (GObject *object) +{ + NMBluezAdapter *self = NM_BLUEZ_ADAPTER (object); + NMBluezAdapterPrivate *priv = NM_BLUEZ_ADAPTER_GET_PRIVATE (self); + GHashTableIter iter; + NMBluezDevice *device; + + g_hash_table_iter_init (&iter, priv->devices); + while (g_hash_table_iter_next (&iter, NULL, (gpointer) &device)) + g_signal_emit (self, signals[DEVICE_REMOVED], 0, device); + g_hash_table_remove_all (priv->devices); + + G_OBJECT_CLASS (nm_bluez_adapter_parent_class)->dispose (object); } static void @@ -320,6 +349,7 @@ nm_bluez_adapter_class_init (NMBluezAdapterClass *config_class) /* virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; + object_class->dispose = dispose; object_class->finalize = finalize; /* Properties */ diff --git a/src/bluez-manager/nm-bluez-adapter.h b/src/bluez-manager/nm-bluez-adapter.h index c552e989..36aa55df 100644 --- a/src/bluez-manager/nm-bluez-adapter.h +++ b/src/bluez-manager/nm-bluez-adapter.h @@ -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 Red Hat, Inc. + * Copyright (C) 2009 - 2012 Red Hat, Inc. */ #ifndef NM_BLUEZ_ADAPTER_H @@ -25,6 +25,7 @@ #include <glib-object.h> #include "nm-bluez-device.h" +#include "nm-connection-provider.h" #define NM_TYPE_BLUEZ_ADAPTER (nm_bluez_adapter_get_type ()) #define NM_BLUEZ_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_ADAPTER, NMBluezAdapter)) @@ -53,7 +54,8 @@ typedef struct { GType nm_bluez_adapter_get_type (void); -NMBluezAdapter *nm_bluez_adapter_new (const char *path); +NMBluezAdapter *nm_bluez_adapter_new (const char *path, + NMConnectionProvider *provider); const char *nm_bluez_adapter_get_path (NMBluezAdapter *self); diff --git a/src/bluez-manager/nm-bluez-device.c b/src/bluez-manager/nm-bluez-device.c index ecb6ce51..b12a8619 100644 --- a/src/bluez-manager/nm-bluez-device.c +++ b/src/bluez-manager/nm-bluez-device.c @@ -15,13 +15,17 @@ * 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 - 2012 Red Hat, Inc. */ #include <glib.h> #include <string.h> +#include <net/ethernet.h> +#include <netinet/ether.h> #include "NetworkManager.h" +#include "nm-setting-bluetooth.h" + #include "nm-dbus-manager.h" #include "nm-bluez-device.h" #include "nm-bluez-common.h" @@ -41,9 +45,13 @@ typedef struct { gboolean usable; char *address; + guint8 bin_address[ETH_ALEN]; char *name; guint32 capabilities; gint rssi; + + NMConnectionProvider *provider; + GSList *connections; } NMBluezDevicePrivate; @@ -66,6 +74,8 @@ enum { }; static guint signals[LAST_SIGNAL] = { 0 }; +/***********************************************************/ + const char * nm_bluez_device_get_path (NMBluezDevice *self) { @@ -122,59 +132,137 @@ nm_bluez_device_get_rssi (NMBluezDevice *self) return NM_BLUEZ_DEVICE_GET_PRIVATE (self)->rssi; } -static guint32 -convert_uuids_to_capabilities (const char **strings) +static void +check_emit_usable (NMBluezDevice *self) { - const char **iter; - guint32 capabilities = 0; + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); + gboolean new_usable; - for (iter = strings; iter && *iter; iter++) { - char **parts; - guint uuid16; + new_usable = (priv->initialized && priv->capabilities && priv->name && priv->address && priv->connections); + if (new_usable != priv->usable) { + priv->usable = new_usable; + g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE); + } +} - parts = g_strsplit (*iter, "-", -1); - if (parts == NULL || parts[0] == NULL) { - g_strfreev (parts); - continue; - } +/********************************************************************/ - uuid16 = g_ascii_strtoull (parts[0], NULL, 16); - g_strfreev (parts); +static gboolean +connection_compatible (NMBluezDevice *self, NMConnection *connection) +{ + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); + NMSettingBluetooth *s_bt; + const char *bt_type; + const GByteArray *bdaddr; - switch (uuid16) { - case 0x1103: - capabilities |= NM_BT_CAPABILITY_DUN; - break; - case 0x1116: - capabilities |= NM_BT_CAPABILITY_NAP; - break; - default: - break; - } + if (!nm_connection_is_type (connection, NM_SETTING_BLUETOOTH_SETTING_NAME)) + return FALSE; + + s_bt = nm_connection_get_setting_bluetooth (connection); + if (!s_bt) + return FALSE; + + bdaddr = nm_setting_bluetooth_get_bdaddr (s_bt); + if (!bdaddr || bdaddr->len != ETH_ALEN) + return FALSE; + if (memcmp (bdaddr->data, priv->bin_address, ETH_ALEN) != 0) + return FALSE; + + bt_type = nm_setting_bluetooth_get_connection_type (s_bt); + if ( g_str_equal (bt_type, NM_SETTING_BLUETOOTH_TYPE_DUN) + && !(priv->capabilities & NM_BT_CAPABILITY_DUN)) + return FALSE; + + if ( g_str_equal (bt_type, NM_SETTING_BLUETOOTH_TYPE_PANU) + && !(priv->capabilities & NM_BT_CAPABILITY_NAP)) + return FALSE; + + return TRUE; +} + +static void +_internal_add_connection (NMBluezDevice *self, NMConnection *connection) +{ + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); + + if (!g_slist_find (priv->connections, connection)) { + priv->connections = g_slist_prepend (priv->connections, g_object_ref (connection)); + check_emit_usable (self); } +} - return capabilities; +static void +cp_connection_added (NMConnectionProvider *provider, + NMConnection *connection, + NMBluezDevice *self) +{ + if (connection_compatible (self, connection)) + _internal_add_connection (self, connection); } static void -check_emit_usable (NMBluezDevice *self) +cp_connection_removed (NMConnectionProvider *provider, + NMConnection *connection, + NMBluezDevice *self) { NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); - if ( priv->initialized - && priv->capabilities - && priv->name - && priv->address) { - if (!priv->usable) { - priv->usable = TRUE; - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE); - } - } else { - if (priv->usable) { - priv->usable = FALSE; - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE); + if (g_slist_find (priv->connections, connection)) { + priv->connections = g_slist_remove (priv->connections, connection); + g_object_unref (connection); + check_emit_usable (self); + } +} + +static void +cp_connection_updated (NMConnectionProvider *provider, + NMConnection *connection, + NMBluezDevice *self) +{ + if (connection_compatible (self, connection)) + _internal_add_connection (self, connection); + else + cp_connection_removed (provider, connection, self); +} + +static void +cp_connections_loaded (NMConnectionProvider *provider, NMBluezDevice *self) +{ + const GSList *connections, *iter; + + connections = nm_connection_provider_get_connections (provider); + for (iter = connections; iter; iter = g_slist_next (iter)) + cp_connection_added (provider, NM_CONNECTION (iter->data), self); +} + +/***********************************************************/ + +static guint32 +convert_uuids_to_capabilities (const char **strings) +{ + const char **iter; + guint32 capabilities = 0; + + for (iter = strings; iter && *iter; iter++) { + char **parts; + + parts = g_strsplit (*iter, "-", -1); + if (parts && parts[0]) { + switch (g_ascii_strtoull (parts[0], NULL, 16)) { + case 0x1103: + capabilities |= NM_BT_CAPABILITY_DUN; + break; + case 0x1116: + capabilities |= NM_BT_CAPABILITY_NAP; + break; + default: + break; + } } + g_strfreev (parts); } + + return capabilities; } static void @@ -224,6 +312,7 @@ get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) GError *err = NULL; GValue *value; const char **uuids; + struct ether_addr *tmp; if (!dbus_g_proxy_end_call (proxy, call, &err, DBUS_TYPE_G_MAP_OF_VARIANT, &properties, @@ -237,6 +326,11 @@ get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) value = g_hash_table_lookup (properties, "Address"); priv->address = value ? g_value_dup_string (value) : NULL; + if (priv->address) { + tmp = ether_aton (priv->address); + g_assert (tmp); + memcpy (priv->bin_address, tmp->ether_addr_octet, ETH_ALEN); + } value = g_hash_table_lookup (properties, "Name"); priv->name = value ? g_value_dup_string (value) : NULL; @@ -253,6 +347,9 @@ get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data) g_hash_table_unref (properties); + /* Check if any connections match this device */ + cp_connections_loaded (priv->provider, self); + priv->initialized = TRUE; g_signal_emit (self, signals[INITIALIZED], 0, TRUE); @@ -275,14 +372,18 @@ query_properties (NMBluezDevice *self) } } +/********************************************************************/ + NMBluezDevice * -nm_bluez_device_new (const char *path) +nm_bluez_device_new (const char *path, NMConnectionProvider *provider) { NMBluezDevice *self; NMBluezDevicePrivate *priv; NMDBusManager *dbus_mgr; DBusGConnection *connection; + g_return_val_if_fail (path != NULL, NULL); + g_return_val_if_fail (provider != NULL, NULL); self = (NMBluezDevice *) g_object_new (NM_TYPE_BLUEZ_DEVICE, NM_BLUEZ_DEVICE_PATH, path, @@ -291,6 +392,29 @@ nm_bluez_device_new (const char *path) return NULL; priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); + + priv->provider = provider; + + g_signal_connect (priv->provider, + NM_CP_SIGNAL_CONNECTION_ADDED, + G_CALLBACK (cp_connection_added), + self); + + g_signal_connect (priv->provider, + NM_CP_SIGNAL_CONNECTION_REMOVED, + G_CALLBACK (cp_connection_removed), + self); + + g_signal_connect (priv->provider, + NM_CP_SIGNAL_CONNECTION_UPDATED, + G_CALLBACK (cp_connection_updated), + self); + + g_signal_connect (priv->provider, + NM_CP_SIGNAL_CONNECTIONS_LOADED, + G_CALLBACK (cp_connections_loaded), + self); + dbus_mgr = nm_dbus_manager_get (); connection = nm_dbus_manager_get_connection (dbus_mgr); @@ -319,6 +443,24 @@ nm_bluez_device_init (NMBluezDevice *self) } static void +dispose (GObject *object) +{ + NMBluezDevice *self = NM_BLUEZ_DEVICE (object); + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); + + g_slist_foreach (priv->connections, (GFunc) g_object_unref, NULL); + g_slist_free (priv->connections); + priv->connections = NULL; + + g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_added, self); + g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_removed, self); + g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_updated, self); + g_signal_handlers_disconnect_by_func (priv->provider, cp_connections_loaded, self); + + G_OBJECT_CLASS (nm_bluez_device_parent_class)->dispose (object); +} + +static void finalize (GObject *object) { NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object); @@ -389,6 +531,7 @@ nm_bluez_device_class_init (NMBluezDeviceClass *config_class) /* virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; + object_class->dispose = dispose; object_class->finalize = finalize; /* Properties */ diff --git a/src/bluez-manager/nm-bluez-device.h b/src/bluez-manager/nm-bluez-device.h index 8a6b3597..f5fdbf5f 100644 --- a/src/bluez-manager/nm-bluez-device.h +++ b/src/bluez-manager/nm-bluez-device.h @@ -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 Red Hat, Inc. + * Copyright (C) 2009 - 2012 Red Hat, Inc. */ #ifndef NM_BLUEZ_DEVICE_H @@ -24,6 +24,9 @@ #include <glib.h> #include <glib-object.h> +#include "nm-connection.h" +#include "nm-connection-provider.h" + #define NM_TYPE_BLUEZ_DEVICE (nm_bluez_device_get_type ()) #define NM_BLUEZ_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_DEVICE, NMBluezDevice)) #define NM_BLUEZ_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_BLUEZ_DEVICE, NMBluezDeviceClass)) @@ -53,7 +56,7 @@ typedef struct { GType nm_bluez_device_get_type (void); -NMBluezDevice *nm_bluez_device_new (const char *path); +NMBluezDevice *nm_bluez_device_new (const char *path, NMConnectionProvider *provider); const char *nm_bluez_device_get_path (NMBluezDevice *self); diff --git a/src/bluez-manager/nm-bluez-manager.c b/src/bluez-manager/nm-bluez-manager.c index 942d0f34..e485ffe4 100644 --- a/src/bluez-manager/nm-bluez-manager.c +++ b/src/bluez-manager/nm-bluez-manager.c @@ -16,7 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2010 Red Hat, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #include <signal.h> @@ -37,6 +37,8 @@ typedef struct { NMDBusManager *dbus_mgr; gulong name_owner_changed_id; + NMConnectionProvider *provider; + DBusGProxy *proxy; NMBluezAdapter *adapter; @@ -165,7 +167,7 @@ default_adapter_changed (DBusGProxy *proxy, const char *path, NMBluezManager *se /* Add the new default adapter */ if (path) { - priv->adapter = nm_bluez_adapter_new (path); + priv->adapter = nm_bluez_adapter_new (path, priv->provider); g_signal_connect (priv->adapter, "initialized", G_CALLBACK (adapter_initialized), self); } } @@ -238,12 +240,6 @@ bluez_connect (NMBluezManager *self) } static void -remove_all_devices (NMBluezManager *self, gboolean do_signal) -{ - /* FIXME: do something */ -} - -static void name_owner_changed_cb (NMDBusManager *dbus_mgr, const char *name, const char *old_owner, @@ -251,6 +247,7 @@ name_owner_changed_cb (NMDBusManager *dbus_mgr, gpointer user_data) { NMBluezManager *self = NM_BLUEZ_MANAGER (user_data); + NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self); gboolean old_owner_good = (old_owner && strlen (old_owner)); gboolean new_owner_good = (new_owner && strlen (new_owner)); @@ -260,8 +257,13 @@ name_owner_changed_cb (NMDBusManager *dbus_mgr, if (!old_owner_good && new_owner_good) query_default_adapter (self); - else if (old_owner_good && !new_owner_good) - remove_all_devices (self, TRUE); + else if (old_owner_good && !new_owner_good) { + /* Throwing away the adapter removes all devices too */ + if (priv->adapter) { + g_object_unref (priv->adapter); + priv->adapter = NULL; + } + } } static void @@ -274,7 +276,10 @@ bluez_cleanup (NMBluezManager *self, gboolean do_signal) priv->proxy = NULL; } - remove_all_devices (self, do_signal); + if (priv->adapter) { + g_object_unref (priv->adapter); + priv->adapter = NULL; + } } static void @@ -290,24 +295,22 @@ dbus_connection_changed_cb (NMDBusManager *dbus_mgr, bluez_connect (self); } +/****************************************************************/ NMBluezManager * -nm_bluez_manager_new (void) -{ - return NM_BLUEZ_MANAGER (g_object_new (NM_TYPE_BLUEZ_MANAGER, NULL)); -} - -NMBluezManager * -nm_bluez_manager_get (void) +nm_bluez_manager_get (NMConnectionProvider *provider) { static NMBluezManager *singleton = NULL; - if (!singleton) - singleton = nm_bluez_manager_new (); - else - g_object_ref (singleton); + if (singleton) + return g_object_ref (singleton); + singleton = (NMBluezManager *) g_object_new (NM_TYPE_BLUEZ_MANAGER, NULL); g_assert (singleton); + + /* Cache the connection provider for NMBluezAdapter objects */ + NM_BLUEZ_MANAGER_GET_PRIVATE (singleton)->provider = provider; + return singleton; } @@ -333,13 +336,20 @@ nm_bluez_manager_init (NMBluezManager *self) } static void -finalize (GObject *object) +dispose (GObject *object) { NMBluezManager *self = NM_BLUEZ_MANAGER (object); + NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self); bluez_cleanup (self, FALSE); - G_OBJECT_CLASS (nm_bluez_manager_parent_class)->finalize (object); + if (priv->dbus_mgr) { + g_signal_handlers_disconnect_by_func (priv->dbus_mgr, name_owner_changed_cb, self); + g_signal_handlers_disconnect_by_func (priv->dbus_mgr, dbus_connection_changed_cb, self); + g_object_unref (priv->dbus_mgr); + } + + G_OBJECT_CLASS (nm_bluez_manager_parent_class)->dispose (object); } static void @@ -350,11 +360,11 @@ nm_bluez_manager_class_init (NMBluezManagerClass *klass) g_type_class_add_private (klass, sizeof (NMBluezManagerPrivate)); /* virtual methods */ - object_class->finalize = finalize; + object_class->dispose = dispose; /* Signals */ signals[BDADDR_ADDED] = - g_signal_new ("bdaddr-added", + g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED, G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (NMBluezManagerClass, bdaddr_added), @@ -363,7 +373,7 @@ nm_bluez_manager_class_init (NMBluezManagerClass *klass) G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); signals[BDADDR_REMOVED] = - g_signal_new ("bdaddr-removed", + g_signal_new (NM_BLUEZ_MANAGER_BDADDR_REMOVED, G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (NMBluezManagerClass, bdaddr_removed), diff --git a/src/bluez-manager/nm-bluez-manager.h b/src/bluez-manager/nm-bluez-manager.h index 9cfab1b7..1549e699 100644 --- a/src/bluez-manager/nm-bluez-manager.h +++ b/src/bluez-manager/nm-bluez-manager.h @@ -16,7 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2009 Red Hat, Inc. + * Copyright (C) 2007 - 2012 Red Hat, Inc. */ #ifndef NM_BLUEZ_MANAGER_H @@ -25,6 +25,8 @@ #include <glib.h> #include <glib-object.h> +#include "nm-connection-provider.h" + G_BEGIN_DECLS #define NM_TYPE_BLUEZ_MANAGER (nm_bluez_manager_get_type ()) @@ -34,6 +36,9 @@ G_BEGIN_DECLS #define NM_IS_BLUEZ_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_BLUEZ_MANAGER)) #define NM_BLUEZ_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManagerClass)) +#define NM_BLUEZ_MANAGER_BDADDR_ADDED "bdaddr-added" +#define NM_BLUEZ_MANAGER_BDADDR_REMOVED "bdaddr-removed" + typedef struct { GObject parent; } NMBluezManager; @@ -55,8 +60,8 @@ typedef struct { GType nm_bluez_manager_get_type (void); -NMBluezManager *nm_bluez_manager_new (void); -NMBluezManager *nm_bluez_manager_get (void); +NMBluezManager *nm_bluez_manager_get (NMConnectionProvider *provider); + void nm_bluez_manager_query_devices (NMBluezManager *manager); #endif /* NM_BLUEZ_MANAGER_H */ diff --git a/src/dhcp-manager/Makefile.am b/src/dhcp-manager/Makefile.am index ce34c416..11560fde 100644 --- a/src/dhcp-manager/Makefile.am +++ b/src/dhcp-manager/Makefile.am @@ -7,6 +7,7 @@ INCLUDES = \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/libnm-util \ -I${top_builddir}/libnm-util \ -I${top_srcdir}/src @@ -33,6 +34,7 @@ libdhcp_dhclient_la_CPPFLAGS = \ libdhcp_dhclient_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(DBUS_LIBS) \ $(GLIB_LIBS) @@ -58,6 +60,7 @@ libdhcp_manager_la_CPPFLAGS = \ libdhcp_manager_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(builddir)/libdhcp-dhclient.la \ $(DBUS_LIBS) \ $(GLIB_LIBS) diff --git a/src/dhcp-manager/Makefile.in b/src/dhcp-manager/Makefile.in index 4c389562..3d71a405 100644 --- a/src/dhcp-manager/Makefile.in +++ b/src/dhcp-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,6 +58,7 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libdhcp_dhclient_la_DEPENDENCIES = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libdhcp_dhclient_la_OBJECTS = \ @@ -69,6 +70,7 @@ am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent libdhcp_manager_la_DEPENDENCIES = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(builddir)/libdhcp-dhclient.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libdhcp_manager_la_OBJECTS = libdhcp_manager_la-nm-dhcp-client.lo \ @@ -217,6 +219,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -312,6 +318,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -350,6 +359,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -378,6 +389,7 @@ INCLUDES = \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/libnm-util \ -I${top_builddir}/libnm-util \ -I${top_srcdir}/src @@ -403,6 +415,7 @@ libdhcp_dhclient_la_CPPFLAGS = \ libdhcp_dhclient_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(DBUS_LIBS) \ $(GLIB_LIBS) @@ -428,6 +441,7 @@ libdhcp_manager_la_CPPFLAGS = \ libdhcp_manager_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(builddir)/libdhcp-dhclient.la \ $(DBUS_LIBS) \ $(GLIB_LIBS) diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c index 16c6dd77..ea4084ac 100644 --- a/src/dhcp-manager/nm-dhcp-client.c +++ b/src/dhcp-manager/nm-dhcp-client.c @@ -570,8 +570,20 @@ nm_dhcp_client_new_options (NMDHCPClient *self, g_hash_table_remove_all (priv->options); g_hash_table_foreach (options, copy_option, priv->options); - if (old_state == new_state) - return; + if (old_state == new_state) { + /* dhclient will stay in the same state (or, really, provide the same + * reason) for operations like RENEW and REBIND. We need to ensure + * that triggers various DHCP lease change code, so we need to pass + * along same-state transitions for these states. + */ + if ( new_state != DHC_BOUND4 + && new_state != DHC_RENEW4 + && new_state != DHC_REBIND4 + && new_state != DHC_BOUND6 + && new_state != DHC_RENEW6 + && new_state != DHC_REBIND6) + return; + } /* Handle changed device state */ if (state_is_bound (new_state)) { @@ -1217,12 +1229,6 @@ ip6_options_to_config (NMDHCPClient *self) return NULL; } - addr = nm_ip6_address_new (); - if (!addr) { - nm_log_warn (LOGD_DHCP6, "(%s): couldn't allocate memory for an IP6 Address!", priv->iface); - goto error; - } - str = g_hash_table_lookup (priv->options, "new_ip6_address"); if (str) { if (!inet_pton (AF_INET6, str, &tmp_addr)) { @@ -1231,35 +1237,17 @@ ip6_options_to_config (NMDHCPClient *self) goto error; } + addr = nm_ip6_address_new (); + g_assert (addr); nm_ip6_address_set_address (addr, &tmp_addr); - nm_log_info (LOGD_DHCP6, " address %s", str); - } else { - /* No address in managed mode is a hard error */ - if (priv->info_only == FALSE) - goto error; - - /* But "info-only" setups don't necessarily need an address */ - nm_ip6_address_unref (addr); - addr = NULL; - } - - /* Only care about prefix if we got an address */ - if (addr) { - str = g_hash_table_lookup (priv->options, "new_ip6_prefixlen"); - if (str) { - long unsigned int prefix; - - errno = 0; - prefix = strtoul (str, NULL, 10); - if (errno != 0 || prefix > 128) - goto error; - - nm_ip6_address_set_prefix (addr, (guint32) prefix); - nm_log_info (LOGD_DHCP6, " prefix %lu", prefix); - } + /* DHCPv6 IA_NA assignments are single address only */ + nm_ip6_address_set_prefix (addr, 128); + nm_log_info (LOGD_DHCP6, " address %s/128", str); nm_ip6_config_take_address (ip6_config, addr); - addr = NULL; + } else if (priv->info_only == FALSE) { + /* No address in Managed mode is a hard error */ + goto error; } str = g_hash_table_lookup (priv->options, "new_host_name"); @@ -1288,8 +1276,6 @@ ip6_options_to_config (NMDHCPClient *self) return ip6_config; error: - if (addr) - nm_ip6_address_unref (addr); g_object_unref (ip6_config); return NULL; } diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c index 09321396..043cd63d 100644 --- a/src/dhcp-manager/nm-dhcp-dhclient.c +++ b/src/dhcp-manager/nm-dhcp-dhclient.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) 2005 - 2010 Red Hat, Inc. + * Copyright (C) 2005 - 2012 Red Hat, Inc. */ #define _XOPEN_SOURCE @@ -40,6 +40,7 @@ #include "nm-utils.h" #include "nm-logging.h" #include "nm-dhcp-dhclient-utils.h" +#include "nm-posix-signals.h" G_DEFINE_TYPE (NMDHCPDhclient, nm_dhcp_dhclient, NM_TYPE_DHCP_CLIENT) @@ -333,6 +334,7 @@ merge_dhclient_config (const char *iface, g_assert (new); success = g_file_set_contents (conf_file, new, -1, error); g_free (new); + g_free (orig); return success; } @@ -407,6 +409,12 @@ dhclient_child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for dhclient here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static GPid diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.c b/src/dhcp-manager/nm-dhcp-dhcpcd.c index 237661fe..dc9bee13 100644 --- a/src/dhcp-manager/nm-dhcp-dhcpcd.c +++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c @@ -35,6 +35,7 @@ #include "nm-dhcp-dhcpcd.h" #include "nm-utils.h" #include "nm-logging.h" +#include "nm-posix-signals.h" G_DEFINE_TYPE (NMDHCPDhcpcd, nm_dhcp_dhcpcd, NM_TYPE_DHCP_CLIENT) @@ -83,6 +84,12 @@ dhcpcd_child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for dhcpcd here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static GPid diff --git a/src/dhcp-manager/tests/Makefile.in b/src/dhcp-manager/tests/Makefile.in index 20422cdb..d325dd9e 100644 --- a/src/dhcp-manager/tests/Makefile.in +++ b/src/dhcp-manager/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -169,6 +169,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -264,6 +268,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -302,6 +309,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/dns-manager/Makefile.am b/src/dns-manager/Makefile.am index 331f85c4..fd31b140 100644 --- a/src/dns-manager/Makefile.am +++ b/src/dns-manager/Makefile.am @@ -1,5 +1,6 @@ INCLUDES = \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/libnm-util \ -I${top_builddir}/libnm-util \ -I${top_srcdir}/src \ @@ -28,6 +29,7 @@ libdns_manager_la_CPPFLAGS = \ libdns_manager_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(LIBNL_LIBS) \ $(DBUS_LIBS) \ $(GLIB_LIBS) diff --git a/src/dns-manager/Makefile.in b/src/dns-manager/Makefile.in index c9b8b0b3..ddcce666 100644 --- a/src/dns-manager/Makefile.in +++ b/src/dns-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,6 +58,7 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libdns_manager_la_DEPENDENCIES = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libdns_manager_la_OBJECTS = libdns_manager_la-nm-dns-manager.lo \ @@ -172,6 +173,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -267,6 +272,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -305,6 +313,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -327,6 +337,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/libnm-util \ -I${top_builddir}/libnm-util \ -I${top_srcdir}/src \ @@ -354,6 +365,7 @@ libdns_manager_la_CPPFLAGS = \ libdns_manager_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(LIBNL_LIBS) \ $(DBUS_LIBS) \ $(GLIB_LIBS) diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c index 6272e374..38ef08ea 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 - 2011 Red Hat, Inc. + * Copyright (C) 2004 - 2012 Red Hat, Inc. * Copyright (C) 2005 - 2008 Novell, Inc. * and others */ @@ -42,6 +42,7 @@ #include "nm-logging.h" #include "backends/nm-backend.h" #include "NetworkManagerUtils.h" +#include "nm-posix-signals.h" #include "nm-dns-plugin.h" #include "nm-dns-dnsmasq.h" @@ -61,6 +62,8 @@ G_DEFINE_TYPE(NMDnsManager, nm_dns_manager, G_TYPE_OBJECT) NM_TYPE_DNS_MANAGER, \ NMDnsManagerPrivate)) +#define HASH_LEN 20 + typedef struct { gboolean disposed; @@ -70,14 +73,10 @@ typedef struct { NMIP6Config *ip6_device_config; GSList *configs; char *hostname; + guint updates_queue; - /* poor man's hash; we assume that the IP4 config object won't change - * after it's given to us, which is (at this time) a fair assumption. So - * we track the order of the currently applied IP configs and if they - * haven't changed we don't need to rewrite resolv.conf. - */ - #define HLEN 6 - gpointer hash[HLEN]; + guint8 hash[HASH_LEN]; /* SHA1 hash of current DNS config */ + guint8 prev_hash[HASH_LEN]; /* Hash when begin_updates() was called */ GSList *plugins; @@ -218,6 +217,12 @@ netconfig_child_setup (gpointer user_data G_GNUC_UNUSED) { pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for netconfig here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static GPid @@ -529,34 +534,43 @@ out: } static void -compute_hash (NMDnsManager *self, gpointer *hash) +compute_hash (NMDnsManager *self, guint8 buffer[HASH_LEN]) { NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (self); - gpointer check[HLEN]; + GChecksum *sum; GSList *iter; - int i = 0; + gsize len = HASH_LEN; - memset (check, 0, sizeof (check)); + sum = g_checksum_new (G_CHECKSUM_SHA1); + g_assert (len == g_checksum_type_get_length (G_CHECKSUM_SHA1)); if (priv->ip4_vpn_config) - check[i++] = priv->ip4_vpn_config; + nm_ip4_config_hash (priv->ip4_vpn_config, sum, TRUE); if (priv->ip4_device_config) - check[i++] = priv->ip4_device_config; + nm_ip4_config_hash (priv->ip4_device_config, sum, TRUE); if (priv->ip6_vpn_config) - check[i++] = priv->ip6_vpn_config; + nm_ip6_config_hash (priv->ip6_vpn_config, sum, TRUE); if (priv->ip6_device_config) - check[i++] = priv->ip6_device_config; + nm_ip6_config_hash (priv->ip6_device_config, sum, TRUE); - /* Add two more "other" configs if any exist */ - for (iter = priv->configs; iter && i < HLEN; iter = g_slist_next (iter)) { - if ( (iter->data != priv->ip4_vpn_config) - && (iter->data != priv->ip4_device_config) - && (iter->data != priv->ip6_vpn_config) - && (iter->data != priv->ip6_device_config)) - check[i++] = iter->data; + /* add any other configs we know about */ + for (iter = priv->configs; iter; iter = g_slist_next (iter)) { + if ( (iter->data == priv->ip4_vpn_config) + && (iter->data == priv->ip4_device_config) + && (iter->data == priv->ip6_vpn_config) + && (iter->data == priv->ip6_device_config)) + continue; + + if (NM_IS_IP4_CONFIG (iter->data)) + nm_ip4_config_hash (NM_IP4_CONFIG (iter->data), sum, TRUE); + else if (NM_IS_IP6_CONFIG (iter->data)) + nm_ip6_config_hash (NM_IP6_CONFIG (iter->data), sum, TRUE); } - memcpy (hash, check, sizeof (check)); + + memset (buffer, 0, sizeof (buffer)); + g_checksum_get_digest (sum, buffer, &len); + g_checksum_free (sum); } static gboolean @@ -581,6 +595,8 @@ update_dns (NMDnsManager *self, priv = NM_DNS_MANAGER_GET_PRIVATE (self); + nm_log_dbg (LOGD_DNS, "updating resolv.conf"); + if (iface && (iface != priv->last_iface)) { g_free (priv->last_iface); priv->last_iface = g_strdup (iface); @@ -784,23 +800,6 @@ plugin_failed (NMDnsPlugin *plugin, gpointer user_data) } } -static gboolean -config_changed (NMDnsManager *self) -{ - NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (self); - gpointer check[HLEN]; - - /* We only store HLEN configs; so if there are actually more than that, - * we have to assume that the config has changed. - */ - if (g_slist_length (priv->configs) > HLEN) - return TRUE; - - /* Otherwise return TRUE if the configuration has changed */ - compute_hash (self, check); - return memcmp (check, priv->hash, sizeof (check)) ? TRUE : FALSE; -} - gboolean nm_dns_manager_add_ip4_config (NMDnsManager *mgr, const char *iface, @@ -831,10 +830,7 @@ nm_dns_manager_add_ip4_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)) - return TRUE; - - if (!update_dns (mgr, iface, FALSE, &error)) { + if (!priv->updates_queue && !update_dns (mgr, iface, FALSE, &error)) { nm_log_warn (LOGD_DNS, "could not commit DNS changes: (%d) %s", error ? error->code : -1, error && error->message ? error->message : "(unknown)"); @@ -871,10 +867,7 @@ nm_dns_manager_remove_ip4_config (NMDnsManager *mgr, g_object_unref (config); - if (!config_changed (mgr)) - return TRUE; - - if (!update_dns (mgr, iface, FALSE, &error)) { + if (!priv->updates_queue && !update_dns (mgr, iface, FALSE, &error)) { nm_log_warn (LOGD_DNS, "could not commit DNS changes: (%d) %s", error ? error->code : -1, error && error->message ? error->message : "(unknown)"); @@ -901,8 +894,6 @@ nm_dns_manager_add_ip6_config (NMDnsManager *mgr, switch (cfg_type) { case NM_DNS_IP_CONFIG_TYPE_VPN: - /* FIXME: not quite yet... */ - g_return_val_if_fail (cfg_type != NM_DNS_IP_CONFIG_TYPE_VPN, FALSE); priv->ip6_vpn_config = config; break; case NM_DNS_IP_CONFIG_TYPE_BEST_DEVICE: @@ -916,10 +907,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)) - return TRUE; - - if (!update_dns (mgr, iface, FALSE, &error)) { + if (!priv->updates_queue && !update_dns (mgr, iface, FALSE, &error)) { nm_log_warn (LOGD_DNS, "could not commit DNS changes: (%d) %s", error ? error->code : -1, error && error->message ? error->message : "(unknown)"); @@ -956,10 +944,7 @@ nm_dns_manager_remove_ip6_config (NMDnsManager *mgr, g_object_unref (config); - if (!config_changed (mgr)) - return TRUE; - - if (!update_dns (mgr, iface, FALSE, &error)) { + if (!priv->updates_queue && !update_dns (mgr, iface, FALSE, &error)) { nm_log_warn (LOGD_DNS, "could not commit DNS changes: (%d) %s", error ? error->code : -1, error && error->message ? error->message : "(unknown)"); @@ -997,7 +982,7 @@ nm_dns_manager_set_hostname (NMDnsManager *mgr, * wants one. But hostname changes are system-wide and *not* tied to a * specific interface, so netconfig can't really handle this. Fake it. */ - if (!update_dns (mgr, priv->last_iface, FALSE, &error)) { + if (!priv->updates_queue && !update_dns (mgr, priv->last_iface, FALSE, &error)) { nm_log_warn (LOGD_DNS, "could not commit DNS changes: (%d) %s", error ? error->code : -1, error && error->message ? error->message : "(unknown)"); @@ -1005,6 +990,58 @@ nm_dns_manager_set_hostname (NMDnsManager *mgr, } } +void +nm_dns_manager_begin_updates (NMDnsManager *mgr, const char *func) +{ + NMDnsManagerPrivate *priv; + + g_return_if_fail (mgr != NULL); + priv = NM_DNS_MANAGER_GET_PRIVATE (mgr); + + /* Save current hash when starting a new batch */ + if (priv->updates_queue == 0) + memcpy (priv->prev_hash, priv->hash, sizeof (priv->hash)); + + priv->updates_queue++; + + nm_log_dbg (LOGD_DNS, "(%s): queueing DNS updates (%d)", func, priv->updates_queue); +} + +void +nm_dns_manager_end_updates (NMDnsManager *mgr, const char *func) +{ + NMDnsManagerPrivate *priv; + GError *error = NULL; + gboolean changed; + guint8 new[HASH_LEN]; + + g_return_if_fail (mgr != NULL); + + priv = NM_DNS_MANAGER_GET_PRIVATE (mgr); + g_return_if_fail (priv->updates_queue > 0); + + compute_hash (mgr, new); + changed = (memcmp (new, priv->prev_hash, sizeof (new)) != 0) ? TRUE : FALSE; + nm_log_dbg (LOGD_DNS, "(%s): DNS configuration %s", __func__, changed ? "changed" : "did not change"); + + priv->updates_queue--; + if ((priv->updates_queue > 0) || (changed == FALSE)) { + nm_log_dbg (LOGD_DNS, "(%s): no DNS changes to commit (%d)", func, priv->updates_queue); + return; + } + + /* Commit all the outstanding changes */ + nm_log_dbg (LOGD_DNS, "(%s): committing DNS changes (%d)", func, priv->updates_queue); + if (!update_dns (mgr, priv->last_iface, FALSE, &error)) { + nm_log_warn (LOGD_DNS, "could not commit DNS changes: (%d) %s", + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + } + + memset (priv->prev_hash, 0, sizeof (priv->prev_hash)); +} + static void load_plugins (NMDnsManager *self, const char **plugins) { @@ -1079,8 +1116,10 @@ nm_dns_manager_error_quark (void) } static void -nm_dns_manager_init (NMDnsManager *mgr) +nm_dns_manager_init (NMDnsManager *self) { + /* Set the initial hash */ + compute_hash (self, NM_DNS_MANAGER_GET_PRIVATE (self)->hash); } static void diff --git a/src/dns-manager/nm-dns-manager.h b/src/dns-manager/nm-dns-manager.h index 25d2a981..f559865b 100644 --- a/src/dns-manager/nm-dns-manager.h +++ b/src/dns-manager/nm-dns-manager.h @@ -66,6 +66,10 @@ GType nm_dns_manager_get_type (void); NMDnsManager * nm_dns_manager_get (const char **plugins); +/* Allow changes to be batched together */ +void nm_dns_manager_begin_updates (NMDnsManager *mgr, const char *func); +void nm_dns_manager_end_updates (NMDnsManager *mgr, const char *func); + gboolean nm_dns_manager_add_ip4_config (NMDnsManager *mgr, const char *iface, NMIP4Config *config, diff --git a/src/dns-manager/nm-dns-plugin.c b/src/dns-manager/nm-dns-plugin.c index e997948e..b26f2b94 100644 --- a/src/dns-manager/nm-dns-plugin.c +++ b/src/dns-manager/nm-dns-plugin.c @@ -13,7 +13,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) 2010 Red Hat, Inc. + * Copyright (C) 2010 - 2012 Red Hat, Inc. * */ @@ -27,6 +27,7 @@ #include "nm-dns-plugin.h" #include "nm-logging.h" +#include "nm-posix-signals.h" typedef struct { gboolean disposed; @@ -141,6 +142,12 @@ child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for DNS plugin here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } GPid diff --git a/src/dnsmasq-manager/Makefile.am b/src/dnsmasq-manager/Makefile.am index 66bbdd83..8b7dd683 100644 --- a/src/dnsmasq-manager/Makefile.am +++ b/src/dnsmasq-manager/Makefile.am @@ -1,6 +1,7 @@ INCLUDES = \ -I${top_srcdir}/libnm-util \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/src \ -I${top_srcdir}/include @@ -16,4 +17,5 @@ libdnsmasq_manager_la_CPPFLAGS = \ libdnsmasq_manager_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(GLIB_LIBS) diff --git a/src/dnsmasq-manager/Makefile.in b/src/dnsmasq-manager/Makefile.in index bb1e56c0..6da083c4 100644 --- a/src/dnsmasq-manager/Makefile.in +++ b/src/dnsmasq-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -58,6 +58,7 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libdnsmasq_manager_la_DEPENDENCIES = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(am__DEPENDENCIES_1) am_libdnsmasq_manager_la_OBJECTS = \ libdnsmasq_manager_la-nm-dnsmasq-manager.lo @@ -168,6 +169,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -263,6 +268,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -301,6 +309,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -324,6 +334,7 @@ top_srcdir = @top_srcdir@ INCLUDES = \ -I${top_srcdir}/libnm-util \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/src \ -I${top_srcdir}/include @@ -338,6 +349,7 @@ libdnsmasq_manager_la_CPPFLAGS = \ libdnsmasq_manager_la_LIBADD = \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(GLIB_LIBS) all: all-am diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.c b/src/dnsmasq-manager/nm-dnsmasq-manager.c index ca2f9dc4..0b3b629f 100644 --- a/src/dnsmasq-manager/nm-dnsmasq-manager.c +++ b/src/dnsmasq-manager/nm-dnsmasq-manager.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 - 2012 Red Hat, Inc. */ #include <config.h> @@ -30,6 +30,7 @@ #include "nm-dnsmasq-manager.h" #include "nm-logging.h" #include "nm-glib-compat.h" +#include "nm-posix-signals.h" typedef struct { char *iface; @@ -356,6 +357,12 @@ dm_child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for dnsmasq here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static void diff --git a/src/firewall-manager/Makefile.in b/src/firewall-manager/Makefile.in index 821fa838..59ade87c 100644 --- a/src/firewall-manager/Makefile.in +++ b/src/firewall-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -168,6 +168,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -263,6 +267,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -301,6 +308,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/generated/Makefile.in b/src/generated/Makefile.in index 85a346be..966a9638 100644 --- a/src/generated/Makefile.in +++ b/src/generated/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -167,6 +167,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -262,6 +266,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -300,6 +307,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/generated/nm-enum-types.c b/src/generated/nm-enum-types.c index a9973b4d..aa73b52e 100644 --- a/src/generated/nm-enum-types.c +++ b/src/generated/nm-enum-types.c @@ -5,29 +5,30 @@ #include "nm-enum-types.h" -#include "nm-device-vlan.h" +#include "nm-ip4-config.h" #include "nm-device-olpc-mesh.h" #include "nm-hostname-provider.h" #include "nm-device.h" #include "nm-rfkill.h" #include "NetworkManagerUtils.h" +#include "nm-device-vlan.h" #include "nm-device-factory.h" #include "nm-active-connection.h" #include "nm-wifi-ap.h" -#include "nm-device-ethernet.h" #include "nm-device-bt.h" +#include "nm-device-private.h" #include "nm-device-wifi.h" #include "nm-dbus-manager.h" #include "nm-dhcp4-config.h" #include "nm-dhcp6-config.h" #include "nm-netlink-compat.h" #include "nm-session-monitor.h" -#include "nm-ip4-config.h" #include "nm-device-bond.h" #include "nm-wifi-ap-utils.h" -#include "nm-call-store.h" +#include "nm-device-adsl.h" #include "nm-policy-hosts.h" #include "nm-udev-manager.h" +#include "nm-connection-provider.h" #include "nm-manager.h" #include "nm-device-modem.h" #include "nm-device-wired.h" @@ -37,7 +38,7 @@ #include "nm-device-infiniband.h" #include "nm-properties-changed-signal.h" #include "nm-ip6-config.h" -#include "nm-device-private.h" +#include "nm-call-store.h" #include "nm-policy.h" #include "nm-manager-auth.h" #include "nm-config.h" @@ -45,6 +46,7 @@ #include "nm-netlink-monitor.h" #include "nm-system.h" #include "nm-connectivity.h" +#include "nm-device-ethernet.h" #include "nm-logging.h" #include "nm-dns-utils.h" #include "nm-dns-plugin.h" @@ -56,9 +58,9 @@ #include "nm-vpn-connection.h" #include "nm-dhcp-dhcpcd.h" #include "nm-dhcp-dhclient.h" +#include "nm-dhcp-manager.h" #include "nm-dhcp-client.h" #include "nm-dhcp-dhclient-utils.h" -#include "nm-dhcp-manager.h" #include "nm-ip6-manager.h" #include "nm-supplicant-types.h" #include "nm-supplicant-config.h" @@ -97,20 +99,30 @@ #include "nm-wimax-nsp.h" GType -nm_vlan_error_get_type (void) +nm_ip4_config_compare_flags_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; if (g_once_init_enter (&g_define_type_id__volatile)) { static const GEnumValue values[] = { - { NM_VLAN_ERROR_CONNECTION_NOT_VLAN, "NM_VLAN_ERROR_CONNECTION_NOT_VLAN", "ConnectionNotVlan" }, - { NM_VLAN_ERROR_CONNECTION_INVALID, "NM_VLAN_ERROR_CONNECTION_INVALID", "ConnectionInvalid" }, - { NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE, "NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" }, + { NM_IP4_COMPARE_FLAG_NONE, "NM_IP4_COMPARE_FLAG_NONE", "none" }, + { NM_IP4_COMPARE_FLAG_ADDRESSES, "NM_IP4_COMPARE_FLAG_ADDRESSES", "addresses" }, + { NM_IP4_COMPARE_FLAG_PTP_ADDRESS, "NM_IP4_COMPARE_FLAG_PTP_ADDRESS", "ptp-address" }, + { NM_IP4_COMPARE_FLAG_NAMESERVERS, "NM_IP4_COMPARE_FLAG_NAMESERVERS", "nameservers" }, + { NM_IP4_COMPARE_FLAG_ROUTES, "NM_IP4_COMPARE_FLAG_ROUTES", "routes" }, + { NM_IP4_COMPARE_FLAG_DOMAINS, "NM_IP4_COMPARE_FLAG_DOMAINS", "domains" }, + { NM_IP4_COMPARE_FLAG_SEARCHES, "NM_IP4_COMPARE_FLAG_SEARCHES", "searches" }, + { NM_IP4_COMPARE_FLAG_MTU, "NM_IP4_COMPARE_FLAG_MTU", "mtu" }, + { NM_IP4_COMPARE_FLAG_MSS, "NM_IP4_COMPARE_FLAG_MSS", "mss" }, + { NM_IP4_COMPARE_FLAG_WINS_SERVERS, "NM_IP4_COMPARE_FLAG_WINS_SERVERS", "wins-servers" }, + { NM_IP4_COMPARE_FLAG_NIS_SERVERS, "NM_IP4_COMPARE_FLAG_NIS_SERVERS", "nis-servers" }, + { NM_IP4_COMPARE_FLAG_NIS_DOMAIN, "NM_IP4_COMPARE_FLAG_NIS_DOMAIN", "nis-domain" }, + { NM_IP4_COMPARE_FLAG_ALL, "NM_IP4_COMPARE_FLAG_ALL", "all" }, { 0, NULL, NULL } }; GType g_define_type_id = - g_enum_register_static (g_intern_static_string ("NMVlanError"), values); + g_enum_register_static (g_intern_static_string ("NMIP4ConfigCompareFlags"), values); g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } @@ -199,20 +211,20 @@ nm_rf_kill_type_get_type (void) return g_define_type_id__volatile; } GType -nm_ethernet_error_get_type (void) +nm_vlan_error_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; if (g_once_init_enter (&g_define_type_id__volatile)) { static const GEnumValue values[] = { - { NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED, "NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED", "ConnectionNotWired" }, - { NM_ETHERNET_ERROR_CONNECTION_INVALID, "NM_ETHERNET_ERROR_CONNECTION_INVALID", "ConnectionInvalid" }, - { NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE, "NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" }, + { NM_VLAN_ERROR_CONNECTION_NOT_VLAN, "NM_VLAN_ERROR_CONNECTION_NOT_VLAN", "ConnectionNotVlan" }, + { NM_VLAN_ERROR_CONNECTION_INVALID, "NM_VLAN_ERROR_CONNECTION_INVALID", "ConnectionInvalid" }, + { NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE, "NM_VLAN_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" }, { 0, NULL, NULL } }; GType g_define_type_id = - g_enum_register_static (g_intern_static_string ("NMEthernetError"), values); + g_enum_register_static (g_intern_static_string ("NMVlanError"), values); g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } @@ -250,6 +262,7 @@ nm_wifi_error_get_type (void) { NM_WIFI_ERROR_CONNECTION_INVALID, "NM_WIFI_ERROR_CONNECTION_INVALID", "ConnectionInvalid" }, { NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE, "NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" }, { NM_WIFI_ERROR_ACCESS_POINT_NOT_FOUND, "NM_WIFI_ERROR_ACCESS_POINT_NOT_FOUND", "AccessPointNotFound" }, + { NM_WIFI_ERROR_SCAN_NOT_ALLOWED, "NM_WIFI_ERROR_SCAN_NOT_ALLOWED", "ScanNotAllowed" }, { 0, NULL, NULL } }; GType g_define_type_id = @@ -260,50 +273,40 @@ nm_wifi_error_get_type (void) return g_define_type_id__volatile; } GType -nm_ip4_config_compare_flags_get_type (void) +nm_bond_error_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; if (g_once_init_enter (&g_define_type_id__volatile)) { static const GEnumValue values[] = { - { NM_IP4_COMPARE_FLAG_NONE, "NM_IP4_COMPARE_FLAG_NONE", "none" }, - { NM_IP4_COMPARE_FLAG_ADDRESSES, "NM_IP4_COMPARE_FLAG_ADDRESSES", "addresses" }, - { NM_IP4_COMPARE_FLAG_PTP_ADDRESS, "NM_IP4_COMPARE_FLAG_PTP_ADDRESS", "ptp-address" }, - { NM_IP4_COMPARE_FLAG_NAMESERVERS, "NM_IP4_COMPARE_FLAG_NAMESERVERS", "nameservers" }, - { NM_IP4_COMPARE_FLAG_ROUTES, "NM_IP4_COMPARE_FLAG_ROUTES", "routes" }, - { NM_IP4_COMPARE_FLAG_DOMAINS, "NM_IP4_COMPARE_FLAG_DOMAINS", "domains" }, - { NM_IP4_COMPARE_FLAG_SEARCHES, "NM_IP4_COMPARE_FLAG_SEARCHES", "searches" }, - { NM_IP4_COMPARE_FLAG_MTU, "NM_IP4_COMPARE_FLAG_MTU", "mtu" }, - { NM_IP4_COMPARE_FLAG_MSS, "NM_IP4_COMPARE_FLAG_MSS", "mss" }, - { NM_IP4_COMPARE_FLAG_WINS_SERVERS, "NM_IP4_COMPARE_FLAG_WINS_SERVERS", "wins-servers" }, - { NM_IP4_COMPARE_FLAG_NIS_SERVERS, "NM_IP4_COMPARE_FLAG_NIS_SERVERS", "nis-servers" }, - { NM_IP4_COMPARE_FLAG_NIS_DOMAIN, "NM_IP4_COMPARE_FLAG_NIS_DOMAIN", "nis-domain" }, - { NM_IP4_COMPARE_FLAG_ALL, "NM_IP4_COMPARE_FLAG_ALL", "all" }, + { NM_BOND_ERROR_CONNECTION_NOT_BOND, "NM_BOND_ERROR_CONNECTION_NOT_BOND", "ConnectionNotBond" }, + { NM_BOND_ERROR_CONNECTION_INVALID, "NM_BOND_ERROR_CONNECTION_INVALID", "ConnectionInvalid" }, + { NM_BOND_ERROR_CONNECTION_INCOMPATIBLE, "NM_BOND_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" }, { 0, NULL, NULL } }; GType g_define_type_id = - g_enum_register_static (g_intern_static_string ("NMIP4ConfigCompareFlags"), values); + g_enum_register_static (g_intern_static_string ("NMBondError"), values); g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } return g_define_type_id__volatile; } GType -nm_bond_error_get_type (void) +nm_adsl_error_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; if (g_once_init_enter (&g_define_type_id__volatile)) { static const GEnumValue values[] = { - { NM_BOND_ERROR_CONNECTION_NOT_BOND, "NM_BOND_ERROR_CONNECTION_NOT_BOND", "ConnectionNotBond" }, - { NM_BOND_ERROR_CONNECTION_INVALID, "NM_BOND_ERROR_CONNECTION_INVALID", "ConnectionInvalid" }, - { NM_BOND_ERROR_CONNECTION_INCOMPATIBLE, "NM_BOND_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" }, + { NM_ADSL_ERROR_CONNECTION_NOT_ADSL, "NM_ADSL_ERROR_CONNECTION_NOT_ADSL", "not-adsl" }, + { NM_ADSL_ERROR_CONNECTION_INVALID, "NM_ADSL_ERROR_CONNECTION_INVALID", "invalid" }, + { NM_ADSL_ERROR_CONNECTION_INCOMPATIBLE, "NM_ADSL_ERROR_CONNECTION_INCOMPATIBLE", "incompatible" }, { 0, NULL, NULL } }; GType g_define_type_id = - g_enum_register_static (g_intern_static_string ("NMBondError"), values); + g_enum_register_static (g_intern_static_string ("NMAdslError"), values); g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } @@ -512,6 +515,26 @@ nm_netlink_monitor_error_get_type (void) return g_define_type_id__volatile; } GType +nm_ethernet_error_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GEnumValue values[] = { + { NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED, "NM_ETHERNET_ERROR_CONNECTION_NOT_WIRED", "ConnectionNotWired" }, + { NM_ETHERNET_ERROR_CONNECTION_INVALID, "NM_ETHERNET_ERROR_CONNECTION_INVALID", "ConnectionInvalid" }, + { NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE, "NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE", "ConnectionIncompatible" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_enum_register_static (g_intern_static_string ("NMEthernetError"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} +GType nm_logging_error_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; @@ -593,6 +616,25 @@ nm_vpn_manager_error_get_type (void) return g_define_type_id__volatile; } GType +nm_dhcp_manager_error_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GEnumValue values[] = { + { NM_DHCP_MANAGER_ERROR_BAD_CLIENT, "NM_DHCP_MANAGER_ERROR_BAD_CLIENT", "BadClient" }, + { NM_DHCP_MANAGER_ERROR_INTERNAL, "NM_DHCP_MANAGER_ERROR_INTERNAL", "InternalError" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_enum_register_static (g_intern_static_string ("NMDHCPManagerError"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} +GType nm_dhcp_state_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; @@ -635,25 +677,6 @@ nm_dhcp_state_get_type (void) return g_define_type_id__volatile; } GType -nm_dhcp_manager_error_get_type (void) -{ - static volatile gsize g_define_type_id__volatile = 0; - - if (g_once_init_enter (&g_define_type_id__volatile)) - { - static const GEnumValue values[] = { - { NM_DHCP_MANAGER_ERROR_BAD_CLIENT, "NM_DHCP_MANAGER_ERROR_BAD_CLIENT", "BadClient" }, - { NM_DHCP_MANAGER_ERROR_INTERNAL, "NM_DHCP_MANAGER_ERROR_INTERNAL", "InternalError" }, - { 0, NULL, NULL } - }; - GType g_define_type_id = - g_enum_register_static (g_intern_static_string ("NMDHCPManagerError"), values); - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); - } - - return g_define_type_id__volatile; -} -GType nm_opt_type_get_type (void) { static volatile gsize g_define_type_id__volatile = 0; diff --git a/src/generated/nm-enum-types.h b/src/generated/nm-enum-types.h index 324dbf6a..608eaad6 100644 --- a/src/generated/nm-enum-types.h +++ b/src/generated/nm-enum-types.h @@ -9,8 +9,8 @@ #include <glib-object.h> G_BEGIN_DECLS -GType nm_vlan_error_get_type (void) G_GNUC_CONST; -#define NM_TYPE_VLAN_ERROR (nm_vlan_error_get_type ()) +GType nm_ip4_config_compare_flags_get_type (void) G_GNUC_CONST; +#define NM_TYPE_IP4_CONFIG_COMPARE_FLAGS (nm_ip4_config_compare_flags_get_type ()) GType nm_olpc_mesh_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_OLPC_MESH_ERROR (nm_olpc_mesh_error_get_type ()) GType nm_device_error_get_type (void) G_GNUC_CONST; @@ -19,16 +19,16 @@ GType nm_rf_kill_state_get_type (void) G_GNUC_CONST; #define NM_TYPE_RF_KILL_STATE (nm_rf_kill_state_get_type ()) GType nm_rf_kill_type_get_type (void) G_GNUC_CONST; #define NM_TYPE_RF_KILL_TYPE (nm_rf_kill_type_get_type ()) -GType nm_ethernet_error_get_type (void) G_GNUC_CONST; -#define NM_TYPE_ETHERNET_ERROR (nm_ethernet_error_get_type ()) +GType nm_vlan_error_get_type (void) G_GNUC_CONST; +#define NM_TYPE_VLAN_ERROR (nm_vlan_error_get_type ()) GType nm_bt_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_BT_ERROR (nm_bt_error_get_type ()) GType nm_wifi_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_WIFI_ERROR (nm_wifi_error_get_type ()) -GType nm_ip4_config_compare_flags_get_type (void) G_GNUC_CONST; -#define NM_TYPE_IP4_CONFIG_COMPARE_FLAGS (nm_ip4_config_compare_flags_get_type ()) GType nm_bond_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_BOND_ERROR (nm_bond_error_get_type ()) +GType nm_adsl_error_get_type (void) G_GNUC_CONST; +#define NM_TYPE_ADSL_ERROR (nm_adsl_error_get_type ()) GType nm_manager_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_MANAGER_ERROR (nm_manager_error_get_type ()) GType nm_act_request_dependency_result_get_type (void) G_GNUC_CONST; @@ -47,6 +47,8 @@ GType nm_nm_nl_prop_get_type (void) G_GNUC_CONST; #define NM_TYPE_NM_NL_PROP (nm_nm_nl_prop_get_type ()) GType nm_netlink_monitor_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_NETLINK_MONITOR_ERROR (nm_netlink_monitor_error_get_type ()) +GType nm_ethernet_error_get_type (void) G_GNUC_CONST; +#define NM_TYPE_ETHERNET_ERROR (nm_ethernet_error_get_type ()) GType nm_logging_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_LOGGING_ERROR (nm_logging_error_get_type ()) GType nm_dns_manager_error_get_type (void) G_GNUC_CONST; @@ -55,10 +57,10 @@ GType nm_dns_ip_config_type_get_type (void) G_GNUC_CONST; #define NM_TYPE_DNS_IP_CONFIG_TYPE (nm_dns_ip_config_type_get_type ()) GType nm_vpn_manager_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_VPN_MANAGER_ERROR (nm_vpn_manager_error_get_type ()) -GType nm_dhcp_state_get_type (void) G_GNUC_CONST; -#define NM_TYPE_DHCP_STATE (nm_dhcp_state_get_type ()) GType nm_dhcp_manager_error_get_type (void) G_GNUC_CONST; #define NM_TYPE_DHCP_MANAGER_ERROR (nm_dhcp_manager_error_get_type ()) +GType nm_dhcp_state_get_type (void) G_GNUC_CONST; +#define NM_TYPE_DHCP_STATE (nm_dhcp_state_get_type ()) GType nm_opt_type_get_type (void) G_GNUC_CONST; #define NM_TYPE_OPT_TYPE (nm_opt_type_get_type ()) GType nm_ppp_status_get_type (void) G_GNUC_CONST; diff --git a/src/generated/nm-marshal.c b/src/generated/nm-marshal.c index 4ba973af..e3d39724 100644 --- a/src/generated/nm-marshal.c +++ b/src/generated/nm-marshal.c @@ -5,7 +5,7 @@ #ifdef G_ENABLE_DEBUG #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) -#define g_marshal_value_peek_char(v) g_value_get_char (v) +#define g_marshal_value_peek_char(v) g_value_get_schar (v) #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) #define g_marshal_value_peek_int(v) g_value_get_int (v) #define g_marshal_value_peek_uint(v) g_value_get_uint (v) @@ -163,7 +163,44 @@ _nm_marshal_VOID__INT_UINT_BOOLEAN (GClosure *closure, data2); } -/* VOID:OBJECT,STRING (nm-marshal.list:4) */ +/* VOID:OBJECT,OBJECT (nm-marshal.list:4) */ +void +_nm_marshal_VOID__OBJECT_OBJECT (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, + gpointer arg_1, + gpointer arg_2, + gpointer data2); + register GMarshalFunc_VOID__OBJECT_OBJECT callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 3); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_object (param_values + 1), + g_marshal_value_peek_object (param_values + 2), + data2); +} + +/* VOID:OBJECT,STRING (nm-marshal.list:5) */ void _nm_marshal_VOID__OBJECT_STRING (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -200,25 +237,26 @@ _nm_marshal_VOID__OBJECT_STRING (GClosure *closure, data2); } -/* VOID:OBJECT,UINT,UINT (nm-marshal.list:5) */ +/* VOID:OBJECT,UINT,UINT,UINT (nm-marshal.list:6) */ void -_nm_marshal_VOID__OBJECT_UINT_UINT (GClosure *closure, - GValue *return_value G_GNUC_UNUSED, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint G_GNUC_UNUSED, - gpointer marshal_data) +_nm_marshal_VOID__OBJECT_UINT_UINT_UINT (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) { - typedef void (*GMarshalFunc_VOID__OBJECT_UINT_UINT) (gpointer data1, - gpointer arg_1, - guint arg_2, - guint arg_3, - gpointer data2); - register GMarshalFunc_VOID__OBJECT_UINT_UINT callback; + typedef void (*GMarshalFunc_VOID__OBJECT_UINT_UINT_UINT) (gpointer data1, + gpointer arg_1, + guint arg_2, + guint arg_3, + guint arg_4, + gpointer data2); + register GMarshalFunc_VOID__OBJECT_UINT_UINT_UINT callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; - g_return_if_fail (n_param_values == 4); + g_return_if_fail (n_param_values == 5); if (G_CCLOSURE_SWAP_DATA (closure)) { @@ -230,18 +268,19 @@ _nm_marshal_VOID__OBJECT_UINT_UINT (GClosure *closure, data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } - callback = (GMarshalFunc_VOID__OBJECT_UINT_UINT) (marshal_data ? marshal_data : cc->callback); + callback = (GMarshalFunc_VOID__OBJECT_UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback); callback (data1, g_marshal_value_peek_object (param_values + 1), g_marshal_value_peek_uint (param_values + 2), g_marshal_value_peek_uint (param_values + 3), + g_marshal_value_peek_uint (param_values + 4), data2); } -/* VOID:POINTER (nm-marshal.list:6) */ +/* VOID:POINTER (nm-marshal.list:7) */ -/* VOID:POINTER,POINTER,POINTER,POINTER,INT (nm-marshal.list:7) */ +/* VOID:POINTER,POINTER,POINTER,POINTER,INT (nm-marshal.list:8) */ void _nm_marshal_VOID__POINTER_POINTER_POINTER_POINTER_INT (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -284,7 +323,7 @@ _nm_marshal_VOID__POINTER_POINTER_POINTER_POINTER_INT (GClosure *closure, data2); } -/* VOID:POINTER,STRING (nm-marshal.list:8) */ +/* VOID:POINTER,STRING (nm-marshal.list:9) */ void _nm_marshal_VOID__POINTER_STRING (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -321,7 +360,50 @@ _nm_marshal_VOID__POINTER_STRING (GClosure *closure, data2); } -/* VOID:STRING,BOXED (nm-marshal.list:9) */ +/* VOID:POINTER,STRING,BOOLEAN,POINTER,POINTER (nm-marshal.list:10) */ +void +_nm_marshal_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER) (gpointer data1, + gpointer arg_1, + gpointer arg_2, + gboolean arg_3, + gpointer arg_4, + gpointer arg_5, + gpointer data2); + register GMarshalFunc_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 6); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_pointer (param_values + 1), + g_marshal_value_peek_string (param_values + 2), + g_marshal_value_peek_boolean (param_values + 3), + g_marshal_value_peek_pointer (param_values + 4), + g_marshal_value_peek_pointer (param_values + 5), + data2); +} + +/* VOID:STRING,BOXED (nm-marshal.list:11) */ void _nm_marshal_VOID__STRING_BOXED (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -358,7 +440,7 @@ _nm_marshal_VOID__STRING_BOXED (GClosure *closure, data2); } -/* VOID:STRING,BOXED,BOXED (nm-marshal.list:10) */ +/* VOID:STRING,BOXED,BOXED (nm-marshal.list:12) */ void _nm_marshal_VOID__STRING_BOXED_BOXED (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -397,7 +479,7 @@ _nm_marshal_VOID__STRING_BOXED_BOXED (GClosure *closure, data2); } -/* VOID:STRING,OBJECT (nm-marshal.list:11) */ +/* VOID:STRING,OBJECT (nm-marshal.list:13) */ void _nm_marshal_VOID__STRING_OBJECT (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -434,7 +516,7 @@ _nm_marshal_VOID__STRING_OBJECT (GClosure *closure, data2); } -/* VOID:STRING,OBJECT,POINTER (nm-marshal.list:12) */ +/* VOID:STRING,OBJECT,POINTER (nm-marshal.list:14) */ void _nm_marshal_VOID__STRING_OBJECT_POINTER (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -473,7 +555,7 @@ _nm_marshal_VOID__STRING_OBJECT_POINTER (GClosure *closure, data2); } -/* VOID:STRING,POINTER (nm-marshal.list:13) */ +/* VOID:STRING,POINTER (nm-marshal.list:15) */ void _nm_marshal_VOID__STRING_POINTER (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -510,7 +592,7 @@ _nm_marshal_VOID__STRING_POINTER (GClosure *closure, data2); } -/* VOID:STRING,STRING (nm-marshal.list:14) */ +/* VOID:STRING,STRING (nm-marshal.list:16) */ void _nm_marshal_VOID__STRING_STRING (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -547,7 +629,7 @@ _nm_marshal_VOID__STRING_STRING (GClosure *closure, data2); } -/* VOID:STRING,STRING,STRING (nm-marshal.list:15) */ +/* VOID:STRING,STRING,STRING (nm-marshal.list:17) */ void _nm_marshal_VOID__STRING_STRING_STRING (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -586,7 +668,7 @@ _nm_marshal_VOID__STRING_STRING_STRING (GClosure *closure, data2); } -/* VOID:STRING,STRING,STRING,UINT (nm-marshal.list:16) */ +/* VOID:STRING,STRING,STRING,UINT (nm-marshal.list:18) */ void _nm_marshal_VOID__STRING_STRING_STRING_UINT (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -627,7 +709,7 @@ _nm_marshal_VOID__STRING_STRING_STRING_UINT (GClosure *closure, data2); } -/* VOID:UINT,UINT (nm-marshal.list:17) */ +/* VOID:UINT,UINT (nm-marshal.list:19) */ void _nm_marshal_VOID__UINT_UINT (GClosure *closure, GValue *return_value G_GNUC_UNUSED, @@ -664,7 +746,7 @@ _nm_marshal_VOID__UINT_UINT (GClosure *closure, data2); } -/* VOID:UINT,UINT,UINT (nm-marshal.list:18) */ +/* VOID:UINT,UINT,UINT (nm-marshal.list:20) */ void _nm_marshal_VOID__UINT_UINT_UINT (GClosure *closure, GValue *return_value G_GNUC_UNUSED, diff --git a/src/generated/nm-marshal.h b/src/generated/nm-marshal.h index 9f9ea6ad..61ef6479 100644 --- a/src/generated/nm-marshal.h +++ b/src/generated/nm-marshal.h @@ -30,7 +30,15 @@ extern void _nm_marshal_VOID__INT_UINT_BOOLEAN (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:OBJECT,STRING (nm-marshal.list:4) */ +/* VOID:OBJECT,OBJECT (nm-marshal.list:4) */ +extern void _nm_marshal_VOID__OBJECT_OBJECT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +/* VOID:OBJECT,STRING (nm-marshal.list:5) */ extern void _nm_marshal_VOID__OBJECT_STRING (GClosure *closure, GValue *return_value, guint n_param_values, @@ -38,18 +46,18 @@ extern void _nm_marshal_VOID__OBJECT_STRING (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:OBJECT,UINT,UINT (nm-marshal.list:5) */ -extern void _nm_marshal_VOID__OBJECT_UINT_UINT (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); +/* VOID:OBJECT,UINT,UINT,UINT (nm-marshal.list:6) */ +extern void _nm_marshal_VOID__OBJECT_UINT_UINT_UINT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); -/* VOID:POINTER (nm-marshal.list:6) */ +/* VOID:POINTER (nm-marshal.list:7) */ #define _nm_marshal_VOID__POINTER g_cclosure_marshal_VOID__POINTER -/* VOID:POINTER,POINTER,POINTER,POINTER,INT (nm-marshal.list:7) */ +/* VOID:POINTER,POINTER,POINTER,POINTER,INT (nm-marshal.list:8) */ extern void _nm_marshal_VOID__POINTER_POINTER_POINTER_POINTER_INT (GClosure *closure, GValue *return_value, guint n_param_values, @@ -57,7 +65,7 @@ extern void _nm_marshal_VOID__POINTER_POINTER_POINTER_POINTER_INT (GClosure gpointer invocation_hint, gpointer marshal_data); -/* VOID:POINTER,STRING (nm-marshal.list:8) */ +/* VOID:POINTER,STRING (nm-marshal.list:9) */ extern void _nm_marshal_VOID__POINTER_STRING (GClosure *closure, GValue *return_value, guint n_param_values, @@ -65,7 +73,15 @@ extern void _nm_marshal_VOID__POINTER_STRING (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,BOXED (nm-marshal.list:9) */ +/* VOID:POINTER,STRING,BOOLEAN,POINTER,POINTER (nm-marshal.list:10) */ +extern void _nm_marshal_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +/* VOID:STRING,BOXED (nm-marshal.list:11) */ extern void _nm_marshal_VOID__STRING_BOXED (GClosure *closure, GValue *return_value, guint n_param_values, @@ -73,7 +89,7 @@ extern void _nm_marshal_VOID__STRING_BOXED (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,BOXED,BOXED (nm-marshal.list:10) */ +/* VOID:STRING,BOXED,BOXED (nm-marshal.list:12) */ extern void _nm_marshal_VOID__STRING_BOXED_BOXED (GClosure *closure, GValue *return_value, guint n_param_values, @@ -81,7 +97,7 @@ extern void _nm_marshal_VOID__STRING_BOXED_BOXED (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,OBJECT (nm-marshal.list:11) */ +/* VOID:STRING,OBJECT (nm-marshal.list:13) */ extern void _nm_marshal_VOID__STRING_OBJECT (GClosure *closure, GValue *return_value, guint n_param_values, @@ -89,7 +105,7 @@ extern void _nm_marshal_VOID__STRING_OBJECT (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,OBJECT,POINTER (nm-marshal.list:12) */ +/* VOID:STRING,OBJECT,POINTER (nm-marshal.list:14) */ extern void _nm_marshal_VOID__STRING_OBJECT_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, @@ -97,7 +113,7 @@ extern void _nm_marshal_VOID__STRING_OBJECT_POINTER (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,POINTER (nm-marshal.list:13) */ +/* VOID:STRING,POINTER (nm-marshal.list:15) */ extern void _nm_marshal_VOID__STRING_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, @@ -105,7 +121,7 @@ extern void _nm_marshal_VOID__STRING_POINTER (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,STRING (nm-marshal.list:14) */ +/* VOID:STRING,STRING (nm-marshal.list:16) */ extern void _nm_marshal_VOID__STRING_STRING (GClosure *closure, GValue *return_value, guint n_param_values, @@ -113,7 +129,7 @@ extern void _nm_marshal_VOID__STRING_STRING (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,STRING,STRING (nm-marshal.list:15) */ +/* VOID:STRING,STRING,STRING (nm-marshal.list:17) */ extern void _nm_marshal_VOID__STRING_STRING_STRING (GClosure *closure, GValue *return_value, guint n_param_values, @@ -121,7 +137,7 @@ extern void _nm_marshal_VOID__STRING_STRING_STRING (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:STRING,STRING,STRING,UINT (nm-marshal.list:16) */ +/* VOID:STRING,STRING,STRING,UINT (nm-marshal.list:18) */ extern void _nm_marshal_VOID__STRING_STRING_STRING_UINT (GClosure *closure, GValue *return_value, guint n_param_values, @@ -129,7 +145,7 @@ extern void _nm_marshal_VOID__STRING_STRING_STRING_UINT (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:UINT,UINT (nm-marshal.list:17) */ +/* VOID:UINT,UINT (nm-marshal.list:19) */ extern void _nm_marshal_VOID__UINT_UINT (GClosure *closure, GValue *return_value, guint n_param_values, @@ -137,7 +153,7 @@ extern void _nm_marshal_VOID__UINT_UINT (GClosure *closure, gpointer invocation_hint, gpointer marshal_data); -/* VOID:UINT,UINT,UINT (nm-marshal.list:18) */ +/* VOID:UINT,UINT,UINT (nm-marshal.list:20) */ extern void _nm_marshal_VOID__UINT_UINT_UINT (GClosure *closure, GValue *return_value, guint n_param_values, diff --git a/src/ip6-manager/Makefile.in b/src/ip6-manager/Makefile.in index 59c2e7b4..d0d3129b 100644 --- a/src/ip6-manager/Makefile.in +++ b/src/ip6-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -169,6 +169,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -264,6 +268,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -302,6 +309,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/ip6-manager/nm-ip6-manager.c b/src/ip6-manager/nm-ip6-manager.c index 99f85ede..e452c18e 100644 --- a/src/ip6-manager/nm-ip6-manager.c +++ b/src/ip6-manager/nm-ip6-manager.c @@ -18,8 +18,12 @@ * Copyright (C) 2009 - 2010 Red Hat, Inc. */ +#define _GNU_SOURCE /* for struct in6_pktinfo */ + #include <errno.h> +#include <unistd.h> #include <netinet/icmp6.h> +#include <netinet/in.h> #include <netlink/route/addr.h> #include <netlink/route/rtnl.h> @@ -32,6 +36,7 @@ #include "NetworkManagerUtils.h" #include "nm-marshal.h" #include "nm-logging.h" +#include "nm-utils.h" /* Pre-DHCP addrconf timeout, in seconds */ #define NM_IP6_TIMEOUT 20 @@ -89,6 +94,10 @@ typedef struct { char *iface; int ifindex; + gboolean has_linklocal; + gboolean has_nonlinklocal; + guint dhcp_opts; + char *disable_ip6_path; gboolean disable_ip6_save_valid; gint32 disable_ip6_save; @@ -102,9 +111,13 @@ typedef struct { GArray *rdnss_servers; guint rdnss_timeout_id; + guint32 rdnss_timeout; GArray *dnssl_domains; guint dnssl_timeout_id; + guint32 dnssl_timeout; + + time_t last_solicitation; guint ip6flags_poll_id; @@ -209,11 +222,221 @@ nm_ip6_manager_get_device (NMIP6Manager *manager, int ifindex) return g_hash_table_lookup (priv->devices, GINT_TO_POINTER (ifindex)); } +static int +get_hwaddr (int ifindex, guint8 *buf) +{ + struct rtnl_link *lk; + struct nl_addr *addr; + int len; + + lk = nm_netlink_index_to_rtnl_link (ifindex); + if (!lk) + return -1; + + addr = rtnl_link_get_addr (lk); + len = nl_addr_get_len (addr); + if (len > NM_UTILS_HWADDR_LEN_MAX) + len = -1; + else + memcpy (buf, nl_addr_get_binary_addr (addr), len); + + rtnl_link_put (lk); + return len; +} + +static void +device_send_router_solicitation (NMIP6Device *device, const char *why) +{ + int sock, hops; + struct sockaddr_in6 sin6; + struct nd_router_solicit rs; + struct nd_opt_hdr lladdr_hdr; + guint8 hwaddr[NM_UTILS_HWADDR_LEN_MAX + 7]; + int hwaddr_len; + static const guint8 local_routers_addr[] = + { 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }; + struct msghdr mhdr; + struct iovec iov[3]; + struct cmsghdr *cmsg; + struct in6_pktinfo *ipi; + guint8 cmsgbuf[128]; + int cmsglen = 0; + time_t now; + + now = time (NULL); + if (device->last_solicitation > now - 5) + return; + device->last_solicitation = now; + + nm_log_dbg (LOGD_IP6, "(%s): %s: sending router solicitation", + device->iface, why); + + sock = socket (AF_INET6, SOCK_RAW, IPPROTO_ICMPV6); + if (sock < 0) { + nm_log_dbg (LOGD_IP6, "(%s): could not create ICMPv6 socket: %s", + device->iface, g_strerror (errno)); + return; + } + + hops = 255; + if ( setsockopt (sock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &hops, sizeof (hops)) == -1 + || setsockopt (sock, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &hops, sizeof (hops)) == -1) { + nm_log_dbg (LOGD_IP6, "(%s): could not set hop limit on ICMPv6 socket: %s", + device->iface, g_strerror (errno)); + close (sock); + return; + } + + /* Use the "all link-local routers" multicast address */ + memset (&sin6, 0, sizeof (sin6)); + memcpy (&sin6.sin6_addr, local_routers_addr, sizeof (sin6.sin6_addr)); + mhdr.msg_name = &sin6; + mhdr.msg_namelen = sizeof (sin6); + + /* Build the router solicitation */ + mhdr.msg_iov = iov; + memset (&rs, 0, sizeof (rs)); + rs.nd_rs_type = ND_ROUTER_SOLICIT; + iov[0].iov_len = sizeof (rs); + iov[0].iov_base = &rs; + + memset (hwaddr, 0, sizeof (hwaddr)); + hwaddr_len = get_hwaddr (device->ifindex, hwaddr); + + if (hwaddr_len > 0) { + memset (&lladdr_hdr, 0, sizeof (lladdr_hdr)); + lladdr_hdr.nd_opt_type = ND_OPT_SOURCE_LINKADDR; + lladdr_hdr.nd_opt_len = (sizeof (lladdr_hdr) + hwaddr_len + 7) % 8; + iov[1].iov_len = sizeof (lladdr_hdr); + iov[1].iov_base = &lladdr_hdr; + + iov[2].iov_len = (lladdr_hdr.nd_opt_len * 8) - 2; + iov[2].iov_base = hwaddr; + + mhdr.msg_iovlen = 3; + } else + mhdr.msg_iovlen = 1; + + /* Force this to go on the right device */ + memset (cmsgbuf, 0, sizeof (cmsgbuf)); + cmsg = (struct cmsghdr *) cmsgbuf; + cmsglen = CMSG_SPACE (sizeof (*ipi)); + cmsg->cmsg_len = CMSG_LEN (sizeof (*ipi)); + cmsg->cmsg_level = SOL_IPV6; + cmsg->cmsg_type = IPV6_PKTINFO; + ipi = (struct in6_pktinfo *) CMSG_DATA (cmsg); + ipi->ipi6_ifindex = device->ifindex; + + mhdr.msg_control = cmsg; + mhdr.msg_controllen = cmsglen; + + if (sendmsg (sock, &mhdr, 0) == -1) { + nm_log_dbg (LOGD_IP6, "(%s): could not send router solicitation: %s", + device->iface, g_strerror (errno)); + } + + close (sock); +} + +static char * +device_get_iface (NMIP6Device *device) +{ + return device ? device->iface : "unknown"; +} + +static const char * +state_to_string (NMIP6DeviceState state) +{ + switch (state) { + case NM_IP6_DEVICE_UNCONFIGURED: + return "unconfigured"; + case NM_IP6_DEVICE_GOT_LINK_LOCAL: + return "got-link-local"; + case NM_IP6_DEVICE_GOT_ROUTER_ADVERTISEMENT: + return "got-ra"; + case NM_IP6_DEVICE_GOT_ADDRESS: + return "got-address"; + case NM_IP6_DEVICE_TIMED_OUT: + return "timed-out"; + default: + return "unknown"; + } +} + +static gboolean +device_set_state (NMIP6Device *device, NMIP6DeviceState state) +{ + NMIP6DeviceState old_state; + + g_return_val_if_fail (device != NULL, FALSE); + + if (state == device->state) + return FALSE; + + old_state = device->state; + device->state = state; + nm_log_dbg (LOGD_IP6, "(%s) IP6 device state: %s -> %s", + device_get_iface (device), + state_to_string (old_state), + state_to_string (state)); + return TRUE; +} + +static char * +ra_flags_to_string (guint32 ra_flags) +{ + GString *s = g_string_sized_new (20); + + g_string_append (s, " ("); + if (ra_flags & IF_RS_SENT) + g_string_append_c (s, 'S'); + + if (ra_flags & IF_RA_RCVD) + g_string_append_c (s, 'R'); + + if (ra_flags & IF_RA_MANAGED) + g_string_append_c (s, 'M'); + + if (ra_flags & IF_RA_OTHERCONF) + g_string_append_c (s, 'O'); + + g_string_append_c (s, ')'); + return g_string_free (s, FALSE); +} + +static gboolean +device_set_ra_flags (NMIP6Device *device, guint ra_flags) +{ + guint old_ra_flags; + gchar *ra_flags_str, *old_ra_flags_str; + + g_return_val_if_fail (device != NULL, FALSE); + + if (ra_flags == device->ra_flags) + return FALSE; + + old_ra_flags = device->ra_flags; + device->ra_flags = ra_flags; + + if (nm_logging_level_enabled (LOGL_DEBUG)) { + ra_flags_str = ra_flags_to_string (ra_flags); + old_ra_flags_str = ra_flags_to_string (old_ra_flags); + nm_log_dbg (LOGD_IP6, "(%s) IP6 device ra_flags: 0x%08x %s -> 0x%08x %s", + device_get_iface (device), + old_ra_flags, old_ra_flags_str, + ra_flags, ra_flags_str); + g_free (ra_flags_str); + g_free (old_ra_flags_str); + } + + return TRUE; +} + /******************************************************************/ typedef struct { NMIP6Device *device; - guint dhcp_opts; gboolean success; } CallbackInfo; @@ -238,14 +461,14 @@ finish_addrconf (gpointer user_data) /* And tell listeners that addrconf is complete */ if (info->success) { g_signal_emit (manager, signals[ADDRCONF_COMPLETE], 0, - ifindex, info->dhcp_opts, TRUE); + ifindex, device->dhcp_opts, TRUE); } else { nm_log_info (LOGD_IP6, "(%s): IP6 addrconf timed out or failed.", device->iface); nm_ip6_manager_cancel_addrconf (manager, ifindex); g_signal_emit (manager, signals[ADDRCONF_COMPLETE], 0, - ifindex, info->dhcp_opts, FALSE); + ifindex, device->dhcp_opts, FALSE); } return FALSE; @@ -261,7 +484,7 @@ emit_config_changed (gpointer user_data) device->config_changed_id = 0; g_signal_emit (manager, signals[CONFIG_CHANGED], 0, device->ifindex, - info->dhcp_opts, + device->dhcp_opts, info->success); return FALSE; } @@ -272,7 +495,7 @@ static gboolean rdnss_expired (gpointer user_data) { NMIP6Device *device = user_data; - CallbackInfo info = { device, IP6_DHCP_OPT_NONE, FALSE }; + CallbackInfo info = { device, FALSE }; nm_log_dbg (LOGD_IP6, "(%s): IPv6 RDNSS information expired", device->iface); @@ -282,6 +505,22 @@ rdnss_expired (gpointer user_data) return FALSE; } +static gboolean +rdnss_needs_refresh (gpointer user_data) +{ + NMIP6Device *device = user_data; + gchar *msg; + + msg = g_strdup_printf ("IPv6 RDNSS due to expire in %d seconds", + device->rdnss_timeout); + device_send_router_solicitation (device, msg); + g_free (msg); + + set_rdnss_timeout (device); + + return FALSE; +} + static void set_rdnss_timeout (NMIP6Device *device) { @@ -320,9 +559,23 @@ set_rdnss_timeout (NMIP6Device *device) } if (expires) { - device->rdnss_timeout_id = g_timeout_add_seconds (MIN (expires - now, G_MAXUINT32 - 1), - rdnss_expired, - device); + gchar *msg; + + device->rdnss_timeout = MIN (expires - now, G_MAXUINT32 - 1); + + if (device->rdnss_timeout <= 5) { + msg = g_strdup_printf ("IPv6 RDNSS about to expire in %d seconds", + device->rdnss_timeout); + device_send_router_solicitation (device, msg); + g_free (msg); + device->rdnss_timeout_id = g_timeout_add_seconds (device->rdnss_timeout, + rdnss_expired, + device); + } else { + device->rdnss_timeout_id = g_timeout_add_seconds (device->rdnss_timeout / 2, + rdnss_needs_refresh, + device); + } } } @@ -332,7 +585,7 @@ static gboolean dnssl_expired (gpointer user_data) { NMIP6Device *device = user_data; - CallbackInfo info = { device, IP6_DHCP_OPT_NONE, FALSE }; + CallbackInfo info = { device, FALSE }; nm_log_dbg (LOGD_IP6, "(%s): IPv6 DNSSL information expired", device->iface); @@ -342,6 +595,22 @@ dnssl_expired (gpointer user_data) return FALSE; } +static gboolean +dnssl_needs_refresh (gpointer user_data) +{ + NMIP6Device *device = user_data; + gchar *msg; + + msg = g_strdup_printf ("IPv6 DNSSL due to expire in %d seconds", + device->dnssl_timeout); + device_send_router_solicitation (device, msg); + g_free (msg); + + set_dnssl_timeout (device); + + return FALSE; +} + static void set_dnssl_timeout (NMIP6Device *device) { @@ -376,59 +645,49 @@ set_dnssl_timeout (NMIP6Device *device) } if (expires) { - device->dnssl_timeout_id = g_timeout_add_seconds (MIN (expires - now, G_MAXUINT32 - 1), - dnssl_expired, - device); + gchar *msg; + + device->dnssl_timeout = MIN (expires - now, G_MAXUINT32 - 1); + + if (device->dnssl_timeout <= 5) { + msg = g_strdup_printf ("IPv6 DNSSL about to expire in %d seconds", + device->dnssl_timeout); + device_send_router_solicitation (device, msg); + g_free (msg); + device->dnssl_timeout_id = g_timeout_add_seconds (device->dnssl_timeout, + dnssl_expired, + device); + } else { + device->dnssl_timeout_id = g_timeout_add_seconds (device->dnssl_timeout / 2, + dnssl_needs_refresh, + device); + } } } static CallbackInfo * -callback_info_new (NMIP6Device *device, guint dhcp_opts, gboolean success) +callback_info_new (NMIP6Device *device, gboolean success) { CallbackInfo *info; info = g_malloc0 (sizeof (CallbackInfo)); info->device = device; - info->dhcp_opts = dhcp_opts; info->success = success; return info; } -static const char * -state_to_string (NMIP6DeviceState state) -{ - switch (state) { - case NM_IP6_DEVICE_UNCONFIGURED: - return "unconfigured"; - case NM_IP6_DEVICE_GOT_LINK_LOCAL: - return "got-link-local"; - case NM_IP6_DEVICE_GOT_ROUTER_ADVERTISEMENT: - return "got-ra"; - case NM_IP6_DEVICE_GOT_ADDRESS: - return "got-address"; - case NM_IP6_DEVICE_TIMED_OUT: - return "timed-out"; - default: - return "unknown"; - } -} - static void -nm_ip6_device_sync_from_netlink (NMIP6Device *device, gboolean config_changed) +check_addresses (NMIP6Device *device) { NMIP6Manager *manager = device->manager; NMIP6ManagerPrivate *priv = NM_IP6_MANAGER_GET_PRIVATE (manager); struct rtnl_addr *rtnladdr; struct nl_addr *nladdr; struct in6_addr *addr; - CallbackInfo *info; - guint dhcp_opts = IP6_DHCP_OPT_NONE; - gboolean found_linklocal = FALSE, found_other = FALSE; - nm_log_dbg (LOGD_IP6, "(%s): syncing with netlink (ra_flags 0x%X) (state/target '%s'/'%s')", - device->iface, device->ra_flags, - state_to_string (device->state), - state_to_string (device->target_state)); + /* Reset address information */ + device->has_linklocal = FALSE; + device->has_nonlinklocal = FALSE; /* Look for any IPv6 addresses the kernel may have set for the device */ for (rtnladdr = (struct rtnl_addr *) nl_cache_get_first (priv->addr_cache); @@ -453,12 +712,12 @@ nm_ip6_device_sync_from_netlink (NMIP6Device *device, gboolean config_changed) if (IN6_IS_ADDR_LINKLOCAL (addr)) { if (device->state == NM_IP6_DEVICE_UNCONFIGURED) - device->state = NM_IP6_DEVICE_GOT_LINK_LOCAL; - found_linklocal = TRUE; + device_set_state (device, NM_IP6_DEVICE_GOT_LINK_LOCAL); + device->has_linklocal = TRUE; } else { if (device->state < NM_IP6_DEVICE_GOT_ADDRESS) - device->state = NM_IP6_DEVICE_GOT_ADDRESS; - found_other = TRUE; + device_set_state (device, NM_IP6_DEVICE_GOT_ADDRESS); + device->has_nonlinklocal = TRUE; } } @@ -466,27 +725,41 @@ nm_ip6_device_sync_from_netlink (NMIP6Device *device, gboolean config_changed) * before in the initial run, but if it goes away later, make sure we * regress from GOT_LINK_LOCAL back to UNCONFIGURED. */ - if ((device->state == NM_IP6_DEVICE_GOT_LINK_LOCAL) && !found_linklocal) - device->state = NM_IP6_DEVICE_UNCONFIGURED; + if ((device->state == NM_IP6_DEVICE_GOT_LINK_LOCAL) && !device->has_linklocal) + device_set_state (device, NM_IP6_DEVICE_UNCONFIGURED); - nm_log_dbg (LOGD_IP6, "(%s): addresses synced (state %s)", - device->iface, state_to_string (device->state)); + nm_log_dbg (LOGD_IP6, "(%s): addresses checked (state %s)", + device->iface, state_to_string (device->state)); +} + +static void +check_ra_flags (NMIP6Device *device) +{ + device->dhcp_opts = IP6_DHCP_OPT_NONE; /* We only care about router advertisements if we want a real IPv6 address */ if ( (device->target_state == NM_IP6_DEVICE_GOT_ADDRESS) && (device->ra_flags & IF_RA_RCVD)) { if (device->state < NM_IP6_DEVICE_GOT_ROUTER_ADVERTISEMENT) - device->state = NM_IP6_DEVICE_GOT_ROUTER_ADVERTISEMENT; + device_set_state (device, NM_IP6_DEVICE_GOT_ROUTER_ADVERTISEMENT); if (device->ra_flags & IF_RA_MANAGED) { - dhcp_opts = IP6_DHCP_OPT_MANAGED; + device->dhcp_opts = IP6_DHCP_OPT_MANAGED; nm_log_dbg (LOGD_IP6, "router advertisement deferred to DHCPv6"); } else if (device->ra_flags & IF_RA_OTHERCONF) { - dhcp_opts = IP6_DHCP_OPT_OTHERCONF; + device->dhcp_opts = IP6_DHCP_OPT_OTHERCONF; nm_log_dbg (LOGD_IP6, "router advertisement requests parallel DHCPv6"); } } + nm_log_dbg (LOGD_IP6, "(%s): router advertisement checked (state %s)", + device->iface, state_to_string (device->state)); +} + +static void +check_addrconf_complete (NMIP6Device *device) +{ + CallbackInfo *info; if (!device->addrconf_complete) { /* Managed mode (ie DHCP only) short-circuits automatic addrconf, so @@ -494,7 +767,7 @@ nm_ip6_device_sync_from_netlink (NMIP6Device *device, gboolean config_changed) * when the RA requests managed mode. */ if ( (device->state >= device->target_state) - || (dhcp_opts == IP6_DHCP_OPT_MANAGED)) { + || (device->dhcp_opts == IP6_DHCP_OPT_MANAGED)) { /* device->finish_addrconf_id may currently be a timeout * rather than an idle, so we remove the existing source. */ @@ -503,15 +776,15 @@ nm_ip6_device_sync_from_netlink (NMIP6Device *device, gboolean config_changed) nm_log_dbg (LOGD_IP6, "(%s): reached target state or Managed-mode requested (state '%s') (dhcp opts 0x%X)", device->iface, state_to_string (device->state), - dhcp_opts); + device->dhcp_opts); - info = callback_info_new (device, dhcp_opts, TRUE); + info = callback_info_new (device, TRUE); device->finish_addrconf_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, finish_addrconf, info, (GDestroyNotify) g_free); } - } else if (config_changed) { + } else { if (!device->config_changed_id) { gboolean success = TRUE; @@ -520,19 +793,35 @@ nm_ip6_device_sync_from_netlink (NMIP6Device *device, gboolean config_changed) */ if ( (device->state == NM_IP6_DEVICE_GOT_ADDRESS) && (device->target_state == NM_IP6_DEVICE_GOT_ADDRESS) - && !found_other) { - nm_log_dbg (LOGD_IP6, "(%s): RA-provided address no longer valid", + && !device->has_nonlinklocal) { + nm_log_dbg (LOGD_IP6, "(%s): RA-provided address no longer found", device->iface); success = FALSE; } - info = callback_info_new (device, dhcp_opts, success); + info = callback_info_new (device, success); device->config_changed_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, emit_config_changed, info, (GDestroyNotify) g_free); } } + + nm_log_dbg (LOGD_IP6, "(%s): dhcp_opts checked (state %s)", + device->iface, state_to_string (device->state)); +} + +static void +nm_ip6_device_sync_from_netlink (NMIP6Device *device) +{ + nm_log_dbg (LOGD_IP6, "(%s): syncing with netlink (ra_flags 0x%X) (state/target '%s'/'%s')", + device->iface, device->ra_flags, + state_to_string (device->state), + state_to_string (device->target_state)); + + check_addresses (device); + check_ra_flags (device); + check_addrconf_complete (device); } static void @@ -544,16 +833,51 @@ ref_object (struct nl_object *obj, void *data) *out = obj; } +static void +dump_address_change (NMIP6Device *device, struct nlmsghdr *hdr, struct rtnl_addr *rtnladdr) +{ + char *event; + struct nl_addr *addr; + char addr_str[40] = "none"; + + event = hdr->nlmsg_type == RTM_NEWADDR ? "new" : "lost"; + addr = rtnl_addr_get_local (rtnladdr); + if (addr) + nl_addr2str (addr, addr_str, 40); + + nm_log_dbg (LOGD_IP6, "(%s) %s address: %s", device_get_iface (device), event, addr_str); +} + +static void +dump_route_change (NMIP6Device *device, struct nlmsghdr *hdr, struct rtnl_route *rtnlroute) +{ + char *event; + struct nl_addr *dst; + char dst_str[40] = "none"; + struct nl_addr *gateway; + char gateway_str[40] = "none"; + + event = hdr->nlmsg_type == RTM_NEWROUTE ? "new" : "lost"; + dst = rtnl_route_get_dst (rtnlroute); + gateway = rtnl_route_get_gateway (rtnlroute); + if (dst) + nl_addr2str (dst, dst_str, 40); + if (gateway) + nl_addr2str (gateway, gateway_str, 40); + + nm_log_dbg (LOGD_IP6, "(%s) %s route: %s via %s",device_get_iface (device), event, dst_str, gateway_str); +} + static NMIP6Device * -process_addr (NMIP6Manager *manager, struct nl_msg *msg) +process_address_change (NMIP6Manager *manager, struct nl_msg *msg) { NMIP6ManagerPrivate *priv = NM_IP6_MANAGER_GET_PRIVATE (manager); NMIP6Device *device; + struct nlmsghdr *hdr; struct rtnl_addr *rtnladdr; int old_size; - nm_log_dbg (LOGD_IP6, "processing netlink new/del address message"); - + hdr = nlmsg_hdr (msg); rtnladdr = NULL; nl_msg_parse (msg, ref_object, &rtnladdr); if (!rtnladdr) { @@ -562,39 +886,34 @@ process_addr (NMIP6Manager *manager, struct nl_msg *msg) } device = nm_ip6_manager_get_device (manager, rtnl_addr_get_ifindex (rtnladdr)); - if (!device) { - nm_log_dbg (LOGD_IP6, "ignoring message for unknown device"); - rtnl_addr_put (rtnladdr); - return NULL; - } old_size = nl_cache_nitems (priv->addr_cache); nl_cache_include (priv->addr_cache, (struct nl_object *)rtnladdr, NULL, NULL); - rtnl_addr_put (rtnladdr); /* The kernel will re-notify us of automatically-added addresses * every time it gets another router advertisement. We only want * to notify higher levels if we actually changed something. */ - if (nl_cache_nitems (priv->addr_cache) == old_size) { - nm_log_dbg (LOGD_IP6, "(%s): address cache unchanged, ignoring message", - device->iface); + nm_log_dbg (LOGD_IP6, "(%s): address cache size: %d -> %d:", + device_get_iface (device), old_size, nl_cache_nitems (priv->addr_cache)); + dump_address_change (device, hdr, rtnladdr); + rtnl_addr_put (rtnladdr); + if (nl_cache_nitems (priv->addr_cache) == old_size) return NULL; - } return device; } static NMIP6Device * -process_route (NMIP6Manager *manager, struct nl_msg *msg) +process_route_change (NMIP6Manager *manager, struct nl_msg *msg) { NMIP6ManagerPrivate *priv = NM_IP6_MANAGER_GET_PRIVATE (manager); NMIP6Device *device; + struct nlmsghdr *hdr; struct rtnl_route *rtnlroute; int old_size; - nm_log_dbg (LOGD_IP6, "processing netlink new/del route message"); - + hdr = nlmsg_hdr (msg); rtnlroute = NULL; nl_msg_parse (msg, ref_object, &rtnlroute); if (!rtnlroute) { @@ -603,53 +922,17 @@ process_route (NMIP6Manager *manager, struct nl_msg *msg) } device = nm_ip6_manager_get_device (manager, rtnl_route_get_oif (rtnlroute)); - if (!device) { - nm_log_dbg (LOGD_IP6, "ignoring message for unknown device"); - rtnl_route_put (rtnlroute); - return NULL; - } old_size = nl_cache_nitems (priv->route_cache); nl_cache_include (priv->route_cache, (struct nl_object *)rtnlroute, NULL, NULL); - rtnl_route_put (rtnlroute); - - /* As above in process_addr */ - if (nl_cache_nitems (priv->route_cache) == old_size) { - nm_log_dbg (LOGD_IP6, "(%s): route cache unchanged, ignoring message", - device->iface); - return NULL; - } - return device; -} - -static NMIP6Device * -process_prefix (NMIP6Manager *manager, struct nl_msg *msg) -{ - struct prefixmsg *pmsg; - NMIP6Device *device; - - /* We don't care about the prefix itself, but if we receive a - * router advertisement telling us to use DHCP, we might not - * get any RTM_NEWADDRs or RTM_NEWROUTEs, so this is our only - * way to notice immediately that an RA was received. - */ - - nm_log_dbg (LOGD_IP6, "processing netlink new prefix message"); - - if (!nlmsg_valid_hdr (nlmsg_hdr (msg), sizeof(*pmsg))) { - nm_log_dbg (LOGD_IP6, "ignoring invalid prefix message"); - return NULL; - } - - pmsg = (struct prefixmsg *) NLMSG_DATA (nlmsg_hdr (msg)); - device = nm_ip6_manager_get_device (manager, pmsg->prefix_ifindex); - - if (!device || device->addrconf_complete) { - nm_log_dbg (LOGD_IP6, "(%s): ignoring unknown or completed device", - device ? device->iface : "(none)"); + /* As above in process_address_change */ + nm_log_dbg (LOGD_IP6, "(%s): route cache size: %d -> %d:", + device_get_iface (device), old_size, nl_cache_nitems (priv->route_cache)); + dump_route_change (device, hdr, rtnlroute); + rtnl_route_put (rtnlroute); + if (nl_cache_nitems (priv->route_cache) == old_size) return NULL; - } return device; } @@ -705,7 +988,9 @@ process_nduseropt_rdnss (NMIP6Device *device, struct nd_opt_hdr *opt) */ server.expires = ntohl (rdnss_opt->nd_opt_rdnss_lifetime); if (server.expires > 0) - server.expires += now + 10; + if (server.expires < 7200) + server.expires = 7200; + server.expires += now; for (addr = (struct in6_addr *) (rdnss_opt + 1); opt_len >= 2; addr++, opt_len -= 2) { char buf[INET6_ADDRSTRLEN + 1]; @@ -836,7 +1121,9 @@ process_nduseropt_dnssl (NMIP6Device *device, struct nd_opt_hdr *opt) */ domain.expires = ntohl (dnssl_opt->nd_opt_dnssl_lifetime); if (domain.expires > 0) - domain.expires += now + 10; + if (domain.expires < 7200) + domain.expires = 7200; + domain.expires += now; while (opt_len) { const char *domain_str; @@ -985,28 +1272,6 @@ static struct nla_policy link_prot_policy[IFLA_INET6_MAX + 1] = { [IFLA_INET6_FLAGS] = { .type = NLA_U32 }, }; -static char * -ra_flags_to_string (guint32 ra_flags) -{ - GString *s = g_string_sized_new (20); - - g_string_append (s, " ("); - if (ra_flags & IF_RS_SENT) - g_string_append_c (s, 'S'); - - if (ra_flags & IF_RA_RCVD) - g_string_append_c (s, 'R'); - - if (ra_flags & IF_RA_OTHERCONF) - g_string_append_c (s, 'O'); - - if (ra_flags & IF_RA_MANAGED) - g_string_append_c (s, 'M'); - - g_string_append_c (s, ')'); - return g_string_free (s, FALSE); -} - static NMIP6Device * process_newlink (NMIP6Manager *manager, struct nl_msg *msg) { @@ -1016,7 +1281,6 @@ process_newlink (NMIP6Manager *manager, struct nl_msg *msg) struct nlattr *tb[IFLA_MAX + 1]; struct nlattr *pi[IFLA_INET6_MAX + 1]; int err; - char *flags_str = NULL; /* FIXME: we have to do this manually for now since libnl doesn't yet * support the IFLA_PROTINFO attribute of NEWLINK messages. When it does, @@ -1059,13 +1323,7 @@ process_newlink (NMIP6Manager *manager, struct nl_msg *msg) return NULL; } - device->ra_flags = nla_get_u32 (pi[IFLA_INET6_FLAGS]); - - if (nm_logging_level_enabled (LOGL_DEBUG)) - flags_str = ra_flags_to_string (device->ra_flags); - nm_log_dbg (LOGD_IP6, "(%s): got IPv6 flags 0x%X%s", - device->iface, device->ra_flags, flags_str ? flags_str : ""); - g_free (flags_str); + device_set_ra_flags (device, nla_get_u32 (pi[IFLA_INET6_FLAGS])); return device; } @@ -1076,39 +1334,30 @@ netlink_notification (NMNetlinkMonitor *monitor, struct nl_msg *msg, gpointer us NMIP6Manager *manager = (NMIP6Manager *) user_data; NMIP6Device *device; struct nlmsghdr *hdr; - gboolean config_changed = FALSE; hdr = nlmsg_hdr (msg); nm_log_dbg (LOGD_HW, "netlink event type %d", hdr->nlmsg_type); switch (hdr->nlmsg_type) { case RTM_NEWADDR: case RTM_DELADDR: - device = process_addr (manager, msg); - config_changed = TRUE; + device = process_address_change (manager, msg); break; case RTM_NEWROUTE: case RTM_DELROUTE: - device = process_route (manager, msg); - config_changed = TRUE; - break; - case RTM_NEWPREFIX: - device = process_prefix (manager, msg); + device = process_route_change (manager, msg); break; case RTM_NEWNDUSEROPT: device = process_nduseropt (manager, msg); - config_changed = TRUE; break; case RTM_NEWLINK: device = process_newlink (manager, msg); - config_changed = TRUE; break; default: return; } if (device) { - nm_log_dbg (LOGD_IP6, "(%s): syncing device with netlink changes", device->iface); - nm_ip6_device_sync_from_netlink (device, config_changed); + nm_ip6_device_sync_from_netlink (device); } } @@ -1179,7 +1428,7 @@ nm_ip6_manager_begin_addrconf (NMIP6Manager *manager, int ifindex) device->ra_flags = 0; /* Set up a timeout on the transaction to kill it after the timeout */ - info = callback_info_new (device, 0, FALSE); + info = callback_info_new (device, FALSE); device->finish_addrconf_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, NM_IP6_TIMEOUT, finish_addrconf, @@ -1204,7 +1453,7 @@ nm_ip6_manager_begin_addrconf (NMIP6Manager *manager, int ifindex) * device is already fully configured and schedule the * ADDRCONF_COMPLETE signal in that case. */ - nm_ip6_device_sync_from_netlink (device, FALSE); + nm_ip6_device_sync_from_netlink (device); } void @@ -1235,9 +1484,7 @@ nm_ip6_manager_get_ip6_config (NMIP6Manager *manager, int ifindex) NMIP6Address *ip6addr; struct rtnl_route *rtnlroute; struct nl_addr *nldest, *nlgateway; - struct in6_addr *dest, *gateway; - gboolean defgw_set = FALSE; - struct in6_addr defgw; + const struct in6_addr *dest, *gateway; uint32_t metric; NMIP6Route *ip6route; int i; @@ -1287,11 +1534,9 @@ nm_ip6_manager_get_ip6_config (NMIP6Manager *manager, int ifindex) gateway = nl_addr_get_binary_addr (nlgateway); if (rtnl_route_get_dst_len (rtnlroute) == 0) { - /* Default gateway route; don't add to normal routes but to each address */ - if (!defgw_set) { - memcpy (&defgw, gateway, sizeof (defgw)); - defgw_set = TRUE; - } + /* Default gateway route; cache the router's address for later */ + if (!nm_ip6_config_get_gateway (config)) + nm_ip6_config_set_gateway (config, gateway); continue; } @@ -1326,8 +1571,9 @@ nm_ip6_manager_get_ip6_config (NMIP6Manager *manager, int ifindex) nm_ip6_address_set_prefix (ip6addr, rtnl_addr_get_prefixlen (rtnladdr)); nm_ip6_address_set_address (ip6addr, addr); nm_ip6_config_take_address (config, ip6addr); - if (defgw_set) - nm_ip6_address_set_gateway (ip6addr, &defgw); + gateway = nm_ip6_config_get_gateway (config); + if (gateway) + nm_ip6_address_set_gateway (ip6addr, gateway); } /* Add DNS servers */ diff --git a/src/logging/Makefile.in b/src/logging/Makefile.in index c73f71b4..45f84326 100644 --- a/src/logging/Makefile.in +++ b/src/logging/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -165,6 +165,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -260,6 +264,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -298,6 +305,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/logging/nm-logging.c b/src/logging/nm-logging.c index a2b0ebaf..f54adcdd 100644 --- a/src/logging/nm-logging.c +++ b/src/logging/nm-logging.c @@ -46,7 +46,7 @@ static guint32 log_domains = \ LOGD_DHCP4 | LOGD_DHCP6 | LOGD_PPP | LOGD_IP4 | LOGD_IP6 | LOGD_AUTOIP4 | \ LOGD_DNS | LOGD_VPN | LOGD_SHARING | LOGD_SUPPLICANT | LOGD_AGENTS | \ LOGD_SETTINGS | LOGD_SUSPEND | LOGD_CORE | LOGD_DEVICE | LOGD_OLPC_MESH | \ - LOGD_WIMAX | LOGD_INFINIBAND | LOGD_FIREWALL; + LOGD_WIMAX | LOGD_INFINIBAND | LOGD_FIREWALL | LOGD_ADSL; typedef struct { guint32 num; @@ -89,6 +89,7 @@ static const LogDesc domain_descs[] = { { LOGD_WIMAX, "WIMAX" }, { LOGD_INFINIBAND,"INFINIBAND" }, { LOGD_FIREWALL, "FIREWALL" }, + { LOGD_ADSL, "ADSL" }, { 0, NULL } }; diff --git a/src/logging/nm-logging.h b/src/logging/nm-logging.h index 7e27f311..b3595d18 100644 --- a/src/logging/nm-logging.h +++ b/src/logging/nm-logging.h @@ -54,6 +54,7 @@ enum { LOGD_WIMAX = 0x00800000, LOGD_INFINIBAND = 0x01000000, LOGD_FIREWALL = 0x02000000, + LOGD_ADSL = 0x04000000, }; #define LOGD_DHCP (LOGD_DHCP4 | LOGD_DHCP6) diff --git a/src/main.c b/src/main.c index 4a21959f..e8ff2e4c 100644 --- a/src/main.c +++ b/src/main.c @@ -29,6 +29,7 @@ #include <errno.h> #include <stdlib.h> #include <signal.h> +#include <pthread.h> #include <unistd.h> #include <fcntl.h> #include <sys/stat.h> @@ -53,6 +54,7 @@ #include "nm-logging.h" #include "nm-policy-hosts.h" #include "nm-config.h" +#include "nm-posix-signals.h" #if !defined(NM_DIST_VERSION) # define NM_DIST_VERSION VERSION @@ -66,101 +68,107 @@ */ static NMManager *manager = NULL; static GMainLoop *main_loop = NULL; -static int quit_pipe[2] = { -1, -1 }; - static gboolean quit_early = FALSE; +static sigset_t signal_set; -static void -nm_signal_handler (int signo) +void *signal_handling_thread (void *arg); +/* + * Thread function waiting for signals and processing them. + * Wait for signals in signal set. The semantics of sigwait() require that all + * threads (including the thread calling sigwait()) have the signal masked, for + * reliable operation. Otherwise, a signal that arrives while this thread is + * not blocked in sigwait() might be delivered to another thread. + */ +void * +signal_handling_thread (void *arg) { - static int in_fatal = 0, x; - - /* avoid loops */ - if (in_fatal > 0) - return; - ++in_fatal; - - switch (signo) { - case SIGSEGV: - case SIGBUS: - case SIGILL: - case SIGABRT: - nm_log_warn (LOGD_CORE, "caught signal %d. Generating backtrace...", signo); - nm_logging_backtrace (); - exit (1); - break; - case SIGFPE: - case SIGPIPE: - /* let the fatal signals interrupt us */ - --in_fatal; - nm_log_warn (LOGD_CORE, "caught signal %d, shutting down abnormally. Generating backtrace...", signo); - nm_logging_backtrace (); - x = write (quit_pipe[1], "X", 1); - break; - case SIGINT: - case SIGTERM: - /* let the fatal signals interrupt us */ - --in_fatal; - nm_log_info (LOGD_CORE, "caught signal %d, shutting down normally.", signo); - quit_early = TRUE; - x = write (quit_pipe[1], "X", 1); - break; - case SIGHUP: - --in_fatal; - /* Reread config stuff like system config files, VPN service files, etc */ - break; - case SIGUSR1: - --in_fatal; - /* Play with log levels or something */ - break; - default: - signal (signo, nm_signal_handler); - break; - } + int signo; + + while (1) { + sigwait (&signal_set, &signo); + + switch (signo) { + case SIGSEGV: + case SIGBUS: + case SIGILL: + case SIGABRT: + case SIGQUIT: + nm_log_warn (LOGD_CORE, "caught signal %d. Generating backtrace...", signo); + nm_logging_backtrace (); + exit (1); + break; + case SIGFPE: + case SIGPIPE: + nm_log_warn (LOGD_CORE, "caught signal %d, shutting down abnormally. Generating backtrace...", signo); + nm_logging_backtrace (); + quit_early = TRUE; /* for quitting before entering the main loop */ + g_main_loop_quit (main_loop); + break; + case SIGINT: + case SIGTERM: + nm_log_info (LOGD_CORE, "caught signal %d, shutting down normally.", signo); + quit_early = TRUE; /* for quitting before entering the main loop */ + g_main_loop_quit (main_loop); + break; + case SIGHUP: + /* Reread config stuff like system config files, VPN service files, etc */ + nm_log_info (LOGD_CORE, "caught signal %d, not supported yet.", signo); + break; + case SIGUSR1: + /* Play with log levels or something */ + nm_log_info (LOGD_CORE, "caught signal %d, not supported yet.", signo); + break; + default: + nm_log_err (LOGD_CORE, "caught unexpected signal %d", signo); + break; + } + } + return NULL; } +/* + * Mask the signals we are interested in and create a signal handling thread. + * Because all threads inherit the signal mask from their creator, all threads + * in the process will have the signals masked. That's why setup_signals() has + * to be called before creating other threads. + */ static gboolean -quit_watch (GIOChannel *src, GIOCondition condition, gpointer user_data) -{ - - if (condition & G_IO_IN) { - nm_log_warn (LOGD_CORE, "quit request received, terminating..."); - g_main_loop_quit (main_loop); - } - - return FALSE; -} - -static void setup_signals (void) { - struct sigaction action; - sigset_t mask; - GIOChannel *quit_channel; + pthread_t signal_thread_id; + sigset_t old_sig_mask; + int status; + + sigemptyset (&signal_set); + sigaddset (&signal_set, SIGHUP); + sigaddset (&signal_set, SIGINT); + sigaddset (&signal_set, SIGQUIT); + sigaddset (&signal_set, SIGILL); + sigaddset (&signal_set, SIGABRT); + sigaddset (&signal_set, SIGFPE); + sigaddset (&signal_set, SIGBUS); + sigaddset (&signal_set, SIGSEGV); + sigaddset (&signal_set, SIGPIPE); + sigaddset (&signal_set, SIGTERM); + sigaddset (&signal_set, SIGUSR1); + + /* Block all signals of interest. */ + status = pthread_sigmask (SIG_BLOCK, &signal_set, &old_sig_mask); + if (status != 0) { + fprintf (stderr, _("Failed to set signal mask: %d"), status); + return FALSE; + } + /* Save original mask so that we could use it for child processes. */ + nm_save_original_signal_mask (old_sig_mask); - /* Set up our quit pipe */ - if (pipe (quit_pipe) < 0) { - fprintf (stderr, _("Failed to initialize SIGTERM pipe: %d"), errno); - exit (1); + /* Create the signal handling thread. */ + status = pthread_create (&signal_thread_id, NULL, signal_handling_thread, NULL); + if (status != 0) { + fprintf (stderr, _("Failed to create signal handling thread: %d"), status); + return FALSE; } - fcntl (quit_pipe[1], F_SETFL, O_NONBLOCK | fcntl (quit_pipe[1], F_GETFL)); - - quit_channel = g_io_channel_unix_new (quit_pipe[0]); - g_io_add_watch_full (quit_channel, G_PRIORITY_HIGH, G_IO_IN | G_IO_ERR, quit_watch, NULL, NULL); - - sigemptyset (&mask); - action.sa_handler = nm_signal_handler; - action.sa_mask = mask; - action.sa_flags = 0; - sigaction (SIGTERM, &action, NULL); - sigaction (SIGINT, &action, NULL); - sigaction (SIGILL, &action, NULL); - sigaction (SIGBUS, &action, NULL); - sigaction (SIGFPE, &action, NULL); - sigaction (SIGHUP, &action, NULL); - sigaction (SIGSEGV, &action, NULL); - sigaction (SIGABRT, &action, NULL); - sigaction (SIGUSR1, &action, NULL); + + return TRUE; } static gboolean @@ -380,7 +388,7 @@ main (int argc, char *argv[]) " [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,\n" " WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,\n" " AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,WIMAX,\n" - " INFINIBAND,FIREWALL]"), + " INFINIBAND,FIREWALL,ADSL]"), "HW,RFKILL,WIFI" }, { "connectivity-uri", 0, 0, G_OPTION_ARG_STRING, &connectivity_uri, "A http(s) address to check internet connectivity" }, { "connectivity-interval", 0, 0, G_OPTION_ARG_INT, &connectivity_interval, "the interval in seconds how often a connectivity check will be done" }, @@ -393,6 +401,10 @@ main (int argc, char *argv[]) exit (1); } + /* Set up unix signal handling */ + if (!setup_signals ()) + exit (1); + /* Set locale to be able to use environment variables */ setlocale (LC_ALL, ""); @@ -529,14 +541,19 @@ main (int argc, char *argv[]) dbus_glib_global_set_disable_legacy_property_access (); #endif - setup_signals (); - nm_logging_start (become_daemon); nm_log_info (LOGD_CORE, "NetworkManager (version " NM_DIST_VERSION ") is starting..."); success = FALSE; nm_log_info (LOGD_CORE, "Read config file %s", nm_config_get_path (config)); + nm_log_info (LOGD_CORE, "WEXT support is %s", +#if HAVE_WEXT + "enabled" +#else + "disabled" +#endif + ); main_loop = g_main_loop_new (NULL, FALSE); diff --git a/src/modem-manager/Makefile.in b/src/modem-manager/Makefile.in index 87afed0c..31209330 100644 --- a/src/modem-manager/Makefile.in +++ b/src/modem-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -171,6 +171,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -266,6 +270,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -304,6 +311,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/modem-manager/nm-modem.c b/src/modem-manager/nm-modem.c index 91c0b06d..c9c9e9a4 100644 --- a/src/modem-manager/nm-modem.c +++ b/src/modem-manager/nm-modem.c @@ -591,7 +591,7 @@ real_deactivate (NMModem *self, NMDevice *device) case MM_MODEM_IP_METHOD_STATIC: case MM_MODEM_IP_METHOD_DHCP: ifindex = nm_device_get_ip_ifindex (device); - if (ifindex >= 0) { + if (ifindex > 0) { /* FIXME: use AF_UNSPEC here when we have IPv6 support */ nm_system_iface_flush_routes (ifindex, AF_INET); nm_system_iface_flush_addresses (ifindex, AF_UNSPEC); @@ -614,8 +614,9 @@ static void disconnect_done (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data) { GError *error = NULL; + gboolean warn = GPOINTER_TO_UINT (user_data); - if (!dbus_g_proxy_end_call (proxy, call_id, &error, G_TYPE_INVALID)) { + if (!dbus_g_proxy_end_call (proxy, call_id, &error, G_TYPE_INVALID) && warn) { nm_log_info (LOGD_MB, "disconnect failed: (%d) %s", error ? error->code : -1, error && error->message ? error->message : "(unknown)"); @@ -628,7 +629,7 @@ nm_modem_device_state_changed (NMModem *self, NMDeviceState old_state, NMDeviceStateReason reason) { - gboolean was_connected = FALSE; + gboolean was_connected = FALSE, warn = TRUE; NMModemPrivate *priv; g_return_if_fail (self != NULL); @@ -658,10 +659,13 @@ nm_modem_device_state_changed (NMModem *self, } if (was_connected) { + /* Don't bother warning on FAILED since the modem is already gone */ + if (new_state == NM_DEVICE_STATE_FAILED) + warn = FALSE; dbus_g_proxy_begin_call (nm_modem_get_proxy (self, MM_DBUS_INTERFACE_MODEM), "Disconnect", disconnect_done, - self, + GUINT_TO_POINTER (warn), NULL, G_TYPE_INVALID); } diff --git a/src/nm-activation-request.c b/src/nm-activation-request.c index 3fc7b538..1a3cb77a 100644 --- a/src/nm-activation-request.c +++ b/src/nm-activation-request.c @@ -36,6 +36,7 @@ #include "nm-device.h" #include "nm-active-connection.h" #include "nm-settings-connection.h" +#include "nm-posix-signals.h" G_DEFINE_TYPE (NMActRequest, nm_act_request, NM_TYPE_ACTIVE_CONNECTION) @@ -129,6 +130,9 @@ nm_act_request_get_secrets (NMActRequest *self, info->callback = callback; info->callback_data = callback_data; + if (priv->user_requested) + flags |= NM_SETTINGS_GET_SECRETS_FLAG_USER_REQUESTED; + call_id = nm_settings_connection_get_secrets (NM_SETTINGS_CONNECTION (priv->connection), priv->user_requested, priv->user_uid, @@ -261,6 +265,8 @@ share_child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + nm_unblock_posix_signals (NULL); } void diff --git a/src/nm-connection-provider.c b/src/nm-connection-provider.c new file mode 100644 index 00000000..401f8dab --- /dev/null +++ b/src/nm-connection-provider.c @@ -0,0 +1,112 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details: + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#include "nm-connection-provider.h" + +GSList * +nm_connection_provider_get_best_connections (NMConnectionProvider *self, + guint max_requested, + const char *ctype1, + const char *ctype2, + NMConnectionFilterFunc func, + gpointer func_data) +{ + g_return_val_if_fail (NM_IS_CONNECTION_PROVIDER (self), NULL); + + if (NM_CONNECTION_PROVIDER_GET_INTERFACE (self)->get_best_connections) + return NM_CONNECTION_PROVIDER_GET_INTERFACE (self)->get_best_connections (self, max_requested, ctype1, ctype2, func, func_data); + return NULL; +} + +const GSList * +nm_connection_provider_get_connections (NMConnectionProvider *self) +{ + g_return_val_if_fail (NM_IS_CONNECTION_PROVIDER (self), NULL); + + if (NM_CONNECTION_PROVIDER_GET_INTERFACE (self)->get_connections) + return NM_CONNECTION_PROVIDER_GET_INTERFACE (self)->get_connections (self); + return NULL; +} + +/*****************************************************************************/ + +static void +nm_connection_provider_init (gpointer g_iface) +{ + GType iface_type = G_TYPE_FROM_INTERFACE (g_iface); + static gboolean initialized = FALSE; + + if (initialized) + return; + initialized = TRUE; + + /* Signals */ + g_signal_new (NM_CP_SIGNAL_CONNECTION_ADDED, + iface_type, + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMConnectionProvider, connection_added), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, G_TYPE_OBJECT); + + g_signal_new (NM_CP_SIGNAL_CONNECTION_UPDATED, + iface_type, + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMConnectionProvider, connection_updated), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, G_TYPE_OBJECT); + + g_signal_new (NM_CP_SIGNAL_CONNECTION_REMOVED, + iface_type, + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMConnectionProvider, connection_removed), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, G_TYPE_OBJECT); + + g_signal_new (NM_CP_SIGNAL_CONNECTIONS_LOADED, + iface_type, + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMConnectionProvider, connections_loaded), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +GType +nm_connection_provider_get_type (void) +{ + static GType cp_type = 0; + + if (!G_UNLIKELY (cp_type)) { + const GTypeInfo cp_info = { + sizeof (NMConnectionProvider), /* class_size */ + nm_connection_provider_init, /* base_init */ + NULL, /* base_finalize */ + NULL, + NULL, /* class_finalize */ + NULL, /* class_data */ + 0, + 0, /* n_preallocs */ + NULL + }; + + cp_type = g_type_register_static (G_TYPE_INTERFACE, "NMConnectionProvider", &cp_info, 0); + g_type_interface_add_prerequisite (cp_type, G_TYPE_OBJECT); + } + + return cp_type; +} diff --git a/src/nm-connection-provider.h b/src/nm-connection-provider.h new file mode 100644 index 00000000..942651f7 --- /dev/null +++ b/src/nm-connection-provider.h @@ -0,0 +1,106 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details: + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#ifndef NM_CONNECTION_PROVIDER_H +#define NM_CONNECTION_PROVIDER_H + +#include <glib-object.h> +#include <nm-connection.h> + +#define NM_TYPE_CONNECTION_PROVIDER (nm_connection_provider_get_type ()) +#define NM_CONNECTION_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_CONNECTION_PROVIDER, NMConnectionProvider)) +#define NM_IS_CONNECTION_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_CONNECTION_PROVIDER)) +#define NM_CONNECTION_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), NM_TYPE_CONNECTION_PROVIDER, NMConnectionProvider)) + +typedef struct _NMConnectionProvider NMConnectionProvider; + +#define NM_CP_SIGNAL_CONNECTION_ADDED "cp-connection-added" +#define NM_CP_SIGNAL_CONNECTION_UPDATED "cp-connection-updated" +#define NM_CP_SIGNAL_CONNECTION_REMOVED "cp-connection-removed" +#define NM_CP_SIGNAL_CONNECTIONS_LOADED "cp-connections-loaded" + + +/** + * NMConnectionFilterFunc: + * @provider: The provider requesting the filtering + * @connection: the connection to be filtered + * @func_data: the caller-provided data pointer + * + * Returns: %TRUE to allow the connection, %FALSE to ignore it + */ +typedef gboolean (*NMConnectionFilterFunc) (NMConnectionProvider *provider, + NMConnection *connection, + gpointer func_data); + + +struct _NMConnectionProvider { + GTypeInterface g_iface; + + /* Methods */ + GSList * (*get_best_connections) (NMConnectionProvider *self, + guint max_requested, + const char *ctype1, + const char *ctype2, + NMConnectionFilterFunc func, + gpointer func_data); + + const GSList * (*get_connections) (NMConnectionProvider *self); + + /* Signals */ + void (*connection_added) (NMConnectionProvider *self, NMConnection *connection); + + void (*connection_updated) (NMConnectionProvider *self, NMConnection *connection); + + void (*connection_removed) (NMConnectionProvider *self, NMConnection *connection); + + void (*connections_loaded) (NMConnectionProvider *self); +}; + +GType nm_connection_provider_get_type (void); + +/** + * nm_connection_provider_get_best_connections: + * @self: the #NMConnectionProvider + * @max_requested: if non-zero, the maximum number of connections to return + * @ctype1: an #NMSetting base type (eg NM_SETTING_WIRELESS_SETTING_NAME) to + * filter connections against + * @ctype2: a second #NMSetting base type (eg NM_SETTING_WIRELESS_SETTING_NAME) + * to filter connections against + * @func: caller-supplied function for filtering connections + * @func_data: caller-supplied data passed to @func + * + * Returns: a #GSList of #NMConnection objects in sorted order representing the + * "best" or highest-priority connections filtered by @ctype1 and/or @ctype2, + * and/or @func. Caller is responsible for freeing the returned #GSList, but + * the contained values do not need to be unreffed. + */ +GSList *nm_connection_provider_get_best_connections (NMConnectionProvider *self, + guint max_requested, + const char *ctype1, + const char *ctype2, + NMConnectionFilterFunc func, + gpointer func_data); + +/** + * nm_connection_provider_get_connections: + * @self: the #NMConnectionProvider + * + * Returns: a #GSList of #NMConnection objects representing all known + * connections. Returned list is owned by the connection provider and must + * not be freed. + */ +const GSList *nm_connection_provider_get_connections (NMConnectionProvider *self); + +#endif /* NM_CONNECTION_PROVIDER_H */ diff --git a/src/nm-device-adsl.c b/src/nm-device-adsl.c new file mode 100644 index 00000000..e171b46e --- /dev/null +++ b/src/nm-device-adsl.c @@ -0,0 +1,841 @@ +/* -*- 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. + * + * Pantelis Koukousoulas <pktoss@gmail.com> + */ + +#include <config.h> + +#include <sys/socket.h> +#include <linux/atmdev.h> +#include <linux/atmbr2684.h> + +#include <errno.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <unistd.h> + +#include <glib.h> +#include <glib/gi18n.h> +#include <stdlib.h> +#include <string.h> + +#include "nm-device-adsl.h" +#include "nm-device-private.h" +#include "nm-properties-changed-signal.h" +#include "NetworkManagerUtils.h" +#include "nm-logging.h" +#include "nm-enum-types.h" +#include "nm-system.h" +#include "nm-netlink-monitor.h" + +#include "ppp-manager/nm-ppp-manager.h" +#include "nm-setting-adsl.h" + +#include "nm-device-adsl-glue.h" + +G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE) + +#define NM_DEVICE_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_ADSL, NMDeviceAdslPrivate)) + +#define NM_ADSL_ERROR (nm_adsl_error_quark ()) + +static GQuark +nm_adsl_error_quark (void) +{ + static GQuark quark = 0; + if (!quark) + quark = g_quark_from_static_string ("nm-adsl-error"); + return quark; +} + +/**********************************************/ + +typedef struct { + gboolean disposed; + gboolean carrier; + guint carrier_poll_id; + int atm_index; + + /* Watch for 'nas' interfaces going away */ + NMNetlinkMonitor *monitor; + guint netlink_id; + + /* PPP */ + NMPPPManager *ppp_manager; + + /* RFC 2684 bridging (PPPoE over ATM) */ + int brfd; + int nas_ifindex; + char * nas_ifname; +} NMDeviceAdslPrivate; + +enum { + PROPERTIES_CHANGED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +enum { + PROP_0, + PROP_CARRIER, + + LAST_PROP +}; + +/**************************************************************/ + +static guint32 +real_get_generic_capabilities (NMDevice *dev) +{ + guint32 caps = NM_DEVICE_CAP_NM_SUPPORTED; + caps |= NM_DEVICE_CAP_CARRIER_DETECT; + return caps; +} + +static gboolean +real_can_interrupt_activation (NMDevice *dev) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (dev); + gboolean interrupt = FALSE; + + /* Devices that support carrier detect can interrupt activation + * if the link becomes inactive. + */ + if (NM_DEVICE_ADSL_GET_PRIVATE (self)->carrier == FALSE) + interrupt = TRUE; + + return interrupt; +} + +static gboolean +real_is_available (NMDevice *dev) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (dev); + + /* Can't do anything if there isn't a carrier */ + if (!NM_DEVICE_ADSL_GET_PRIVATE (self)->carrier) + return FALSE; + + return TRUE; +} + +static gboolean +real_check_connection_compatible (NMDevice *device, + NMConnection *connection, + GError **error) +{ + NMSettingAdsl *s_adsl; + const char *protocol; + + if (!nm_connection_is_type (connection, NM_SETTING_ADSL_SETTING_NAME)) { + g_set_error (error, + NM_ADSL_ERROR, NM_ADSL_ERROR_CONNECTION_NOT_ADSL, + "The connection was not an ADSL connection."); + return FALSE; + } + + s_adsl = nm_connection_get_setting_adsl (connection); + if (!s_adsl) { + g_set_error (error, + NM_ADSL_ERROR, NM_ADSL_ERROR_CONNECTION_INVALID, + "The connection was not a valid ADSL connection."); + return FALSE; + } + + /* FIXME: we don't yet support IPoATM */ + protocol = nm_setting_adsl_get_protocol (s_adsl); + if (g_strcmp0 (protocol, NM_SETTING_ADSL_PROTOCOL_IPOATM) == 0) { + g_set_error (error, + NM_ADSL_ERROR, NM_ADSL_ERROR_CONNECTION_INVALID, + "IPoATM connections are not yet supported."); + return FALSE; + } + + return TRUE; +} + +static gboolean +real_complete_connection (NMDevice *device, + NMConnection *connection, + const char *specific_object, + const GSList *existing_connections, + GError **error) +{ + NMSettingAdsl *s_adsl; + + /* + * We can't telepathically figure out the username, so if + * it wasn't given, we can't complete the connection. + */ + s_adsl = nm_connection_get_setting_adsl (connection); + if (s_adsl && !nm_setting_verify (NM_SETTING (s_adsl), NULL, error)) + return FALSE; + + nm_utils_complete_generic (connection, + NM_SETTING_ADSL_SETTING_NAME, + existing_connections, + _("ADSL connection %d"), + NULL, + FALSE); /* No IPv6 yet by default */ + + + return TRUE; +} + +static NMConnection * +real_get_best_auto_connection (NMDevice *dev, + GSList *connections, + char **specific_object) +{ + GSList *iter; + + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = NM_CONNECTION (iter->data); + NMSettingConnection *s_con; + NMSettingAdsl *s_adsl; + + if (!nm_connection_is_type (connection, NM_SETTING_ADSL_SETTING_NAME)) + continue; + + s_adsl = nm_connection_get_setting_adsl (connection); + if (!s_adsl) + continue; + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + if (!nm_setting_connection_get_autoconnect (s_con)) + continue; + + return connection; + } + return NULL; +} + +/**************************************************************/ + +static void +set_nas_iface (NMDeviceAdsl *self, int idx, const char *name) +{ + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + + g_return_if_fail (name != NULL); + + g_warn_if_fail (priv->nas_ifindex <= 0); + if (idx > 0) + priv->nas_ifindex = idx; + else + priv->nas_ifindex = nm_netlink_iface_to_index (name); + g_warn_if_fail (priv->nas_ifindex > 0); + + g_warn_if_fail (priv->nas_ifname == NULL); + priv->nas_ifname = g_strdup (name); +} + +static gboolean +br2684_create_iface (NMDeviceAdsl *self, NMSettingAdsl *s_adsl) +{ + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + const char *iface = nm_device_get_iface (NM_DEVICE (self)); + struct atm_newif_br2684 ni; + int err, fd; + gboolean success = FALSE; + guint num = 0; + + g_return_val_if_fail (s_adsl != NULL, FALSE); + + fd = socket (PF_ATMPVC, SOCK_DGRAM, ATM_AAL5); + if (fd < 0) { + nm_log_err (LOGD_ADSL, "(%s): failed to open ATM control socket (%d)", + iface, errno); + return FALSE; + } + + memset (&ni, 0, sizeof (ni)); + ni.backend_num = ATM_BACKEND_BR2684; + ni.media = BR2684_MEDIA_ETHERNET; + ni.mtu = 1500; + + /* Loop attempting to create an interface that doesn't exist yet. The + * kernel can create one for us automatically, but due to API issues it + * cannot return that name to us. Since we want to know the name right + * away, just brute-force it. + */ + while (num < 10000) { + memset (&ni.ifname, 0, sizeof (ni.ifname)); + snprintf (ni.ifname, sizeof (ni.ifname), "nas%d", num); + + err = ioctl (fd, ATM_NEWBACKENDIF, &ni); + if (err == 0) { + set_nas_iface (self, -1, ni.ifname); + nm_log_info (LOGD_ADSL, "(%s): using NAS interface %s (%d)", + iface, priv->nas_ifname, priv->nas_ifindex); + success = TRUE; + break; + } else if (errno == -EEXIST) { + /* Try again */ + num++; + } else { + nm_log_warn (LOGD_ADSL, "(%s): failed to create br2684 interface (%d)", + iface, errno); + break; + } + } + + close (fd); + return success; +} + +static gboolean +br2684_assign_vcc (NMDeviceAdsl *self, NMSettingAdsl *s_adsl) +{ + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + const char *iface = nm_device_get_iface (NM_DEVICE (self)); + struct sockaddr_atmpvc addr; + struct atm_backend_br2684 be; + struct atm_qos qos; + int err, bufsize = 8192; + const char *encapsulation; + gboolean is_llc; + + g_return_val_if_fail (priv->brfd == -1, FALSE); + g_return_val_if_fail (priv->nas_ifname != NULL, FALSE); + + priv->brfd = socket (PF_ATMPVC, SOCK_DGRAM, ATM_AAL5); + if (priv->brfd < 0) { + nm_log_err (LOGD_ADSL, "(%s): failed to open ATM control socket (%d)", + iface, errno); + return FALSE; + } + + err = setsockopt (priv->brfd, SOL_SOCKET, SO_SNDBUF, &bufsize, sizeof (bufsize)); + if (err != 0) { + nm_log_err (LOGD_ADSL, "(%s): failed to set SNDBUF option (%d)", + iface, errno); + goto error; + } + + /* QoS */ + memset (&qos, 0, sizeof (qos)); + qos.aal = ATM_AAL5; + qos.txtp.traffic_class = ATM_UBR; + qos.txtp.max_sdu = 1524; + qos.txtp.pcr = ATM_MAX_PCR; + qos.rxtp = qos.txtp; + + err = setsockopt (priv->brfd, SOL_ATM, SO_ATMQOS, &qos, sizeof (qos)); + if (err != 0) { + nm_log_err (LOGD_ADSL, "(%s): failed to set QoS (%d)", + iface, errno); + goto error; + } + + encapsulation = nm_setting_adsl_get_encapsulation (s_adsl); + + /* VPI/VCI */ + memset (&addr, 0, sizeof (addr)); + addr.sap_family = AF_ATMPVC; + addr.sap_addr.itf = priv->atm_index; + addr.sap_addr.vpi = (guint16) nm_setting_adsl_get_vpi (s_adsl); + addr.sap_addr.vci = (int) nm_setting_adsl_get_vci (s_adsl); + + nm_log_dbg (LOGD_ADSL, "(%s): assigning address %d.%d.%d encapsulation %s", + nm_device_get_iface (NM_DEVICE (self)), + priv->atm_index, addr.sap_addr.vpi, addr.sap_addr.vci, + encapsulation); + + err = connect (priv->brfd, (struct sockaddr*) &addr, sizeof (addr)); + if (err != 0) { + nm_log_err (LOGD_ADSL, "(%s): failed to set VPI/VCI (%d)", + iface, errno); + goto error; + } + + /* And last attach the VCC to the interface */ + is_llc = (g_strcmp0 (encapsulation, "llc") == 0); + + memset (&be, 0, sizeof (be)); + be.backend_num = ATM_BACKEND_BR2684; + be.ifspec.method = BR2684_FIND_BYIFNAME; + strcpy (be.ifspec.spec.ifname, priv->nas_ifname); + be.fcs_in = BR2684_FCSIN_NO; + be.fcs_out = BR2684_FCSOUT_NO; + be.encaps = is_llc ? BR2684_ENCAPS_LLC : BR2684_ENCAPS_VC; + err = ioctl (priv->brfd, ATM_SETBACKEND, &be); + if (err != 0) { + nm_log_err (LOGD_ADSL, "(%s): failed to attach VCC (%d)", + iface, errno); + goto error; + } + + return TRUE; + +error: + close (priv->brfd); + priv->brfd = -1; + return FALSE; +} + +static void +netlink_notification (NMNetlinkMonitor *monitor, + struct nl_msg *msg, + gpointer user_data) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (user_data); + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + NMDevice *device = NM_DEVICE (user_data); + struct nlmsghdr *hdr = nlmsg_hdr (msg); + const char *iface = nm_device_get_iface (device); + + /* This only gets called for PPPoE connections and "nas" interfaces */ + + if ((hdr->nlmsg_type == RTM_DELLINK) && (priv->nas_ifindex >= 0)) { + struct ifinfomsg *ifi = nlmsg_data (hdr); + + if (ifi->ifi_index == priv->nas_ifindex) { + /* NAS device went away for some reason; kill the connection */ + nm_log_dbg (LOGD_ADSL, "(%s): NAS interface disappeared", iface); + nm_device_state_changed (device, + NM_DEVICE_STATE_FAILED, + NM_DEVICE_STATE_REASON_BR2684_FAILED); + } + } +} + +static NMActStageReturn +real_act_stage2_config (NMDevice *device, NMDeviceStateReason *out_reason) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (device); + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + NMActStageReturn ret = NM_ACT_STAGE_RETURN_FAILURE; + NMSettingAdsl *s_adsl; + const char *protocol; + + g_assert (out_reason); + + s_adsl = nm_connection_get_setting_adsl (nm_device_get_connection (device)); + g_assert (s_adsl); + + protocol = nm_setting_adsl_get_protocol (s_adsl); + nm_log_dbg (LOGD_ADSL, "(%s): using ADSL protocol '%s'", + nm_device_get_iface (device), protocol); + + if (g_strcmp0 (protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE) == 0) { + + /* PPPoE needs RFC2684 bridging before we can do PPP over it */ + if (!br2684_create_iface (self, s_adsl)) { + *out_reason = NM_DEVICE_STATE_REASON_BR2684_FAILED; + goto done; + } + + /* Set up the VCC */ + if (!br2684_assign_vcc (self, s_adsl)) { + *out_reason = NM_DEVICE_STATE_REASON_BR2684_FAILED; + goto done; + } + + /* Watch for the 'nas' interface going away */ + priv->netlink_id = g_signal_connect (priv->monitor, "notification", + G_CALLBACK (netlink_notification), + self); + + nm_log_dbg (LOGD_ADSL, "(%s): ATM setup successful", nm_device_get_iface (device)); + + /* otherwise we're good for stage3 */ + nm_system_iface_set_up (priv->nas_ifindex, TRUE, NULL); + ret = NM_ACT_STAGE_RETURN_SUCCESS; + + } else if (g_strcmp0 (protocol, NM_SETTING_ADSL_PROTOCOL_PPPOA) == 0) { + /* PPPoA doesn't need anything special */ + ret = NM_ACT_STAGE_RETURN_SUCCESS; + } else { + nm_log_warn (LOGD_ADSL, "(%s): unhandled ADSL protocol '%s'", + nm_device_get_iface (device), protocol); + } + +done: + return ret; +} + +static void +ppp_state_changed (NMPPPManager *ppp_manager, NMPPPStatus status, gpointer user_data) +{ + NMDevice *device = NM_DEVICE (user_data); + + switch (status) { + case NM_PPP_STATUS_DISCONNECT: + nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_PPP_DISCONNECT); + break; + case NM_PPP_STATUS_DEAD: + nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_PPP_FAILED); + break; + default: + break; + } +} + +static void +ppp_ip4_config (NMPPPManager *ppp_manager, + const char *iface, + NMIP4Config *config, + gpointer user_data) +{ + NMDevice *device = NM_DEVICE (user_data); + + /* Ignore PPP IP4 events that come in after initial configuration */ + if (nm_device_activate_ip4_state_in_conf (device)) { + nm_device_set_ip_iface (device, iface); + nm_device_activate_schedule_ip4_config_result (device, config); + } +} + +static NMActStageReturn +real_act_stage3_ip4_config_start (NMDevice *device, + NMIP4Config **out_config, + NMDeviceStateReason *reason) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (device); + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + NMConnection *connection; + NMSettingAdsl *s_adsl; + NMActRequest *req; + GError *err = NULL; + NMActStageReturn ret = NM_ACT_STAGE_RETURN_FAILURE; + const char *iface = nm_device_get_iface (device); + const char *ppp_iface; + + req = nm_device_get_act_request (device); + g_assert (req); + + connection = nm_act_request_get_connection (req); + g_assert (req); + + s_adsl = nm_connection_get_setting_adsl (connection); + g_assert (s_adsl); + + /* PPPoE uses the NAS inteface, not the ATM interface */ + if (g_strcmp0 (nm_setting_adsl_get_protocol (s_adsl), NM_SETTING_ADSL_PROTOCOL_PPPOE) == 0) { + g_assert (priv->nas_ifname); + ppp_iface = priv->nas_ifname; + + nm_log_dbg (LOGD_ADSL, "(%s): starting PPPoE on NAS interface %s", + iface, priv->nas_ifname); + } else { + ppp_iface = iface; + nm_log_dbg (LOGD_ADSL, "(%s): starting PPPoA", iface); + } + + priv->ppp_manager = nm_ppp_manager_new (ppp_iface); + if (nm_ppp_manager_start (priv->ppp_manager, req, nm_setting_adsl_get_username (s_adsl), 30, &err)) { + g_signal_connect (priv->ppp_manager, "state-changed", + G_CALLBACK (ppp_state_changed), + self); + g_signal_connect (priv->ppp_manager, "ip4-config", + G_CALLBACK (ppp_ip4_config), + self); + ret = NM_ACT_STAGE_RETURN_POSTPONE; + } else { + nm_log_warn (LOGD_ADSL, "(%s): PPP failed to start: %s", iface, err->message); + g_error_free (err); + + g_object_unref (priv->ppp_manager); + priv->ppp_manager = NULL; + + *reason = NM_DEVICE_STATE_REASON_PPP_START_FAILED; + } + + return ret; +} + +static void +real_deactivate (NMDevice *device) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (device); + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + + if (priv->ppp_manager) { + g_object_unref (priv->ppp_manager); + priv->ppp_manager = NULL; + } + + if (priv->netlink_id) { + g_signal_handler_disconnect (priv->monitor, priv->netlink_id); + priv->netlink_id = 0; + } + + if (priv->brfd >= 0) { + close (priv->brfd); + priv->brfd = -1; + } + + /* FIXME: kernel has no way of explicitly deleting the 'nasX' interface yet, + * so it gets leaked. It does get destroyed when it's no longer in use, + * but we have no control over that. + */ + if (priv->nas_ifindex >= 0) + priv->nas_ifindex = -1; + g_free (priv->nas_ifname); + priv->nas_ifname = NULL; +} + +/**************************************************************/ + +static void +set_carrier (NMDeviceAdsl *self, const gboolean carrier) +{ + NMDeviceAdslPrivate *priv; + NMDeviceState state; + + g_return_if_fail (NM_IS_DEVICE (self)); + + priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + + if (priv->carrier == carrier) + return; + + priv->carrier = carrier; + g_object_notify (G_OBJECT (self), NM_DEVICE_ADSL_CARRIER); + + state = nm_device_get_state (NM_DEVICE (self)); + nm_log_info (LOGD_HW, "(%s): carrier now %s (device state %d)", + nm_device_get_iface (NM_DEVICE (self)), + carrier ? "ON" : "OFF", + state); + + if (state == NM_DEVICE_STATE_UNAVAILABLE) { + if (priv->carrier) + nm_device_state_changed (NM_DEVICE (self), NM_DEVICE_STATE_DISCONNECTED, NM_DEVICE_STATE_REASON_CARRIER); + } else if (state >= NM_DEVICE_STATE_DISCONNECTED) { + if (!priv->carrier) + nm_device_state_changed (NM_DEVICE (self), NM_DEVICE_STATE_UNAVAILABLE, NM_DEVICE_STATE_REASON_CARRIER); + } +} + +static gboolean +carrier_update_cb (gpointer user_data) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (user_data); + GError *error = NULL; + gboolean carrier = FALSE; + char *path, *contents; + const char *iface; + gboolean success; + + iface = nm_device_get_iface (NM_DEVICE (self)); + + path = g_strdup_printf ("/sys/class/atm/%s/carrier", iface); + success = g_file_get_contents (path, &contents, NULL, &error); + g_free (path); + + if (!success) { + nm_log_dbg (LOGD_ADSL, "error reading %s: (%d) %s", + path, + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + return TRUE; + } + + carrier = (gboolean) atoi (contents); + g_free (contents); + set_carrier (self, carrier); + return TRUE; +} + +/**************************************************************/ + +NMDevice * +nm_device_adsl_new (const char *udi, + const char *iface, + const char *driver) +{ + g_return_val_if_fail (udi != NULL, NULL); + + return (NMDevice *) g_object_new (NM_TYPE_DEVICE_ADSL, + NM_DEVICE_UDI, udi, + NM_DEVICE_IFACE, iface, + NM_DEVICE_DRIVER, driver, + NM_DEVICE_TYPE_DESC, "ADSL", + NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_ADSL, + NULL); +} + +static int +get_atm_index (const char *iface, GError **error) +{ + char *path, *contents; + int idx = -1; + + path = g_strdup_printf ("/sys/class/atm/%s/atmindex", iface); + if (g_file_get_contents (path, &contents, NULL, error)) + idx = atoi (contents); + g_free (path); + g_free (contents); + return idx; +} + +static GObject* +constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + GObject *object; + NMDeviceAdslPrivate *priv; + GError *error = NULL; + + object = G_OBJECT_CLASS (nm_device_adsl_parent_class)->constructor (type, + n_construct_params, + construct_params); + if (!object) + return NULL; + + priv = NM_DEVICE_ADSL_GET_PRIVATE (object); + + priv->atm_index = get_atm_index (nm_device_get_iface (NM_DEVICE (object)), &error); + if (priv->atm_index < 0) { + nm_log_dbg (LOGD_ADSL, "error reading ATM device index: (%d) %s", + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + g_object_unref (object); + return NULL; + } else { + nm_log_dbg (LOGD_ADSL, "(%s): ATM device index %d", + nm_device_get_iface (NM_DEVICE (object)), priv->atm_index); + } + + /* Poll the carrier */ + priv->carrier_poll_id = g_timeout_add_seconds (5, carrier_update_cb, object); + + return object; +} + +static void +dispose (GObject *object) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (object); + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + + if (priv->disposed) { + G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object); + return; + } + + priv->disposed = TRUE; + + if (priv->carrier_poll_id) { + g_source_remove (priv->carrier_poll_id); + priv->carrier_poll_id = 0; + } + + if (priv->netlink_id) { + g_source_remove (priv->netlink_id); + priv->netlink_id = 0; + } + + if (priv->monitor) { + nm_netlink_monitor_unsubscribe (priv->monitor, RTNLGRP_LINK); + g_object_unref (priv->monitor); + priv->monitor = NULL; + } + + g_free (priv->nas_ifname); + priv->nas_ifname = NULL; + + G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object); +} + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (object); + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE(self); + + switch (prop_id) { + case PROP_CARRIER: + g_value_set_boolean (value, priv->carrier); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +nm_device_adsl_init (NMDeviceAdsl *self) +{ + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + + priv->monitor = nm_netlink_monitor_get (); + nm_netlink_monitor_subscribe (priv->monitor, RTNLGRP_LINK, NULL); +} + +static void +nm_device_adsl_class_init (NMDeviceAdslClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); + + g_type_class_add_private (object_class, sizeof (NMDeviceAdslPrivate)); + + object_class->constructor = constructor; + object_class->dispose = dispose; + object_class->get_property = get_property; + object_class->set_property = set_property; + + parent_class->get_generic_capabilities = real_get_generic_capabilities; + parent_class->can_interrupt_activation = real_can_interrupt_activation; + parent_class->is_available = real_is_available; + + parent_class->check_connection_compatible = real_check_connection_compatible; + parent_class->get_best_auto_connection = real_get_best_auto_connection; + parent_class->complete_connection = real_complete_connection; + + parent_class->act_stage2_config = real_act_stage2_config; + parent_class->act_stage3_ip4_config_start = real_act_stage3_ip4_config_start; + parent_class->deactivate = real_deactivate; + + /* properties */ + g_object_class_install_property + (object_class, PROP_CARRIER, + g_param_spec_boolean (NM_DEVICE_ADSL_CARRIER, + "Carrier", + "Carrier", + FALSE, + G_PARAM_READABLE)); + + /* Signals */ + signals[PROPERTIES_CHANGED] = + nm_properties_changed_signal_new (object_class, + G_STRUCT_OFFSET (NMDeviceAdslClass, properties_changed)); + + dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass), + &dbus_glib_nm_device_adsl_object_info); +} diff --git a/src/nm-device-adsl.h b/src/nm-device-adsl.h new file mode 100644 index 00000000..50ea43e3 --- /dev/null +++ b/src/nm-device-adsl.h @@ -0,0 +1,66 @@ +/* -*- 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. + * + * Author: Pantelis Koukousoulas <pktoss@gmail.com> + * Copyright (C) 2009 - 2011 Red Hat Inc. + */ + +#ifndef NM_DEVICE_ADSL_H +#define NM_DEVICE_ADSL_H + +#include <glib-object.h> + +// Parent class +#include "nm-device.h" + +G_BEGIN_DECLS + +#define NM_TYPE_DEVICE_ADSL (nm_device_adsl_get_type ()) +#define NM_DEVICE_ADSL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_ADSL, NMDeviceAdsl)) +#define NM_DEVICE_ADSL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_ADSL, NMDeviceAdslClass)) +#define NM_IS_DEVICE_ADSL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_ADSL)) +#define NM_IS_DEVICE_ADSL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_ADSL)) +#define NM_DEVICE_ADSL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_ADSL, NMDeviceAdslClass)) + +typedef enum { + NM_ADSL_ERROR_CONNECTION_NOT_ADSL = 0, + NM_ADSL_ERROR_CONNECTION_INVALID, + NM_ADSL_ERROR_CONNECTION_INCOMPATIBLE, +} NMAdslError; + +#define NM_DEVICE_ADSL_CARRIER "carrier" + +typedef struct { + NMDevice parent; +} NMDeviceAdsl; + +typedef struct { + NMDeviceClass parent; + + /* Signals */ + void (*properties_changed) (NMDeviceAdsl *device, GHashTable *properties); +} NMDeviceAdslClass; + +GType nm_device_adsl_get_type (void); + +NMDevice *nm_device_adsl_new (const char *udi, + const char *iface, + const char *driver); + +G_END_DECLS + +#endif /* NM_DEVICE_ADSL_H */ diff --git a/src/nm-device-bt.c b/src/nm-device-bt.c index 726762b6..f61aeb57 100644 --- a/src/nm-device-bt.c +++ b/src/nm-device-bt.c @@ -668,14 +668,18 @@ nm_device_bt_modem_removed (NMDeviceBt *self, NMModem *modem) if (modem != priv->modem) return FALSE; + /* Fail the device if the modem was removed while active */ state = nm_device_get_state (NM_DEVICE (self)); - nm_modem_device_state_changed (priv->modem, - NM_DEVICE_STATE_DISCONNECTED, - state, - NM_DEVICE_STATE_REASON_USER_REQUESTED); + if ( state == NM_DEVICE_STATE_ACTIVATED + || nm_device_is_activating (NM_DEVICE (self))) { + nm_device_state_changed (NM_DEVICE (self), + NM_DEVICE_STATE_FAILED, + NM_DEVICE_STATE_REASON_BT_FAILED); + } else { + g_object_unref (priv->modem); + priv->modem = NULL; + } - g_object_unref (priv->modem); - priv->modem = NULL; return TRUE; } diff --git a/src/nm-device-ethernet.c b/src/nm-device-ethernet.c index df0ae94f..ede31cc1 100644 --- a/src/nm-device-ethernet.c +++ b/src/nm-device-ethernet.c @@ -753,8 +753,9 @@ link_timeout_cb (gpointer user_data) req = nm_device_get_act_request (dev); if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED) { - nm_device_state_changed (dev, NM_DEVICE_STATE_DISCONNECTED, - NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT); + nm_device_state_changed (dev, + NM_DEVICE_STATE_FAILED, + NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT); return FALSE; } diff --git a/src/nm-device-modem.c b/src/nm-device-modem.c index 7f81e981..e7cd9259 100644 --- a/src/nm-device-modem.c +++ b/src/nm-device-modem.c @@ -311,11 +311,12 @@ real_set_enabled (NMDevice *device, gboolean enabled) nm_modem_set_mm_enabled (priv->modem, enabled); if (enabled == FALSE) { - state = nm_device_get_state (NM_DEVICE (device)); - if (state == NM_DEVICE_STATE_ACTIVATED) { - nm_device_state_changed (NM_DEVICE (device), + state = nm_device_get_state (device); + if (nm_device_is_activating (device) || state == NM_DEVICE_STATE_ACTIVATED) { + /* user-initiated action, hence DISCONNECTED not FAILED */ + nm_device_state_changed (device, NM_DEVICE_STATE_DISCONNECTED, - NM_DEVICE_STATE_REASON_NONE); + NM_DEVICE_STATE_REASON_USER_REQUESTED); } } } diff --git a/src/nm-device-olpc-mesh.c b/src/nm-device-olpc-mesh.c index f6390c16..8e3cb952 100644 --- a/src/nm-device-olpc-mesh.c +++ b/src/nm-device-olpc-mesh.c @@ -55,6 +55,9 @@ #include "nm-manager.h" #include "nm-enum-types.h" #include "wifi-utils.h" +#if HAVE_WEXT +#include "wifi-utils-wext.h" +#endif /* This is a bug; but we can't really change API now... */ #include "NetworkManagerVPN.h" @@ -153,9 +156,16 @@ constructor (GType type, nm_device_get_iface (NM_DEVICE (self)), nm_device_get_ifindex (NM_DEVICE (self))); - priv->wifi_data = wifi_utils_init (nm_device_get_iface (NM_DEVICE (self)), - nm_device_get_ifindex (NM_DEVICE (self)), - FALSE); + /* + * The kernel driver now uses nl80211, but we force use of WEXT because + * the cfg80211 interactions are not quite ready to support access to + * mesh control through nl80211 just yet. + */ +#if HAVE_WEXT + priv->wifi_data = wifi_wext_init (nm_device_get_iface (NM_DEVICE (self)), + nm_device_get_ifindex (NM_DEVICE (self)), + FALSE); +#endif if (priv->wifi_data == NULL) { nm_log_warn (LOGD_HW | LOGD_OLPC_MESH, "(%s): failed to initialize WiFi driver", nm_device_get_iface (NM_DEVICE (self))); diff --git a/src/nm-device-private.h b/src/nm-device-private.h index 9b78db12..824beb5a 100644 --- a/src/nm-device-private.h +++ b/src/nm-device-private.h @@ -67,4 +67,6 @@ gboolean nm_device_dhcp4_renew (NMDevice *device, gboolean release); gboolean nm_device_match_ip_config (NMDevice *device, NMConnection *connection); +NMConnectionProvider *nm_device_get_connection_provider (NMDevice *device); + #endif /* NM_DEVICE_PRIVATE_H */ diff --git a/src/nm-device-vlan.c b/src/nm-device-vlan.c index 14be849f..b9c93234 100644 --- a/src/nm-device-vlan.c +++ b/src/nm-device-vlan.c @@ -643,17 +643,17 @@ nm_device_vlan_new (const char *udi, const char *iface, NMDevice *parent) g_object_unref (device); return NULL; } - priv->vlan_id = vlan_id; if ( parent_ifindex < 0 || parent_ifindex != nm_device_get_ip_ifindex (parent) - || priv->vlan_id < 0) { + || vlan_id < 0) { nm_log_warn (LOGD_DEVICE, "(%s): VLAN parent ifindex (%d) or VLAN ID (%d) invalid.", iface, parent_ifindex, priv->vlan_id); g_object_unref (device); return NULL; } + priv->vlan_id = vlan_id; priv->parent = g_object_ref (parent); priv->parent_state_id = g_signal_connect (priv->parent, "state-changed", diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c index ed964a57..5fbbac7a 100644 --- a/src/nm-device-wifi.c +++ b/src/nm-device-wifi.c @@ -56,6 +56,7 @@ #include "nm-setting-ip4-config.h" #include "nm-setting-ip6-config.h" #include "nm-system.h" +#include "nm-manager-auth.h" #include "nm-settings-connection.h" #include "nm-enum-types.h" #include "wifi-utils.h" @@ -64,11 +65,15 @@ static gboolean impl_device_get_access_points (NMDeviceWifi *device, GPtrArray **aps, GError **err); +static void impl_device_request_scan (NMDeviceWifi *device, + GHashTable *options, + DBusGMethodInvocation *context); + #include "nm-device-wifi-glue.h" /* All of these are in seconds */ -#define SCAN_INTERVAL_MIN 0 +#define SCAN_INTERVAL_MIN 3 #define SCAN_INTERVAL_STEP 20 #define SCAN_INTERVAL_MAX 120 @@ -138,7 +143,7 @@ struct _NMDeviceWifiPrivate { guint32 rate; gboolean enabled; /* rfkilled or not */ - glong scheduled_scan_time; + time_t scheduled_scan_time; guint8 scan_interval; /* seconds */ guint pending_scan_id; guint scanlist_cull_id; @@ -153,7 +158,7 @@ struct _NMDeviceWifiPrivate { NMDeviceWifiCapabilities capabilities; }; -static gboolean request_wireless_scan (gpointer user_data); +static gboolean check_scanning_allowed (NMDeviceWifi *self); static void schedule_scan (NMDeviceWifi *self, gboolean backoff); @@ -193,6 +198,8 @@ static void supplicant_iface_notify_scanning_cb (NMSupplicantInterface * iface, static void schedule_scanlist_cull (NMDeviceWifi *self); +static gboolean request_wireless_scan (gpointer user_data); + /*****************************************************************/ #define NM_WIFI_ERROR (nm_wifi_error_quark ()) @@ -1014,14 +1021,6 @@ real_check_connection_compatible (NMDevice *device, const GByteArray *mac; const GSList *mac_blacklist, *mac_blacklist_iter; - if (is_adhoc_wpa (connection)) { - g_set_error_literal (error, - NM_WIFI_ERROR, - NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE, - "WPA Ad-Hoc disabled due to kernel bugs"); - return FALSE; - } - s_con = nm_connection_get_setting_connection (connection); g_assert (s_con); @@ -1040,6 +1039,7 @@ real_check_connection_compatible (NMDevice *device, return FALSE; } + mac = nm_setting_wireless_get_mac_address (s_wireless); if (mac && memcmp (mac->data, &priv->perm_hw_addr, ETH_ALEN)) { g_set_error (error, @@ -1067,6 +1067,14 @@ real_check_connection_compatible (NMDevice *device, } } + if (is_adhoc_wpa (connection)) { + g_set_error_literal (error, + NM_WIFI_ERROR, + NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE, + "WPA Ad-Hoc disabled due to kernel bugs"); + return FALSE; + } + // FIXME: check channel/freq/band against bands the hardware supports // FIXME: check encryption against device capabilities // FIXME: check bitrate against device capabilities @@ -1233,9 +1241,9 @@ real_complete_connection (NMDevice *device, */ if (is_adhoc_wpa (connection)) { g_set_error_literal (error, - NM_SETTING_WIRELESS_ERROR, - NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY, - "WPA Ad-Hoc disabled due to kernel bugs"); + NM_SETTING_WIRELESS_ERROR, + NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY, + "WPA Ad-Hoc disabled due to kernel bugs"); return FALSE; } @@ -1257,9 +1265,9 @@ real_complete_connection (NMDevice *device, /* Make sure the setting MAC (if any) matches the device's permanent MAC */ if (memcmp (setting_mac->data, priv->perm_hw_addr, ETH_ALEN)) { g_set_error (error, - NM_SETTING_WIRELESS_ERROR, - NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY, - NM_SETTING_WIRELESS_MAC_ADDRESS); + NM_SETTING_WIRELESS_ERROR, + NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY, + NM_SETTING_WIRELESS_MAC_ADDRESS); return FALSE; } } else { @@ -1442,6 +1450,80 @@ impl_device_get_access_points (NMDeviceWifi *self, return TRUE; } +static void +request_scan_cb (NMDevice *device, + DBusGMethodInvocation *context, + GError *error, + gpointer user_data) +{ + NMDeviceWifi *self = NM_DEVICE_WIFI (device); + + if (error) { + dbus_g_method_return_error (context, error); + g_clear_error (&error); + } else if (!check_scanning_allowed (self)) { + error = g_error_new_literal (NM_WIFI_ERROR, + NM_WIFI_ERROR_SCAN_NOT_ALLOWED, + "Scanning not allowed at this time"); + dbus_g_method_return_error (context, error); + g_error_free (error); + } else { + cancel_pending_scan (self); + request_wireless_scan (self); + dbus_g_method_return (context); + } +} + +static void +impl_device_request_scan (NMDeviceWifi *self, + GHashTable *options, + DBusGMethodInvocation *context) +{ + NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); + NMDevice *device = NM_DEVICE (self); + time_t last_scan; + GError *error; + + if ( !priv->enabled + || !priv->supplicant.iface + || nm_device_get_state (device) < NM_DEVICE_STATE_DISCONNECTED + || nm_device_is_activating (device)) { + error = g_error_new_literal (NM_WIFI_ERROR, + NM_WIFI_ERROR_SCAN_NOT_ALLOWED, + "Scanning not allowed while unavailable or activating"); + goto error; + } + + if (nm_supplicant_interface_get_scanning (priv->supplicant.iface)) { + error = g_error_new_literal (NM_WIFI_ERROR, + NM_WIFI_ERROR_SCAN_NOT_ALLOWED, + "Scanning not allowed while already scanning"); + goto error; + } + + last_scan = nm_supplicant_interface_get_last_scan_time (priv->supplicant.iface); + if ((time (NULL) - last_scan) < 10) { + error = g_error_new_literal (NM_WIFI_ERROR, + NM_WIFI_ERROR_SCAN_NOT_ALLOWED, + "Scanning not allowed immediately following previous scan"); + goto error; + } + + /* Ask the manager to authenticate this request for us */ + g_signal_emit_by_name (device, + NM_DEVICE_AUTH_REQUEST, + context, + NM_AUTH_PERMISSION_NETWORK_CONTROL, + TRUE, + request_scan_cb, + NULL); + return; + +error: + dbus_g_method_return_error (context, error); + g_error_free (error); +} + static gboolean scanning_allowed (NMDeviceWifi *self) { @@ -1544,20 +1626,102 @@ check_scanning_allowed (NMDeviceWifi *self) } static gboolean +hidden_filter_func (NMConnectionProvider *provider, + NMConnection *connection, + gpointer user_data) +{ + NMSettingWireless *s_wifi; + + s_wifi = (NMSettingWireless *) nm_connection_get_setting_wireless (connection); + return s_wifi ? nm_setting_wireless_get_hidden (s_wifi) : FALSE; +} + +static GPtrArray * +build_hidden_probe_list (NMDeviceWifi *self) +{ + NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); + guint max_scan_ssids = nm_supplicant_interface_get_max_scan_ssids (priv->supplicant.iface); + NMConnectionProvider *provider = nm_device_get_connection_provider (NM_DEVICE (self)); + GSList *connections, *iter; + GPtrArray *ssids = NULL; + static GByteArray *nullssid = NULL; + + /* Need at least two: wildcard SSID and one or more hidden SSIDs */ + if (max_scan_ssids < 2) + return NULL; + + /* Static wildcard SSID used for every scan */ + if (G_UNLIKELY (nullssid == NULL)) + nullssid = g_byte_array_new (); + + connections = nm_connection_provider_get_best_connections (provider, + max_scan_ssids - 1, + NM_SETTING_WIRELESS_SETTING_NAME, + NULL, + hidden_filter_func, + NULL); + if (connections && connections->data) { + ssids = g_ptr_array_sized_new (max_scan_ssids - 1); + g_ptr_array_add (ssids, nullssid); /* Add wildcard SSID */ + } + + for (iter = connections; iter; iter = g_slist_next (iter)) { + NMConnection *connection = iter->data; + NMSettingWireless *s_wifi; + const GByteArray *ssid; + + s_wifi = (NMSettingWireless *) nm_connection_get_setting_wireless (connection); + g_assert (s_wifi); + ssid = nm_setting_wireless_get_ssid (s_wifi); + g_assert (ssid); + g_ptr_array_add (ssids, (gpointer) ssid); + } + g_slist_free (connections); + + return ssids; +} + +static gboolean request_wireless_scan (gpointer user_data) { NMDeviceWifi *self = NM_DEVICE_WIFI (user_data); NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); gboolean backoff = FALSE; + GPtrArray *ssids = NULL; if (check_scanning_allowed (self)) { nm_log_dbg (LOGD_WIFI_SCAN, "(%s): scanning requested", nm_device_get_iface (NM_DEVICE (self))); - if (nm_supplicant_interface_request_scan (priv->supplicant.iface)) { + ssids = build_hidden_probe_list (self); + + if (nm_logging_level_enabled (LOGL_DEBUG)) { + if (ssids) { + guint i; + char *foo; + + for (i = 0; i < ssids->len; i++) { + foo = nm_utils_ssid_to_utf8 (g_ptr_array_index (ssids, i)); + nm_log_dbg (LOGD_WIFI_SCAN, "(%s): (%d) probe scanning SSID '%s'", + nm_device_get_iface (NM_DEVICE (self)), + i, foo ? foo : "<hidden>"); + g_free (foo); + } + } else { + nm_log_dbg (LOGD_WIFI_SCAN, "(%s): no SSIDs to probe scan", + nm_device_get_iface (NM_DEVICE (self))); + } + } + + if (nm_supplicant_interface_request_scan (priv->supplicant.iface, ssids)) { /* success */ backoff = TRUE; } + + if (ssids) { + /* Elements owned by the connections, so we don't free them here */ + g_ptr_array_free (ssids, TRUE); + } } else { nm_log_dbg (LOGD_WIFI_SCAN, "(%s): scan requested but not allowed at this time", nm_device_get_iface (NM_DEVICE (self))); @@ -1579,13 +1743,11 @@ static void schedule_scan (NMDeviceWifi *self, gboolean backoff) { NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); - GTimeVal now; - - g_get_current_time (&now); + time_t now = time (NULL); /* Cancel the pending scan if it would happen later than (now + the scan_interval) */ if (priv->pending_scan_id) { - if (now.tv_sec + priv->scan_interval < priv->scheduled_scan_time) + if (now + priv->scan_interval < priv->scheduled_scan_time) cancel_pending_scan (self); } @@ -1600,7 +1762,7 @@ schedule_scan (NMDeviceWifi *self, gboolean backoff) request_wireless_scan, self); - priv->scheduled_scan_time = now.tv_sec + priv->scan_interval; + priv->scheduled_scan_time = now + priv->scan_interval; if (backoff && (priv->scan_interval < (SCAN_INTERVAL_MAX / factor))) { priv->scan_interval += (SCAN_INTERVAL_STEP / factor); /* Ensure the scan interval will never be less than 20s... */ @@ -1643,8 +1805,7 @@ supplicant_iface_scan_done_cb (NMSupplicantInterface *iface, nm_device_get_iface (NM_DEVICE (self)), success ? "successful" : "failed"); - if (check_scanning_allowed (self)) - schedule_scan (self, TRUE); + schedule_scan (self, success); /* Ensure that old APs get removed, which otherwise only * happens when there are new BSSes. @@ -1763,7 +1924,7 @@ static gboolean cull_scan_list (NMDeviceWifi *self) { NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); - GTimeVal now; + time_t now = time (NULL); GSList *outdated_list = NULL; GSList *elt; guint32 removed = 0, total = 0; @@ -1776,7 +1937,6 @@ cull_scan_list (NMDeviceWifi *self) /* Walk the access point list and remove any access points older than * three times the inactive scan interval. */ - g_get_current_time (&now); for (elt = priv->ap_list; elt; elt = g_slist_next (elt), total++) { NMAccessPoint *ap = elt->data; const guint prune_interval_s = SCAN_INTERVAL_MAX * 3; @@ -1796,7 +1956,7 @@ cull_scan_list (NMDeviceWifi *self) && g_object_get_data (G_OBJECT (ap), WPAS_REMOVED_TAG) == NULL) continue; - if (nm_ap_get_last_seen (ap) + prune_interval_s < now.tv_sec) + if (nm_ap_get_last_seen (ap) + prune_interval_s < now) outdated_list = g_slist_append (outdated_list, ap); } @@ -1886,7 +2046,6 @@ supplicant_iface_bss_updated_cb (NMSupplicantInterface *iface, { NMDeviceState state; NMAccessPoint *ap; - GTimeVal now; g_return_if_fail (self != NULL); g_return_if_fail (object_path != NULL); @@ -1899,10 +2058,8 @@ supplicant_iface_bss_updated_cb (NMSupplicantInterface *iface, /* Update the AP's last-seen property */ ap = get_ap_by_supplicant_path (self, object_path); - if (ap) { - g_get_current_time (&now); - nm_ap_set_last_seen (ap, now.tv_sec); - } + if (ap) + nm_ap_set_last_seen (ap, (guint32) time (NULL)); /* Remove outdated access points */ schedule_scanlist_cull (self); @@ -1991,8 +2148,11 @@ link_timeout_cb (gpointer user_data) * to reassociate within the timeout period, so the connection must * fail. */ - if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED) - nm_device_state_changed (dev, NM_DEVICE_STATE_DISCONNECTED, NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT); + if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED) { + nm_device_state_changed (dev, + NM_DEVICE_STATE_FAILED, + NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT); + } return FALSE; } @@ -3365,7 +3525,7 @@ get_property (GObject *object, guint prop_id, static void set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) + const GValue *value, GParamSpec *pspec) { NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (object); @@ -3409,7 +3569,7 @@ nm_device_wifi_class_init (NMDeviceWifiClass *klass) parent_class->is_available = real_is_available; parent_class->check_connection_compatible = real_check_connection_compatible; parent_class->complete_connection = real_complete_connection; - parent_class->set_enabled = real_set_enabled; + parent_class->set_enabled = real_set_enabled; parent_class->act_stage1_prepare = real_act_stage1_prepare; parent_class->act_stage2_config = real_act_stage2_config; diff --git a/src/nm-device-wifi.h b/src/nm-device-wifi.h index 1e665fc3..b22c78b3 100644 --- a/src/nm-device-wifi.h +++ b/src/nm-device-wifi.h @@ -46,6 +46,7 @@ typedef enum { NM_WIFI_ERROR_CONNECTION_INVALID, /*< nick=ConnectionInvalid >*/ NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE, /*< nick=ConnectionIncompatible >*/ NM_WIFI_ERROR_ACCESS_POINT_NOT_FOUND, /*< nick=AccessPointNotFound >*/ + NM_WIFI_ERROR_SCAN_NOT_ALLOWED, /*< nick=ScanNotAllowed >*/ } NMWifiError; #define NM_DEVICE_WIFI_HW_ADDRESS "hw-address" diff --git a/src/nm-device-wired.c b/src/nm-device-wired.c index a476faad..60e5f262 100644 --- a/src/nm-device-wired.c +++ b/src/nm-device-wired.c @@ -162,6 +162,7 @@ set_carrier (NMDeviceWired *self, { NMDeviceWiredPrivate *priv; NMDeviceState state; + guint32 caps; g_return_if_fail (NM_IS_DEVICE (self)); @@ -172,16 +173,25 @@ set_carrier (NMDeviceWired *self, /* Clear any previous deferred action */ carrier_action_defer_clear (self); + /* Warn if we try to set carrier down on a device that + * doesn't support carrier detect. These devices assume + * the carrier is always up. + */ + caps = nm_device_get_capabilities (NM_DEVICE (self)); + g_return_if_fail (caps & NM_DEVICE_CAP_CARRIER_DETECT); + priv->carrier = carrier; g_object_notify (G_OBJECT (self), "carrier"); state = nm_device_get_state (NM_DEVICE (self)); - nm_log_info (LOGD_HW | NM_DEVICE_WIRED_LOG_LEVEL (NM_DEVICE (self)), - "(%s): carrier now %s (device state %d%s)", - nm_device_get_iface (NM_DEVICE (self)), - carrier ? "ON" : "OFF", - state, - defer_action ? ", deferring action for 4 seconds" : ""); + if (state >= NM_DEVICE_STATE_UNAVAILABLE) { + nm_log_info (LOGD_HW | NM_DEVICE_WIRED_LOG_LEVEL (NM_DEVICE (self)), + "(%s): carrier now %s (device state %d%s)", + nm_device_get_iface (NM_DEVICE (self)), + carrier ? "ON" : "OFF", + state, + defer_action ? ", deferring action for 4 seconds" : ""); + } if (defer_action) priv->carrier_action_defer_id = g_timeout_add_seconds (4, carrier_action_defer_cb, self); @@ -200,10 +210,8 @@ carrier_on (NMNetlinkMonitor *monitor, /* Make sure signal is for us */ if (idx == nm_device_get_ifindex (device)) { - /* Ignore spurious netlink messages */ caps = nm_device_get_capabilities (device); - if (!(caps & NM_DEVICE_CAP_CARRIER_DETECT)) - return; + g_return_if_fail (caps & NM_DEVICE_CAP_CARRIER_DETECT); set_carrier (self, TRUE, FALSE); set_speed (self, ethtool_get_speed (self)); @@ -224,10 +232,8 @@ carrier_off (NMNetlinkMonitor *monitor, NMDeviceState state; gboolean defer = FALSE; - /* Ignore spurious netlink messages */ caps = nm_device_get_capabilities (device); - if (!(caps & NM_DEVICE_CAP_CARRIER_DETECT)) - return; + g_return_if_fail (caps & NM_DEVICE_CAP_CARRIER_DETECT); /* Defer carrier-off event actions while connected by a few seconds * so that tripping over a cable, power-cycling a switch, or breaking @@ -350,11 +356,15 @@ static gboolean real_hw_bring_up (NMDevice *dev, gboolean *no_firmware) { gboolean success, carrier; + guint32 caps; success = nm_system_iface_set_up (nm_device_get_ip_ifindex (dev), TRUE, no_firmware); if (success) { - carrier = get_carrier_sync (NM_DEVICE_WIRED (dev)); - set_carrier (NM_DEVICE_WIRED (dev), carrier, carrier ? FALSE : TRUE); + caps = nm_device_get_capabilities (dev); + if (caps & NM_DEVICE_CAP_CARRIER_DETECT) { + carrier = get_carrier_sync (NM_DEVICE_WIRED (dev)); + set_carrier (NM_DEVICE_WIRED (dev), carrier, carrier ? FALSE : TRUE); + } } return success; } diff --git a/src/nm-device.c b/src/nm-device.c index 1dc94ee9..cf01003c 100644 --- a/src/nm-device.c +++ b/src/nm-device.c @@ -27,6 +27,8 @@ #include <string.h> #include <unistd.h> #include <errno.h> +#include <linux/sockios.h> +#include <linux/ethtool.h> #include <sys/ioctl.h> #include <signal.h> #include <sys/types.h> @@ -43,7 +45,6 @@ #include "nm-system.h" #include "nm-dhcp-manager.h" #include "nm-dbus-manager.h" -#include "nm-dns-manager.h" #include "nm-utils.h" #include "nm-logging.h" #include "nm-netlink-monitor.h" @@ -61,6 +62,9 @@ #include "nm-properties-changed-signal.h" #include "nm-enum-types.h" #include "nm-settings-connection.h" +#include "nm-connection-provider.h" +#include "nm-posix-signals.h" +#include "nm-manager-auth.h" static void impl_device_disconnect (NMDevice *device, DBusGMethodInvocation *context); @@ -87,8 +91,10 @@ nm_device_error_quark (void) enum { STATE_CHANGED, - DISCONNECT_REQUEST, AUTOCONNECT_ALLOWED, + AUTH_REQUEST, + IP4_CONFIG_CHANGED, + IP6_CONFIG_CHANGED, LAST_SIGNAL, }; static guint signals[LAST_SIGNAL] = { 0 }; @@ -99,6 +105,8 @@ enum { PROP_IFACE, PROP_IP_IFACE, PROP_DRIVER, + PROP_DRIVER_VERSION, + PROP_FIRMWARE_VERSION, PROP_CAPABILITIES, PROP_IP4_ADDRESS, PROP_IP4_CONFIG, @@ -110,6 +118,7 @@ enum { PROP_ACTIVE_CONNECTION, PROP_DEVICE_TYPE, PROP_MANAGED, + PROP_AUTOCONNECT, PROP_FIRMWARE_MISSING, PROP_TYPE_DESC, PROP_RFKILL_TYPE, @@ -117,6 +126,8 @@ enum { LAST_PROP }; +#define DEFAULT_AUTOCONNECT TRUE + /***********************************************************/ G_DEFINE_ABSTRACT_TYPE (NMDevice, nm_device, G_TYPE_OBJECT) @@ -153,6 +164,8 @@ typedef struct { char * type_desc; guint32 capabilities; char * driver; + char * driver_version; + char * firmware_version; gboolean managed; /* whether managed by NM or not */ RfKillType rfkill_type; gboolean firmware_missing; @@ -221,11 +234,13 @@ typedef struct { /* IP6 config from DHCP */ NMIP6Config * dhcp6_ip6_config; - /* inhibit autoconnect feature */ - gboolean autoconnect_inhibit; + /* allow autoconnect feature */ + gboolean autoconnect; /* master interface for bridge, bond, vlan, etc */ NMDevice * master; + + NMConnectionProvider *con_provider; } NMDevicePrivate; static void nm_device_take_down (NMDevice *dev, gboolean wait, NMDeviceStateReason reason); @@ -239,7 +254,6 @@ static gboolean nm_device_set_ip4_config (NMDevice *dev, NMDeviceStateReason *reason); static gboolean nm_device_set_ip6_config (NMDevice *dev, NMIP6Config *config, - gboolean assumed, NMDeviceStateReason *reason); static gboolean nm_device_activate_ip6_config_commit (gpointer user_data); @@ -259,6 +273,7 @@ nm_device_init (NMDevice *self) priv->state_reason = NM_DEVICE_STATE_REASON_NONE; priv->dhcp_timeout = 0; priv->rfkill_type = RFKILL_TYPE_UNKNOWN; + priv->autoconnect = DEFAULT_AUTOCONNECT; } static void @@ -332,18 +347,57 @@ update_ip6_privacy_save (NMDevice *self) } } +/* + * Get driver info from SIOCETHTOOL ioctl() for 'iface' + * Returns driver and firmware versions to 'driver_version and' 'firmware_version' + */ +static gboolean +device_get_driver_info (const char *iface, char **driver_version, char **firmware_version) +{ + struct ethtool_drvinfo drvinfo; + struct ifreq req; + int fd; + + fd = socket (PF_INET, SOCK_DGRAM, 0); + if (fd < 0) { + nm_log_warn (LOGD_HW, "couldn't open control socket."); + return FALSE; + } + + /* Get driver and firmware version info */ + memset (&req, 0, sizeof (struct ifreq)); + strncpy (req.ifr_name, iface, IFNAMSIZ); + drvinfo.cmd = ETHTOOL_GDRVINFO; + req.ifr_data = &drvinfo; + + errno = 0; + if (ioctl (fd, SIOCETHTOOL, &req) < 0) { + nm_log_dbg (LOGD_HW, "SIOCETHTOOL ioctl() failed: cmd=ETHTOOL_GDRVINFO, iface=%s, errno=%d", + iface, errno); + close (fd); + return FALSE; + } + if (driver_version) + *driver_version = g_strdup (drvinfo.version); + if (firmware_version) + *firmware_version = g_strdup (drvinfo.fw_version); + + close (fd); + return TRUE; +} + static GObject* constructor (GType type, - guint n_construct_params, - GObjectConstructParam *construct_params) + guint n_construct_params, + GObjectConstructParam *construct_params) { GObject *object; NMDevice *dev; NMDevicePrivate *priv; object = G_OBJECT_CLASS (nm_device_parent_class)->constructor (type, - n_construct_params, - construct_params); + n_construct_params, + construct_params); if (!object) return NULL; @@ -370,6 +424,8 @@ constructor (GType type, priv->fw_manager = nm_firewall_manager_get (); + device_get_driver_info (priv->iface, &priv->driver_version, &priv->firmware_version); + update_accept_ra_save (dev); update_ip6_privacy_save (dev); @@ -503,7 +559,8 @@ nm_device_set_ip_iface (NMDevice *self, const char *iface) priv->ip_iface = g_strdup (iface); if (priv->ip_iface) { priv->ip_ifindex = nm_netlink_iface_to_index (priv->ip_iface); - if (priv->ip_ifindex < 0) { + if (priv->ip_ifindex <= 0) { + /* Device IP interface must always be a kernel network interface */ nm_log_warn (LOGD_HW, "(%s): failed to look up interface index", iface); } } @@ -526,6 +583,22 @@ nm_device_get_driver (NMDevice *self) return NM_DEVICE_GET_PRIVATE (self)->driver; } +const char * +nm_device_get_driver_version (NMDevice *self) +{ + g_return_val_if_fail (self != NULL, NULL); + + return NM_DEVICE_GET_PRIVATE (self)->driver_version; +} + +const char * +nm_device_get_firmware_version (NMDevice *self) +{ + g_return_val_if_fail (self != NULL, NULL); + + return NM_DEVICE_GET_PRIVATE (self)->firmware_version; +} + /* * Get/set functions for type @@ -539,12 +612,52 @@ nm_device_get_device_type (NMDevice *self) } +/** + * nm_device_get_priority(): + * @dev: the #NMDevice + * + * Returns: the device's routing priority. Lower numbers means a "better" + * device, eg higher priority. + */ int nm_device_get_priority (NMDevice *dev) { - g_return_val_if_fail (NM_IS_DEVICE (dev), -1); + g_return_val_if_fail (NM_IS_DEVICE (dev), 100); - return (int) nm_device_get_device_type (dev); + /* Device 'priority' is used for two things: + * + * a) two devices on the same IP subnet: the "better" (ie, lower number) + * device is the default outgoing device for that subnet + * b) default route: the "better" device gets the default route. This can + * always be modified by setting a connection to never-default=TRUE, in + * which case that device will never take the default route when + * it's using that connection. + */ + + switch (nm_device_get_device_type (dev)) { + case NM_DEVICE_TYPE_ETHERNET: + return 1; + case NM_DEVICE_TYPE_INFINIBAND: + return 2; + case NM_DEVICE_TYPE_ADSL: + return 3; + case NM_DEVICE_TYPE_WIMAX: + return 4; + case NM_DEVICE_TYPE_BOND: + return 5; + case NM_DEVICE_TYPE_VLAN: + return 6; + case NM_DEVICE_TYPE_MODEM: + return 7; + case NM_DEVICE_TYPE_BT: + return 8; + case NM_DEVICE_TYPE_WIFI: + return 9; + case NM_DEVICE_TYPE_OLPC_MESH: + return 10; + default: + return 20; + } } @@ -585,6 +698,30 @@ nm_device_get_type_desc (NMDevice *self) return NM_DEVICE_GET_PRIVATE (self)->type_desc; } +void +nm_device_set_connection_provider (NMDevice *device, + NMConnectionProvider *provider) +{ + NMDevicePrivate *priv; + + g_return_if_fail (device != NULL); + g_return_if_fail (provider != NULL); + g_return_if_fail (NM_IS_CONNECTION_PROVIDER (provider)); + + priv = NM_DEVICE_GET_PRIVATE (device); + g_return_if_fail (priv->con_provider == NULL); + + priv->con_provider = provider; +} + +NMConnectionProvider * +nm_device_get_connection_provider (NMDevice *device) +{ + g_return_val_if_fail (device != NULL, NULL); + + return NM_DEVICE_GET_PRIVATE (device)->con_provider; +} + /** * nm_device_enslave_slave: * @dev: the master device @@ -716,10 +853,10 @@ nm_device_autoconnect_allowed (NMDevice *self) g_value_take_object (&instance, self); g_value_init (&retval, G_TYPE_BOOLEAN); - if (priv->autoconnect_inhibit) - g_value_set_boolean (&retval, FALSE); - else + if (priv->autoconnect) g_value_set_boolean (&retval, TRUE); + else + g_value_set_boolean (&retval, FALSE); /* Use g_signal_emitv() rather than g_signal_emit() to avoid the return * value being changed if no handlers are connected */ @@ -776,14 +913,6 @@ nm_device_complete_connection (NMDevice *self, if (success) success = nm_connection_verify (connection, error); - /* If ip6-privacy is unknown, enable it with temporary address preferred */ - if (success) { - NMSettingIP6Config *s_ip6 = nm_connection_get_setting_ip6_config (connection); - if (s_ip6 && nm_setting_ip6_config_get_ip6_privacy (s_ip6) == NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN) - g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_IP6_PRIVACY, - NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR, NULL); - } - return success; } @@ -1311,6 +1440,12 @@ aipd_child_setup (gpointer user_data G_GNUC_UNUSED) */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for avahi-autoipd here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static NMActStageReturn @@ -1715,6 +1850,10 @@ merge_ip6_configs (NMIP6Config *dst, NMIP6Config *src) for (i = 0; i < nm_ip6_config_get_num_nameservers (src); i++) nm_ip6_config_add_nameserver (dst, nm_ip6_config_get_nameserver (src, i)); + /* default gateway */ + if (!nm_ip6_config_get_gateway (dst)) + nm_ip6_config_set_gateway (dst, nm_ip6_config_get_gateway (src)); + /* routes */ for (i = 0; i < nm_ip6_config_get_num_routes (src); i++) nm_ip6_config_add_route (dst, nm_ip6_config_get_route (src, i)); @@ -1738,7 +1877,7 @@ ip6_config_merge_and_apply (NMDevice *self, { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); NMConnection *connection; - gboolean assumed, success; + gboolean success; NMIP6Config *composite; connection = nm_device_get_connection (self); @@ -1761,8 +1900,7 @@ ip6_config_merge_and_apply (NMDevice *self, /* Merge user overrides into the composite config */ nm_utils_merge_ip6_config (composite, nm_connection_get_setting_ip6_config (connection)); - assumed = nm_act_request_get_assumed (priv->act_request); - success = nm_device_set_ip6_config (self, composite, assumed, out_reason); + success = nm_device_set_ip6_config (self, composite, out_reason); g_object_unref (composite); return success; } @@ -2532,6 +2670,8 @@ share_child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + nm_unblock_posix_signals (NULL); } static gboolean @@ -3092,7 +3232,7 @@ nm_device_deactivate (NMDevice *self, NMDeviceStateReason reason) /* Take out any entries in the routing table and any IP address the device had. */ ifindex = nm_device_get_ip_ifindex (self); family = tried_ipv6 ? AF_UNSPEC : AF_INET; - if (ifindex >= 0) { + if (ifindex > 0) { nm_system_iface_flush_routes (ifindex, family); nm_system_iface_flush_addresses (ifindex, family); } @@ -3100,35 +3240,59 @@ nm_device_deactivate (NMDevice *self, NMDeviceStateReason reason) /* Clean up nameservers and addresses */ nm_device_set_ip4_config (self, NULL, FALSE, &ignored); - nm_device_set_ip6_config (self, NULL, FALSE, &ignored); + nm_device_set_ip6_config (self, NULL, &ignored); } -gboolean -nm_device_disconnect (NMDevice *device, GError **error) +static void +disconnect_cb (NMDevice *device, + DBusGMethodInvocation *context, + GError *error, + gpointer user_data) { - NMDevicePrivate *priv; - - g_return_val_if_fail (device != NULL, FALSE); - g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); + GError *local = NULL; - priv = NM_DEVICE_GET_PRIVATE (device); - if (priv->state <= NM_DEVICE_STATE_DISCONNECTED) { - g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_NOT_ACTIVE, - "Cannot disconnect an inactive device."); - return FALSE; + if (error) + dbus_g_method_return_error (context, error); + else { + /* Authorized */ + if (priv->state <= NM_DEVICE_STATE_DISCONNECTED) { + local = g_error_new_literal (NM_DEVICE_ERROR, + NM_DEVICE_ERROR_NOT_ACTIVE, + "Device is not active"); + dbus_g_method_return_error (context, local); + g_error_free (local); + } else { + priv->autoconnect = FALSE; + nm_device_state_changed (device, + NM_DEVICE_STATE_DISCONNECTED, + NM_DEVICE_STATE_REASON_USER_REQUESTED); + dbus_g_method_return (context); + } } - - priv->autoconnect_inhibit = TRUE; - nm_device_state_changed (device, - NM_DEVICE_STATE_DISCONNECTED, - NM_DEVICE_STATE_REASON_USER_REQUESTED); - return TRUE; } static void impl_device_disconnect (NMDevice *device, DBusGMethodInvocation *context) { - g_signal_emit (device, signals[DISCONNECT_REQUEST], 0, context); + GError *error = NULL; + + if (NM_DEVICE_GET_PRIVATE (device)->act_request == NULL) { + error = g_error_new_literal (NM_DEVICE_ERROR, + NM_DEVICE_ERROR_NOT_ACTIVE, + "This device is not active"); + dbus_g_method_return_error (context, error); + g_error_free (error); + return; + } + + /* Ask the manager to authenticate this request for us */ + g_signal_emit (device, signals[AUTH_REQUEST], 0, + context, + NM_AUTH_PERMISSION_NETWORK_CONTROL, + TRUE, + disconnect_cb, + NULL); } static gboolean @@ -3222,6 +3386,7 @@ nm_device_activate (NMDevice *self, NMActRequest *req, GError **error) } priv->act_request = g_object_ref (req); + g_object_notify (G_OBJECT (self), NM_DEVICE_ACTIVE_CONNECTION); if (!nm_act_request_get_assumed (req)) { NMActiveConnection *dep_ac; @@ -3345,7 +3510,6 @@ nm_device_set_ip4_config (NMDevice *self, NMIP4Config *old_config = NULL; gboolean success = TRUE; NMIP4ConfigCompareFlags diff = NM_IP4_COMPARE_FLAG_ALL; - NMDnsManager *dns_mgr; int ip_ifindex; g_return_val_if_fail (NM_IS_DEVICE (self), FALSE); @@ -3353,23 +3517,18 @@ nm_device_set_ip4_config (NMDevice *self, priv = NM_DEVICE_GET_PRIVATE (self); ip_iface = nm_device_get_ip_iface (self); + ip_ifindex = nm_device_get_ip_ifindex (self); old_config = priv->ip4_config; - if (new_config && old_config) + if (new_config && old_config) { diff = nm_ip4_config_diff (new_config, old_config); - - /* No actual change, do nothing */ - if (diff == NM_IP4_COMPARE_FLAG_NONE) + if (diff == NM_IP4_COMPARE_FLAG_NONE) + return TRUE; /* no actual change */ + } else if (!new_config && !old_config) return TRUE; - dns_mgr = nm_dns_manager_get (NULL); - if (old_config) { - /* Remove any previous IP4 Config from the DNS manager */ - nm_dns_manager_remove_ip4_config (dns_mgr, ip_iface, old_config); - g_object_unref (old_config); - priv->ip4_config = NULL; - } + priv->ip4_config = NULL; if (new_config) { priv->ip4_config = g_object_ref (new_config); @@ -3377,25 +3536,22 @@ nm_device_set_ip4_config (NMDevice *self, /* Don't touch the device's actual IP config if the connection is * assumed when NM starts. */ - if (!assumed) { - ip_ifindex = nm_device_get_ip_ifindex (self); + if (!assumed) success = nm_system_apply_ip4_config (ip_ifindex, new_config, nm_device_get_priority (self), diff); - } if (success || assumed) { /* Export over D-Bus */ if (!nm_ip4_config_get_dbus_path (new_config)) nm_ip4_config_export (new_config); - - /* Add the DNS information to the DNS manager */ - nm_dns_manager_add_ip4_config (dns_mgr, ip_iface, new_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); - _update_ip4_address (self); } } - g_object_unref (dns_mgr); g_object_notify (G_OBJECT (self), NM_DEVICE_IP4_CONFIG); + g_signal_emit (self, signals[IP4_CONFIG_CHANGED], 0, priv->ip4_config, old_config); + + if (old_config) + g_object_unref (old_config); return success; } @@ -3403,7 +3559,6 @@ nm_device_set_ip4_config (NMDevice *self, static gboolean nm_device_set_ip6_config (NMDevice *self, NMIP6Config *new_config, - gboolean assumed, NMDeviceStateReason *reason) { NMDevicePrivate *priv; @@ -3411,7 +3566,6 @@ nm_device_set_ip6_config (NMDevice *self, NMIP6Config *old_config = NULL; gboolean success = TRUE; NMIP6ConfigCompareFlags diff = NM_IP6_COMPARE_FLAG_ALL; - NMDnsManager *dns_mgr; int ip_ifindex; g_return_val_if_fail (NM_IS_DEVICE (self), FALSE); @@ -3423,42 +3577,32 @@ nm_device_set_ip6_config (NMDevice *self, old_config = priv->ip6_config; - if (new_config && old_config) + if (new_config && old_config) { diff = nm_ip6_config_diff (new_config, old_config); - - /* No actual change, do nothing */ - if (diff == NM_IP6_COMPARE_FLAG_NONE) + if (diff == NM_IP6_COMPARE_FLAG_NONE) + return TRUE; /* no actual change */ + } else if (!new_config && !old_config) return TRUE; - dns_mgr = nm_dns_manager_get (NULL); - if (old_config) { - /* Remove any previous IP6 Config from the DNS manager */ - nm_dns_manager_remove_ip6_config (dns_mgr, ip_iface, old_config); - g_object_unref (old_config); - priv->ip6_config = NULL; - } + priv->ip6_config = NULL; if (new_config) { priv->ip6_config = g_object_ref (new_config); - /* Don't touch the device's actual IP config if the connection is - * assumed when NM starts. - */ - if (!assumed) - success = nm_system_apply_ip6_config (ip_ifindex, new_config, nm_device_get_priority (self), diff); + success = nm_system_apply_ip6_config (ip_ifindex, new_config, nm_device_get_priority (self), diff); - if (success || assumed) { + if (success) { /* Export over D-Bus */ if (!nm_ip6_config_get_dbus_path (new_config)) nm_ip6_config_export (new_config); - - /* Add the DNS information to the DNS manager */ - nm_dns_manager_add_ip6_config (dns_mgr, ip_iface, new_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); } } - g_object_unref (dns_mgr); g_object_notify (G_OBJECT (self), NM_DEVICE_IP6_CONFIG); + g_signal_emit (self, signals[IP6_CONFIG_CHANGED], 0, priv->ip6_config, old_config); + + if (old_config) + g_object_unref (old_config); return success; } @@ -3683,6 +3827,8 @@ finalize (GObject *object) g_free (priv->iface); g_free (priv->ip_iface); g_free (priv->driver); + g_free (priv->driver_version); + g_free (priv->firmware_version); g_free (priv->type_desc); if (priv->dhcp_anycast_address) g_byte_array_free (priv->dhcp_anycast_address, TRUE); @@ -3710,18 +3856,31 @@ set_property (GObject *object, guint prop_id, g_free (priv->iface); priv->ifindex = 0; priv->iface = g_value_dup_string (value); - if (priv->iface) { + + /* Only look up the ifindex if it appears to be an actual kernel + * interface name. eg Bluetooth devices won't have one until we know + * the IP interface. + */ + if (priv->iface && !strchr (priv->iface, ':')) { priv->ifindex = nm_netlink_iface_to_index (priv->iface); - if (priv->ifindex <= 0) { + if (priv->ifindex <= 0) nm_log_warn (LOGD_HW, "(%s): failed to look up interface index", priv->iface); - } } break; case PROP_IP_IFACE: break; case PROP_DRIVER: + g_free (priv->driver); priv->driver = g_strdup (g_value_get_string (value)); break; + case PROP_DRIVER_VERSION: + g_free (priv->driver_version); + priv->driver_version = g_strdup (g_value_get_string (value)); + break; + case PROP_FIRMWARE_VERSION: + g_free (priv->firmware_version); + priv->firmware_version = g_strdup (g_value_get_string (value)); + break; case PROP_CAPABILITIES: priv->capabilities = g_value_get_uint (value); break; @@ -3731,6 +3890,9 @@ set_property (GObject *object, guint prop_id, case PROP_MANAGED: priv->managed = g_value_get_boolean (value); break; + case PROP_AUTOCONNECT: + priv->autoconnect = g_value_get_boolean (value); + break; case PROP_FIRMWARE_MISSING: priv->firmware_missing = g_value_get_boolean (value); break; @@ -3787,6 +3949,12 @@ get_property (GObject *object, guint prop_id, case PROP_DRIVER: g_value_set_string (value, priv->driver); break; + case PROP_DRIVER_VERSION: + g_value_set_string (value, priv->driver_version); + break; + case PROP_FIRMWARE_VERSION: + g_value_set_string (value, priv->firmware_version); + break; case PROP_CAPABILITIES: g_value_set_uint (value, priv->capabilities); break; @@ -3839,6 +4007,9 @@ get_property (GObject *object, guint prop_id, case PROP_MANAGED: g_value_set_boolean (value, priv->managed); break; + case PROP_AUTOCONNECT: + g_value_set_boolean (value, priv->autoconnect); + break; case PROP_FIRMWARE_MISSING: g_value_set_boolean (value, priv->firmware_missing); break; @@ -3913,6 +4084,22 @@ nm_device_class_init (NMDeviceClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property + (object_class, PROP_DRIVER_VERSION, + g_param_spec_string (NM_DEVICE_DRIVER_VERSION, + "Driver Version", + "Driver Version", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property + (object_class, PROP_FIRMWARE_VERSION, + g_param_spec_string (NM_DEVICE_FIRMWARE_VERSION, + "Firmware Version", + "Firmware Version", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_CAPABILITIES, g_param_spec_uint (NM_DEVICE_CAPABILITIES, "Capabilities", @@ -4000,6 +4187,14 @@ nm_device_class_init (NMDeviceClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property + (object_class, PROP_AUTOCONNECT, + g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, + "Autoconnect", + "Autoconnect", + DEFAULT_AUTOCONNECT, + G_PARAM_READWRITE)); + + g_object_class_install_property (object_class, PROP_FIRMWARE_MISSING, g_param_spec_boolean (NM_DEVICE_FIRMWARE_MISSING, "FirmwareMissing", @@ -4043,14 +4238,6 @@ nm_device_class_init (NMDeviceClass *klass) G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); - signals[DISCONNECT_REQUEST] = - g_signal_new (NM_DEVICE_DISCONNECT_REQUEST, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, - g_cclosure_marshal_VOID__POINTER, - G_TYPE_NONE, 1, G_TYPE_POINTER); - signals[AUTOCONNECT_ALLOWED] = g_signal_new ("autoconnect-allowed", G_OBJECT_CLASS_TYPE (object_class), @@ -4060,6 +4247,31 @@ nm_device_class_init (NMDeviceClass *klass) _nm_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + signals[AUTH_REQUEST] = + g_signal_new (NM_DEVICE_AUTH_REQUEST, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + /* dbus-glib context, permission, allow_interaction, callback, user_data */ + _nm_marshal_VOID__POINTER_STRING_BOOLEAN_POINTER_POINTER, + G_TYPE_NONE, 5, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_POINTER, G_TYPE_POINTER); + + signals[IP4_CONFIG_CHANGED] = + g_signal_new (NM_DEVICE_IP4_CONFIG_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + _nm_marshal_VOID__OBJECT_OBJECT, + G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_OBJECT); + + signals[IP6_CONFIG_CHANGED] = + g_signal_new (NM_DEVICE_IP6_CONFIG_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + _nm_marshal_VOID__OBJECT_OBJECT, + G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_OBJECT); + dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass), &dbus_glib_nm_device_interface_object_info); @@ -4225,6 +4437,8 @@ reason_to_string (NMDeviceStateReason reason) return "infiniband-mode"; case NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED: return "dependency-failed"; + case NM_DEVICE_STATE_REASON_BR2684_FAILED: + return "br2684 bridge failed"; default: break; } @@ -4307,7 +4521,7 @@ nm_device_state_changed (NMDevice *device, nm_device_deactivate (device, reason); break; default: - priv->autoconnect_inhibit = FALSE; + priv->autoconnect = TRUE; break; } @@ -4627,12 +4841,11 @@ nm_device_set_dhcp_anycast_address (NMDevice *device, guint8 *addr) } } - -void -nm_device_clear_autoconnect_inhibit (NMDevice *device) +gboolean +nm_device_get_autoconnect (NMDevice *device) { - NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); - g_return_if_fail (priv); - priv->autoconnect_inhibit = FALSE; + g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + + return NM_DEVICE_GET_PRIVATE (device)->autoconnect; } diff --git a/src/nm-device.h b/src/nm-device.h index bf76ecb5..91d9166a 100644 --- a/src/nm-device.h +++ b/src/nm-device.h @@ -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) 2005 - 2011 Red Hat, Inc. + * Copyright (C) 2005 - 2012 Red Hat, Inc. * Copyright (C) 2006 - 2008 Novell, Inc. */ @@ -23,7 +23,7 @@ #define NM_DEVICE_H #include <glib-object.h> -#include <dbus/dbus.h> +#include <dbus/dbus-glib.h> #include <netinet/in.h> #include "NetworkManager.h" @@ -34,12 +34,15 @@ #include "nm-dhcp6-config.h" #include "nm-connection.h" #include "nm-rfkill.h" +#include "nm-connection-provider.h" /* Properties */ #define NM_DEVICE_UDI "udi" #define NM_DEVICE_IFACE "interface" #define NM_DEVICE_IP_IFACE "ip-interface" #define NM_DEVICE_DRIVER "driver" +#define NM_DEVICE_DRIVER_VERSION "driver-version" +#define NM_DEVICE_FIRMWARE_VERSION "firmware-version" #define NM_DEVICE_CAPABILITIES "capabilities" #define NM_DEVICE_IP4_ADDRESS "ip4-address" #define NM_DEVICE_IP4_CONFIG "ip4-config" @@ -51,13 +54,16 @@ #define NM_DEVICE_ACTIVE_CONNECTION "active-connection" #define NM_DEVICE_DEVICE_TYPE "device-type" /* ugh */ #define NM_DEVICE_MANAGED "managed" +#define NM_DEVICE_AUTOCONNECT "autoconnect" #define NM_DEVICE_FIRMWARE_MISSING "firmware-missing" #define NM_DEVICE_TYPE_DESC "type-desc" /* Internal only */ #define NM_DEVICE_RFKILL_TYPE "rfkill-type" /* Internal only */ #define NM_DEVICE_IFINDEX "ifindex" /* Internal only */ -/* Internal signal */ -#define NM_DEVICE_DISCONNECT_REQUEST "disconnect-request" +/* Internal signals */ +#define NM_DEVICE_AUTH_REQUEST "auth-request" +#define NM_DEVICE_IP4_CONFIG_CHANGED "ip4-config-changed" +#define NM_DEVICE_IP6_CONFIG_CHANGED "ip6-config-changed" G_BEGIN_DECLS @@ -169,6 +175,11 @@ typedef struct { } NMDeviceClass; +typedef void (*NMDeviceAuthRequestFunc) (NMDevice *device, + DBusGMethodInvocation *context, + GError *error, + gpointer user_data); + GType nm_device_get_type (void); const char * nm_device_get_path (NMDevice *dev); @@ -180,6 +191,8 @@ int nm_device_get_ifindex (NMDevice *dev); const char * nm_device_get_ip_iface (NMDevice *dev); int nm_device_get_ip_ifindex(NMDevice *dev); const char * nm_device_get_driver (NMDevice *dev); +const char * nm_device_get_driver_version (NMDevice *dev); +const char * nm_device_get_firmware_version (NMDevice *dev); const char * nm_device_get_type_desc (NMDevice *dev); NMDeviceType nm_device_get_device_type (NMDevice *dev); @@ -243,7 +256,7 @@ void nm_device_set_managed (NMDevice *device, gboolean managed, NMDeviceStateReason reason); -void nm_device_clear_autoconnect_inhibit (NMDevice *device); +gboolean nm_device_get_autoconnect (NMDevice *device); void nm_device_handle_autoip4_event (NMDevice *self, const char *event, @@ -261,7 +274,7 @@ gboolean nm_device_get_firmware_missing (NMDevice *self); gboolean nm_device_activate (NMDevice *device, NMActRequest *req, GError **error); -gboolean nm_device_disconnect (NMDevice *device, GError **error); +void nm_device_set_connection_provider (NMDevice *device, NMConnectionProvider *provider); G_END_DECLS diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index ef284d80..0722981e 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -143,11 +143,17 @@ nm_ip4_config_add_address (NMIP4Config *config, NMIP4Address *address) { NMIP4ConfigPrivate *priv; + GSList *iter; g_return_if_fail (NM_IS_IP4_CONFIG (config)); g_return_if_fail (address != NULL); priv = NM_IP4_CONFIG_GET_PRIVATE (config); + for (iter = priv->addresses; iter; iter = g_slist_next (iter)) { + if (nm_ip4_address_compare ((NMIP4Address *) iter->data, address)) + return; + } + priv->addresses = g_slist_append (priv->addresses, nm_ip4_address_dup (address)); } @@ -210,7 +216,8 @@ void nm_ip4_config_add_nameserver (NMIP4Config *config, guint32 nameserver) guint32 s = g_array_index (priv->nameservers, guint32, i); /* No dupes */ - g_return_if_fail (nameserver != s); + if (nameserver == s) + return; } g_array_append_val (priv->nameservers, nameserver); @@ -254,7 +261,8 @@ void nm_ip4_config_add_wins (NMIP4Config *config, guint32 wins) guint32 s = g_array_index (priv->wins, guint32, i); /* No dupes */ - g_return_if_fail (wins != s); + if (wins == s) + return; } g_array_append_val (priv->wins, wins); @@ -301,11 +309,17 @@ void nm_ip4_config_add_route (NMIP4Config *config, NMIP4Route *route) { NMIP4ConfigPrivate *priv; + GSList *iter; g_return_if_fail (NM_IS_IP4_CONFIG (config)); g_return_if_fail (route != NULL); priv = NM_IP4_CONFIG_GET_PRIVATE (config); + for (iter = priv->routes; iter; iter = g_slist_next (iter)) { + if (nm_ip4_route_compare ((NMIP4Route *) iter->data, route)) + return; + } + priv->routes = g_slist_append (priv->routes, nm_ip4_route_dup (route)); } @@ -743,7 +757,7 @@ nm_ip4_config_diff (NMIP4Config *a, NMIP4Config *b) NMIP4ConfigCompareFlags flags = NM_IP4_COMPARE_FLAG_NONE; if ((a && !b) || (b && !a)) - return 0xFFFFFFFF; + return NM_IP4_COMPARE_FLAG_ALL; if (!a && !b) return NM_IP4_COMPARE_FLAG_NONE; @@ -799,6 +813,68 @@ nm_ip4_config_diff (NMIP4Config *a, NMIP4Config *b) return flags; } +static inline void +hash_u32 (GChecksum *sum, guint32 n) +{ + g_checksum_update (sum, (const guint8 *) &n, sizeof (n)); +} + +void +nm_ip4_config_hash (NMIP4Config *config, GChecksum *sum, gboolean dns_only) +{ + guint32 i, n; + const char *s; + + g_return_if_fail (config != NULL); + g_return_if_fail (sum != NULL); + + if (dns_only == FALSE) { + for (i = 0; i < nm_ip4_config_get_num_addresses (config); i++) { + NMIP4Address *a = nm_ip4_config_get_address (config, i); + + hash_u32 (sum, nm_ip4_address_get_address (a)); + hash_u32 (sum, nm_ip4_address_get_prefix (a)); + hash_u32 (sum, nm_ip4_address_get_gateway (a)); + } + + for (i = 0; i < nm_ip4_config_get_num_routes (config); i++) { + NMIP4Route *r = nm_ip4_config_get_route (config, i); + + hash_u32 (sum, nm_ip4_route_get_dest (r)); + hash_u32 (sum, nm_ip4_route_get_prefix (r)); + hash_u32 (sum, nm_ip4_route_get_next_hop (r)); + hash_u32 (sum, nm_ip4_route_get_metric (r)); + } + + n = nm_ip4_config_get_ptp_address (config); + if (n) + hash_u32 (sum, n); + + for (i = 0; i < nm_ip4_config_get_num_nis_servers (config); i++) + hash_u32 (sum, nm_ip4_config_get_nis_server (config, i)); + + s = nm_ip4_config_get_nis_domain (config); + if (s) + g_checksum_update (sum, (const guint8 *) s, strlen (s)); + } + + for (i = 0; i < nm_ip4_config_get_num_nameservers (config); i++) + hash_u32 (sum, nm_ip4_config_get_nameserver (config, i)); + + for (i = 0; i < nm_ip4_config_get_num_wins (config); i++) + hash_u32 (sum, nm_ip4_config_get_wins (config, i)); + + for (i = 0; i < nm_ip4_config_get_num_domains (config); i++) { + s = nm_ip4_config_get_domain (config, i); + g_checksum_update (sum, (const guint8 *) s, strlen (s)); + } + + for (i = 0; i < nm_ip4_config_get_num_searches (config); i++) { + s = nm_ip4_config_get_search (config, i); + g_checksum_update (sum, (const guint8 *) s, strlen (s)); + } +} + static void nm_ip4_config_init (NMIP4Config *config) { diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h index 2d27acff..6b86bc47 100644 --- a/src/nm-ip4-config.h +++ b/src/nm-ip4-config.h @@ -139,4 +139,6 @@ typedef enum { /* Returns a bitfield representing how the two IP4 configs differ */ NMIP4ConfigCompareFlags nm_ip4_config_diff (NMIP4Config *a, NMIP4Config *b); +void nm_ip4_config_hash (NMIP4Config *config, GChecksum *sum, gboolean dns_only); + #endif /* NM_IP4_CONFIG_H */ diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index f06e4069..511cbf46 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -53,6 +53,8 @@ typedef struct { GPtrArray *domains; GPtrArray *searches; + gboolean gateway_set; + struct in6_addr gateway; GSList *routes; gboolean never_default; @@ -138,11 +140,17 @@ nm_ip6_config_add_address (NMIP6Config *config, NMIP6Address *address) { NMIP6ConfigPrivate *priv; + GSList *iter; g_return_if_fail (NM_IS_IP6_CONFIG (config)); g_return_if_fail (address != NULL); priv = NM_IP6_CONFIG_GET_PRIVATE (config); + for (iter = priv->addresses; iter; iter = g_slist_next (iter)) { + if (nm_ip6_address_compare ((NMIP6Address *) iter->data, address)) + return; + } + priv->addresses = g_slist_append (priv->addresses, nm_ip6_address_dup (address)); } @@ -205,8 +213,10 @@ void nm_ip6_config_add_nameserver (NMIP6Config *config, const struct in6_addr *n /* No dupes */ nameservers = (struct in6_addr *)priv->nameservers->data; - for (i = 0; i < priv->nameservers->len; i++) - g_return_if_fail (IN6_ARE_ADDR_EQUAL (nameserver, &nameservers[i]) == FALSE); + for (i = 0; i < priv->nameservers->len; i++) { + if (IN6_ARE_ADDR_EQUAL (nameserver, &nameservers[i])) + return; + } g_array_append_val (priv->nameservers, *nameserver); } @@ -237,6 +247,30 @@ void nm_ip6_config_reset_nameservers (NMIP6Config *config) } void +nm_ip6_config_set_gateway (NMIP6Config *config, const struct in6_addr *gateway) +{ + NMIP6ConfigPrivate *priv; + + g_return_if_fail (NM_IS_IP6_CONFIG (config)); + + priv = NM_IP6_CONFIG_GET_PRIVATE (config); + if (gateway) + memcpy (&priv->gateway, gateway, sizeof (priv->gateway)); + priv->gateway_set = !!gateway; +} + +const struct in6_addr * +nm_ip6_config_get_gateway (NMIP6Config *config) +{ + NMIP6ConfigPrivate *priv; + + g_return_val_if_fail (NM_IS_IP6_CONFIG (config), NULL); + + priv = NM_IP6_CONFIG_GET_PRIVATE (config); + return priv->gateway_set ? &priv->gateway : NULL; +} + +void nm_ip6_config_take_route (NMIP6Config *config, NMIP6Route *route) { NMIP6ConfigPrivate *priv; @@ -252,11 +286,17 @@ void nm_ip6_config_add_route (NMIP6Config *config, NMIP6Route *route) { NMIP6ConfigPrivate *priv; + GSList *iter; g_return_if_fail (NM_IS_IP6_CONFIG (config)); g_return_if_fail (route != NULL); priv = NM_IP6_CONFIG_GET_PRIVATE (config); + for (iter = priv->routes; iter; iter = g_slist_next (iter)) { + if (nm_ip6_route_compare ((NMIP6Route *) iter->data, route)) + return; + } + priv->routes = g_slist_append (priv->routes, nm_ip6_route_dup (route)); } @@ -598,7 +638,7 @@ nm_ip6_config_diff (NMIP6Config *a, NMIP6Config *b) NMIP6ConfigCompareFlags flags = NM_IP6_COMPARE_FLAG_NONE; if ((a && !b) || (b && !a)) - return 0xFFFFFFFF; + return NM_IP6_COMPARE_FLAG_ALL; if (!a && !b) return NM_IP6_COMPARE_FLAG_NONE; @@ -637,6 +677,65 @@ nm_ip6_config_diff (NMIP6Config *a, NMIP6Config *b) return flags; } +static inline void +hash_u32 (GChecksum *sum, guint32 n) +{ + g_checksum_update (sum, (const guint8 *) &n, sizeof (n)); +} + +static inline void +hash_in6addr (GChecksum *sum, const struct in6_addr *a) +{ + g_checksum_update (sum, (const guint8 *) a, sizeof (*a)); +} + +void +nm_ip6_config_hash (NMIP6Config *config, GChecksum *sum, gboolean dns_only) +{ + guint32 i; + const struct in6_addr *in6a; + const char *s; + + g_return_if_fail (config != NULL); + g_return_if_fail (sum != NULL); + + if (dns_only == FALSE) { + for (i = 0; i < nm_ip6_config_get_num_addresses (config); i++) { + NMIP6Address *a = nm_ip6_config_get_address (config, i); + + hash_in6addr (sum, nm_ip6_address_get_address (a)); + hash_u32 (sum, nm_ip6_address_get_prefix (a)); + hash_in6addr (sum, nm_ip6_address_get_gateway (a)); + } + + for (i = 0; i < nm_ip6_config_get_num_routes (config); i++) { + NMIP6Route *r = nm_ip6_config_get_route (config, i); + + hash_in6addr (sum, nm_ip6_route_get_dest (r)); + hash_u32 (sum, nm_ip6_route_get_prefix (r)); + hash_in6addr (sum, nm_ip6_route_get_next_hop (r)); + hash_u32 (sum, nm_ip6_route_get_metric (r)); + } + + in6a = nm_ip6_config_get_ptp_address (config); + if (in6a) + hash_in6addr (sum, in6a); + } + + for (i = 0; i < nm_ip6_config_get_num_nameservers (config); i++) + hash_in6addr (sum, nm_ip6_config_get_nameserver (config, i)); + + for (i = 0; i < nm_ip6_config_get_num_domains (config); i++) { + s = nm_ip6_config_get_domain (config, i); + g_checksum_update (sum, (const guint8 *) s, strlen (s)); + } + + for (i = 0; i < nm_ip6_config_get_num_searches (config); i++) { + s = nm_ip6_config_get_search (config, i); + g_checksum_update (sum, (const guint8 *) s, strlen (s)); + } +} + static void nm_ip6_config_init (NMIP6Config *config) { @@ -645,6 +744,7 @@ nm_ip6_config_init (NMIP6Config *config) priv->nameservers = g_array_new (FALSE, TRUE, sizeof (struct in6_addr)); priv->domains = g_ptr_array_sized_new (3); priv->searches = g_ptr_array_sized_new (3); + priv->gateway_set = FALSE; } static void diff --git a/src/nm-ip6-config.h b/src/nm-ip6-config.h index 1e75a121..2e8ae18f 100644 --- a/src/nm-ip6-config.h +++ b/src/nm-ip6-config.h @@ -67,6 +67,9 @@ const struct in6_addr *nm_ip6_config_get_nameserver (NMIP6Config *config, g guint32 nm_ip6_config_get_num_nameservers (NMIP6Config *config); void nm_ip6_config_reset_nameservers (NMIP6Config *config); +void nm_ip6_config_set_gateway (NMIP6Config *config, const struct in6_addr *gateway); +const struct in6_addr *nm_ip6_config_get_gateway (NMIP6Config *config); + void nm_ip6_config_take_route (NMIP6Config *config, NMIP6Route *route); void nm_ip6_config_add_route (NMIP6Config *config, NMIP6Route *route); void nm_ip6_config_replace_route (NMIP6Config *config, guint32 i, NMIP6Route *new_route); @@ -117,4 +120,6 @@ typedef enum { /* Returns a bitfield representing how the two IP6 configs differ */ NMIP6ConfigCompareFlags nm_ip6_config_diff (NMIP6Config *a, NMIP6Config *b); +void nm_ip6_config_hash (NMIP6Config *config, GChecksum *sum, gboolean dns_only); + #endif /* NM_IP6_CONFIG_H */ diff --git a/src/nm-manager.c b/src/nm-manager.c index 7c812bdc..f2816cd7 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -48,6 +48,7 @@ #include "nm-device-infiniband.h" #include "nm-device-bond.h" #include "nm-device-vlan.h" +#include "nm-device-adsl.h" #include "nm-system.h" #include "nm-properties-changed-signal.h" #include "nm-setting-bluetooth.h" @@ -127,18 +128,16 @@ static gboolean impl_manager_set_logging (NMManager *manager, #include "nm-manager-glue.h" static void bluez_manager_bdaddr_added_cb (NMBluezManager *bluez_mgr, - const char *bdaddr, - const char *name, - const char *object_path, - guint32 uuids, - NMManager *manager); + const char *bdaddr, + const char *name, + const char *object_path, + guint32 uuids, + NMManager *manager); static void bluez_manager_bdaddr_removed_cb (NMBluezManager *bluez_mgr, - const char *bdaddr, - const char *object_path, - gpointer user_data); - -static void bluez_manager_resync_devices (NMManager *self); + const char *bdaddr, + const char *object_path, + gpointer user_data); static void add_device (NMManager *self, NMDevice *device); @@ -356,19 +355,20 @@ manager_sleeping (NMManager *self) static void vpn_manager_connection_activated_cb (NMVPNManager *manager, NMVPNConnection *vpn, - NMVPNConnectionState state, - NMVPNConnectionStateReason reason, gpointer user_data) { + NMConnection *connection = nm_vpn_connection_get_connection (vpn); + /* Update timestamp for the VPN connection */ - nm_settings_connection_update_timestamp (NM_SETTINGS_CONNECTION (nm_vpn_connection_get_connection (vpn)), + nm_settings_connection_update_timestamp (NM_SETTINGS_CONNECTION (connection), (guint64) time (NULL), TRUE); } static void vpn_manager_connection_deactivated_cb (NMVPNManager *manager, NMVPNConnection *vpn, - NMVPNConnectionState state, + NMVPNConnectionState new_state, + NMVPNConnectionState old_state, NMVPNConnectionStateReason reason, gpointer user_data) { @@ -1160,8 +1160,6 @@ connection_added (NMSettings *settings, NMSettingsConnection *connection, NMManager *manager) { - bluez_manager_resync_devices (manager); - if (connection_needs_virtual_device (NM_CONNECTION (connection))) system_create_virtual_device (manager, NM_CONNECTION (connection)); } @@ -1171,8 +1169,6 @@ connection_changed (NMSettings *settings, NMSettingsConnection *connection, NMManager *manager) { - bluez_manager_resync_devices (manager); - /* FIXME: Some virtual devices may need to be updated in the future. */ } @@ -1181,8 +1177,6 @@ connection_removed (NMSettings *settings, NMSettingsConnection *connection, NMManager *manager) { - bluez_manager_resync_devices (manager); - /* * Do not delete existing virtual devices to keep connectivity up. * Virtual devices are reused when NetworkManager is restarted. @@ -1539,111 +1533,96 @@ manager_modem_enabled_changed (NMModem *device, gpointer user_data) nm_manager_rfkill_update (NM_MANAGER (user_data), RFKILL_TYPE_WWAN); } -static GError * -deactivate_disconnect_check_error (GError *auth_error, - NMAuthCallResult result, - const char *detail) -{ - if (auth_error) { - nm_log_dbg (LOGD_CORE, "%s request failed: %s", detail, auth_error->message); - return g_error_new (NM_MANAGER_ERROR, - NM_MANAGER_ERROR_PERMISSION_DENIED, - "%s request failed: %s", - detail, auth_error->message); - } else if (result != NM_AUTH_CALL_RESULT_YES) { - return g_error_new (NM_MANAGER_ERROR, - NM_MANAGER_ERROR_PERMISSION_DENIED, - "Not authorized to %s connections", - detail); - } - return NULL; -} - static void -disconnect_net_auth_done_cb (NMAuthChain *chain, - GError *auth_error, - DBusGMethodInvocation *context, - gpointer user_data) +device_auth_done_cb (NMAuthChain *chain, + GError *auth_error, + DBusGMethodInvocation *context, + gpointer user_data) { NMManager *self = NM_MANAGER (user_data); NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); GError *error = NULL; NMAuthCallResult result; NMDevice *device; + const char *permission; + NMDeviceAuthRequestFunc callback; priv->auth_chains = g_slist_remove (priv->auth_chains, chain); - result = GPOINTER_TO_UINT (nm_auth_chain_get_data (chain, NM_AUTH_PERMISSION_NETWORK_CONTROL)); - error = deactivate_disconnect_check_error (auth_error, result, "Disconnect"); - if (!error) { - device = nm_auth_chain_get_data (chain, "device"); - if (!nm_device_disconnect (device, &error)) - g_assert (error); + permission = nm_auth_chain_get_data (chain, "requested-permission"); + g_assert (permission); + callback = nm_auth_chain_get_data (chain, "callback"); + g_assert (callback); + device = nm_auth_chain_get_data (chain, "device"); + g_assert (device); + + result = GPOINTER_TO_UINT (nm_auth_chain_get_data (chain, permission)); + if (auth_error) { + /* translate the auth error into a manager permission denied error */ + nm_log_dbg (LOGD_CORE, "%s request failed: %s", permission, auth_error->message); + error = g_error_new (NM_MANAGER_ERROR, + NM_MANAGER_ERROR_PERMISSION_DENIED, + "%s request failed: %s", + permission, auth_error->message); + } else if (result != NM_AUTH_CALL_RESULT_YES) { + nm_log_dbg (LOGD_CORE, "%s request failed: not authorized", permission); + error = g_error_new (NM_MANAGER_ERROR, + NM_MANAGER_ERROR_PERMISSION_DENIED, + "%s request failed: not authorized", + permission); } - if (error) - dbus_g_method_return_error (context, error); - else - dbus_g_method_return (context); + g_assert (error || (result == NM_AUTH_CALL_RESULT_YES)); + + callback (device, + context, + error, + nm_auth_chain_get_data (chain, "user-data")); g_clear_error (&error); nm_auth_chain_unref (chain); } static void -manager_device_disconnect_request (NMDevice *device, - DBusGMethodInvocation *context, - NMManager *self) +device_auth_request_cb (NMDevice *device, + DBusGMethodInvocation *context, + const char *permission, + gboolean allow_interaction, + NMDeviceAuthRequestFunc callback, + gpointer user_data, + NMManager *self) { NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - NMActRequest *req; GError *error = NULL; gulong sender_uid = G_MAXULONG; char *error_desc = NULL; + NMAuthChain *chain; - req = nm_device_get_act_request (device); - if (!req) { - error = g_error_new_literal (NM_MANAGER_ERROR, - NM_MANAGER_ERROR_UNKNOWN_CONNECTION, - "This device is not active"); - dbus_g_method_return_error (context, error); - g_error_free (error); - return; - } - - /* Need to check the caller's permissions and stuff before we can - * deactivate the connection. - */ - if (!nm_auth_get_caller_uid (context, - priv->dbus_mgr, - &sender_uid, - &error_desc)) { + /* Get the caller's UID for the root check */ + if (!nm_auth_get_caller_uid (context, priv->dbus_mgr, &sender_uid, &error_desc)) { error = g_error_new_literal (NM_MANAGER_ERROR, NM_MANAGER_ERROR_PERMISSION_DENIED, error_desc); - dbus_g_method_return_error (context, error); + callback (device, context, error, user_data); g_error_free (error); g_free (error_desc); return; } /* Yay for root */ - if (0 == sender_uid) { - if (!nm_device_disconnect (device, &error)) { - dbus_g_method_return_error (context, error); - g_clear_error (&error); - } else - dbus_g_method_return (context); - } else { - NMAuthChain *chain; - - /* Otherwise validate the user request */ - chain = nm_auth_chain_new (context, NULL, disconnect_net_auth_done_cb, self); + if (0 == sender_uid) + callback (device, context, NULL, user_data); + else { + /* Otherwise validate the non-root request */ + chain = nm_auth_chain_new (context, NULL, device_auth_done_cb, self); g_assert (chain); priv->auth_chains = g_slist_append (priv->auth_chains, chain); nm_auth_chain_set_data (chain, "device", g_object_ref (device), g_object_unref); - nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_NETWORK_CONTROL, TRUE); + nm_auth_chain_set_data (chain, "requested-permission", g_strdup (permission), g_free); + nm_auth_chain_set_data (chain, "callback", callback, NULL); + nm_auth_chain_set_data (chain, "user-data", user_data, NULL); + nm_auth_chain_add_call (chain, permission, allow_interaction); } } @@ -1678,15 +1657,17 @@ add_device (NMManager *self, NMDevice *device) return; } + nm_device_set_connection_provider (device, NM_CONNECTION_PROVIDER (priv->settings)); + priv->devices = g_slist_append (priv->devices, device); g_signal_connect (device, "state-changed", G_CALLBACK (manager_device_state_changed), self); - g_signal_connect (device, NM_DEVICE_DISCONNECT_REQUEST, - G_CALLBACK (manager_device_disconnect_request), - self); + g_signal_connect (device, NM_DEVICE_AUTH_REQUEST, + G_CALLBACK (device_auth_request_cb), + self); if (devtype == NM_DEVICE_TYPE_WIFI) { /* Attach to the access-point-added signal so that the manager can fill @@ -1791,120 +1772,6 @@ add_device (NMManager *self, NMDevice *device) } } -static gboolean -bdaddr_matches_connection (NMSettingBluetooth *s_bt, const char *bdaddr) -{ - const GByteArray *arr; - gboolean ret = FALSE; - - arr = nm_setting_bluetooth_get_bdaddr (s_bt); - - if ( arr != NULL - && arr->len == ETH_ALEN) { - char *str; - - str = g_strdup_printf ("%02X:%02X:%02X:%02X:%02X:%02X", - arr->data[0], - arr->data[1], - arr->data[2], - arr->data[3], - arr->data[4], - arr->data[5]); - ret = g_str_equal (str, bdaddr); - g_free (str); - } - - return ret; -} - -static NMConnection * -bluez_manager_find_connection (NMManager *manager, - const char *bdaddr, - guint32 capabilities) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); - NMConnection *found = NULL; - GSList *connections, *l; - - connections = nm_settings_get_connections (priv->settings); - - for (l = connections; l != NULL; l = l->next) { - NMConnection *candidate = NM_CONNECTION (l->data); - NMSettingConnection *s_con; - NMSettingBluetooth *s_bt; - const char *con_type; - const char *bt_type; - - s_con = nm_connection_get_setting_connection (candidate); - g_assert (s_con); - con_type = nm_setting_connection_get_connection_type (s_con); - g_assert (con_type); - if (!g_str_equal (con_type, NM_SETTING_BLUETOOTH_SETTING_NAME)) - continue; - - s_bt = nm_connection_get_setting_bluetooth (candidate); - if (!s_bt) - continue; - - if (!bdaddr_matches_connection (s_bt, bdaddr)) - continue; - - bt_type = nm_setting_bluetooth_get_connection_type (s_bt); - if ( g_str_equal (bt_type, NM_SETTING_BLUETOOTH_TYPE_DUN) - && !(capabilities & NM_BT_CAPABILITY_DUN)) - continue; - if ( g_str_equal (bt_type, NM_SETTING_BLUETOOTH_TYPE_PANU) - && !(capabilities & NM_BT_CAPABILITY_NAP)) - continue; - - found = candidate; - break; - } - - g_slist_free (connections); - return found; -} - -static void -bluez_manager_resync_devices (NMManager *self) -{ - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - GSList *iter, *gone = NULL, *keep = NULL; - - /* Remove devices from the device list that don't have a corresponding connection */ - for (iter = priv->devices; iter; iter = g_slist_next (iter)) { - NMDevice *candidate = NM_DEVICE (iter->data); - guint32 uuids; - const char *bdaddr; - - if (nm_device_get_device_type (candidate) == NM_DEVICE_TYPE_BT) { - uuids = nm_device_bt_get_capabilities (NM_DEVICE_BT (candidate)); - bdaddr = nm_device_bt_get_hw_address (NM_DEVICE_BT (candidate)); - - if (bluez_manager_find_connection (self, bdaddr, uuids)) - keep = g_slist_prepend (keep, candidate); - else - gone = g_slist_prepend (gone, candidate); - } else - keep = g_slist_prepend (keep, candidate); - } - - /* Only touch the device list if anything actually changed */ - if (g_slist_length (gone)) { - g_slist_free (priv->devices); - priv->devices = keep; - - while (g_slist_length (gone)) - gone = remove_one_device (self, gone, NM_DEVICE (gone->data), FALSE); - } else { - g_slist_free (keep); - g_slist_free (gone); - } - - /* Now look for devices without connections */ - nm_bluez_manager_query_devices (priv->bluez_mgr); -} - static void bluez_manager_bdaddr_added_cb (NMBluezManager *bluez_mgr, const char *bdaddr, @@ -1926,12 +1793,6 @@ bluez_manager_bdaddr_added_cb (NMBluezManager *bluez_mgr, if (nm_manager_get_device_by_udi (manager, object_path)) return; - if (has_dun == FALSE && has_nap == FALSE) - return; - - if (!bluez_manager_find_connection (manager, bdaddr, capabilities)) - return; - device = nm_device_bt_new (object_path, bdaddr, name, capabilities, FALSE); if (device) { nm_log_info (LOGD_HW, "BT device %s (%s) added (%s%s%s)", @@ -1953,19 +1814,15 @@ bluez_manager_bdaddr_removed_cb (NMBluezManager *bluez_mgr, { NMManager *self = NM_MANAGER (user_data); NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - GSList *iter; + NMDevice *device; g_return_if_fail (bdaddr != NULL); g_return_if_fail (object_path != NULL); - for (iter = priv->devices; iter; iter = iter->next) { - NMDevice *device = NM_DEVICE (iter->data); - - if (!strcmp (nm_device_get_udi (device), object_path)) { - nm_log_info (LOGD_HW, "BT device %s removed", bdaddr); - priv->devices = remove_one_device (self, priv->devices, device, FALSE); - break; - } + device = nm_manager_get_device_by_udi (self, object_path); + if (device) { + nm_log_info (LOGD_HW, "BT device %s removed", bdaddr); + priv->devices = remove_one_device (self, priv->devices, device, FALSE); } } @@ -2155,6 +2012,12 @@ is_vlan (int ifindex) return (nm_system_get_iface_type (ifindex, NULL) == NM_IFACE_TYPE_VLAN); } +static gboolean +is_adsl (GUdevDevice *device) +{ + return (g_strcmp0 (g_udev_device_get_subsystem (device), "atm") == 0); +} + static void udev_device_added_cb (NMUdevManager *udev_mgr, GUdevDevice *udev_device, @@ -2174,14 +2037,22 @@ udev_device_added_cb (NMUdevManager *udev_mgr, g_return_if_fail (iface != NULL); g_return_if_fail (sysfs_path != NULL); g_return_if_fail (driver != NULL); - g_return_if_fail (ifindex >= 0); - device = find_device_by_ifindex (self, ifindex); - if (device) { - /* If it's a virtual device we may need to update its UDI */ - if (nm_system_get_iface_type (ifindex, iface) != NM_IFACE_TYPE_UNSPEC) - g_object_set (G_OBJECT (device), NM_DEVICE_UDI, sysfs_path, NULL); - return; + /* Most devices will have an ifindex here */ + if (ifindex > 0) { + device = find_device_by_ifindex (self, ifindex); + if (device) { + /* If it's a virtual device we may need to update its UDI */ + if (nm_system_get_iface_type (ifindex, iface) != NM_IFACE_TYPE_UNSPEC) + g_object_set (G_OBJECT (device), NM_DEVICE_UDI, sysfs_path, NULL); + return; + } + } else { + /* But ATM/ADSL devices don't */ + g_return_if_fail (is_adsl (udev_device)); + device = find_device_by_ip_iface (self, iface); + if (device) + return; } /* Try registered device factories */ @@ -2233,7 +2104,9 @@ udev_device_added_cb (NMUdevManager *udev_mgr, } } else nm_log_err (LOGD_HW, "(%s): failed to get VLAN parent ifindex", iface); - } else + } else if (is_adsl (udev_device)) + device = nm_device_adsl_new (sysfs_path, iface, driver); + else device = nm_device_ethernet_new (sysfs_path, iface, driver); } @@ -3098,8 +2971,18 @@ deactivate_net_auth_done_cb (NMAuthChain *chain, priv->auth_chains = g_slist_remove (priv->auth_chains, chain); result = GPOINTER_TO_UINT (nm_auth_chain_get_data (chain, NM_AUTH_PERMISSION_NETWORK_CONTROL)); - error = deactivate_disconnect_check_error (auth_error, result, "Deactivate"); - if (!error) { + if (auth_error) { + nm_log_dbg (LOGD_CORE, "Disconnect request failed: %s", auth_error->message); + error = g_error_new (NM_MANAGER_ERROR, + NM_MANAGER_ERROR_PERMISSION_DENIED, + "Deactivate request failed: %s", + auth_error->message); + } else if (result != NM_AUTH_CALL_RESULT_YES) { + error = g_error_new_literal (NM_MANAGER_ERROR, + NM_MANAGER_ERROR_PERMISSION_DENIED, + "Not authorized to deactivate connections"); + } else { + /* success; deactivation allowed */ active_path = nm_auth_chain_get_data (chain, "path"); if (!nm_manager_deactivate_connection (self, active_path, @@ -3246,15 +3129,13 @@ do_sleep_wake (NMManager *self) nm_device_set_enabled (device, enabled); } - nm_device_clear_autoconnect_inhibit (device); + g_object_set (G_OBJECT (device), NM_DEVICE_AUTOCONNECT, TRUE, NULL); + if (nm_device_spec_match_list (device, unmanaged_specs)) nm_device_set_managed (device, FALSE, NM_DEVICE_STATE_REASON_NOW_UNMANAGED); else nm_device_set_managed (device, TRUE, NM_DEVICE_STATE_REASON_NOW_MANAGED); } - - /* Ask for new bluetooth devices */ - bluez_manager_resync_devices (self); } nm_manager_update_state (self); @@ -3671,7 +3552,7 @@ nm_manager_start (NMManager *self) system_hostname_changed_cb (priv->settings, NULL, self); nm_udev_manager_query_devices (priv->udev_mgr); - bluez_manager_resync_devices (self); + nm_bluez_manager_query_devices (priv->bluez_mgr); /* Query devices again to ensure that we catch all virtual interfaces (like * VLANs) that require a parent. If during the first pass the VLAN @@ -3766,7 +3647,8 @@ firmware_dir_changed (GFileMonitor *monitor, } } -#define PERM_DENIED_ERROR "org.freedesktop.NetworkManager.PermissionDenied" +#define NM_PERM_DENIED_ERROR "org.freedesktop.NetworkManager.PermissionDenied" +#define DEV_PERM_DENIED_ERROR "org.freedesktop.NetworkManager.Device.PermissionDenied" static void prop_set_auth_done_cb (NMAuthChain *chain, @@ -3779,9 +3661,13 @@ prop_set_auth_done_cb (NMAuthChain *chain, DBusGConnection *bus; DBusConnection *dbus_connection; NMAuthCallResult result; - DBusMessage *reply, *request; - const char *permission, *prop; + DBusMessage *reply = NULL, *request; + GError *ret_error; + const char *permission, *prop, *objpath; gboolean set_enabled = TRUE; + gboolean is_device = FALSE; + size_t objpath_len; + size_t devpath_len; priv->auth_chains = g_slist_remove (priv->auth_chains, chain); @@ -3789,9 +3675,16 @@ prop_set_auth_done_cb (NMAuthChain *chain, permission = nm_auth_chain_get_data (chain, "permission"); prop = nm_auth_chain_get_data (chain, "prop"); set_enabled = GPOINTER_TO_UINT (nm_auth_chain_get_data (chain, "enabled")); + objpath = nm_auth_chain_get_data (chain, "objectpath"); + + objpath_len = strlen (objpath); + devpath_len = strlen (NM_DBUS_PATH "/Devices"); + if ( strncmp (objpath, NM_DBUS_PATH "/Devices", devpath_len) == 0 + && objpath_len > devpath_len) + is_device = TRUE; if (error) { - reply = dbus_message_new_error (request, PERM_DENIED_ERROR, + reply = dbus_message_new_error (request, is_device ? DEV_PERM_DENIED_ERROR : NM_PERM_DENIED_ERROR, "Not authorized to perform this operation"); } else { /* Caller has had a chance to obtain authorization, so we only need to @@ -3799,11 +3692,27 @@ prop_set_auth_done_cb (NMAuthChain *chain, */ result = GPOINTER_TO_UINT (nm_auth_chain_get_data (chain, permission)); if (result != NM_AUTH_CALL_RESULT_YES) { - reply = dbus_message_new_error (request, PERM_DENIED_ERROR, - "Not authorized to perform this operation"); + reply = dbus_message_new_error (request, is_device ? DEV_PERM_DENIED_ERROR : NM_PERM_DENIED_ERROR, + "Not authorized to perform this operation"); } else { - g_object_set (self, prop, set_enabled, NULL); - reply = dbus_message_new_method_return (request); + if (is_device) { + /* Find the device */ + NMDevice *device = nm_manager_get_device_by_path (self, objpath); + if (device) { + g_object_set (device, prop, set_enabled, NULL); + reply = dbus_message_new_method_return (request); + } + else { + ret_error = g_error_new_literal (NM_MANAGER_ERROR, + NM_MANAGER_ERROR_UNKNOWN_DEVICE, + "Can't find device for this operation"); + dbus_g_method_return_error (context, ret_error); + g_error_free (ret_error); + } + } else { + g_object_set (self, prop, set_enabled, NULL); + reply = dbus_message_new_method_return (request); + } } } @@ -3831,6 +3740,7 @@ prop_filter (DBusConnection *connection, const char *propiface = NULL; const char *propname = NULL; const char *sender = NULL; + const char *objpath = NULL; const char *glib_propname = NULL, *permission = NULL; DBusError dbus_error; gulong uid = G_MAXULONG; @@ -3852,7 +3762,7 @@ prop_filter (DBusConnection *connection, if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; dbus_message_iter_get_basic (&iter, &propiface); - if (!propiface || strcmp (propiface, NM_DBUS_INTERFACE)) + if (!propiface || (strcmp (propiface, NM_DBUS_INTERFACE) && strcmp (propiface, NM_DBUS_INTERFACE_DEVICE))) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; dbus_message_iter_next (&iter); @@ -3871,6 +3781,9 @@ prop_filter (DBusConnection *connection, } else if (!strcmp (propname, "WimaxEnabled")) { glib_propname = NM_MANAGER_WIMAX_ENABLED; permission = NM_AUTH_PERMISSION_ENABLE_DISABLE_WIMAX; + } else if (!strcmp (propname, "Autoconnect")) { + glib_propname = NM_DEVICE_AUTOCONNECT; + permission = NM_AUTH_PERMISSION_NETWORK_CONTROL; } else return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; @@ -3884,15 +3797,22 @@ prop_filter (DBusConnection *connection, sender = dbus_message_get_sender (message); if (!sender) { - reply = dbus_message_new_error (message, PERM_DENIED_ERROR, + reply = dbus_message_new_error (message, NM_PERM_DENIED_ERROR, "Could not determine D-Bus requestor"); goto out; } + objpath = dbus_message_get_path (message); + if (!objpath) { + reply = dbus_message_new_error (message, NM_PERM_DENIED_ERROR, + "Could not determine D-Bus object path"); + goto out; + } + dbus_error_init (&dbus_error); uid = dbus_bus_get_unix_user (connection, sender, &dbus_error); if (dbus_error_is_set (&dbus_error)) { - reply = dbus_message_new_error (message, PERM_DENIED_ERROR, + reply = dbus_message_new_error (message, NM_PERM_DENIED_ERROR, "Could not determine the user ID of the requestor"); dbus_error_free (&dbus_error); goto out; @@ -3907,6 +3827,7 @@ prop_filter (DBusConnection *connection, nm_auth_chain_set_data (chain, "permission", g_strdup (permission), g_free); nm_auth_chain_set_data (chain, "enabled", GUINT_TO_POINTER (set_enabled), NULL); nm_auth_chain_set_data (chain, "message", dbus_message_ref (message), (GDestroyNotify) dbus_message_unref); + nm_auth_chain_set_data (chain, "objectpath", g_strdup (objpath), g_free); nm_auth_chain_add_call (chain, permission, TRUE); } else { /* Yay for root */ @@ -4013,17 +3934,17 @@ nm_manager_new (NMSettings *settings, G_CALLBACK (udev_manager_rfkill_changed_cb), singleton); - priv->bluez_mgr = nm_bluez_manager_get (); + priv->bluez_mgr = nm_bluez_manager_get (NM_CONNECTION_PROVIDER (priv->settings)); g_signal_connect (priv->bluez_mgr, - "bdaddr-added", - G_CALLBACK (bluez_manager_bdaddr_added_cb), - singleton); + NM_BLUEZ_MANAGER_BDADDR_ADDED, + G_CALLBACK (bluez_manager_bdaddr_added_cb), + singleton); g_signal_connect (priv->bluez_mgr, - "bdaddr-removed", - G_CALLBACK (bluez_manager_bdaddr_removed_cb), - singleton); + NM_BLUEZ_MANAGER_BDADDR_REMOVED, + G_CALLBACK (bluez_manager_bdaddr_removed_cb), + singleton); return singleton; } diff --git a/src/nm-netlink-compat.c b/src/nm-netlink-compat.c index 974121ad..e30ec37a 100644 --- a/src/nm-netlink-compat.c +++ b/src/nm-netlink-compat.c @@ -121,7 +121,7 @@ rtnl_link_vlan_get_id (struct rtnl_link *l) if ((if_name = rtnl_link_get_name (l)) == NULL) return -1; - strcpy (if_request.device1, if_name); + g_strlcpy (if_request.device1, if_name, sizeof (if_request.device1)); if ((fd = socket (AF_INET, SOCK_STREAM, 0)) < 0) { nm_log_err (LOGD_DEVICE, "couldn't open control socket."); @@ -158,7 +158,7 @@ rtnl_link_vlan_set_flags (struct rtnl_link *l, unsigned int flags) } memset (&if_request, 0, sizeof (struct vlan_ioctl_args)); - strcpy (if_request.device1, if_name); + g_strlcpy (if_request.device1, if_name, sizeof (if_request.device1)); if_request.cmd = SET_VLAN_FLAG_CMD; if_request.u.flag = flags; @@ -190,7 +190,7 @@ rtnl_link_vlan_set_ingress_map (struct rtnl_link *l, int from, uint32_t to) } memset (&if_request, 0, sizeof (struct vlan_ioctl_args)); - strcpy (if_request.device1, if_name); + g_strlcpy (if_request.device1, if_name, sizeof (if_request.device1)); if_request.cmd = SET_VLAN_INGRESS_PRIORITY_CMD; if_request.u.skb_priority = from; if_request.vlan_qos = to; @@ -223,7 +223,7 @@ rtnl_link_vlan_set_egress_map (struct rtnl_link *l, int from, uint32_t to) } memset (&if_request, 0, sizeof (struct vlan_ioctl_args)); - strcpy (if_request.device1, if_name); + g_strlcpy (if_request.device1, if_name, sizeof (if_request.device1)); if_request.cmd = SET_VLAN_EGRESS_PRIORITY_CMD; if_request.u.skb_priority = from; if_request.vlan_qos = to; diff --git a/src/nm-netlink-utils.c b/src/nm-netlink-utils.c index 99aebcb8..be8c17ed 100644 --- a/src/nm-netlink-utils.c +++ b/src/nm-netlink-utils.c @@ -136,7 +136,7 @@ nm_netlink_route_new (int ifindex, route = rtnl_route_alloc (); g_return_val_if_fail (route != NULL, NULL); - if (ifindex >= 0) + if (ifindex > 0) rtnl_route_set_oif (route, ifindex); if (family != AF_UNSPEC) rtnl_route_set_family (route, family); @@ -385,7 +385,7 @@ foreach_route_cb (struct nl_object *object, void *user_data) if (nm_logging_level_enabled (LOGL_DEBUG)) dump_route (route); - if ( info->ifindex >= 0 + if ( info->ifindex > 0 && rtnl_route_get_oif (route) != info->ifindex) return; diff --git a/src/nm-policy.c b/src/nm-policy.c index babf1649..57b1ee36 100644 --- a/src/nm-policy.c +++ b/src/nm-policy.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) 2004 - 2011 Red Hat, Inc. + * Copyright (C) 2004 - 2012 Red Hat, Inc. * Copyright (C) 2007 - 2008 Novell, Inc. */ @@ -81,7 +81,7 @@ static void schedule_activate_all (NMPolicy *policy); static NMDevice * -get_best_ip4_device (NMManager *manager, NMActRequest **out_req) +get_best_ip4_device (NMManager *manager) { GSList *devices, *iter; NMDevice *best = NULL; @@ -89,8 +89,6 @@ get_best_ip4_device (NMManager *manager, NMActRequest **out_req) g_return_val_if_fail (manager != NULL, NULL); g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - g_return_val_if_fail (out_req != NULL, NULL); - g_return_val_if_fail (*out_req == NULL, NULL); devices = nm_manager_get_devices (manager); for (iter = devices; iter; iter = g_slist_next (iter)) { @@ -148,7 +146,6 @@ get_best_ip4_device (NMManager *manager, NMActRequest **out_req) if (prio > 0 && prio < best_prio) { best = dev; best_prio = prio; - *out_req = req; } } @@ -156,7 +153,7 @@ get_best_ip4_device (NMManager *manager, NMActRequest **out_req) } static NMDevice * -get_best_ip6_device (NMManager *manager, NMActRequest **out_req) +get_best_ip6_device (NMManager *manager) { GSList *devices, *iter; NMDevice *best = NULL; @@ -164,8 +161,6 @@ get_best_ip6_device (NMManager *manager, NMActRequest **out_req) g_return_val_if_fail (manager != NULL, NULL); g_return_val_if_fail (NM_IS_MANAGER (manager), NULL); - g_return_val_if_fail (out_req != NULL, NULL); - g_return_val_if_fail (*out_req == NULL, NULL); devices = nm_manager_get_devices (manager); for (iter = devices; iter; iter = g_slist_next (iter)) { @@ -222,7 +217,6 @@ get_best_ip6_device (NMManager *manager, NMActRequest **out_req) if (prio > 0 && prio < best_prio) { best = dev; best_prio = prio; - *out_req = req; } } @@ -295,8 +289,6 @@ static void update_system_hostname (NMPolicy *policy, NMDevice *best4, NMDevice *best6) { char *configured_hostname = NULL; - NMActRequest *best_req4 = NULL; - NMActRequest *best_req6 = NULL; const char *dhcp_hostname, *p; g_return_if_fail (policy != NULL); @@ -325,9 +317,9 @@ update_system_hostname (NMPolicy *policy, NMDevice *best4, NMDevice *best6) /* Try automatically determined hostname from the best device's IP config */ if (!best4) - best4 = get_best_ip4_device (policy->manager, &best_req4); + best4 = get_best_ip4_device (policy->manager); if (!best6) - best6 = get_best_ip6_device (policy->manager, &best_req6); + best6 = get_best_ip6_device (policy->manager); if (!best4 && !best6) { /* No best device; fall back to original hostname or if there wasn't @@ -433,270 +425,370 @@ update_system_hostname (NMPolicy *policy, NMDevice *best4, NMDevice *best6) } static void -update_ip4_routing_and_dns (NMPolicy *policy, gboolean force_update) +update_default_ac (NMPolicy *policy, + NMActiveConnection *best, + void (*set_active_func)(NMActiveConnection*, gboolean)) { - NMDnsIPConfigType dns_type = NM_DNS_IP_CONFIG_TYPE_BEST_DEVICE; - NMDevice *best = NULL; - NMActRequest *best_req = NULL; - NMDnsManager *dns_mgr; - GSList *devices = NULL, *iter, *vpns; - NMIP4Config *ip4_config = NULL; - NMIP4Address *addr; - const char *ip_iface = NULL; - NMConnection *connection = NULL; - NMSettingConnection *s_con = NULL; - const char *connection_id; - int ip_ifindex = 0; + GSList *devices, *vpns, *iter; + NMActRequest *req; - best = get_best_ip4_device (policy->manager, &best_req); - if (!best) - goto out; - if (!force_update && (best == policy->default_device4)) - goto out; + /* Clear the 'default[6]' flag on all active connections that aren't the new + * default active connection. We'll set the new default after; this ensures + * we don't ever have two marked 'default[6]' simultaneously. + */ + devices = nm_manager_get_devices (policy->manager); + for (iter = devices; iter; iter = g_slist_next (iter)) { + req = nm_device_get_act_request (NM_DEVICE (iter->data)); + if (req && (NM_ACTIVE_CONNECTION (req) != best)) + set_active_func (NM_ACTIVE_CONNECTION (req), FALSE); + } + + vpns = nm_vpn_manager_get_active_connections (policy->vpn_manager); + for (iter = vpns; iter; iter = g_slist_next (iter)) { + if (NM_ACTIVE_CONNECTION (iter->data) != best) + set_active_func (NM_ACTIVE_CONNECTION (iter->data), FALSE); + } + g_slist_free (vpns); + + /* Mark new default active connection */ + if (best) + set_active_func (best, TRUE); +} + +static NMIP4Config * +get_best_ip4_config (NMPolicy *policy, + gboolean ignore_never_default, + const char **out_ip_iface, + int *out_ip_ifindex, + NMActiveConnection **out_ac, + NMDevice **out_device, + NMVPNConnection **out_vpn) +{ + GSList *vpns, *iter; + NMDevice *device; + NMActRequest *req = NULL; + NMIP4Config *ip4_config = NULL; /* If a VPN connection is active, it is preferred */ vpns = nm_vpn_manager_get_active_connections (policy->vpn_manager); for (iter = vpns; iter; iter = g_slist_next (iter)) { NMVPNConnection *candidate = NM_VPN_CONNECTION (iter->data); - NMConnection *vpn_connection; + NMIP4Config *vpn_ip4; + NMConnection *tmp; NMSettingIP4Config *s_ip4; - gboolean can_default = TRUE; NMVPNConnectionState vpn_state; - /* If it's marked 'never-default', don't make it default */ - vpn_connection = nm_vpn_connection_get_connection (candidate); - g_assert (vpn_connection); - - /* Check the active IP4 config from the VPN service daemon */ - ip4_config = nm_vpn_connection_get_ip4_config (candidate); - if (ip4_config && nm_ip4_config_get_never_default (ip4_config)) - can_default = FALSE; - - /* Check the user's preference from the NMConnection */ - s_ip4 = nm_connection_get_setting_ip4_config (vpn_connection); - if (s_ip4 && nm_setting_ip4_config_get_never_default (s_ip4)) - can_default = FALSE; + tmp = nm_vpn_connection_get_connection (candidate); + g_assert (tmp); vpn_state = nm_vpn_connection_get_vpn_state (candidate); - if (can_default && (vpn_state == NM_VPN_CONNECTION_STATE_ACTIVATED)) { - NMIP4Config *parent_ip4; - NMDevice *parent; - - ip_iface = nm_vpn_connection_get_ip_iface (candidate); - ip_ifindex = nm_vpn_connection_get_ip_ifindex (candidate); - connection = nm_vpn_connection_get_connection (candidate); - addr = nm_ip4_config_get_address (ip4_config, 0); + if (vpn_state != NM_VPN_CONNECTION_STATE_ACTIVATED) + continue; - parent = nm_vpn_connection_get_parent_device (candidate); - parent_ip4 = nm_device_get_ip4_config (parent); + vpn_ip4 = nm_vpn_connection_get_ip4_config (candidate); + if (!vpn_ip4) + continue; - nm_system_replace_default_ip4_route_vpn (ip_ifindex, - nm_ip4_address_get_gateway (addr), - nm_vpn_connection_get_ip4_internal_gateway (candidate), - nm_ip4_config_get_mss (ip4_config), - nm_device_get_ip_ifindex (parent), - nm_ip4_config_get_mss (parent_ip4)); + if (ignore_never_default == FALSE) { + /* Check for a VPN-provided config never-default */ + if (nm_ip4_config_get_never_default (vpn_ip4)) + continue; - dns_type = NM_DNS_IP_CONFIG_TYPE_VPN; + /* Check the user's preference from the NMConnection */ + s_ip4 = nm_connection_get_setting_ip4_config (tmp); + if (s_ip4 && nm_setting_ip4_config_get_never_default (s_ip4)) + continue; } + + ip4_config = vpn_ip4; + if (out_vpn) + *out_vpn = candidate; + if (out_ac) + *out_ac = NM_ACTIVE_CONNECTION (candidate); + if (out_ip_iface) + *out_ip_iface = nm_vpn_connection_get_ip_iface (candidate); + if (out_ip_ifindex) + *out_ip_ifindex = nm_vpn_connection_get_ip_ifindex (candidate); + break; } g_slist_free (vpns); - /* The best device gets the default route if a VPN connection didn't */ - if (!ip_iface || !ip4_config) { - connection = nm_act_request_get_connection (best_req); - ip_iface = nm_device_get_ip_iface (best); - ip_ifindex = nm_device_get_ip_ifindex (best); - ip4_config = nm_device_get_ip4_config (best); - g_assert (ip4_config); - addr = nm_ip4_config_get_address (ip4_config, 0); - - nm_system_replace_default_ip4_route (ip_ifindex, - nm_ip4_address_get_gateway (addr), - nm_ip4_config_get_mss (ip4_config)); - dns_type = NM_DNS_IP_CONFIG_TYPE_BEST_DEVICE; + /* If no VPN connections, we use the best device instead */ + if (!ip4_config) { + device = get_best_ip4_device (policy->manager); + if (device) { + ip4_config = nm_device_get_ip4_config (device); + g_assert (ip4_config); + req = nm_device_get_act_request (device); + g_assert (req); + + if (out_device) + *out_device = device; + if (out_ac) + *out_ac = NM_ACTIVE_CONNECTION (req); + if (out_ip_iface) + *out_ip_iface = nm_device_get_ip_iface (device); + if (out_ip_ifindex) + *out_ip_ifindex = nm_device_get_ip_ifindex (device); + } } - if (!ip_iface || !ip4_config) { - nm_log_warn (LOGD_CORE, "couldn't determine IP interface (%p) or IPv4 config (%p)!", - ip_iface, ip4_config); - goto out; - } + return ip4_config; +} - /* Update the default active connection. Only mark the new default - * active connection after setting default = FALSE on all other connections - * first. The order is important, we don't want two connections marked - * default at the same time ever. - */ - devices = nm_manager_get_devices (policy->manager); - for (iter = devices; iter; iter = g_slist_next (iter)) { - NMDevice *dev = NM_DEVICE (iter->data); - NMActRequest *req; +static void +update_ip4_dns (NMPolicy *policy, NMDnsManager *dns_mgr) +{ + NMIP4Config *ip4_config; + const char *ip_iface = NULL; + NMVPNConnection *vpn = NULL; + NMDnsIPConfigType dns_type = NM_DNS_IP_CONFIG_TYPE_BEST_DEVICE; - req = nm_device_get_act_request (dev); - if (req && (req != best_req)) - nm_active_connection_set_default (NM_ACTIVE_CONNECTION (req), FALSE); + ip4_config = get_best_ip4_config (policy, TRUE, &ip_iface, NULL, NULL, NULL, &vpn); + if (ip4_config) { + if (vpn) + dns_type = NM_DNS_IP_CONFIG_TYPE_VPN; + + /* Tell the DNS manager this config is preferred by re-adding it with + * a different IP config type. + */ + nm_dns_manager_add_ip4_config (dns_mgr, ip_iface, ip4_config, dns_type); } +} - dns_mgr = nm_dns_manager_get (NULL); - nm_dns_manager_add_ip4_config (dns_mgr, ip_iface, ip4_config, dns_type); - g_object_unref (dns_mgr); +static void +update_ip4_routing (NMPolicy *policy, gboolean force_update) +{ + NMDevice *best = NULL, *parent; + NMConnection *connection = NULL; + NMVPNConnection *vpn = NULL; + NMActiveConnection *best_ac = NULL; + NMIP4Config *ip4_config = NULL, *parent_ip4; + NMIP4Address *addr; + const char *ip_iface = NULL; + int ip_ifindex = -1; + guint32 parent_mss; - /* Now set new default active connection _after_ updating DNS info, so that - * if the connection is shared dnsmasq picks up the right stuff. + /* Note that we might have an IPv4 VPN tunneled over an IPv6-only device, + * so we can get (vpn != NULL && best == NULL). */ - if (best_req) - nm_active_connection_set_default (NM_ACTIVE_CONNECTION (best_req), TRUE); + ip4_config = get_best_ip4_config (policy, FALSE, &ip_iface, &ip_ifindex, &best_ac, &best, &vpn); + if (!ip4_config) { + policy->default_device4 = NULL; + return; + } + g_assert ((best || vpn) && best_ac); - if (connection) - s_con = nm_connection_get_setting_connection (connection); + if (!force_update && best && (best == policy->default_device4)) + return; - connection_id = s_con ? nm_setting_connection_get_id (s_con) : NULL; - if (connection_id) { - nm_log_info (LOGD_CORE, "Policy set '%s' (%s) as default for IPv4 routing and DNS.", connection_id, ip_iface); + /* We set the default route to the gateway of the first IP address of the config */ + addr = nm_ip4_config_get_address (ip4_config, 0); + g_assert (addr); + + if (vpn) { + parent = nm_vpn_connection_get_parent_device (vpn); + parent_ip4 = nm_device_get_ip4_config (parent); + parent_mss = parent_ip4 ? nm_ip4_config_get_mss (parent_ip4) : 0; + + nm_system_replace_default_ip4_route_vpn (ip_ifindex, + nm_ip4_address_get_gateway (addr), + nm_vpn_connection_get_ip4_internal_gateway (vpn), + nm_ip4_config_get_mss (ip4_config), + nm_device_get_ip_ifindex (parent), + parent_mss); } else { - nm_log_info (LOGD_CORE, "Policy set (%s) as default for IPv4 routing and DNS.", ip_iface); + nm_system_replace_default_ip4_route (ip_ifindex, + nm_ip4_address_get_gateway (addr), + nm_ip4_config_get_mss (ip4_config)); } -out: + update_default_ac (policy, best_ac, nm_active_connection_set_default); policy->default_device4 = best; + + connection = nm_active_connection_get_connection (best_ac); + nm_log_info (LOGD_CORE, "Policy set '%s' (%s) as default for IPv4 routing and DNS.", + nm_connection_get_id (connection), ip_iface); } -static void -update_ip6_routing_and_dns (NMPolicy *policy, gboolean force_update) +static NMIP6Config * +get_best_ip6_config (NMPolicy *policy, + gboolean ignore_never_default, + const char **out_ip_iface, + int *out_ip_ifindex, + NMActiveConnection **out_ac, + NMDevice **out_device, + NMVPNConnection **out_vpn) { - NMDnsIPConfigType dns_type = NM_DNS_IP_CONFIG_TYPE_BEST_DEVICE; - NMDevice *best = NULL; - NMActRequest *best_req = NULL; - NMDnsManager *dns_mgr; - GSList *devices = NULL, *iter; -#if 0 - GSList *vpns; -#endif + GSList *vpns, *iter; + NMDevice *device; + NMActRequest *req = NULL; NMIP6Config *ip6_config = NULL; - NMIP6Address *addr; - const char *ip_iface = NULL; - int ip_ifindex = -1; - NMConnection *connection = NULL; - NMSettingConnection *s_con = NULL; - const char *connection_id; - best = get_best_ip6_device (policy->manager, &best_req); - if (!best) - goto out; - if (!force_update && (best == policy->default_device6)) - goto out; - -#if 0 /* If a VPN connection is active, it is preferred */ vpns = nm_vpn_manager_get_active_connections (policy->vpn_manager); for (iter = vpns; iter; iter = g_slist_next (iter)) { NMVPNConnection *candidate = NM_VPN_CONNECTION (iter->data); - NMConnection *vpn_connection; + NMIP6Config *vpn_ip6; + NMConnection *tmp; NMSettingIP6Config *s_ip6; - gboolean can_default = TRUE; NMVPNConnectionState vpn_state; - /* If it's marked 'never-default', don't make it default */ - vpn_connection = nm_vpn_connection_get_connection (candidate); - g_assert (vpn_connection); - s_ip6 = nm_connection_get_setting_ip6_config (vpn_connection); - if (s_ip6 && nm_setting_ip6_config_get_never_default (s_ip6)) - can_default = FALSE; + tmp = nm_vpn_connection_get_connection (candidate); + g_assert (tmp); vpn_state = nm_vpn_connection_get_vpn_state (candidate); - if (can_default && (vpn_state == NM_VPN_CONNECTION_STATE_ACTIVATED)) { - NMIP6Config *parent_ip6; - NMDevice *parent; - - ip_iface = nm_vpn_connection_get_ip_iface (candidate); - connection = nm_vpn_connection_get_connection (candidate); - ip6_config = nm_vpn_connection_get_ip6_config (candidate); - addr = nm_ip6_config_get_address (ip6_config, 0); + if (vpn_state != NM_VPN_CONNECTION_STATE_ACTIVATED) + continue; - parent = nm_vpn_connection_get_parent_device (candidate); - parent_ip6 = nm_device_get_ip6_config (parent); + vpn_ip6 = nm_vpn_connection_get_ip6_config (candidate); + if (!vpn_ip6) + continue; - nm_system_replace_default_ip6_route_vpn (ip_iface, - nm_ip6_address_get_gateway (addr), - nm_vpn_connection_get_ip4_internal_gateway (candidate), - nm_ip6_config_get_mss (ip4_config), - nm_device_get_ip_iface (parent), - nm_ip6_config_get_mss (parent_ip4)); + if (ignore_never_default == FALSE) { + /* Check for a VPN-provided config never-default */ + if (nm_ip6_config_get_never_default (vpn_ip6)) + continue; - dns_type = NM_DNS_IP_CONFIG_TYPE_VPN; + /* Check the user's preference from the NMConnection */ + s_ip6 = nm_connection_get_setting_ip6_config (tmp); + if (s_ip6 && nm_setting_ip6_config_get_never_default (s_ip6)) + continue; } + + ip6_config = vpn_ip6; + if (out_vpn) + *out_vpn = candidate; + if (out_ac) + *out_ac = NM_ACTIVE_CONNECTION (candidate); + if (out_ip_iface) + *out_ip_iface = nm_vpn_connection_get_ip_iface (candidate); + if (out_ip_ifindex) + *out_ip_ifindex = nm_vpn_connection_get_ip_ifindex (candidate); + break; } g_slist_free (vpns); -#endif - /* The best device gets the default route if a VPN connection didn't */ - if (!ip_iface || !ip6_config) { - connection = nm_act_request_get_connection (best_req); - ip_iface = nm_device_get_ip_iface (best); - ip_ifindex = nm_device_get_ip_ifindex (best); - ip6_config = nm_device_get_ip6_config (best); - g_assert (ip6_config); - addr = nm_ip6_config_get_address (ip6_config, 0); - - nm_system_replace_default_ip6_route (ip_ifindex, nm_ip6_address_get_gateway (addr)); - - dns_type = NM_DNS_IP_CONFIG_TYPE_BEST_DEVICE; + /* If no VPN connections, we use the best device instead */ + if (!ip6_config) { + device = get_best_ip6_device (policy->manager); + if (device) { + req = nm_device_get_act_request (device); + g_assert (req); + ip6_config = nm_device_get_ip6_config (device); + g_assert (ip6_config); + + if (out_device) + *out_device = device; + if (out_ac) + *out_ac = NM_ACTIVE_CONNECTION (req); + if (out_ip_iface) + *out_ip_iface = nm_device_get_ip_iface (device); + if (out_ip_ifindex) + *out_ip_ifindex = nm_device_get_ip_ifindex (device); + } } - if (!ip_iface || !ip6_config) { - nm_log_warn (LOGD_CORE, "couldn't determine IP interface (%p) or IPv6 config (%p)!", - ip_iface, ip6_config); - goto out; - } + return ip6_config; +} - /* Update the default active connection. Only mark the new default - * active connection after setting default = FALSE on all other connections - * first. The order is important, we don't want two connections marked - * default at the same time ever. - */ - devices = nm_manager_get_devices (policy->manager); - for (iter = devices; iter; iter = g_slist_next (iter)) { - NMDevice *dev = NM_DEVICE (iter->data); - NMActRequest *req; +static void +update_ip6_dns (NMPolicy *policy, NMDnsManager *dns_mgr) +{ + NMIP6Config *ip6_config; + const char *ip_iface = NULL; + NMVPNConnection *vpn = NULL; + NMDnsIPConfigType dns_type = NM_DNS_IP_CONFIG_TYPE_BEST_DEVICE; - req = nm_device_get_act_request (dev); - if (req && (req != best_req)) - nm_active_connection_set_default6 (NM_ACTIVE_CONNECTION (req), FALSE); + ip6_config = get_best_ip6_config (policy, TRUE, &ip_iface, NULL, NULL, NULL, &vpn); + if (ip6_config) { + if (vpn) + dns_type = NM_DNS_IP_CONFIG_TYPE_VPN; + + /* Tell the DNS manager this config is preferred by re-adding it with + * a different IP config type. + */ + nm_dns_manager_add_ip6_config (dns_mgr, ip_iface, ip6_config, dns_type); } +} - dns_mgr = nm_dns_manager_get (NULL); - nm_dns_manager_add_ip6_config (dns_mgr, ip_iface, ip6_config, dns_type); - g_object_unref (dns_mgr); +static void +update_ip6_routing (NMPolicy *policy, gboolean force_update) +{ + NMDevice *best = NULL, *parent; + NMConnection *connection = NULL; + NMVPNConnection *vpn = NULL; + NMActiveConnection *best_ac = NULL; + NMIP6Config *ip6_config = NULL, *parent_ip6; + NMIP6Address *addr; + const char *ip_iface = NULL; + int ip_ifindex = -1; + guint32 parent_mss; - /* Now set new default active connection _after_ updating DNS info, so that - * if the connection is shared dnsmasq picks up the right stuff. + /* Note that we might have an IPv6 VPN tunneled over an IPv4-only device, + * so we can get (vpn != NULL && best == NULL). */ - if (best_req) - nm_active_connection_set_default6 (NM_ACTIVE_CONNECTION (best_req), TRUE); + ip6_config = get_best_ip6_config (policy, FALSE, &ip_iface, &ip_ifindex, &best_ac, &best, &vpn); + if (!ip6_config) { + policy->default_device6 = NULL; + return; + } + g_assert ((best || vpn) && best_ac); - if (connection) - s_con = nm_connection_get_setting_connection (connection); + if (!force_update && best && (best == policy->default_device6)) + return; - connection_id = s_con ? nm_setting_connection_get_id (s_con) : NULL; - if (connection_id) { - nm_log_info (LOGD_CORE, "Policy set '%s' (%s) as default for IPv6 routing and DNS.", connection_id, ip_iface); + /* We set the default route to the gateway of the first IP address of the config */ + addr = nm_ip6_config_get_address (ip6_config, 0); + g_assert (addr); + + if (vpn) { + parent = nm_vpn_connection_get_parent_device (vpn); + parent_ip6 = nm_device_get_ip6_config (parent); + parent_mss = parent_ip6 ? nm_ip6_config_get_mss (parent_ip6) : 0; + + nm_system_replace_default_ip6_route_vpn (ip_ifindex, + nm_ip6_address_get_gateway (addr), + nm_vpn_connection_get_ip6_internal_gateway (vpn), + nm_ip6_config_get_mss (ip6_config), + nm_device_get_ip_ifindex (parent), + parent_mss); } else { - nm_log_info (LOGD_CORE, "Policy set (%s) as default for IPv6 routing and DNS.", ip_iface); + if (memcmp (nm_ip6_address_get_gateway (addr)->s6_addr, in6addr_any.s6_addr, sizeof (in6addr_any.s6_addr)) != 0) + nm_system_replace_default_ip6_route (ip_ifindex, nm_ip6_address_get_gateway (addr)); + else if (nm_ip6_config_get_gateway (ip6_config)) + nm_system_replace_default_ip6_route (ip_ifindex, nm_ip6_config_get_gateway (ip6_config)); + else + nm_log_dbg (LOGD_IP6, "missing default IPv6 route"); } -out: + update_default_ac (policy, best_ac, nm_active_connection_set_default6); policy->default_device6 = best; + + connection = nm_active_connection_get_connection (best_ac); + nm_log_info (LOGD_CORE, "Policy set '%s' (%s) as default for IPv6 routing and DNS.", + nm_connection_get_id (connection), ip_iface); } static void update_routing_and_dns (NMPolicy *policy, gboolean force_update) { - update_ip4_routing_and_dns (policy, force_update); - update_ip6_routing_and_dns (policy, force_update); + NMDnsManager *mgr; + + mgr = nm_dns_manager_get (NULL); + nm_dns_manager_begin_updates (mgr, __func__); + + update_ip4_dns (policy, mgr); + update_ip6_dns (policy, mgr); + + update_ip4_routing (policy, force_update); + update_ip6_routing (policy, force_update); /* Update the system hostname */ update_system_hostname (policy, policy->default_device4, policy->default_device6); + + nm_dns_manager_end_updates (mgr, __func__); + g_object_unref (mgr); } static void @@ -842,17 +934,96 @@ vpn_connection_activated (NMVPNManager *manager, NMVPNConnection *vpn, gpointer user_data) { + NMDnsManager *mgr; + NMIP4Config *ip4_config; + NMIP6Config *ip6_config; + const char *ip_iface; + + mgr = nm_dns_manager_get (NULL); + nm_dns_manager_begin_updates (mgr, __func__); + + ip_iface = nm_vpn_connection_get_ip_iface (vpn); + + /* Add the VPN connection's IP configs from DNS */ + + ip4_config = nm_vpn_connection_get_ip4_config (vpn); + if (ip4_config) + nm_dns_manager_add_ip4_config (mgr, ip_iface, ip4_config, NM_DNS_IP_CONFIG_TYPE_VPN); + + ip6_config = nm_vpn_connection_get_ip6_config (vpn); + if (ip6_config) + nm_dns_manager_add_ip6_config (mgr, ip_iface, ip6_config, NM_DNS_IP_CONFIG_TYPE_VPN); + update_routing_and_dns ((NMPolicy *) user_data, TRUE); + + nm_dns_manager_end_updates (mgr, __func__); } static void vpn_connection_deactivated (NMVPNManager *manager, NMVPNConnection *vpn, - NMVPNConnectionState state, + NMVPNConnectionState new_state, + NMVPNConnectionState old_state, NMVPNConnectionStateReason reason, gpointer user_data) { + NMDnsManager *mgr; + NMIP4Config *ip4_config, *parent_ip4 = NULL; + NMIP6Config *ip6_config, *parent_ip6 = NULL; + const char *ip_iface; + NMDevice *parent; + + mgr = nm_dns_manager_get (NULL); + nm_dns_manager_begin_updates (mgr, __func__); + + ip_iface = nm_vpn_connection_get_ip_iface (vpn); + parent = nm_vpn_connection_get_parent_device (vpn); + + ip4_config = nm_vpn_connection_get_ip4_config (vpn); + if (ip4_config) { + /* Remove the VPN connection's IP4 config from DNS */ + nm_dns_manager_remove_ip4_config (mgr, ip_iface, ip4_config); + + /* Re-apply routes and addresses of the VPN connection's parent interface, + * which the VPN might have overridden. + */ + if (parent) { + parent_ip4 = nm_device_get_ip4_config (parent); + if (parent_ip4) { + if (!nm_system_apply_ip4_config (nm_device_get_ip_ifindex (parent), + parent_ip4, + nm_device_get_priority (parent), + NM_IP4_COMPARE_FLAG_ADDRESSES | NM_IP4_COMPARE_FLAG_ROUTES)) { + nm_log_err (LOGD_VPN, "failed to re-apply VPN parent device IPv4 addresses and routes."); + } + } + } + } + + ip6_config = nm_vpn_connection_get_ip6_config (vpn); + if (ip6_config) { + /* Remove the VPN connection's IP6 config from DNS */ + nm_dns_manager_remove_ip6_config (mgr, ip_iface, ip6_config); + + /* Re-apply routes and addresses of the VPN connection's parent interface, + * which the VPN might have overridden. + */ + if (parent) { + parent_ip6 = nm_device_get_ip6_config (parent); + if (parent_ip6) { + if (!nm_system_apply_ip6_config (nm_device_get_ip_ifindex (parent), + parent_ip6, + nm_device_get_priority (parent), + NM_IP6_COMPARE_FLAG_ADDRESSES | NM_IP6_COMPARE_FLAG_ROUTES)) { + nm_log_err (LOGD_VPN, "failed to re-apply VPN parent device IPv6 addresses and routes."); + } + } + } + } + update_routing_and_dns ((NMPolicy *) user_data, TRUE); + + nm_dns_manager_end_updates (mgr, __func__); } static void @@ -976,15 +1147,6 @@ reset_connections_retries (gpointer user_data) return FALSE; } -static NMConnection * -get_device_connection (NMDevice *device) -{ - NMActRequest *req = NULL; - - req = nm_device_get_act_request (device); - return req ? nm_act_request_get_connection (req) : NULL; -} - static void schedule_activate_all (NMPolicy *policy); static void @@ -1025,7 +1187,11 @@ device_state_changed (NMDevice *device, gpointer user_data) { NMPolicy *policy = (NMPolicy *) user_data; - NMConnection *connection = get_device_connection (device); + NMConnection *connection = nm_device_get_connection (device); + const char *ip_iface = nm_device_get_ip_iface (device); + NMIP4Config *ip4_config; + NMIP6Config *ip6_config; + NMDnsManager *dns_mgr; if (connection) g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (0)); @@ -1081,20 +1247,33 @@ device_state_changed (NMDevice *device, nm_connection_clear_secrets (connection); } - update_routing_and_dns (policy, FALSE); + /* Add device's new IPv4 and IPv6 configs to DNS */ + + dns_mgr = nm_dns_manager_get (NULL); + nm_dns_manager_begin_updates (dns_mgr, __func__); + + ip4_config = nm_device_get_ip4_config (device); + if (ip4_config) { + nm_dns_manager_add_ip4_config (dns_mgr, ip_iface, ip4_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); + update_ip4_dns (policy, dns_mgr); + } + ip6_config = nm_device_get_ip6_config (device); + if (ip6_config) { + nm_dns_manager_add_ip6_config (dns_mgr, ip_iface, ip6_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); + update_ip6_dns (policy, dns_mgr); + } + + nm_dns_manager_end_updates (dns_mgr, __func__); + g_object_unref (dns_mgr); + + /* And make sure the best devices have the default route */ + update_ip4_routing (policy, FALSE); + update_ip6_routing (policy, FALSE); break; case NM_DEVICE_STATE_UNMANAGED: - if ( old_state == NM_DEVICE_STATE_UNAVAILABLE - || old_state == NM_DEVICE_STATE_DISCONNECTED) { - /* If the device was never activated, there's no point in - * updating routing or DNS. This allows us to keep the previous - * resolv.conf or routes from before NM started if no device was - * ever managed by NM. - */ - break; - } case NM_DEVICE_STATE_UNAVAILABLE: - update_routing_and_dns (policy, FALSE); + if (old_state > NM_DEVICE_STATE_DISCONNECTED) + update_routing_and_dns (policy, FALSE); break; case NM_DEVICE_STATE_DISCONNECTED: /* Reset RETRIES_TAG when carrier on. If cable was unplugged @@ -1102,8 +1281,10 @@ device_state_changed (NMDevice *device, if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE) reset_retries_all (policy->settings, device); + if (old_state > NM_DEVICE_STATE_DISCONNECTED) + update_routing_and_dns (policy, FALSE); + /* Device is now available for auto-activation */ - update_routing_and_dns (policy, FALSE); schedule_activate_check (policy, device, 0); break; @@ -1119,11 +1300,86 @@ device_state_changed (NMDevice *device, } static void -device_ip_config_changed (NMDevice *device, - GParamSpec *pspec, - gpointer user_data) +device_ip4_config_changed (NMDevice *device, + NMIP4Config *new_config, + NMIP4Config *old_config, + gpointer user_data) { - update_routing_and_dns ((NMPolicy *) user_data, TRUE); + NMPolicy *policy = user_data; + NMDnsManager *dns_mgr; + const char *ip_iface = nm_device_get_ip_iface (device); + NMIP4ConfigCompareFlags diff = NM_IP4_COMPARE_FLAG_ALL; + + dns_mgr = nm_dns_manager_get (NULL); + nm_dns_manager_begin_updates (dns_mgr, __func__); + + /* Old configs get removed immediately */ + if (old_config) + nm_dns_manager_remove_ip4_config (dns_mgr, ip_iface, old_config); + + /* Ignore IP config changes while the device is activating, because we'll + * catch all the changes when the device moves to ACTIVATED state. + * Prevents unecessary changes to DNS information. + */ + if (!nm_device_is_activating (device)) { + if (new_config) + nm_dns_manager_add_ip4_config (dns_mgr, ip_iface, new_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); + update_ip4_dns (policy, dns_mgr); + + /* Only change routing if something actually changed */ + diff = nm_ip4_config_diff (new_config, old_config); + if (diff & (NM_IP4_COMPARE_FLAG_ADDRESSES | NM_IP4_COMPARE_FLAG_PTP_ADDRESS | NM_IP4_COMPARE_FLAG_ROUTES)) + update_ip4_routing (policy, TRUE); + } + + nm_dns_manager_end_updates (dns_mgr, __func__); + g_object_unref (dns_mgr); +} + +static void +device_ip6_config_changed (NMDevice *device, + NMIP6Config *new_config, + NMIP6Config *old_config, + gpointer user_data) +{ + NMPolicy *policy = user_data; + NMDnsManager *dns_mgr; + const char *ip_iface = nm_device_get_ip_iface (device); + NMIP4ConfigCompareFlags diff = NM_IP4_COMPARE_FLAG_ALL; + + dns_mgr = nm_dns_manager_get (NULL); + nm_dns_manager_begin_updates (dns_mgr, __func__); + + /* Old configs get removed immediately */ + if (old_config) + nm_dns_manager_remove_ip6_config (dns_mgr, ip_iface, old_config); + + /* Ignore IP config changes while the device is activating, because we'll + * catch all the changes when the device moves to ACTIVATED state. + * Prevents unecessary changes to DNS information. + */ + if (!nm_device_is_activating (device)) { + if (new_config) + nm_dns_manager_add_ip6_config (dns_mgr, ip_iface, new_config, NM_DNS_IP_CONFIG_TYPE_DEFAULT); + update_ip6_dns (policy, dns_mgr); + + /* Only change routing if something actually changed */ + diff = nm_ip6_config_diff (new_config, old_config); + if (diff & (NM_IP6_COMPARE_FLAG_ADDRESSES | NM_IP6_COMPARE_FLAG_PTP_ADDRESS | NM_IP6_COMPARE_FLAG_ROUTES)) + update_ip6_routing (policy, TRUE); + } + + nm_dns_manager_end_updates (dns_mgr, __func__); + g_object_unref (dns_mgr); +} + +static void +device_autoconnect_changed (NMDevice *device, + GParamSpec *pspec, + gpointer user_data) +{ + if (nm_device_get_autoconnect (device)) + schedule_activate_check ((NMPolicy *) user_data, device, 0); } static void @@ -1167,8 +1423,9 @@ device_added (NMManager *manager, NMDevice *device, gpointer user_data) NMPolicy *policy = (NMPolicy *) user_data; _connect_device_signal (policy, device, "state-changed", device_state_changed); - _connect_device_signal (policy, device, "notify::" NM_DEVICE_IP4_CONFIG, device_ip_config_changed); - _connect_device_signal (policy, device, "notify::" NM_DEVICE_IP6_CONFIG, device_ip_config_changed); + _connect_device_signal (policy, device, NM_DEVICE_IP4_CONFIG_CHANGED, device_ip4_config_changed); + _connect_device_signal (policy, device, NM_DEVICE_IP6_CONFIG_CHANGED, device_ip6_config_changed); + _connect_device_signal (policy, device, "notify::" NM_DEVICE_AUTOCONNECT, device_autoconnect_changed); switch (nm_device_get_device_type (device)) { case NM_DEVICE_TYPE_WIFI: @@ -1215,7 +1472,9 @@ device_removed (NMManager *manager, NMDevice *device, gpointer user_data) iter = next; } - update_routing_and_dns (policy, FALSE); + /* Don't update routing and DNS here as we've already handled that + * for devices that need it when the device's state changed to UNMANAGED. + */ } static void @@ -1273,7 +1532,7 @@ firewall_update_zone (NMPolicy *policy, NMConnection *connection) for (iter = devices; iter; iter = g_slist_next (iter)) { NMDevice *dev = NM_DEVICE (iter->data); - if ( (get_device_connection (dev) == connection) + if ( (nm_device_get_connection (dev) == connection) && (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED)) { nm_firewall_manager_add_or_change_zone (policy->fw_manager, nm_device_get_ip_iface (dev), @@ -1299,7 +1558,7 @@ firewall_started (NMFirewallManager *manager, for (iter = devices; iter; iter = g_slist_next (iter)) { NMDevice *dev = NM_DEVICE (iter->data); - connection = get_device_connection (dev); + connection = nm_device_get_connection (dev); s_con = nm_connection_get_setting_connection (connection); if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED) { nm_firewall_manager_add_or_change_zone (policy->fw_manager, diff --git a/src/nm-system.c b/src/nm-system.c index 91153ec2..b980dc53 100644 --- a/src/nm-system.c +++ b/src/nm-system.c @@ -349,14 +349,15 @@ add_ip4_addresses (NMIP4Config *config, int ifindex) } struct rtnl_route * -nm_system_add_ip4_vpn_gateway_route (NMDevice *parent_device, NMIP4Config *vpn_config) +nm_system_add_ip4_vpn_gateway_route (NMDevice *parent_device, guint32 vpn_gw) { NMIP4Config *parent_config; - guint32 parent_gw = 0, parent_prefix = 0, vpn_gw = 0, i; + guint32 parent_gw = 0, parent_prefix = 0, i; NMIP4Address *tmp; struct rtnl_route *route = NULL; g_return_val_if_fail (NM_IS_DEVICE (parent_device), NULL); + g_return_val_if_fail (vpn_gw != 0, NULL); /* Set up a route to the VPN gateway's public IP address through the default * network device if the VPN gateway is on a different subnet. @@ -374,15 +375,7 @@ nm_system_add_ip4_vpn_gateway_route (NMDevice *parent_device, NMIP4Config *vpn_c } } - for (i = 0; i < nm_ip4_config_get_num_addresses (vpn_config); i++) { - tmp = nm_ip4_config_get_address (vpn_config, i); - if (nm_ip4_address_get_gateway (tmp)) { - vpn_gw = nm_ip4_address_get_gateway (tmp); - break; - } - } - - if (!parent_gw || !vpn_gw) + if (!parent_gw) return NULL; /* If the VPN gateway is in the same subnet as one of the parent device's @@ -479,7 +472,7 @@ nm_system_set_ip6_route (int ifindex, struct rtnl_route *route; int err = 0; - g_return_val_if_fail (ifindex >= 0, -1); + g_return_val_if_fail (ifindex > 0, -1); nlh = nm_netlink_get_default_handle (); g_return_val_if_fail (nlh != NULL, -1); @@ -520,6 +513,96 @@ nm_system_set_ip6_route (int ifindex, } static gboolean +ip6_dest_in_same_subnet (NMIP6Config *config, const struct in6_addr *dest, guint32 dest_prefix) +{ + int num; + int i; + + num = nm_ip6_config_get_num_addresses (config); + for (i = 0; i < num; i++) { + NMIP6Address *addr = nm_ip6_config_get_address (config, i); + guint32 prefix = nm_ip6_address_get_prefix (addr); + const struct in6_addr *address = nm_ip6_address_get_address (addr); + + if (prefix <= dest_prefix) { + const guint8 *maskbytes = (const guint8 *)address; + const guint8 *addrbytes = (const guint8 *)dest; + int nbytes, nbits; + + /* Copied from g_inet_address_mask_matches() */ + nbytes = prefix / 8; + if (nbytes != 0 && memcmp (maskbytes, addrbytes, nbytes) != 0) + continue; + + nbits = prefix % 8; + if (nbits == 0) + return TRUE; + + if (maskbytes[nbytes] == (addrbytes[nbytes] & (0xFF << (8 - nbits)))) + return TRUE; + } + } + + return FALSE; +} + +struct rtnl_route * +nm_system_add_ip6_vpn_gateway_route (NMDevice *parent_device, + const struct in6_addr *vpn_gw) +{ + NMIP6Config *parent_config; + const struct in6_addr *parent_gw = NULL; + guint32 parent_prefix = 0; + int i, err; + NMIP6Address *tmp; + struct rtnl_route *route = NULL; + + g_return_val_if_fail (NM_IS_DEVICE (parent_device), NULL); + g_return_val_if_fail (vpn_gw != NULL, NULL); + + /* This is all just the same as + * nm_system_add_ip4_vpn_gateway_route(), except with an IPv6 + * address for the VPN gateway. + */ + + parent_config = nm_device_get_ip6_config (parent_device); + g_return_val_if_fail (parent_config != NULL, NULL); + + for (i = 0; i < nm_ip6_config_get_num_addresses (parent_config); i++) { + tmp = nm_ip6_config_get_address (parent_config, i); + if (nm_ip6_address_get_gateway (tmp)) { + parent_gw = nm_ip6_address_get_gateway (tmp); + parent_prefix = nm_ip6_address_get_prefix (tmp); + break; + } + } + + if (!parent_gw) + return NULL; + + if (ip6_dest_in_same_subnet (parent_config, vpn_gw, parent_prefix)) { + err = nm_system_set_ip6_route (nm_device_get_ip_ifindex (parent_device), + vpn_gw, 128, NULL, 0, + nm_ip6_config_get_mss (parent_config), + RTPROT_UNSPEC, RT_TABLE_UNSPEC, + &route); + } else { + err = nm_system_set_ip6_route (nm_device_get_ip_ifindex (parent_device), + vpn_gw, 128, parent_gw, 0, + nm_ip6_config_get_mss (parent_config), + RTPROT_UNSPEC, RT_TABLE_UNSPEC, + &route); + } + + if (err) { + nm_log_err (LOGD_DEVICE | LOGD_IP6, + "(%s): failed to add IPv6 route to VPN gateway (%d)", + nm_device_get_iface (parent_device), err); + } + return route; +} + +static gboolean add_ip6_addresses (NMIP6Config *config, int ifindex) { char *iface; @@ -909,7 +992,7 @@ nm_system_replace_default_ip4_route_vpn (int ifindex, goto out; if ((err != -NLE_OBJ_NOTFOUND) && (err != -NLE_FAILURE)) { - nm_log_err (LOGD_DEVICE | LOGD_IP4, + nm_log_err (LOGD_DEVICE | LOGD_VPN | LOGD_IP4, "(%s): failed to set IPv4 default route: %d", iface, err); goto out; @@ -924,7 +1007,7 @@ nm_system_replace_default_ip4_route_vpn (int ifindex, err = replace_default_ip4_route (ifindex, int_gw, mss); if (err != 0) { nm_netlink_route_delete (gw_route); - nm_log_err (LOGD_DEVICE | LOGD_IP4, + nm_log_err (LOGD_DEVICE | LOGD_VPN | LOGD_IP4, "(%s): failed to set IPv4 default route (pass #2): %d", iface, err); } else @@ -989,7 +1072,7 @@ out: } static struct rtnl_route * -add_ip6_route_to_gateway (int ifindex, const struct in6_addr *gw) +add_ip6_route_to_gateway (int ifindex, const struct in6_addr *gw, int mss) { struct nl_sock *nlh; struct rtnl_route *route = NULL; @@ -999,7 +1082,7 @@ add_ip6_route_to_gateway (int ifindex, const struct in6_addr *gw) g_return_val_if_fail (nlh != NULL, NULL); /* Gateway might be over a bridge; try adding a route to gateway first */ - route = nm_netlink_route_new (ifindex, AF_INET6, 0, + route = nm_netlink_route_new (ifindex, AF_INET6, mss, NMNL_PROP_SCOPE, RT_SCOPE_LINK, NMNL_PROP_TABLE, RT_TABLE_MAIN, NULL); @@ -1023,7 +1106,7 @@ add_ip6_route_to_gateway (int ifindex, const struct in6_addr *gw) } static int -replace_default_ip6_route (int ifindex, const struct in6_addr *gw) +add_default_ip6_route (int ifindex, const struct in6_addr *gw, int mss) { struct rtnl_route *route = NULL; struct nl_sock *nlh; @@ -1034,25 +1117,81 @@ replace_default_ip6_route (int ifindex, const struct in6_addr *gw) nlh = nm_netlink_get_default_handle (); g_return_val_if_fail (nlh != NULL, -ENOMEM); - route = nm_netlink_route_new (ifindex, AF_INET6, 0, + route = nm_netlink_route_new (ifindex, AF_INET6, mss, NMNL_PROP_SCOPE, RT_SCOPE_UNIVERSE, NMNL_PROP_TABLE, RT_TABLE_MAIN, + NMNL_PROP_PRIO, 1, NULL); g_return_val_if_fail (route != NULL, -ENOMEM); /* Add the new default route */ - err = nm_netlink_route6_add (route, &in6addr_any, 0, gw, NLM_F_REPLACE); - if (err == -NLE_EXIST) { - /* FIXME: even though we use NLM_F_REPLACE the kernel won't replace - * the route if it's the same. Suppress the pointless error. - */ + err = nm_netlink_route6_add (route, &in6addr_any, 0, gw, NLM_F_CREATE); + if (err == -NLE_EXIST) err = 0; - } rtnl_route_put (route); return err; } +static struct rtnl_route * +find_static_default_routes (struct rtnl_route *route, + struct nl_addr *dst, + const char *iface, + gpointer user_data) +{ + GList **def_routes = user_data; + + if ( nl_addr_get_prefixlen (dst) == 0 + && rtnl_route_get_protocol (route) == RTPROT_STATIC) { + rtnl_route_get (route); + *def_routes = g_list_prepend (*def_routes, route); + } + + return NULL; +} + +static int +replace_default_ip6_route (int ifindex, const struct in6_addr *gw, int mss) +{ + GList *def_routes, *iter; + struct rtnl_route *route; + char *iface; + char gw_str[INET6_ADDRSTRLEN + 1]; + + g_return_val_if_fail (ifindex > 0, FALSE); + g_return_val_if_fail (gw != NULL, FALSE); + + if (nm_logging_level_enabled (LOGL_DEBUG)) { + memset (gw_str, 0, sizeof (gw_str)); + if (inet_ntop (AF_INET6, gw, gw_str, sizeof (gw_str) - 1)) + nm_log_dbg (LOGD_IP6, "Setting IPv6 default route via %s", gw_str); + } + + /* We can't just use NLM_F_REPLACE here like in the IPv4 case, because + * the kernel doesn't like it if we replace the default routes it + * creates. (See rh#785772.) So we delete any non-kernel default routes, + * and then add a new default route of our own with a lower metric than + * the kernel ones. + */ + def_routes = NULL; + nm_netlink_foreach_route (ifindex, AF_INET6, RT_SCOPE_UNIVERSE, TRUE, + find_static_default_routes, &def_routes); + for (iter = def_routes; iter; iter = iter->next) { + route = iter->data; + if (!nm_netlink_route_delete (route)) { + iface = nm_netlink_index_to_iface (ifindex); + nm_log_err (LOGD_DEVICE | LOGD_IP6, + "(%s): failed to delete existing IPv6 default route", + iface); + g_free (iface); + } + rtnl_route_put (route); + } + g_list_free (def_routes); + + return add_default_ip6_route (ifindex, gw, mss); +} + /* * nm_system_replace_default_ip6_route * @@ -1067,11 +1206,8 @@ nm_system_replace_default_ip6_route (int ifindex, const struct in6_addr *gw) char *iface; int err; - err = replace_default_ip6_route (ifindex, gw); - if (err == 0) - return TRUE; - - if (err == -NLE_EXIST) + err = replace_default_ip6_route (ifindex, gw, 0); + if (err == 0 || err == -NLE_EXIST) return TRUE; iface = nm_netlink_index_to_iface (ifindex); @@ -1086,12 +1222,12 @@ nm_system_replace_default_ip6_route (int ifindex, const struct in6_addr *gw) } /* Try adding a direct route to the gateway first */ - gw_route = add_ip6_route_to_gateway (ifindex, gw); + gw_route = add_ip6_route_to_gateway (ifindex, gw, 0); if (!gw_route) goto out; /* Try adding the original route again */ - err = replace_default_ip6_route (ifindex, gw); + err = replace_default_ip6_route (ifindex, gw, 0); if (err != 0) { nm_netlink_route_delete (gw_route); nm_log_err (LOGD_DEVICE | LOGD_IP6, @@ -1107,6 +1243,60 @@ out: return success; } +gboolean +nm_system_replace_default_ip6_route_vpn (int ifindex, + const struct in6_addr *ext_gw, + const struct in6_addr *int_gw, + guint32 mss, + int parent_ifindex, + guint32 parent_mss) +{ + struct rtnl_route *gw_route = NULL; + struct nl_sock *nlh; + gboolean success = FALSE; + int err; + char *iface; + + nlh = nm_netlink_get_default_handle (); + g_return_val_if_fail (nlh != NULL, FALSE); + + err = replace_default_ip6_route (ifindex, int_gw, mss); + if (err == 0) + return TRUE; + + iface = nm_netlink_index_to_iface (ifindex); + if (!iface) + goto out; + + if ((err != -NLE_OBJ_NOTFOUND) && (err != -NLE_FAILURE)) { + nm_log_err (LOGD_DEVICE | LOGD_VPN | LOGD_IP6, + "(%s): failed to set IPv6 default route: %d", + iface, err); + goto out; + } + + /* Try adding a direct route to the gateway first */ + gw_route = add_ip6_route_to_gateway (parent_ifindex, ext_gw, parent_mss); + if (!gw_route) + goto out; + + /* Try adding the original route again */ + err = replace_default_ip6_route (ifindex, int_gw, mss); + if (err != 0) { + nm_netlink_route_delete (gw_route); + nm_log_err (LOGD_DEVICE | LOGD_VPN | LOGD_IP6, + "(%s): failed to set IPv6 default route (pass #2): %d", + iface, err); + } else + success = TRUE; + +out: + if (gw_route) + rtnl_route_put (gw_route); + g_free (iface); + return success; +} + /* * nm_system_iface_flush_addresses * @@ -1435,9 +1625,9 @@ nm_system_iface_enslave (gint master_ifindex, struct nl_sock *sock; int err; - g_return_val_if_fail (master_ifindex >= 0, FALSE); + g_return_val_if_fail (master_ifindex > 0, FALSE); g_return_val_if_fail (master_iface != NULL, FALSE); - g_return_val_if_fail (slave_ifindex >= 0, FALSE); + g_return_val_if_fail (slave_ifindex > 0, FALSE); g_return_val_if_fail (slave_iface != NULL, FALSE); sock = nm_netlink_get_default_handle (); @@ -1520,9 +1710,9 @@ nm_system_iface_release (gint master_ifindex, struct nl_sock *sock; int err; - g_return_val_if_fail (master_ifindex >= 0, FALSE); + g_return_val_if_fail (master_ifindex > 0, FALSE); g_return_val_if_fail (master_iface != NULL, FALSE); - g_return_val_if_fail (slave_ifindex >= 0, FALSE); + g_return_val_if_fail (slave_ifindex > 0, FALSE); g_return_val_if_fail (slave_iface != NULL, FALSE); sock = nm_netlink_get_default_handle (); @@ -1561,7 +1751,7 @@ nm_system_get_iface_type (int ifindex, const char *name) char *type; int res = NM_IFACE_TYPE_UNSPEC; - g_return_val_if_fail (ifindex >= 0 || name, NM_IFACE_TYPE_UNSPEC); + g_return_val_if_fail (ifindex > 0 || name, NM_IFACE_TYPE_UNSPEC); nlh = nm_netlink_get_default_handle (); if (!nlh) @@ -1706,7 +1896,7 @@ nm_system_iface_compat_add_vlan_device (const char *master, int vid) } memset (&if_request, 0, sizeof (struct vlan_ioctl_args)); - strcpy (if_request.device1, master); + g_strlcpy (if_request.device1, master, sizeof (if_request.device1)); if_request.cmd = ADD_VLAN_CMD; if_request.u.VID = vid; @@ -1732,7 +1922,7 @@ nm_system_iface_compat_rem_vlan_device (const char *iface) } memset (&if_request, 0, sizeof (struct vlan_ioctl_args)); - strcpy (if_request.device1, iface); + g_strlcpy (if_request.device1, iface, sizeof (if_request.device1)); if_request.cmd = DEL_VLAN_CMD; if (ioctl (fd, SIOCSIFVLAN, &if_request) < 0) { @@ -1868,7 +2058,7 @@ nm_system_add_vlan_iface (NMConnection *connection, guint32 vlan_flags = 0; guint32 num, i, from, to; - g_return_val_if_fail (parent_ifindex >= 0, FALSE); + g_return_val_if_fail (parent_ifindex > 0, FALSE); nlh = nm_netlink_get_default_handle (); g_return_val_if_fail (nlh != NULL, FALSE); diff --git a/src/nm-system.h b/src/nm-system.h index 84ae6c27..1acb8853 100644 --- a/src/nm-system.h +++ b/src/nm-system.h @@ -53,8 +53,17 @@ gboolean nm_system_replace_default_ip4_route_vpn (int ifindex, int parent_ifindex, guint32 parent_mss); -struct rtnl_route *nm_system_add_ip4_vpn_gateway_route (NMDevice *parent_device, NMIP4Config *vpn_config); +gboolean nm_system_replace_default_ip6_route_vpn (int ifindex, + const struct in6_addr *ext_gw, + const struct in6_addr *int_gw, + guint32 mss, + int parent_ifindex, + guint32 parent_mss); +struct rtnl_route *nm_system_add_ip4_vpn_gateway_route (NMDevice *parent_device, + guint32 vpn_gw); +struct rtnl_route *nm_system_add_ip6_vpn_gateway_route (NMDevice *parent_device, + const struct in6_addr *vpn_gw); gboolean nm_system_iface_flush_addresses (int ifindex, int family); diff --git a/src/nm-udev-manager.c b/src/nm-udev-manager.c index 45262f87..57b36d38 100644 --- a/src/nm-udev-manager.c +++ b/src/nm-udev-manager.c @@ -329,52 +329,34 @@ rfkill_remove (NMUdevManager *self, } } -static void -net_add (NMUdevManager *self, GUdevDevice *udev_device) +static gboolean +dev_get_attrs (GUdevDevice *udev_device, + const char **out_ifname, + const char **out_path, + char **out_driver, + int *out_ifindex) { GUdevDevice *parent = NULL, *grandparent = NULL; - gint ifindex; - gint etype; - const char *ifname, *driver, *path, *subsys, *tmp; - gboolean is_ctc; + const char *ifname, *driver, *path, *subsys; + gint ifindex = -1; + gboolean success = FALSE; - g_return_if_fail (udev_device != NULL); + g_return_val_if_fail (udev_device != NULL, FALSE); + g_return_val_if_fail (out_ifname != NULL, FALSE); + g_return_val_if_fail (out_path != NULL, FALSE); + g_return_val_if_fail (out_driver != NULL, FALSE); + g_return_val_if_fail (out_ifindex != NULL, FALSE); ifname = g_udev_device_get_name (udev_device); if (!ifname) { nm_log_dbg (LOGD_HW, "failed to get device's interface"); - return; - } - - etype = g_udev_device_get_sysfs_attr_as_int (udev_device, "type"); - is_ctc = (strncmp (ifname, "ctc", 3) == 0) && (etype == 256); - - /* Ignore devices that don't report Ethernet encapsulation, except for - * s390 CTC-type devices that report 256 for some reason. - * FIXME: use something other than interface name to detect CTC here. - */ - if ((etype != ARPHRD_ETHER) && (etype != ARPHRD_INFINIBAND) && (is_ctc == FALSE)) { - nm_log_dbg (LOGD_HW, "(%s): ignoring interface with type %d", ifname, etype); - return; - } - - /* Not all ethernet devices are immediately usable; newer mobile broadband - * devices (Ericsson, Option, Sierra) require setup on the tty before the - * ethernet device is usable. 2.6.33 and later kernels set the 'DEVTYPE' - * uevent variable which we can use to ignore the interface as a NMDevice - * subclass. ModemManager will pick it up though and so we'll handle it - * through the mobile broadband stuff. - */ - tmp = g_udev_device_get_property (udev_device, "DEVTYPE"); - if (g_strcmp0 (tmp, "wwan") == 0) { - nm_log_dbg (LOGD_HW, "(%s): ignoring interface with devtype '%s'", ifname, tmp); - return; + return FALSE; } path = g_udev_device_get_sysfs_path (udev_device); if (!path) { nm_log_warn (LOGD_HW, "couldn't determine device path; ignoring..."); - return; + return FALSE; } driver = g_udev_device_get_driver (udev_device); @@ -399,11 +381,8 @@ net_add (NMUdevManager *self, GUdevDevice *udev_device) } } - ifindex = g_udev_device_get_sysfs_attr_as_int (udev_device, "ifindex"); - if (ifindex <= 0) { - nm_log_warn (LOGD_HW, "%s: device had invalid ifindex %d; ignoring...", path, (guint32) ifindex); - goto out; - } + if (g_udev_device_get_sysfs_attr (udev_device, "ifindex")) + ifindex = g_udev_device_get_sysfs_attr_as_int (udev_device, "ifindex"); if (!driver) { switch (nm_system_get_iface_type (ifindex, ifname)) { @@ -425,13 +404,69 @@ net_add (NMUdevManager *self, GUdevDevice *udev_device) } } - g_signal_emit (self, signals[DEVICE_ADDED], 0, udev_device, ifname, path, driver, ifindex); + *out_ifname = ifname; + *out_path = path; + *out_driver = g_strdup (driver); + *out_ifindex = ifindex; + success = TRUE; out: if (grandparent) g_object_unref (grandparent); if (parent) g_object_unref (parent); + + return success; +} + +static void +net_add (NMUdevManager *self, GUdevDevice *udev_device) +{ + gint ifindex = -1; + gint etype; + const char *ifname = NULL, *path = NULL, *tmp; + char *driver = NULL; + gboolean is_ctc; + + g_return_if_fail (udev_device != NULL); + + if (!dev_get_attrs (udev_device, &ifname, &path, &driver, &ifindex)) + return; + + if (ifindex < 0) { + nm_log_warn (LOGD_HW, "%s: device had invalid ifindex %d; ignoring...", path, ifindex); + goto out; + } + + etype = g_udev_device_get_sysfs_attr_as_int (udev_device, "type"); + is_ctc = (strncmp (ifname, "ctc", 3) == 0) && (etype == 256); + + /* Ignore devices that don't report Ethernet encapsulation, except for + * s390 CTC-type devices that report 256 for some reason. + * FIXME: use something other than interface name to detect CTC here. + */ + if ((etype != ARPHRD_ETHER) && (etype != ARPHRD_INFINIBAND) && (is_ctc == FALSE)) { + nm_log_dbg (LOGD_HW, "(%s): ignoring interface with type %d", ifname, etype); + goto out; + } + + /* Not all ethernet devices are immediately usable; newer mobile broadband + * devices (Ericsson, Option, Sierra) require setup on the tty before the + * ethernet device is usable. 2.6.33 and later kernels set the 'DEVTYPE' + * uevent variable which we can use to ignore the interface as a NMDevice + * subclass. ModemManager will pick it up though and so we'll handle it + * through the mobile broadband stuff. + */ + tmp = g_udev_device_get_property (udev_device, "DEVTYPE"); + if (g_strcmp0 (tmp, "wwan") == 0) { + nm_log_dbg (LOGD_HW, "(%s): ignoring interface with devtype '%s'", ifname, tmp); + goto out; + } + + g_signal_emit (self, signals[DEVICE_ADDED], 0, udev_device, ifname, path, driver, ifindex); + +out: + g_free (driver); } static void @@ -440,6 +475,30 @@ net_remove (NMUdevManager *self, GUdevDevice *device) g_signal_emit (self, signals[DEVICE_REMOVED], 0, device); } +static void +adsl_add (NMUdevManager *self, GUdevDevice *udev_device) +{ + gint ifindex = -1; + const char *ifname = NULL, *path = NULL; + char *driver = NULL; + + g_return_if_fail (udev_device != NULL); + + nm_log_dbg (LOGD_HW, "adsl_add: ATM Device detected from udev. Adding .."); + + if (dev_get_attrs (udev_device, &ifname, &path, &driver, &ifindex)) + g_signal_emit (self, signals[DEVICE_ADDED], 0, udev_device, ifname, path, driver, ifindex); + g_free (driver); +} + +static void +adsl_remove (NMUdevManager *self, GUdevDevice *device) +{ + nm_log_dbg (LOGD_HW, "adsl_remove: Removing ATM Device"); + + g_signal_emit (self, signals[DEVICE_REMOVED], 0, device); +} + void nm_udev_manager_query_devices (NMUdevManager *self) { @@ -455,6 +514,14 @@ nm_udev_manager_query_devices (NMUdevManager *self) g_object_unref (G_UDEV_DEVICE (iter->data)); } g_list_free (devices); + + + devices = g_udev_client_query_by_subsystem (priv->client, "atm"); + for (iter = devices; iter; iter = g_list_next (iter)) { + adsl_add (self, G_UDEV_DEVICE (iter->data)); + g_object_unref (G_UDEV_DEVICE (iter->data)); + } + g_list_free (devices); } static void @@ -475,18 +542,23 @@ handle_uevent (GUdevClient *client, nm_log_dbg (LOGD_HW, "UDEV event: action '%s' subsys '%s' device '%s'", action, subsys, g_udev_device_get_name (device)); - g_return_if_fail (!strcmp (subsys, "rfkill") || !strcmp (subsys, "net")); + g_return_if_fail (!strcmp (subsys, "rfkill") || !strcmp (subsys, "net") || + !strcmp (subsys, "atm")); if (!strcmp (action, "add")) { if (!strcmp (subsys, "rfkill")) rfkill_add (self, device); else if (!strcmp (subsys, "net")) net_add (self, device); + else if (!strcmp (subsys, "atm")) + adsl_add (self, device); } else if (!strcmp (action, "remove")) { if (!strcmp (subsys, "rfkill")) rfkill_remove (self, device); else if (!strcmp (subsys, "net")) net_remove (self, device); + else if (!strcmp (subsys, "atm")) + adsl_remove (self, device); } recheck_killswitches (self); @@ -496,7 +568,7 @@ static void nm_udev_manager_init (NMUdevManager *self) { NMUdevManagerPrivate *priv = NM_UDEV_MANAGER_GET_PRIVATE (self); - const char *subsys[3] = { "rfkill", "net", NULL }; + const char *subsys[4] = { "rfkill", "net", "atm", NULL }; GList *switches, *iter; guint32 i; diff --git a/src/nm-wifi-ap.c b/src/nm-wifi-ap.c index 92a99b69..6a607960 100644 --- a/src/nm-wifi-ap.c +++ b/src/nm-wifi-ap.c @@ -509,7 +509,6 @@ NMAccessPoint * nm_ap_new_from_properties (const char *supplicant_path, GHashTable *properties) { NMAccessPoint *ap; - GTimeVal cur_time; const struct ether_addr * addr; const char bad_bssid1[ETH_ALEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; const char bad_bssid2[ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; @@ -531,8 +530,7 @@ nm_ap_new_from_properties (const char *supplicant_path, GHashTable *properties) return NULL; } - g_get_current_time (&cur_time); - nm_ap_set_last_seen (ap, cur_time.tv_sec); + nm_ap_set_last_seen (ap, (guint32) time (NULL)); if (!nm_ap_get_ssid (ap)) nm_ap_set_broadcast (ap, FALSE); @@ -966,16 +964,15 @@ void nm_ap_set_mode (NMAccessPoint *ap, const NM80211Mode mode) NMAccessPointPrivate *priv; g_return_if_fail (NM_IS_AP (ap)); + g_return_if_fail ( mode == NM_802_11_MODE_ADHOC + || mode == NM_802_11_MODE_INFRA); - if (mode == NM_802_11_MODE_ADHOC || mode == NM_802_11_MODE_INFRA) { - priv = NM_AP_GET_PRIVATE (ap); + priv = NM_AP_GET_PRIVATE (ap); - if (priv->mode != mode) { - priv->mode = mode; - g_object_notify (G_OBJECT (ap), NM_AP_MODE); - } - } else - nm_log_warn (LOGD_WIFI, "Invalid AP mode '%d'", mode); + if (priv->mode != mode) { + priv->mode = mode; + g_object_notify (G_OBJECT (ap), NM_AP_MODE); + } } diff --git a/src/org.freedesktop.NetworkManager.conf b/src/org.freedesktop.NetworkManager.conf index 15b11b7e..7df1c8e8 100644 --- a/src/org.freedesktop.NetworkManager.conf +++ b/src/org.freedesktop.NetworkManager.conf @@ -43,15 +43,12 @@ send_interface="org.freedesktop.NetworkManager.Connection.Active"/> <allow send_destination="org.freedesktop.NetworkManager" - send_interface="org.freedesktop.NetworkManager.Device.Cdma"/> + send_interface="org.freedesktop.NetworkManager.Device.Modem"/> <allow send_destination="org.freedesktop.NetworkManager" send_interface="org.freedesktop.NetworkManager.Device.Wired"/> <allow send_destination="org.freedesktop.NetworkManager" - send_interface="org.freedesktop.NetworkManager.Device.Gsm"/> - - <allow send_destination="org.freedesktop.NetworkManager" send_interface="org.freedesktop.NetworkManager.Device.Serial"/> <allow send_destination="org.freedesktop.NetworkManager" @@ -115,7 +112,5 @@ send_interface="org.freedesktop.NetworkManager" send_member="wake"/> </policy> - - <limit name="max_replies_per_connection">512</limit> </busconfig> diff --git a/src/posix-signals/Makefile.am b/src/posix-signals/Makefile.am new file mode 100644 index 00000000..88c3d8d4 --- /dev/null +++ b/src/posix-signals/Makefile.am @@ -0,0 +1,15 @@ +noinst_LTLIBRARIES = libnm-posix-signals.la + +libnm_posix_signals_la_SOURCES = \ + nm-posix-signals.c \ + nm-posix-signals.h + +libnm_posix_signals_la_CPPFLAGS = \ + $(GLIB_CFLAGS) \ + -DLIBEXECDIR=\"$(libexecdir)\" \ + -DG_DISABLE_DEPRECATED + +libnm_posix_signals_la_LIBADD = \ + -ldl \ + $(GLIB_LIBS) + diff --git a/src/posix-signals/Makefile.in b/src/posix-signals/Makefile.in new file mode 100644 index 00000000..3cacb29f --- /dev/null +++ b/src/posix-signals/Makefile.in @@ -0,0 +1,640 @@ +# 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@ +subdir = src/posix-signals +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/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.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)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/vapigen.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 = +LTLIBRARIES = $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libnm_posix_signals_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_libnm_posix_signals_la_OBJECTS = \ + libnm_posix_signals_la-nm-posix-signals.lo +libnm_posix_signals_la_OBJECTS = $(am_libnm_posix_signals_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)/build-aux/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 = $(libnm_posix_signals_la_SOURCES) +DIST_SOURCES = $(libnm_posix_signals_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +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@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MAKEFILE = @GLIB_MAKEFILE@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ +GNUTLS_LIBS = @GNUTLS_LIBS@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +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@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +IPTABLES_PATH = @IPTABLES_PATH@ +IWMX_SDK_CFLAGS = @IWMX_SDK_CFLAGS@ +IWMX_SDK_LIBS = @IWMX_SDK_LIBS@ +KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDL = @LIBDL@ +LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ +LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ +LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBNL1_CFLAGS = @LIBNL1_CFLAGS@ +LIBNL1_LIBS = @LIBNL1_LIBS@ +LIBNL2_CFLAGS = @LIBNL2_CFLAGS@ +LIBNL2_LIBS = @LIBNL2_LIBS@ +LIBNL3_CFLAGS = @LIBNL3_CFLAGS@ +LIBNL3_LIBS = @LIBNL3_LIBS@ +LIBNL_CFLAGS = @LIBNL_CFLAGS@ +LIBNL_GENL3_CFLAGS = @LIBNL_GENL3_CFLAGS@ +LIBNL_GENL3_LIBS = @LIBNL_GENL3_LIBS@ +LIBNL_LIBS = @LIBNL_LIBS@ +LIBNL_ROUTE3_CFLAGS = @LIBNL_ROUTE3_CFLAGS@ +LIBNL_ROUTE3_LIBS = @LIBNL_ROUTE3_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +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@ +POLKIT_CFLAGS = @POLKIT_CFLAGS@ +POLKIT_LIBS = @POLKIT_LIBS@ +POSUB = @POSUB@ +PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ +QT_CFLAGS = @QT_CFLAGS@ +QT_LIBS = @QT_LIBS@ +RANLIB = @RANLIB@ +RESOLVCONF_PATH = @RESOLVCONF_PATH@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ +SYSTEMD_LIBS = @SYSTEMD_LIBS@ +SYSTEM_CA_PATH = @SYSTEM_CA_PATH@ +UDEV_BASE_DIR = @UDEV_BASE_DIR@ +USE_NLS = @USE_NLS@ +UUID_CFLAGS = @UUID_CFLAGS@ +UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +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@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +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@ +noinst_LTLIBRARIES = libnm-posix-signals.la +libnm_posix_signals_la_SOURCES = \ + nm-posix-signals.c \ + nm-posix-signals.h + +libnm_posix_signals_la_CPPFLAGS = \ + $(GLIB_CFLAGS) \ + -DLIBEXECDIR=\"$(libexecdir)\" \ + -DG_DISABLE_DEPRECATED + +libnm_posix_signals_la_LIBADD = \ + -ldl \ + $(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/posix-signals/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/posix-signals/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-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libnm-posix-signals.la: $(libnm_posix_signals_la_OBJECTS) $(libnm_posix_signals_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libnm_posix_signals_la_OBJECTS) $(libnm_posix_signals_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_posix_signals_la-nm-posix-signals.Plo@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 $@ $< + +libnm_posix_signals_la-nm-posix-signals.lo: nm-posix-signals.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_posix_signals_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_posix_signals_la-nm-posix-signals.lo -MD -MP -MF $(DEPDIR)/libnm_posix_signals_la-nm-posix-signals.Tpo -c -o libnm_posix_signals_la-nm-posix-signals.lo `test -f 'nm-posix-signals.c' || echo '$(srcdir)/'`nm-posix-signals.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_posix_signals_la-nm-posix-signals.Tpo $(DEPDIR)/libnm_posix_signals_la-nm-posix-signals.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-posix-signals.c' object='libnm_posix_signals_la-nm-posix-signals.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) $(libnm_posix_signals_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_posix_signals_la-nm-posix-signals.lo `test -f 'nm-posix-signals.c' || echo '$(srcdir)/'`nm-posix-signals.c + +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 +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +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-noinstLTLIBRARIES \ + 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: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES 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 + + +# 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/posix-signals/nm-posix-signals.c b/src/posix-signals/nm-posix-signals.c new file mode 100644 index 00000000..22fed831 --- /dev/null +++ b/src/posix-signals/nm-posix-signals.c @@ -0,0 +1,62 @@ +/* -*- 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) 2012 Red Hat, Inc. + */ + +#include "config.h" + +#include <signal.h> + +#include "nm-posix-signals.h" + + +/* Stores the original signal mask of NetworkManager process */ +static sigset_t nm_original_signal_mask; + +void +nm_save_original_signal_mask (sigset_t sig_mask) +{ + nm_original_signal_mask = sig_mask; +} + +const sigset_t * +nm_get_original_signal_mask (void) +{ + return &nm_original_signal_mask; +} + +/* + * Unblock signals. + * If a signal set is passed, those signals are unblocked. If user_data is NULL + * the process' signal mask is set to the saved original mask. + * Note: This function can be used in g_spawn_* as GSpawnChildSetupFunc() + * callback. + */ +void +nm_unblock_posix_signals (gpointer user_data) +{ + sigset_t *user_sigset = (sigset_t *) user_data; + + if (user_sigset != NULL) { + pthread_sigmask (SIG_UNBLOCK, user_sigset, NULL); + } else { + const sigset_t *orig_sig_mask = nm_get_original_signal_mask (); + pthread_sigmask (SIG_SETMASK, orig_sig_mask, NULL); + } +} + diff --git a/src/posix-signals/nm-posix-signals.h b/src/posix-signals/nm-posix-signals.h new file mode 100644 index 00000000..81be5e1c --- /dev/null +++ b/src/posix-signals/nm-posix-signals.h @@ -0,0 +1,36 @@ +/* -*- 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) 2012 Red Hat, Inc. + */ + +#ifndef NM_POSIX_SIGNALS_H +#define NM_POSIX_SIGNALS_H + +#include <glib.h> +#include <signal.h> + +/* + * This function can be used in g_spawn_* as GSpawnChildSetupFunc() + * callback. + */ +void nm_unblock_posix_signals (gpointer user_data); + +void nm_save_original_signal_mask (sigset_t sig_mask); +const sigset_t *nm_get_original_signal_mask (void); + +#endif /* NM_POSIX_SIGNALS_H */ diff --git a/src/ppp-manager/Makefile.am b/src/ppp-manager/Makefile.am index 8df2f584..36e54ec9 100644 --- a/src/ppp-manager/Makefile.am +++ b/src/ppp-manager/Makefile.am @@ -7,7 +7,8 @@ INCLUDES = \ -I${top_srcdir}/src \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ - -I${top_srcdir}/src/logging + -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals noinst_LTLIBRARIES = libppp-manager.la @@ -33,6 +34,7 @@ libppp_manager_la_CPPFLAGS = \ libppp_manager_la_LIBADD = \ $(top_builddir)/src/generated/libnm-generated.la \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(DBUS_LIBS) \ $(GLIB_LIBS) diff --git a/src/ppp-manager/Makefile.in b/src/ppp-manager/Makefile.in index 55355a7d..c9ff095a 100644 --- a/src/ppp-manager/Makefile.in +++ b/src/ppp-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -81,6 +81,7 @@ am__DEPENDENCIES_1 = libppp_manager_la_DEPENDENCIES = \ $(top_builddir)/src/generated/libnm-generated.la \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libppp_manager_la_OBJECTS = libppp_manager_la-nm-ppp-manager.lo libppp_manager_la_OBJECTS = $(am_libppp_manager_la_OBJECTS) @@ -204,6 +205,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -299,6 +304,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -337,6 +345,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -366,7 +376,8 @@ INCLUDES = \ -I${top_srcdir}/src \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ - -I${top_srcdir}/src/logging + -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals noinst_LTLIBRARIES = libppp-manager.la libppp_manager_la_SOURCES = \ @@ -385,6 +396,7 @@ libppp_manager_la_CPPFLAGS = \ libppp_manager_la_LIBADD = \ $(top_builddir)/src/generated/libnm-generated.la \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(DBUS_LIBS) \ $(GLIB_LIBS) diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c index 59698c34..73cc566f 100644 --- a/src/ppp-manager/nm-ppp-manager.c +++ b/src/ppp-manager/nm-ppp-manager.c @@ -16,7 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * Copyright (C) 2008 Novell, Inc. - * Copyright (C) 2008 - 2011 Red Hat, Inc. + * Copyright (C) 2008 - 2012 Red Hat, Inc. */ #include <config.h> @@ -47,11 +47,13 @@ #include "nm-setting-connection.h" #include "nm-setting-ppp.h" #include "nm-setting-pppoe.h" +#include "nm-setting-adsl.h" #include "nm-setting-gsm.h" #include "nm-setting-cdma.h" #include "nm-dbus-manager.h" #include "nm-logging.h" #include "nm-marshal.h" +#include "nm-posix-signals.h" static void impl_ppp_manager_need_secrets (NMPPPManager *manager, DBusGMethodInvocation *context); @@ -304,18 +306,20 @@ monitor_cb (gpointer user_data) { NMPPPManager *manager = NM_PPP_MANAGER (user_data); NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); - struct ifpppstatsreq req; + struct ifreq req; + struct ppp_stats stats; memset (&req, 0, sizeof (req)); - req.stats_ptr = (caddr_t) &req.stats; + memset (&stats, 0, sizeof (stats)); + req.ifr_data = (caddr_t) &stats; - strncpy (req.ifr__name, priv->ip_iface, sizeof (req.ifr__name)); + strncpy (req.ifr_name, priv->ip_iface, sizeof (req.ifr_name)); if (ioctl (priv->monitor_fd, SIOCGPPPSTATS, &req) < 0) { nm_log_warn (LOGD_PPP, "could not read ppp stats: %s", strerror (errno)); } else { g_signal_emit (manager, signals[STATS], 0, - req.stats.p.ppp_ibytes, - req.stats.p.ppp_obytes); + stats.p.ppp_ibytes, + stats.p.ppp_obytes); } return TRUE; @@ -391,6 +395,9 @@ extract_details_from_connection (NMConnection *connection, if (NM_IS_SETTING_PPPOE (setting)) { *username = nm_setting_pppoe_get_username (NM_SETTING_PPPOE (setting)); *password = nm_setting_pppoe_get_password (NM_SETTING_PPPOE (setting)); + } else if (NM_IS_SETTING_ADSL (setting)) { + *username = nm_setting_adsl_get_username (NM_SETTING_ADSL (setting)); + *password = nm_setting_adsl_get_password (NM_SETTING_ADSL (setting)); } else if (NM_IS_SETTING_GSM (setting)) { *username = nm_setting_gsm_get_username (NM_SETTING_GSM (setting)); *password = nm_setting_gsm_get_password (NM_SETTING_GSM (setting)); @@ -792,6 +799,7 @@ static NMCmdLine * create_pppd_cmd_line (NMPPPManager *self, NMSettingPPP *setting, NMSettingPPPOE *pppoe, + NMSettingAdsl *adsl, const char *ppp_name, GError **err) { @@ -819,6 +827,10 @@ create_pppd_cmd_line (NMPPPManager *self, /* NM handles setting the default route */ nm_cmd_line_add_string (cmd, "nodefaultroute"); + /* Allow IPv6 to be configured by IPV6CP */ + nm_cmd_line_add_string (cmd, "ipv6"); + nm_cmd_line_add_string (cmd, ","); + ppp_debug = !!getenv ("NM_PPP_DEBUG"); if ( nm_logging_level_enabled (LOGL_DEBUG) && nm_logging_domain_enabled (LOGD_PPP)) @@ -848,6 +860,34 @@ create_pppd_cmd_line (NMPPPManager *self, nm_cmd_line_add_string (cmd, "rp_pppoe_service"); nm_cmd_line_add_string (cmd, pppoe_service); } + } else if (adsl) { + const gchar *protocol = nm_setting_adsl_get_protocol (adsl); + + if (!strcmp (protocol, NM_SETTING_ADSL_PROTOCOL_PPPOA)) { + guint32 vpi = nm_setting_adsl_get_vpi (adsl); + guint32 vci = nm_setting_adsl_get_vci (adsl); + const char *encaps = nm_setting_adsl_get_encapsulation (adsl); + gchar *vpivci; + + nm_cmd_line_add_string (cmd, "plugin"); + nm_cmd_line_add_string (cmd, "pppoatm.so"); + + vpivci = g_strdup_printf("%d.%d", vpi, vci); + nm_cmd_line_add_string (cmd, vpivci); + g_free (vpivci); + + if (g_strcmp0 (encaps, NM_SETTING_ADSL_ENCAPSULATION_LLC) == 0) + nm_cmd_line_add_string (cmd, "llc-encaps"); + else if (g_strcmp0 (encaps, NM_SETTING_ADSL_ENCAPSULATION_VCMUX) == 0) + nm_cmd_line_add_string (cmd, "vc-encaps"); + + } else if (!strcmp (protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE)) { + nm_cmd_line_add_string (cmd, "plugin"); + nm_cmd_line_add_string (cmd, "rp-pppoe.so"); + nm_cmd_line_add_string (cmd, priv->parent_iface); + } + + nm_cmd_line_add_string (cmd, "noipdefault"); } else { nm_cmd_line_add_string (cmd, priv->parent_iface); /* Don't send some random address as the local address */ @@ -924,6 +964,12 @@ pppd_child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for pppd here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static void @@ -965,6 +1011,7 @@ nm_ppp_manager_start (NMPPPManager *manager, NMSettingPPP *s_ppp; gboolean s_ppp_created = FALSE; NMSettingPPPOE *pppoe_setting; + NMSettingAdsl *adsl_setting; NMCmdLine *ppp_cmd; char *cmd_str; struct stat st; @@ -1006,7 +1053,9 @@ nm_ppp_manager_start (NMPPPManager *manager, if (pppoe_setting) pppoe_fill_defaults (s_ppp); - ppp_cmd = create_pppd_cmd_line (manager, s_ppp, pppoe_setting, ppp_name, err); + adsl_setting = (NMSettingAdsl *) nm_connection_get_setting (connection, NM_TYPE_SETTING_ADSL); + + ppp_cmd = create_pppd_cmd_line (manager, s_ppp, pppoe_setting, adsl_setting, ppp_name, err); if (!ppp_cmd) goto out; diff --git a/src/settings/Makefile.in b/src/settings/Makefile.in index d1278206..b8cbffc4 100644 --- a/src/settings/Makefile.in +++ b/src/settings/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -230,6 +230,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -325,6 +329,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -363,6 +370,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index 5d240c77..ddc758c7 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -1355,7 +1355,7 @@ dbus_secrets_auth_cb (NMSettingsConnection *self, TRUE, sender_uid, setting_name, - NM_SETTINGS_GET_SECRETS_FLAG_NONE, + NM_SETTINGS_GET_SECRETS_FLAG_USER_REQUESTED, NULL, dbus_get_agent_secrets_cb, context, diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 1ead4f8b..96564605 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -49,6 +49,7 @@ #include <nm-setting-serial.h> #include <nm-setting-vpn.h> #include <nm-setting-wired.h> +#include <nm-setting-adsl.h> #include <nm-setting-wireless.h> #include <nm-setting-wireless-security.h> #include <nm-setting-bond.h> @@ -68,6 +69,7 @@ #include "plugins/keyfile/plugin.h" #include "nm-agent-manager.h" #include "nm-settings-utils.h" +#include "nm-connection-provider.h" #define CONFIG_KEY_NO_AUTO_DEFAULT "no-auto-default" @@ -110,6 +112,12 @@ static void impl_settings_save_hostname (NMSettings *self, static void unmanaged_specs_changed (NMSystemConfigInterface *config, gpointer user_data); +static void connection_provider_init (NMConnectionProvider *cp_class); + +G_DEFINE_TYPE_EXTENDED (NMSettings, nm_settings, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (NM_TYPE_CONNECTION_PROVIDER, connection_provider_init)) + + typedef struct { NMDBusManager *dbus_mgr; DBusGConnection *bus; @@ -127,8 +135,6 @@ typedef struct { GSList *unmanaged_specs; } NMSettingsPrivate; -G_DEFINE_TYPE (NMSettings, nm_settings, G_TYPE_OBJECT) - #define NM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTINGS, NMSettingsPrivate)) enum { @@ -186,6 +192,7 @@ load_connections (NMSettings *self) unmanaged_specs_changed (NULL, self); g_signal_emit (self, signals[CONNECTIONS_LOADED], 0); + g_signal_emit_by_name (self, NM_CP_SIGNAL_CONNECTIONS_LOADED); } void @@ -674,6 +681,7 @@ connection_removed (NMSettingsConnection *obj, gpointer user_data) /* Re-emit for listeners like NMPolicy */ g_signal_emit (NM_SETTINGS (user_data), signals[CONNECTION_REMOVED], 0, connection); + g_signal_emit_by_name (NM_SETTINGS (user_data), NM_CP_SIGNAL_CONNECTION_REMOVED, connection); g_object_unref (connection); } @@ -701,6 +709,7 @@ connection_updated (NMSettingsConnection *connection, gpointer user_data) signals[CONNECTION_UPDATED], 0, connection); + g_signal_emit_by_name (NM_SETTINGS (user_data), NM_CP_SIGNAL_CONNECTION_UPDATED, connection); } static void @@ -849,6 +858,7 @@ claim_connection (NMSettings *self, if (priv->connections_loaded) { /* Internal added signal */ g_signal_emit (self, signals[CONNECTION_ADDED], 0, connection); + g_signal_emit_by_name (self, NM_CP_SIGNAL_CONNECTION_ADDED, connection); /* Exported D-Bus signal */ g_signal_emit (self, signals[NEW_CONNECTION], 0, connection); @@ -1621,6 +1631,100 @@ nm_settings_device_removed (NMSettings *self, NMDevice *device) /***************************************************************/ +static gint +best_connection_sort (gconstpointer a, gconstpointer b, gpointer user_data) +{ + NMSettingsConnection *ac = (NMSettingsConnection *) a; + NMSettingsConnection *bc = (NMSettingsConnection *) b; + guint64 ats, bts; + + if (!ac && bc) + return -1; + else if (ac && !bc) + return 1; + else if (!ac && !bc) + return 0; + + g_assert (ac && bc); + + /* In the future we may use connection priorities in addition to timestamps */ + ats = nm_settings_connection_get_timestamp (ac); + bts = nm_settings_connection_get_timestamp (bc); + + if (ats < bts) + return -1; + else if (ats > bts) + return 1; + return 0; +} + +static GSList * +get_best_connections (NMConnectionProvider *provider, + guint max_requested, + const char *ctype1, + const char *ctype2, + NMConnectionFilterFunc func, + gpointer func_data) +{ + NMSettings *self = NM_SETTINGS (provider); + NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self); + GSList *sorted = NULL; + GHashTableIter iter; + NMSettingsConnection *connection; + guint added = 0; + guint64 oldest = 0; + + g_hash_table_iter_init (&iter, priv->connections); + while (g_hash_table_iter_next (&iter, NULL, (gpointer) &connection)) { + if (ctype1 && !nm_connection_is_type (NM_CONNECTION (connection), ctype1)) + continue; + if (ctype2 && !nm_connection_is_type (NM_CONNECTION (connection), ctype2)) + continue; + if (func && !func (provider, NM_CONNECTION (connection), func_data)) + continue; + + /* Don't bother with a connection that's older than the oldest one in the list */ + if ( max_requested + && added >= max_requested + && nm_settings_connection_get_timestamp (connection) <= oldest) + continue; + + /* List is sorted with oldest first */ + sorted = g_slist_insert_sorted_with_data (sorted, connection, best_connection_sort, NULL); + added++; + + if (max_requested && added > max_requested) { + /* Over the limit, remove the oldest one */ + sorted = g_slist_delete_link (sorted, sorted); + added--; + } + + oldest = nm_settings_connection_get_timestamp (NM_SETTINGS_CONNECTION (sorted->data)); + } + + return g_slist_reverse (sorted); +} + +static const GSList * +get_connections (NMConnectionProvider *provider) +{ + static GSList *list = NULL; + NMSettings *self = NM_SETTINGS (provider); + GHashTableIter iter; + NMSettingsConnection *connection; + + /* Lazily free the list with every call so we can keep it 'const' for callers */ + g_slist_free (list); + list = NULL; + + g_hash_table_iter_init (&iter, NM_SETTINGS_GET_PRIVATE (self)->connections); + while (g_hash_table_iter_next (&iter, NULL, (gpointer) &connection)) + list = g_slist_prepend (list, connection); + return g_slist_reverse (list); +} + +/***************************************************************/ + NMSettings * nm_settings_new (const char *config_file, const char **plugins, @@ -1660,6 +1764,13 @@ nm_settings_new (const char *config_file, } static void +connection_provider_init (NMConnectionProvider *cp_class) +{ + cp_class->get_best_connections = get_best_connections; + cp_class->get_connections = get_connections; +} + +static void nm_settings_init (NMSettings *self) { NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self); @@ -1873,6 +1984,7 @@ nm_settings_class_init (NMSettingsClass *class) dbus_g_error_domain_register (NM_SETTING_PPP_ERROR, NULL, NM_TYPE_SETTING_PPP_ERROR); dbus_g_error_domain_register (NM_SETTING_PPPOE_ERROR, NULL, NM_TYPE_SETTING_PPPOE_ERROR); dbus_g_error_domain_register (NM_SETTING_SERIAL_ERROR, NULL, NM_TYPE_SETTING_SERIAL_ERROR); + dbus_g_error_domain_register (NM_SETTING_ADSL_ERROR, NULL, NM_TYPE_SETTING_ADSL_ERROR); dbus_g_error_domain_register (NM_SETTING_VPN_ERROR, NULL, NM_TYPE_SETTING_VPN_ERROR); dbus_g_error_domain_register (NM_SETTING_WIRED_ERROR, NULL, NM_TYPE_SETTING_WIRED_ERROR); dbus_g_error_domain_register (NM_SETTING_WIRELESS_SECURITY_ERROR, NULL, NM_TYPE_SETTING_WIRELESS_SECURITY_ERROR); diff --git a/src/settings/plugins/Makefile.am b/src/settings/plugins/Makefile.am index 5df57d5e..d4ba12f0 100644 --- a/src/settings/plugins/Makefile.am +++ b/src/settings/plugins/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS=keyfile +SUBDIRS=keyfile example if TARGET_REDHAT SUBDIRS+=ifcfg-rh diff --git a/src/settings/plugins/Makefile.in b/src/settings/plugins/Makefile.in index 0997f445..11560049 100644 --- a/src/settings/plugins/Makefile.in +++ b/src/settings/plugins/Makefile.in @@ -51,7 +51,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -80,7 +80,7 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ distdir ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = keyfile ifcfg-rh ifcfg-suse ifupdown ifnet +DIST_SUBDIRS = keyfile example ifcfg-rh ifcfg-suse ifupdown ifnet DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -179,6 +179,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -274,6 +278,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -312,6 +319,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -332,8 +341,8 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = keyfile $(am__append_1) $(am__append_2) $(am__append_3) \ - $(am__append_4) $(am__append_5) +SUBDIRS = keyfile example $(am__append_1) $(am__append_2) \ + $(am__append_3) $(am__append_4) $(am__append_5) all: all-recursive .SUFFIXES: diff --git a/src/settings/plugins/example/Makefile.am b/src/settings/plugins/example/Makefile.am new file mode 100644 index 00000000..027f6f89 --- /dev/null +++ b/src/settings/plugins/example/Makefile.am @@ -0,0 +1,40 @@ +INCLUDES = \ + -I$(top_srcdir)/src/settings \ + -I$(top_srcdir)/include \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/libnm-util \ + -I$(top_builddir)/libnm-util + +# 'noinst' here because this is an example plugin we don't want to install +noinst_LTLIBRARIES = libnm-settings-plugin-example.la + +# The actual plugins typically pull reader.c and writer.c out into +# their own static library so that unit tests can use them without +# having to build the entire plugin. But since this is a simple +# plugin we don't do that yet. + +libnm_settings_plugin_example_la_SOURCES = \ + nm-example-connection.c \ + nm-example-connection.h \ + plugin.c \ + plugin.h \ + errors.c \ + common.h \ + reader.c \ + writer.c + +libnm_settings_plugin_example_la_CPPFLAGS = \ + $(GLIB_CFLAGS) \ + $(GMODULE_CFLAGS) \ + $(DBUS_CFLAGS) \ + -DSYSCONFDIR=\"$(sysconfdir)\" \ + -DG_DISABLE_DEPRECATED + +libnm_settings_plugin_example_la_LIBADD = \ + $(top_builddir)/libnm-util/libnm-util.la \ + $(GLIB_LIBS) \ + $(GMODULE_LIBS) \ + $(GIO_LIBS) + +libnm_settings_plugin_example_la_LDFLAGS = -module -avoid-version + diff --git a/src/settings/plugins/example/Makefile.in b/src/settings/plugins/example/Makefile.in new file mode 100644 index 00000000..463ebac9 --- /dev/null +++ b/src/settings/plugins/example/Makefile.in @@ -0,0 +1,712 @@ +# 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@ +subdir = src/settings/plugins/example +DIST_COMMON = README $(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/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.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)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/vapigen.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 = +LTLIBRARIES = $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libnm_settings_plugin_example_la_DEPENDENCIES = \ + $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libnm_settings_plugin_example_la_OBJECTS = \ + libnm_settings_plugin_example_la-nm-example-connection.lo \ + libnm_settings_plugin_example_la-plugin.lo \ + libnm_settings_plugin_example_la-errors.lo \ + libnm_settings_plugin_example_la-reader.lo \ + libnm_settings_plugin_example_la-writer.lo +libnm_settings_plugin_example_la_OBJECTS = \ + $(am_libnm_settings_plugin_example_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libnm_settings_plugin_example_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) \ + $(libnm_settings_plugin_example_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/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 = $(libnm_settings_plugin_example_la_SOURCES) +DIST_SOURCES = $(libnm_settings_plugin_example_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +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@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MAKEFILE = @GLIB_MAKEFILE@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ +GNUTLS_LIBS = @GNUTLS_LIBS@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +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@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +IPTABLES_PATH = @IPTABLES_PATH@ +IWMX_SDK_CFLAGS = @IWMX_SDK_CFLAGS@ +IWMX_SDK_LIBS = @IWMX_SDK_LIBS@ +KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDL = @LIBDL@ +LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ +LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ +LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBNL1_CFLAGS = @LIBNL1_CFLAGS@ +LIBNL1_LIBS = @LIBNL1_LIBS@ +LIBNL2_CFLAGS = @LIBNL2_CFLAGS@ +LIBNL2_LIBS = @LIBNL2_LIBS@ +LIBNL3_CFLAGS = @LIBNL3_CFLAGS@ +LIBNL3_LIBS = @LIBNL3_LIBS@ +LIBNL_CFLAGS = @LIBNL_CFLAGS@ +LIBNL_GENL3_CFLAGS = @LIBNL_GENL3_CFLAGS@ +LIBNL_GENL3_LIBS = @LIBNL_GENL3_LIBS@ +LIBNL_LIBS = @LIBNL_LIBS@ +LIBNL_ROUTE3_CFLAGS = @LIBNL_ROUTE3_CFLAGS@ +LIBNL_ROUTE3_LIBS = @LIBNL_ROUTE3_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +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@ +POLKIT_CFLAGS = @POLKIT_CFLAGS@ +POLKIT_LIBS = @POLKIT_LIBS@ +POSUB = @POSUB@ +PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ +QT_CFLAGS = @QT_CFLAGS@ +QT_LIBS = @QT_LIBS@ +RANLIB = @RANLIB@ +RESOLVCONF_PATH = @RESOLVCONF_PATH@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ +SYSTEMD_LIBS = @SYSTEMD_LIBS@ +SYSTEM_CA_PATH = @SYSTEM_CA_PATH@ +UDEV_BASE_DIR = @UDEV_BASE_DIR@ +USE_NLS = @USE_NLS@ +UUID_CFLAGS = @UUID_CFLAGS@ +UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +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@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +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)/src/settings \ + -I$(top_srcdir)/include \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/libnm-util \ + -I$(top_builddir)/libnm-util + + +# 'noinst' here because this is an example plugin we don't want to install +noinst_LTLIBRARIES = libnm-settings-plugin-example.la + +# The actual plugins typically pull reader.c and writer.c out into +# their own static library so that unit tests can use them without +# having to build the entire plugin. But since this is a simple +# plugin we don't do that yet. +libnm_settings_plugin_example_la_SOURCES = \ + nm-example-connection.c \ + nm-example-connection.h \ + plugin.c \ + plugin.h \ + errors.c \ + common.h \ + reader.c \ + writer.c + +libnm_settings_plugin_example_la_CPPFLAGS = \ + $(GLIB_CFLAGS) \ + $(GMODULE_CFLAGS) \ + $(DBUS_CFLAGS) \ + -DSYSCONFDIR=\"$(sysconfdir)\" \ + -DG_DISABLE_DEPRECATED + +libnm_settings_plugin_example_la_LIBADD = \ + $(top_builddir)/libnm-util/libnm-util.la \ + $(GLIB_LIBS) \ + $(GMODULE_LIBS) \ + $(GIO_LIBS) + +libnm_settings_plugin_example_la_LDFLAGS = -module -avoid-version +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/settings/plugins/example/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/settings/plugins/example/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-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libnm-settings-plugin-example.la: $(libnm_settings_plugin_example_la_OBJECTS) $(libnm_settings_plugin_example_la_DEPENDENCIES) + $(AM_V_CCLD)$(libnm_settings_plugin_example_la_LINK) $(libnm_settings_plugin_example_la_OBJECTS) $(libnm_settings_plugin_example_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_example_la-errors.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_example_la-nm-example-connection.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_example_la-plugin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_example_la-reader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_example_la-writer.Plo@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 $@ $< + +libnm_settings_plugin_example_la-nm-example-connection.lo: nm-example-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_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_example_la-nm-example-connection.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_example_la-nm-example-connection.Tpo -c -o libnm_settings_plugin_example_la-nm-example-connection.lo `test -f 'nm-example-connection.c' || echo '$(srcdir)/'`nm-example-connection.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_example_la-nm-example-connection.Tpo $(DEPDIR)/libnm_settings_plugin_example_la-nm-example-connection.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-example-connection.c' object='libnm_settings_plugin_example_la-nm-example-connection.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) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_example_la-nm-example-connection.lo `test -f 'nm-example-connection.c' || echo '$(srcdir)/'`nm-example-connection.c + +libnm_settings_plugin_example_la-plugin.lo: plugin.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_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_example_la-plugin.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_example_la-plugin.Tpo -c -o libnm_settings_plugin_example_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_example_la-plugin.Tpo $(DEPDIR)/libnm_settings_plugin_example_la-plugin.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libnm_settings_plugin_example_la-plugin.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) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_example_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c + +libnm_settings_plugin_example_la-errors.lo: errors.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_example_la-errors.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_example_la-errors.Tpo -c -o libnm_settings_plugin_example_la-errors.lo `test -f 'errors.c' || echo '$(srcdir)/'`errors.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_example_la-errors.Tpo $(DEPDIR)/libnm_settings_plugin_example_la-errors.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='errors.c' object='libnm_settings_plugin_example_la-errors.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) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_example_la-errors.lo `test -f 'errors.c' || echo '$(srcdir)/'`errors.c + +libnm_settings_plugin_example_la-reader.lo: reader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_example_la-reader.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_example_la-reader.Tpo -c -o libnm_settings_plugin_example_la-reader.lo `test -f 'reader.c' || echo '$(srcdir)/'`reader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_example_la-reader.Tpo $(DEPDIR)/libnm_settings_plugin_example_la-reader.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reader.c' object='libnm_settings_plugin_example_la-reader.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) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_example_la-reader.lo `test -f 'reader.c' || echo '$(srcdir)/'`reader.c + +libnm_settings_plugin_example_la-writer.lo: writer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_example_la-writer.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_example_la-writer.Tpo -c -o libnm_settings_plugin_example_la-writer.lo `test -f 'writer.c' || echo '$(srcdir)/'`writer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_example_la-writer.Tpo $(DEPDIR)/libnm_settings_plugin_example_la-writer.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='writer.c' object='libnm_settings_plugin_example_la-writer.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) $(libnm_settings_plugin_example_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm_settings_plugin_example_la-writer.lo `test -f 'writer.c' || echo '$(srcdir)/'`writer.c + +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 +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +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-noinstLTLIBRARIES \ + 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: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES 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 + + +# 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/settings/plugins/example/README b/src/settings/plugins/example/README new file mode 100644 index 00000000..224814d1 --- /dev/null +++ b/src/settings/plugins/example/README @@ -0,0 +1,35 @@ +Plugins generally have three components: + +1) plugin object: manages the individual "connections", which are + just objects wrapped around on-disk config data. The plugin handles requests + to add new connections via the NM D-Bus API, and also watches config + directories for changes to configuration data. It also handles reading and + writing the persistent hostname, if the plugin supports hostnames. Plugins + implement the NMSystemConfigInterface interface. See plugin.c. + +2) "connections": subclasses of NMSettingsConnection. They handle updates to + configuration data, deletion, etc. See NMExampleConnection.c. + +3) reader/writer code: typically a separate static library that gets linked + into the main plugin shared object, so they can be unit tested separately + from the plugin. This code should read config data from disk and create + an NMConnection from it, and be capable of taking an NMConnection and writing + out appropriate configuration data to disk. + +NM will first call the "factory" function that every module must provide, which +is nm_system_config_factory(). That function creates and returns a singleton +instance of the plugin's main object, which implements NMSystemConfigInterface. +That interface is implemented via the object definition in G_DEFINE_TYPE_EXTENDED +in plugin.c, which registers the interface setup function +system_config_interface_init(), which when called actually sets up the vtables +for the functions defined by NMSystemConfigInterface. Thus there are two +entry points into the plugin: nm_system_config_factory() and +the NMSystemConfigInterface methods. + +The plugin also emits various signals (defined by NMSystemConfigInterface) +which NetworkManager listens for. These include persistent hostname changes +(if something modified the file in which the persistent hostname is stored) +and notifications of new connections if they were created via changes to +the on-disk files. The "connection" objects can also emit signals +(defined by the NMSettingsConnection and NMConnection superclasses) when the +connections' backing storage gets changed or deleted. diff --git a/src/settings/plugins/example/common.h b/src/settings/plugins/example/common.h new file mode 100644 index 00000000..a4197070 --- /dev/null +++ b/src/settings/plugins/example/common.h @@ -0,0 +1,56 @@ +/* -*- 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 2012 Red Hat, Inc. + */ + +#ifndef __COMMON_H__ +#define __COMMON_H__ + +#include <glib.h> + +#include <nm-connection.h> + +/* General info about the plugin that the code may want to use for logging + * purposes. + */ +#define EXAMPLE_PLUGIN_NAME "example" +#define EXAMPLE_PLUGIN_INFO "(c) 2012 Red Hat, Inc. To report bugs please use the NetworkManager mailing list." + +#define EXAMPLE_DIR SYSCONFDIR"/NetworkManager/example-plugin" + +/* Boilerplate stuff for the plugin's error domain. Bits of the code that + * create new errors in the plugin's domain will create errors of + * type EXAMPLE_PLUGIN_ERROR like so: + * + * error = g_error_new_literal (EXAMPLE_PLUGIN_ERROR, + * <specific error number>, + * "This is a really bad error."); + */ +#define EXAMPLE_PLUGIN_ERROR (example_plugin_error_quark ()) +GQuark example_plugin_error_quark (void); + +/* Prototypes for the reader/writer functions */ +NMConnection *connection_from_file (const char *filename, GError **error); + +gboolean write_connection (NMConnection *connection, + const char *existing_path, + char **out_path, + GError **error); + +#endif /* __COMMON_H__ */ + diff --git a/src/settings/plugins/example/errors.c b/src/settings/plugins/example/errors.c new file mode 100644 index 00000000..8181f8a3 --- /dev/null +++ b/src/settings/plugins/example/errors.c @@ -0,0 +1,40 @@ +/* -*- 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 2012 Red Hat, Inc. + */ + +#include <glib.h> +#include "common.h" + +/* This is boilerplate code for defining the error domain that the plugin may + * return to NetworkManager for various operations. It just registers a + * GObject "quark" (a UUID really) for the error which allows glib to keep + * track of all the different error domains. + */ +GQuark +example_plugin_error_quark (void) +{ + static GQuark error_quark = 0; + + if (G_UNLIKELY (error_quark == 0)) + error_quark = g_quark_from_static_string ("example-plugin-error-quark"); + + return error_quark; +} + + diff --git a/src/settings/plugins/example/nm-example-connection.c b/src/settings/plugins/example/nm-example-connection.c new file mode 100644 index 00000000..e4a69f9b --- /dev/null +++ b/src/settings/plugins/example/nm-example-connection.c @@ -0,0 +1,191 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager system settings service - keyfile plugin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#include <string.h> +#include <glib/gstdio.h> +#include <NetworkManager.h> +#include <nm-setting-connection.h> +#include <nm-utils.h> + +#include "nm-system-config-interface.h" +#include "nm-dbus-glib-types.h" +#include "nm-example-connection.h" +#include "common.h" + +/* GObject boilerplate; this object is a subclass of NMSettingsConnection + * which is specified by the NM_TYPE_SETTINGS_CONNECTION bit here. That + * in turn is a subclass of NMConnection, so it ends up that NMExampleConnection + * is a subclass of NMConnection too. + */ +G_DEFINE_TYPE (NMExampleConnection, nm_example_connection, NM_TYPE_SETTINGS_CONNECTION) + +#define NM_EXAMPLE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_EXAMPLE_CONNECTION, NMExampleConnectionPrivate)) + +/* Object private instance data */ +typedef struct { + char *path; +} NMExampleConnectionPrivate; + + +/* Creates a new object which encapsulates an on-disk connection and any + * plugin-specific operations or data. + */ +NMExampleConnection * +nm_example_connection_new (const char *full_path, + NMConnection *source, + GError **error) +{ + GObject *object; + NMExampleConnectionPrivate *priv; + NMConnection *tmp; + const char *uuid; + + g_return_val_if_fail (full_path != NULL, NULL); + + /* If we're given a connection already, prefer that instead of re-reading */ + if (source) + tmp = g_object_ref (source); + else { + /* Read the data offdisk and translate it into a simple NMConnection object */ + tmp = connection_from_file (full_path, error); + if (!tmp) + return NULL; + } + + /* Actually create the new NMExampleConnection object */ + object = (GObject *) g_object_new (NM_TYPE_EXAMPLE_CONNECTION, NULL); + if (!object) + goto out; + + priv = NM_EXAMPLE_CONNECTION_GET_PRIVATE (object); + priv->path = g_strdup (full_path); + + /* Update our settings with what was read from the file or what got passed + * in as a source NMConnection. + */ + if (!nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object), tmp, error)) { + g_object_unref (object); + object = NULL; + goto out; + } + + /* Make sure we have a UUID; just a sanity check */ + uuid = nm_connection_get_uuid (NM_CONNECTION (object)); + if (!uuid) { + g_set_error (error, EXAMPLE_PLUGIN_ERROR, 0, + "Connection in file %s had no UUID", full_path); + g_object_unref (object); + object = NULL; + } + +out: + g_object_unref (tmp); + return (NMExampleConnection *) object; +} + +const char * +nm_example_connection_get_path (NMExampleConnection *self) +{ + g_return_val_if_fail (NM_IS_EXAMPLE_CONNECTION (self), NULL); + + /* Simple accessor that returns the file path from our private instance data */ + return NM_EXAMPLE_CONNECTION_GET_PRIVATE (self)->path; +} + +static void +commit_changes (NMSettingsConnection *connection, + NMSettingsConnectionCommitFunc callback, + gpointer user_data) +{ + NMExampleConnectionPrivate *priv = NM_EXAMPLE_CONNECTION_GET_PRIVATE (connection); + char *path = NULL; + GError *error = NULL; + + /* Write the new connection data out to disk. This function passes + * back the path of the file it wrote out so that we know what that + * path is if the connection is a completely new one. + */ + if (!write_connection (NM_CONNECTION (connection), priv->path, &path, &error)) { + callback (connection, error, user_data); + g_clear_error (&error); + return; + } + + /* Update the filename if it changed */ + if (path) { + g_free (priv->path); + priv->path = path; + } + + /* Chain up to parent for generic commit stuff */ + NM_SETTINGS_CONNECTION_CLASS (nm_example_connection_parent_class)->commit_changes (connection, + callback, + user_data); +} + +static void +do_delete (NMSettingsConnection *connection, + NMSettingsConnectionDeleteFunc callback, + gpointer user_data) +{ + NMExampleConnectionPrivate *priv = NM_EXAMPLE_CONNECTION_GET_PRIVATE (connection); + + g_unlink (priv->path); + + /* Chain up to parent for generic deletion stuff */ + NM_SETTINGS_CONNECTION_CLASS (nm_example_connection_parent_class)->delete (connection, + callback, + user_data); +} + +/**************************************************************/ + +static void +nm_example_connection_init (NMExampleConnection *connection) +{ +} + +static void +finalize (GObject *object) +{ + NMExampleConnectionPrivate *priv = NM_EXAMPLE_CONNECTION_GET_PRIVATE (object); + + /* Zero out any secrets so we don't leave them in memory */ + nm_connection_clear_secrets (NM_CONNECTION (object)); + + g_free (priv->path); + + G_OBJECT_CLASS (nm_example_connection_parent_class)->finalize (object); +} + +static void +nm_example_connection_class_init (NMExampleConnectionClass *keyfile_connection_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (keyfile_connection_class); + NMSettingsConnectionClass *settings_class = NM_SETTINGS_CONNECTION_CLASS (keyfile_connection_class); + + /* Tells GObject to allocate and zero our instance data pointer */ + g_type_class_add_private (keyfile_connection_class, sizeof (NMExampleConnectionPrivate)); + + /* Overrides of various superclass methods */ + object_class->finalize = finalize; + settings_class->commit_changes = commit_changes; + settings_class->delete = do_delete; +} diff --git a/src/settings/plugins/example/nm-example-connection.h b/src/settings/plugins/example/nm-example-connection.h new file mode 100644 index 00000000..d6d09e16 --- /dev/null +++ b/src/settings/plugins/example/nm-example-connection.h @@ -0,0 +1,55 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager system settings service - keyfile plugin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#ifndef NM_EXAMPLE_CONNECTION_H +#define NM_EXAMPLE_CONNECTION_H + +#include <nm-settings-connection.h> + +G_BEGIN_DECLS + +/* GObject boilerplate */ +#define NM_TYPE_EXAMPLE_CONNECTION (nm_example_connection_get_type ()) +#define NM_EXAMPLE_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_EXAMPLE_CONNECTION, NMExampleConnection)) +#define NM_EXAMPLE_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_EXAMPLE_CONNECTION, NMExampleConnectionClass)) +#define NM_IS_EXAMPLE_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_EXAMPLE_CONNECTION)) +#define NM_IS_EXAMPLE_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_EXAMPLE_CONNECTION)) +#define NM_EXAMPLE_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_EXAMPLE_CONNECTION, NMExampleConnectionClass)) + +typedef struct { + NMSettingsConnection parent; +} NMExampleConnection; + +typedef struct { + NMSettingsConnectionClass parent; +} NMExampleConnectionClass; + +GType nm_example_connection_get_type (void); + +/* Actual API that plugin.c will call */ +NMExampleConnection *nm_example_connection_new (const char *filename, + NMConnection *source, + GError **error); + +const char *nm_example_connection_get_path (NMExampleConnection *self); + +G_END_DECLS + +#endif /* NM_EXAMPLE_CONNECTION_H */ diff --git a/src/settings/plugins/example/plugin.c b/src/settings/plugins/example/plugin.c new file mode 100644 index 00000000..04af03e7 --- /dev/null +++ b/src/settings/plugins/example/plugin.c @@ -0,0 +1,868 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager system settings service - keyfile plugin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#include <config.h> +#include <sys/stat.h> +#include <unistd.h> +#include <sys/types.h> +#include <netinet/ether.h> +#include <string.h> + +#include <gmodule.h> +#include <glib.h> +#include <glib/gstdio.h> +#include <gio/gio.h> + +#include <nm-connection.h> +#include <nm-setting.h> +#include <nm-setting-connection.h> + +#include "plugin.h" +#include "nm-system-config-interface.h" +#include "common.h" +#include "nm-example-connection.h" + +static char *plugin_get_hostname (SCPluginExample *plugin); +static void system_config_interface_init (NMSystemConfigInterface *system_config_interface_class); + +/* GObject object definition. This actually defines the object and tells + * GObject about the interfaces this object provides. Here we provide + * the "system config interface" which is the API that NetworkManager uses + * to communicate with this plugin. + * + * Interface and super/sub-class access with GObject works via casting and + * GObject magically figures out what needs to be called. So, given: + * + * SCPluginExample *plugin = <new plugin>; + * + * you can call GObject methods since SCPluginExample inherits from GObject + * via the G_TYPE_OBJECT argument of G_DEFINE_TYPE_EXTENDED below: + * + * g_object_set_data (G_OBJECT (plugin), ...); + * + * and since SCPluginExample implements NMSystemConfigInterface via the + * G_IMPLEMENT_INTERFACE bit below, we can also call any methods of + * NMSystemConfigInterface (defined in NM sources in nm-system-config-interface.c): + * + * connections = nm_system_config_interface_get_connections (NM_SYSTEM_CONFIG_INTERFACE (plugin)); + * + * For the call to nm_system_config_interface_get_connections() that eventually + * ends up in the get_connections() method in this file because the + * system_config_interface_init() function sets up the vtable for this objects + * implementation of NMSystemConfigInterface. + */ +G_DEFINE_TYPE_EXTENDED (SCPluginExample, sc_plugin_example, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (NM_TYPE_SYSTEM_CONFIG_INTERFACE, system_config_interface_init)) + +/* Quick define to access the object's private data pointer; this pointer + * points to the object's instance data. + */ +#define SC_PLUGIN_EXAMPLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SC_TYPE_PLUGIN_EXAMPLE, SCPluginExamplePrivate)) + +/* Instance data. When the object is created, a new structure of this type + * will be created and zeroed for this instance of the object to use. This + * is actually done by g_type_class_add_private() when called from the object's + * class init function. + */ +typedef struct { + /* This hash holds each connection known to this plugin */ + GHashTable *connections; + + /* A watch for changes on the directory that holds the configuration files + * so the plugin can respond to configuration changes on-the-fly and + * tell NM that the connection data has changed. Typically the plugin + * needs to monitor the directory itself (to watch for completely new files) + * while the individual connections watch their individual config files. + */ + GFileMonitor *monitor; + guint monitor_id; + + /* Tracks changes to the global NM config file, just in case our + * plugin has some specific options (like unmanaged devices) that + * might be changed at runtime. + */ + char *conf_file; + GFileMonitor *conf_file_monitor; + guint conf_file_monitor_id; + + /* Persistent hostname if the plugin supports hostnames. Normally used + * for distro plugins; ie Red Hat uses /etc/sysconfig/hostname while + * Debian uses /etc/hostname. Plugins can abstract the storage location + * and just tell NM what the persisten hostname is and when its backing + * file has changed. NM handles actually setting the hostname. + */ + char *hostname; +} SCPluginExamplePrivate; + +static NMSettingsConnection * +_internal_new_connection (SCPluginExample *self, + const char *full_path, + NMConnection *source, + GError **error) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (self); + NMExampleConnection *connection; + + g_return_val_if_fail (full_path != NULL, NULL); + + /* 'source' will usually be NULL if we're going to read the connection + * off disk. But if the new connection is coming from NetworkManager + * (ie, from a D-Bus AddConnection request) then we'll have 'source' too. + * This function expects the connection to already be written to disk + * so that the NMExampleConnection object can re-read it and intialize + * state in the same manner as when getting a change notification from + * the config directory. That simplifies things somewhat. + */ + + connection = nm_example_connection_new (full_path, source, error); + if (connection) { + g_hash_table_insert (priv->connections, + (gpointer) nm_example_connection_get_path (connection), + connection); + } + + return (NMSettingsConnection *) connection; +} + +/* Read each file in our config directory and try to create a new + * NMExamplePlugin for it. + */ +static void +read_connections (NMSystemConfigInterface *config) +{ + SCPluginExample *self = SC_PLUGIN_EXAMPLE (config); + GDir *dir; + GError *error = NULL; + const char *item; + + dir = g_dir_open (EXAMPLE_DIR, 0, &error); + if (!dir) { + PLUGIN_WARN (EXAMPLE_PLUGIN_NAME, "Cannot read directory '%s': (%d) %s", + EXAMPLE_DIR, + error ? error->code : -1, + error && error->message ? error->message : "(unknown)"); + g_clear_error (&error); + return; + } + + while ((item = g_dir_read_name (dir))) { + NMSettingsConnection *connection; + char *full_path; + + /* XXX: Check file extension and ignore "~", ".tmp", ".bak", etc */ + + full_path = g_build_filename (EXAMPLE_DIR, item, NULL); + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, "parsing %s ... ", item); + + connection = _internal_new_connection (self, full_path, NULL, &error); + if (connection) { + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, " read connection '%s'", + nm_connection_get_id (NM_CONNECTION (connection))); + } else { + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, " error: %s", + (error && error->message) ? error->message : "(unknown)"); + } + g_clear_error (&error); + g_free (full_path); + } + g_dir_close (dir); +} + +static void +update_connection_settings_commit_cb (NMSettingsConnection *orig, GError *error, gpointer user_data) +{ + /* If there was an error updating the connection's internal stuff, then + * we can't do anything except log it and remove the connection. This might + * happen due to invalid data, but as the data would already have been + * verified before it ever got to this plugin, we shouldn't ever get + * an error here. + */ + if (error) { + g_warning ("%s: '%s' / '%s' invalid: %d", + __func__, + error ? g_type_name (nm_connection_lookup_setting_type_by_quark (error->domain)) : "(none)", + (error && error->message) ? error->message : "(none)", + error ? error->code : -1); + g_clear_error (&error); + + nm_settings_connection_signal_remove (orig); + } +} + +static void +update_connection_settings (NMExampleConnection *orig, + NMExampleConnection *new) +{ + /* This just replaces the orig's internal settings with those from new */ + nm_settings_connection_replace_and_commit (NM_SETTINGS_CONNECTION (orig), + NM_CONNECTION (new), + update_connection_settings_commit_cb, NULL); +} + +/* Monitoring */ + +static void +remove_connection (SCPluginExample *self, + NMExampleConnection *connection, + const char *name) +{ + g_return_if_fail (connection != NULL); + g_return_if_fail (name != NULL); + + /* Removing from the hash table should drop the last reference, but since + * we need the object to stay alive across the signal emission to NM, + * we grab a temporary reference. + */ + g_object_ref (connection); + g_hash_table_remove (SC_PLUGIN_EXAMPLE_GET_PRIVATE (self)->connections, name); + + /* Tell NM the connection is gone */ + nm_settings_connection_signal_remove (NM_SETTINGS_CONNECTION (connection)); + + /* Remove the temporary reference; connection will now be destroyed */ + g_object_unref (connection); +} + +/* Look through all connections we know about and return one with a given UUID */ +static NMExampleConnection * +find_by_uuid (SCPluginExample *self, const char *uuid) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (self); + GHashTableIter iter; + gpointer data = NULL; + + g_return_val_if_fail (uuid != NULL, NULL); + + g_hash_table_iter_init (&iter, priv->connections); + while (g_hash_table_iter_next (&iter, NULL, &data)) { + NMConnection *candidate = NM_CONNECTION (data); + + if (strcmp (uuid, nm_connection_get_uuid (candidate)) == 0) + return NM_EXAMPLE_CONNECTION (candidate); + } + return NULL; +} + + +static void +dir_changed (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type, + gpointer user_data) +{ + NMSystemConfigInterface *config = NM_SYSTEM_CONFIG_INTERFACE (user_data); + SCPluginExample *self = SC_PLUGIN_EXAMPLE (config); + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (self); + char *full_path; + NMExampleConnection *connection; + GError *error = NULL; + + full_path = g_file_get_path (file); + /* XXX: Check here if you need to ignore this file, ie by checking for + * extensions like "~" and ".bak" or ".tmp". If so just return; + */ + + /* Check if we know about this connection already */ + connection = g_hash_table_lookup (priv->connections, full_path); + + switch (event_type) { + case G_FILE_MONITOR_EVENT_DELETED: + if (connection) { + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, "removed %s.", full_path); + remove_connection (SC_PLUGIN_EXAMPLE (config), connection, full_path); + } + break; + case G_FILE_MONITOR_EVENT_CREATED: + case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: + if (connection) { + /* Update of an existing connection. Here we re-read the file and + * compare it against the existing connection to check if anything + * actually changed. + */ + NMExampleConnection *tmp; + + tmp = nm_example_connection_new (full_path, NULL, &error); + if (tmp) { + if (!nm_connection_compare (NM_CONNECTION (connection), + NM_CONNECTION (tmp), + NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS | + NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS)) { + /* Connection changed; update our internal connection object */ + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, "updating %s", full_path); + update_connection_settings (connection, tmp); + } + g_object_unref (tmp); + } else { + /* There was an error parsing the updated connection; it may + * no longer be valid and thus we've got to delete it. If it + * becomes valid again later we'll get another change + * notification, we'll re-read it, and we'll treat it as new. + */ + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, " error: %s", + (error && error->message) ? error->message : "(unknown)"); + remove_connection (SC_PLUGIN_EXAMPLE (config), connection, full_path); + } + g_clear_error (&error); + } else { + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, "updating %s", full_path); + + /* We don't know about the connection yet, so the change represents + * a completely new connection. + */ + connection = nm_example_connection_new (full_path, NULL, &error); + if (connection) { + NMExampleConnection *found = NULL; + + /* Connection renames will show up as different files but with + * the same UUID. Try to find the original connection. + * A connection rename is treated just like an update except + * there's a bit more housekeeping with the hash table. + */ + found = find_by_uuid (self, nm_connection_get_uuid (NM_CONNECTION (connection))); + if (found) { + const char *old_path = nm_example_connection_get_path (connection); + + /* Removing from the hash table should drop the last reference, + * but of course we want to keep the connection around. + */ + g_object_ref (found); + g_hash_table_remove (priv->connections, old_path); + + /* Updating settings should update the NMExampleConnection's + * filename property too. + */ + update_connection_settings (found, connection); + + /* Re-insert the connection back into the hash with the new filename */ + g_hash_table_insert (priv->connections, + (gpointer) nm_example_connection_get_path (found), + found); + + /* Get rid of the temporary connection */ + g_object_unref (connection); + } else { + /* Completely new connection, not a rename. */ + g_hash_table_insert (priv->connections, + (gpointer) nm_example_connection_get_path (connection), + connection); + /* Tell NM we found a new connection */ + g_signal_emit_by_name (config, NM_SYSTEM_CONFIG_INTERFACE_CONNECTION_ADDED, connection); + } + } else { + PLUGIN_PRINT (EXAMPLE_PLUGIN_NAME, " error: %s", + (error && error->message) ? error->message : "(unknown)"); + g_clear_error (&error); + } + } + break; + default: + break; + } + + g_free (full_path); +} + +static void +conf_file_changed (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type, + gpointer data) +{ + SCPluginExample *self = SC_PLUGIN_EXAMPLE (data); + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (self); + char *tmp; + + switch (event_type) { + case G_FILE_MONITOR_EVENT_DELETED: + case G_FILE_MONITOR_EVENT_CREATED: + case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: + /* Unmanaged devices option may have changed; just emit the changed + * signal for unmanaged specs and when NM calls back in to get the + * updated specs we'll re-read the config file then. + */ + g_signal_emit_by_name (self, NM_SYSTEM_CONFIG_INTERFACE_UNMANAGED_SPECS_CHANGED); + + /* Hostname may also have changed; read it and if it did actually + * change, notify NM. + */ + tmp = plugin_get_hostname (self); + if (g_strcmp0 (tmp, priv->hostname) != 0) { + g_free (priv->hostname); + priv->hostname = tmp; + tmp = NULL; + g_object_notify (G_OBJECT (self), NM_SYSTEM_CONFIG_INTERFACE_HOSTNAME); + } + g_free (tmp); + break; + default: + break; + } +} + +/* This function starts the inotify monitors that watch the plugin's config + * file directory for new connections and changes to existing connections. + * At this time all plugins are expected to make NM aware of changes on-the-fly + * instead of requiring a SIGHUP or SIGUSR1 or some D-Bus method to say + * "reload". + */ +static void +setup_monitoring (NMSystemConfigInterface *config) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (config); + GFileMonitor *monitor; + GFile *file; + + /* Initialize connection hash here; we use the connection hash as the + * "are we initialized yet" variable. + */ + priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref); + + /* Set up the watch for our config directory */ + file = g_file_new_for_path (EXAMPLE_DIR); + monitor = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL); + g_object_unref (file); + if (monitor) { + /* This registers the dir_changed() function to be called whenever + * the GFileMonitor object notices a change in the directory. + */ + priv->monitor_id = g_signal_connect (monitor, "changed", G_CALLBACK (dir_changed), config); + priv->monitor = monitor; + } + + /* Set up a watch on our configuration file, basically just for watching + * whether the user has changed the unmanaged devices option or the + * persistent hostname. + */ + if (priv->conf_file) { + file = g_file_new_for_path (priv->conf_file); + monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, NULL); + g_object_unref (file); + + if (monitor) { + priv->conf_file_monitor_id = g_signal_connect (monitor, "changed", G_CALLBACK (conf_file_changed), config); + priv->conf_file_monitor = monitor; + } + } +} + +/*******************************************************************/ + +/* Return to NM the full list of connections this plugin owns */ +static GSList * +get_connections (NMSystemConfigInterface *config) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (config); + GHashTableIter iter; + NMSettingsConnection *connection; + GSList *list = NULL; + + if (!priv->connections) { + /* If we haven't read connections in yet, do so now */ + setup_monitoring (config); + read_connections (config); + } + + /* Add each connection from our internal hash table to a list returned + * to NetworkManager. + */ + g_hash_table_iter_init (&iter, priv->connections); + while (g_hash_table_iter_next (&iter, NULL, (gpointer) &connection)) + list = g_slist_prepend (list, connection); + return list; +} + +/* Called by NetworkManager when a user adds a new connection via D-Bus. + * The plugin should convert the data in 'connection' to its on-disk format + * write it out to disk, and return an object that's a subclass of + * NMSettingsConnection. Typically plugins will subclass NMSettingsConnection + * and use that class to handle any plugin-specific stuff like monitoring + * the on-disk config files for changes, and/or parsing the file-format and + * converting back and forth from that to NMConnection. + */ +static NMSettingsConnection * +add_connection (NMSystemConfigInterface *config, + NMConnection *connection, + GError **error) +{ + SCPluginExample *self = SC_PLUGIN_EXAMPLE (config); + NMSettingsConnection *added = NULL; + char *path = NULL; + + /* Write it out first, then add the connection to our internal list; that + * way we don't trigger the new NMSettingsConnection subclass' file watch + * functions needlessly. + */ + if (write_connection (connection, NULL, &path, error)) { + added = _internal_new_connection (self, path, connection, error); + g_free (path); + } + return added; +} + +/* This function returns a list of "unmanaged device specs" which represent + * a list of devices that NetworkManager should not manage. Each unmanaged + * spec item has a specific format starting with a "tag" and followed by + * tag-specific data. The only currently specified item is "mac:" followed + * by the MAC address of the interface NM should not manage. This function + * reads the list of unmanaged devices from wherever the plugin wants to + * store them and returns that list to NetworkManager. + */ +static GSList * +get_unmanaged_specs (NMSystemConfigInterface *config) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (config); + GKeyFile *key_file; + GSList *specs = NULL; + GError *error = NULL; + char *str, **macs; + int i; + + if (!priv->conf_file) + return NULL; + + key_file = g_key_file_new (); + if (!g_key_file_load_from_file (key_file, priv->conf_file, G_KEY_FILE_NONE, &error)) { + g_warning ("Error parsing file '%s': %s", priv->conf_file, error->message); + g_error_free (error); + goto out; + } + + + str = g_key_file_get_value (key_file, "keyfile", "unmanaged-devices", NULL); + if (!str) + goto out; + + macs = g_strsplit (str, ";", -1); + for (i = 0; macs[i] != NULL; i++) { + /* Verify unmanaged specification and add it to the list */ + if (strlen (macs[i]) > 4 && !strncmp (macs[i], "mac:", 4) && ether_aton (macs[i] + 4)) { + char *p = macs[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, macs[i]); + } else { + g_warning ("Error in file '%s': invalid unmanaged-devices entry: '%s'", priv->conf_file, macs[i]); + g_free (macs[i]); + } + } + + g_free (macs); /* Yes, g_free, not g_strfreev because we need the strings in the list */ + g_free (str); + +out: + g_key_file_free (key_file); + return specs; +} + + +static char * +plugin_get_hostname (SCPluginExample *plugin) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (plugin); + GKeyFile *key_file; + char *hostname = NULL; + GError *error = NULL; + + if (!priv->conf_file) + return NULL; + + /* Read the persistent hostname out of backing storage, which happens + * to be the NM config file. Other plugins (like distro-specific ones) + * should read it from the distro-specific location like /etc/hostname. + */ + key_file = g_key_file_new (); + if (g_key_file_load_from_file (key_file, priv->conf_file, G_KEY_FILE_NONE, &error)) + hostname = g_key_file_get_value (key_file, "keyfile", "hostname", NULL); + else { + g_warning ("Error parsing file '%s': %s", priv->conf_file, error->message); + g_error_free (error); + } + + g_key_file_free (key_file); + return hostname; +} + +static gboolean +plugin_set_hostname (SCPluginExample *plugin, const char *hostname) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (plugin); + GKeyFile *key_file; + GError *error = NULL; + gboolean success = FALSE; + char *data; + gsize len; + + if (!priv->conf_file) { + g_warning ("Error saving hostname: no config file"); + return FALSE; + } + + /* This just saves the hostname to the NM config file in a section + * private to this plugin. + */ + key_file = g_key_file_new (); + if (!g_key_file_load_from_file (key_file, priv->conf_file, G_KEY_FILE_NONE, &error)) { + g_warning ("Error parsing file '%s': %s", priv->conf_file, error->message); + g_error_free (error); + goto out; + } + + g_key_file_set_string (key_file, "example", "hostname", hostname); + + data = g_key_file_to_data (key_file, &len, &error); + if (data) { + /* Save updated file to disk */ + g_file_set_contents (priv->conf_file, data, len, &error); + g_free (data); + + /* Update internal copy of hostname */ + g_free (priv->hostname); + priv->hostname = g_strdup (hostname); + success = TRUE; + } + + if (error) { + g_warning ("Error saving hostname: %s", error->message); + g_error_free (error); + } + +out: + g_key_file_free (key_file); + return success; +} + +/* GObject */ + +static void +sc_plugin_example_init (SCPluginExample *plugin) +{ + /* Here we'd do any instance-specific initialization like setting + * members of SCPluginExamplePrivate to default values. But we + * don't have anything to do here since most initialization is done + * when NM calls the various entry points. + */ +} + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + switch (prop_id) { + case NM_SYSTEM_CONFIG_INTERFACE_PROP_NAME: + g_value_set_string (value, EXAMPLE_PLUGIN_NAME); + break; + case NM_SYSTEM_CONFIG_INTERFACE_PROP_INFO: + g_value_set_string (value, EXAMPLE_PLUGIN_INFO); + break; + case NM_SYSTEM_CONFIG_INTERFACE_PROP_CAPABILITIES: + /* Return capabilities to NM; this plugin supports changing connections + * as well as being capable of saving the hostname to persistent storage. + * If the plugin can't write out updated configuration, then obviously + * it shouldn't advertise that capability. If it can't save hostnames + * to persistent storage, it shouldn't advertise that capability either. + */ + g_value_set_uint (value, NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_CONNECTIONS | + NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_HOSTNAME); + break; + case NM_SYSTEM_CONFIG_INTERFACE_PROP_HOSTNAME: + /* Return the hostname we've read from persistent storage */ + g_value_set_string (value, SC_PLUGIN_EXAMPLE_GET_PRIVATE (object)->hostname); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + const char *hostname; + + switch (prop_id) { + case NM_SYSTEM_CONFIG_INTERFACE_PROP_HOSTNAME: + /* We'll get here when the user has changed the hostname via NM's + * D-Bus interface and we're requested to save this hostname to + * persistent storage. + */ + hostname = g_value_get_string (value); + if (hostname && strlen (hostname) < 1) + hostname = NULL; + plugin_set_hostname (SC_PLUGIN_EXAMPLE (object), hostname); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +dispose (GObject *object) +{ + SCPluginExamplePrivate *priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (object); + + /* GObject has a two-stage object destruction process: dispose and finalize. + * In dispose the object should free any references it might have on other + * objects to break circular refs, then it's finally cleaned up by finalize. + * We don't bother to implement a finalize, so we just make sure that we + * clean everything up (including clearing pointers) in dispose so that + * if GObject decides to revive this object post-dispose (yes, legal) + * we don't crash on dangling pointers. + */ + + if (priv->monitor) { + if (priv->monitor_id) { + g_signal_handler_disconnect (priv->monitor, priv->monitor_id); + priv->monitor_id = 0; + } + + g_file_monitor_cancel (priv->monitor); + g_object_unref (priv->monitor); + priv->monitor = NULL; + } + + if (priv->conf_file_monitor) { + if (priv->conf_file_monitor_id) { + g_signal_handler_disconnect (priv->conf_file_monitor, priv->conf_file_monitor_id); + priv->conf_file_monitor_id = 0; + } + + g_file_monitor_cancel (priv->conf_file_monitor); + g_object_unref (priv->conf_file_monitor); + priv->conf_file_monitor = NULL; + } + + if (priv->connections) { + /* Destroying the connections hash unrefs each connection in it + * due to the GHashTable value_destroy_func that we passed into + * g_hash_table_new_full(). + */ + g_hash_table_destroy (priv->connections); + priv->connections = NULL; + } + + g_free (priv->hostname); + priv->hostname = NULL; + g_free (priv->conf_file); + priv->conf_file = NULL; + + /* Chain up to the superclass */ + G_OBJECT_CLASS (sc_plugin_example_parent_class)->dispose (object); +} + +/* This function gets called to set up any method and property overrides + * of superclasses, and also (if we actually had any) to set up any + * custom properties and signals this object might have. This is called before + * the object is actually instantiated; it just sets up the generic class + * stuff, not anything related to a specific object instance. + */ +static void +sc_plugin_example_class_init (SCPluginExampleClass *req_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (req_class); + + /* This actually creates and zeros the object's instance data struct */ + g_type_class_add_private (req_class, sizeof (SCPluginExamplePrivate)); + + /* Override GObject base class methods with our custom implementations */ + object_class->dispose = dispose; + object_class->get_property = get_property; + object_class->set_property = set_property; + + /* Override various GObject properties that we need to change. Here we + * just tell GObject that we will be handling the get/set operations for + * these specific properties. They are actually defined by the + * NMSystemConfigInterface interface in nm-system-config-interface.c. + * What happens here is that we tell GObject that for a given property + * name (ie NM_SYSTEM_CONFIG_INTERFACE_NAME) we'll be using the enum value + * NM_SYSTEM_CONFIG_INTERFACE_PROP_NAME locally in get_property() and + * set_property(). + */ + g_object_class_override_property (object_class, + NM_SYSTEM_CONFIG_INTERFACE_PROP_NAME, + NM_SYSTEM_CONFIG_INTERFACE_NAME); + + g_object_class_override_property (object_class, + NM_SYSTEM_CONFIG_INTERFACE_PROP_INFO, + NM_SYSTEM_CONFIG_INTERFACE_INFO); + + g_object_class_override_property (object_class, + NM_SYSTEM_CONFIG_INTERFACE_PROP_CAPABILITIES, + NM_SYSTEM_CONFIG_INTERFACE_CAPABILITIES); + + g_object_class_override_property (object_class, + NM_SYSTEM_CONFIG_INTERFACE_PROP_HOSTNAME, + NM_SYSTEM_CONFIG_INTERFACE_HOSTNAME); +} + +static void +system_config_interface_init (NMSystemConfigInterface *sci_intf) +{ + /* Interface implementation for NMSystemConfigInterface. This sets + * up the GInterface vtable that lets GObject know what functions to + * call for each method of the NMSystemConfigInterface interface. + */ + sci_intf->get_connections = get_connections; + sci_intf->add_connection = add_connection; + sci_intf->get_unmanaged_specs = get_unmanaged_specs; +} + +/*******************************************************************/ + +/* Factory function: this is the first entry point for NetworkManager, which + * gets called during NM startup to create the the instance of this plugin + * that NetworkManager will actually use. Since every plugin is a singleton + * we just return a singleton instance. This function should never be called + * twice. + */ +G_MODULE_EXPORT GObject * +nm_system_config_factory (const char *config_file) +{ + static SCPluginExample *singleton = NULL; + SCPluginExamplePrivate *priv; + + if (!singleton) { + /* Instantiate our plugin */ + singleton = SC_PLUGIN_EXAMPLE (g_object_new (SC_TYPE_PLUGIN_EXAMPLE, NULL)); + if (singleton) { + priv = SC_PLUGIN_EXAMPLE_GET_PRIVATE (singleton); + + /* Cache the config file path */ + priv->conf_file = g_strdup (config_file); + } + } else { + /* This function should never be called twice */ + g_assert_not_reached (); + } + + return G_OBJECT (singleton); +} + diff --git a/src/settings/plugins/example/plugin.h b/src/settings/plugins/example/plugin.h new file mode 100644 index 00000000..23b68e2e --- /dev/null +++ b/src/settings/plugins/example/plugin.h @@ -0,0 +1,55 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager system settings service - example plugin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#ifndef _PLUGIN_H_ +#define _PLUGIN_H_ + +#include <glib-object.h> + +/* GObject boilerplate: you usually only need to rename 'example' here to + * your plugin's name. These functions get used when casting pointers + * to your plugin's object type. + */ +#define SC_TYPE_PLUGIN_EXAMPLE (sc_plugin_example_get_type ()) +#define SC_PLUGIN_EXAMPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SC_TYPE_PLUGIN_EXAMPLE, SCPluginExample)) +#define SC_PLUGIN_EXAMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SC_TYPE_PLUGIN_EXAMPLE, SCPluginExampleClass)) +#define SC_IS_PLUGIN_EXAMPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SC_TYPE_PLUGIN_EXAMPLE)) +#define SC_IS_PLUGIN_EXAMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SC_TYPE_PLUGIN_EXAMPLE)) +#define SC_PLUGIN_EXAMPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SC_TYPE_PLUGIN_EXAMPLE, SCPluginExampleClass)) + +typedef struct { + /* GObject instance structure for the plugin; we don't do anything special + * here so this object's instance is exactly the same as its parent. + */ + GObject parent; +} SCPluginExample; + +typedef struct { + /* GObject class structure; we don't do anything special here + * so this object's class is exactly the same as its parent. Typically + * if the plugin implemented custom signals their prototypes would go + * here, but most plugins don't need to do this. + */ + GObjectClass parent; +} SCPluginExampleClass; + +GType sc_plugin_example_get_type (void); + +#endif /* _PLUGIN_H_ */ diff --git a/src/settings/plugins/example/reader.c b/src/settings/plugins/example/reader.c new file mode 100644 index 00000000..9a4cecaa --- /dev/null +++ b/src/settings/plugins/example/reader.c @@ -0,0 +1,46 @@ +/* -*- 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. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#include <config.h> +#include <glib.h> + +#include <nm-connection.h> +#include <NetworkManager.h> + +#include "common.h" + +NMConnection * +connection_from_file (const char *filename, GError **error) +{ + /* This function should, given a file path, read that file and convert its + * data into an NMConnection. There are two approaches to this. First, + * if the plugin data format is similar to the NMConnection internal + * format, you can get away with calling nm_connection_for_each_setting_value() + * to iterate through every possible setting's keys and read that value + * from the plugin's format. If the plugin's format is siginificantly + * different then you may have to build up the connection manually by + * determining the type of connection from the on-disk data, creating + * each setting object, adding the values, then adding that setting to + * the NMConnection. + */ + + return NULL; +} + diff --git a/src/settings/plugins/example/writer.c b/src/settings/plugins/example/writer.c new file mode 100644 index 00000000..4703fa94 --- /dev/null +++ b/src/settings/plugins/example/writer.c @@ -0,0 +1,55 @@ +/* -*- 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. + * + * Copyright (C) 2012 Red Hat, Inc. + */ + +#include <config.h> +#include <glib.h> + +#include <nm-connection.h> + +#include "common.h" + +gboolean +write_connection (NMConnection *connection, + const char *existing_path, + char **out_path, + GError **error) +{ + /* This function should take the NMConnection and convert it to the format + * which this plugin uses on-disk and then write out that data. It returns + * the file path of the file that represents this connection data so that + * the plugin can track it for change notification and updates. If + * 'existing_path' is given we can assume that this is an update of an + * existing connection and not a completely new one. + */ + + /* There are two approaches to converting the data. The first more manual + * approach consists of grabbing each setting value from the NMConnection + * and converting it into the appropriate value for the plugin's data + * format. This is usually taken by distro plugins becuase their format + * is significantly different than NetworkManager's internal format. + * The second uses nm_connection_for_each_setting_value() to iterate + * through each value of each setting in the NMConnection, convert it to + * the required format, and write it out, but this requires that the + * plugin format more closely follow the NetworkManager internal format. + */ + + return FALSE; +} + diff --git a/src/settings/plugins/ifcfg-rh/Makefile.am b/src/settings/plugins/ifcfg-rh/Makefile.am index 8b5b0f24..68225ba1 100644 --- a/src/settings/plugins/ifcfg-rh/Makefile.am +++ b/src/settings/plugins/ifcfg-rh/Makefile.am @@ -25,6 +25,7 @@ libifcfg_rh_io_la_SOURCES = \ INCLUDES = \ -I$(top_srcdir)/src/wifi \ -I$(top_srcdir)/src/settings \ + -I$(top_srcdir)/src/posix-signals \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ -I$(top_srcdir)/libnm-glib \ @@ -40,6 +41,7 @@ libifcfg_rh_io_la_CPPFLAGS = \ libifcfg_rh_io_la_LIBADD = \ $(top_builddir)/src/wifi/libwifi-utils.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(GLIB_LIBS) \ $(NSS_LIBS) diff --git a/src/settings/plugins/ifcfg-rh/Makefile.in b/src/settings/plugins/ifcfg-rh/Makefile.in index 3325c7e8..ba3bb528 100644 --- a/src/settings/plugins/ifcfg-rh/Makefile.in +++ b/src/settings/plugins/ifcfg-rh/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -82,6 +82,7 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES) am__DEPENDENCIES_1 = libifcfg_rh_io_la_DEPENDENCIES = \ $(top_builddir)/src/wifi/libwifi-utils.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libifcfg_rh_io_la_OBJECTS = libifcfg_rh_io_la-shvar.lo \ @@ -249,6 +250,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -344,6 +349,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -382,6 +390,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -423,6 +433,7 @@ libifcfg_rh_io_la_SOURCES = \ INCLUDES = \ -I$(top_srcdir)/src/wifi \ -I$(top_srcdir)/src/settings \ + -I$(top_srcdir)/src/posix-signals \ -I$(top_srcdir)/include \ -I$(top_builddir)/include \ -I$(top_srcdir)/libnm-glib \ @@ -438,6 +449,7 @@ libifcfg_rh_io_la_CPPFLAGS = \ libifcfg_rh_io_la_LIBADD = \ $(top_builddir)/src/wifi/libwifi-utils.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(GLIB_LIBS) \ $(NSS_LIBS) diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c index 01d83c1b..a2b08e4f 100644 --- a/src/settings/plugins/ifcfg-rh/reader.c +++ b/src/settings/plugins/ifcfg-rh/reader.c @@ -48,6 +48,7 @@ #include <nm-utils.h> #include "wifi-utils.h" +#include "nm-posix-signals.h" #include "common.h" #include "shvar.h" @@ -208,6 +209,12 @@ iscsiadm_child_setup (gpointer user_data G_GNUC_UNUSED) */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for iscsiadm here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static char * @@ -3732,8 +3739,8 @@ make_vlan_setting (shvarFile *ifcfg, char *value = NULL; char *iface_name = NULL; char *parent = NULL; - const char *p = NULL, *w; - gboolean has_numbers = FALSE; + const char *p = NULL; + char *end = NULL; gint vlan_id = -1; guint32 vlan_flags = 0; @@ -3773,17 +3780,12 @@ make_vlan_setting (shvarFile *ifcfg, p = iface_name + 4; } - w = p; - while (*w && !has_numbers) - has_numbers = g_ascii_isdigit (*w); - - /* Grab VLAN ID from interface name; this takes precedence over the - * separate VLAN_ID property for backwards compat. - */ - if (has_numbers) { - errno = 0; - vlan_id = (gint) g_ascii_strtoll (p, NULL, 10); - if (vlan_id < 0 || vlan_id > 4095 || errno) { + if (p) { + /* Grab VLAN ID from interface name; this takes precedence over the + * separate VLAN_ID property for backwards compat. + */ + vlan_id = (gint) g_ascii_strtoll (p, &end, 10); + if (vlan_id < 0 || vlan_id > 4095 || end == p || *end) { g_set_error (error, IFCFG_PLUGIN_ERROR, 0, "Failed to determine VLAN ID from DEVICE '%s'", iface_name); diff --git a/src/settings/plugins/ifcfg-rh/tests/Makefile.in b/src/settings/plugins/ifcfg-rh/tests/Makefile.in index 5e8abf83..dd601727 100644 --- a/src/settings/plugins/ifcfg-rh/tests/Makefile.in +++ b/src/settings/plugins/ifcfg-rh/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -211,6 +211,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -306,6 +310,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -344,6 +351,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in index 4f34cfc3..ab8dc497 100644 --- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in +++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -134,6 +134,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -229,6 +233,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -267,6 +274,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 b/src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 index bf98da5a..6a63e817 100644 --- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 +++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 @@ -1,2 +1,2 @@ -WPA_PSK=$'They\'re really saying I love you. >>`<<' +WPA_PSK=$'They\'re really saying I love you. >>`<< \' diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c index 62882a76..83b60d22 100644 --- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c +++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c @@ -4927,7 +4927,7 @@ test_read_wifi_wpa_psk_2 (void) GError *error = NULL; const char *tmp; const char *expected_id = "System ipsum (test-wifi-wpa-psk-2)"; - const char *expected_psk = "They're really saying I love you. >>`<<"; + const char *expected_psk = "They're really saying I love you. >>`<< \\"; connection = connection_from_file (TEST_IFCFG_WIFI_WPA_PSK_2, NULL, @@ -12858,7 +12858,7 @@ int main (int argc, char **argv) FALSE, TRUE, TRUE, - "blah`oops\"grr'$*@~!%"); + "blah`oops\"grr'$*@~!%\\"); test_write_wifi_wpa_psk_adhoc (); test_write_wifi_wpa_eap_tls (); test_write_wifi_wpa_eap_ttls_tls (); diff --git a/src/settings/plugins/ifcfg-rh/utils.c b/src/settings/plugins/ifcfg-rh/utils.c index 0b7ddf36..908d3364 100644 --- a/src/settings/plugins/ifcfg-rh/utils.c +++ b/src/settings/plugins/ifcfg-rh/utils.c @@ -189,7 +189,7 @@ utils_single_unquote_string (const char *str) i = quote + dollar; while (i < slen - quote) { - if (str[i] == escape_char && str[i+1] == q_char) + if (str[i] == escape_char && str[i+1] == q_char && i+1 < slen-quote) i++; new_str[j++] = str[i++]; } diff --git a/src/settings/plugins/ifcfg-rh/writer.c b/src/settings/plugins/ifcfg-rh/writer.c index e2aa57dd..a431a30d 100644 --- a/src/settings/plugins/ifcfg-rh/writer.c +++ b/src/settings/plugins/ifcfg-rh/writer.c @@ -1030,6 +1030,7 @@ write_wired_setting (NMConnection *connection, shvarFile *ifcfg, GError **error) g_free (tmp); } + svSetValue (ifcfg, "MACADDR", NULL, FALSE); cloned_mac = nm_setting_wired_get_cloned_mac_address (s_wired); if (cloned_mac) { tmp = g_strdup_printf ("%02X:%02X:%02X:%02X:%02X:%02X", diff --git a/src/settings/plugins/ifcfg-suse/Makefile.in b/src/settings/plugins/ifcfg-suse/Makefile.in index ac528342..25c3d345 100644 --- a/src/settings/plugins/ifcfg-suse/Makefile.in +++ b/src/settings/plugins/ifcfg-suse/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -197,6 +197,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -292,6 +296,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -330,6 +337,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/plugins/ifnet/Makefile.am b/src/settings/plugins/ifnet/Makefile.am index 84deda5b..07a2fc88 100644 --- a/src/settings/plugins/ifnet/Makefile.am +++ b/src/settings/plugins/ifnet/Makefile.am @@ -1,5 +1,6 @@ SUBDIRS = . tests INCLUDES = \ + -I$(top_srcdir)/src/wifi \ -I$(top_srcdir)/src/settings \ -I$(top_srcdir)/include \ -I$(top_srcdir)/libnm-glib \ @@ -52,6 +53,7 @@ lib_ifnet_io_la_CPPFLAGS = \ -DSBINDIR=\"$(sbindir)\" lib_ifnet_io_la_LIBADD = \ + $(top_builddir)/src/wifi/libwifi-utils.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(GLIB_LIBS)\ $(GIO_LIBS) diff --git a/src/settings/plugins/ifnet/Makefile.in b/src/settings/plugins/ifnet/Makefile.in index 322adbf8..acf4e8bc 100644 --- a/src/settings/plugins/ifnet/Makefile.in +++ b/src/settings/plugins/ifnet/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -79,6 +79,7 @@ am__installdirs = "$(DESTDIR)$(pkglibdir)" LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES) am__DEPENDENCIES_1 = lib_ifnet_io_la_DEPENDENCIES = \ + $(top_builddir)/src/wifi/libwifi-utils.la \ $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_lib_ifnet_io_la_OBJECTS = lib_ifnet_io_la-net_parser.lo \ @@ -245,6 +246,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -340,6 +345,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -378,6 +386,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -400,6 +410,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . tests INCLUDES = \ + -I$(top_srcdir)/src/wifi \ -I$(top_srcdir)/src/settings \ -I$(top_srcdir)/include \ -I$(top_srcdir)/libnm-glib \ @@ -449,6 +460,7 @@ lib_ifnet_io_la_CPPFLAGS = \ -DSBINDIR=\"$(sbindir)\" lib_ifnet_io_la_LIBADD = \ + $(top_builddir)/src/wifi/libwifi-utils.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(GLIB_LIBS)\ $(GIO_LIBS) diff --git a/src/settings/plugins/ifnet/net_parser.c b/src/settings/plugins/ifnet/net_parser.c index 38765f5f..2562e613 100644 --- a/src/settings/plugins/ifnet/net_parser.c +++ b/src/settings/plugins/ifnet/net_parser.c @@ -22,7 +22,14 @@ #include <string.h> #include <nm-system-config-interface.h> #include <stdio.h> + +#include <sys/ioctl.h> +#include <net/if.h> +#include <unistd.h> + #include "plugin.h" +#include "wifi-utils.h" + #include "net_parser.h" #include "net_utils.h" @@ -122,6 +129,24 @@ is_global_setting (char *key) return 0; } +/* Find out whether the 'iface' is an interface */ +static gboolean +name_is_interface (const char *iface) +{ + int fd; + struct ifreq ifr; + gboolean is_iface = FALSE; + + fd = socket (PF_INET, SOCK_DGRAM, 0); + if (fd >= 0) { + strncpy (ifr.ifr_name, iface, IFNAMSIZ); + if (ioctl (fd, SIOCGIFHWADDR, &ifr) == 0) + is_iface = TRUE; + close (fd); + } + return is_iface; +} + /* Parse a complete line */ /* Connection type is determined here */ static void @@ -143,12 +168,13 @@ init_block_by_line (gchar * buf) pos = g_strrstr (key_value[0], "_"); if (pos == NULL || is_global_setting (key_value[0])) { /* global data */ - PLUGIN_PRINT (IFNET_PLUGIN_NAME, "global:%s-%s\n", key_value[0], - key_value[1]); - g_hash_table_insert (global_settings_table, - g_strdup (key_value[0]), - g_strdup (key_value[1])); + data = g_strdup (key_value[1]); + tmp = strip_string (data, '"'); + strip_string (tmp, '\''); + PLUGIN_PRINT (IFNET_PLUGIN_NAME, "global:%s-%s\n", key_value[0], tmp); + g_hash_table_insert (global_settings_table, g_strdup (key_value[0]), g_strdup (tmp)); g_strfreev (key_value); + g_free (data); return; } *pos++ = '\0'; @@ -165,8 +191,12 @@ init_block_by_line (gchar * buf) /* ignored connection */ conn = add_new_connection_config ("ignore", pos); } else - /* wireless connection */ - conn = add_new_connection_config ("wireless", pos); + if (name_is_interface (pos) && !wifi_utils_is_wifi (pos, NULL)) + /* wired connection */ + conn = add_new_connection_config ("wired", pos); + else + /* wireless connection */ + conn = add_new_connection_config ("wireless", pos); } data = g_strdup (key_value[1]); tmp = strip_string (data, '"'); @@ -593,7 +623,7 @@ ifnet_flush_to_file (const char *config_file) /* Writing global data */ while (g_hash_table_iter_next (&iter, &key, &value)) { out_line = - g_strdup_printf ("%s=%s\n", (gchar *) key, (gchar *) value); + g_strdup_printf ("%s=\"%s\"\n", (gchar *) key, (gchar *) value); g_io_channel_write_chars (channel, out_line, -1, &bytes_written, error); if (bytes_written == 0 || (error && *error)) diff --git a/src/settings/plugins/ifnet/net_utils.c b/src/settings/plugins/ifnet/net_utils.c index f1687479..d613db6a 100644 --- a/src/settings/plugins/ifnet/net_utils.c +++ b/src/settings/plugins/ifnet/net_utils.c @@ -404,7 +404,7 @@ has_ip6_address (const char *conn_name) g_return_val_if_fail (conn_name != NULL, FALSE); ipset = split_addresses (ifnet_get_data (conn_name, "config")); - length = g_strv_length (ipset); + length = ipset ? g_strv_length (ipset) : 0; for (i = 0; i < length; i++) { if (!is_ip6_address (ipset[i])) continue; @@ -618,7 +618,7 @@ convert_ip4_config_block (const char *conn_name) g_return_val_if_fail (conn_name != NULL, NULL); ipset = split_addresses (ifnet_get_data (conn_name, "config")); - length = g_strv_length (ipset); + length = ipset ? g_strv_length (ipset) : 0; routes = ifnet_get_data (conn_name, "routes"); if (routes) @@ -654,7 +654,7 @@ convert_ip6_config_block (const char *conn_name) g_return_val_if_fail (conn_name != NULL, NULL); ipset = split_addresses (ifnet_get_data (conn_name, "config")); - length = g_strv_length (ipset); + length = ipset ? g_strv_length (ipset) : 0; for (i = 0; i < length; i++) { ip = ipset[i]; ip = strip_string (ip, '"'); @@ -684,7 +684,7 @@ convert_ip4_routes_block (const char *conn_name) g_return_val_if_fail (conn_name != NULL, NULL); ipset = split_routes (ifnet_get_data (conn_name, "routes")); - length = g_strv_length (ipset); + length = ipset ? g_strv_length (ipset) : 0; for (i = 0; i < length; i++) { ip = ipset[i]; if (find_default_gateway_str (ip) || strstr (ip, "::") @@ -718,7 +718,7 @@ convert_ip6_routes_block (const char *conn_name) g_return_val_if_fail (conn_name != NULL, NULL); ipset = split_routes (ifnet_get_data (conn_name, "routes")); - length = g_strv_length (ipset); + length = ipset ? g_strv_length (ipset) : 0; for (i = 0; i < length; i++) { ip = ipset[i]; ip = strip_string (ip, '"'); diff --git a/src/settings/plugins/ifnet/tests/Makefile.am b/src/settings/plugins/ifnet/tests/Makefile.am index 20a26805..85d42388 100644 --- a/src/settings/plugins/ifnet/tests/Makefile.am +++ b/src/settings/plugins/ifnet/tests/Makefile.am @@ -10,7 +10,8 @@ check_ifnet_CPPFLAGS = $(CHECK_CFLAGS) $(GLIB_CFLAGS) check_ifnet_LDADD = $(top_builddir)/libnm-util/libnm-util.la \ $(builddir)/../lib-ifnet-io.la \ $(CHECK_LIBS) \ - $(GLIB_LIBS) + $(GLIB_LIBS) \ + $(LIBM) EXTRA_DIST = hostname \ net \ net.all \ diff --git a/src/settings/plugins/ifnet/tests/Makefile.in b/src/settings/plugins/ifnet/tests/Makefile.in index 02ee121f..743e547c 100644 --- a/src/settings/plugins/ifnet/tests/Makefile.in +++ b/src/settings/plugins/ifnet/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -59,7 +59,8 @@ am_check_ifnet_OBJECTS = check_ifnet-test_all.$(OBJEXT) check_ifnet_OBJECTS = $(am_check_ifnet_OBJECTS) am__DEPENDENCIES_1 = check_ifnet_DEPENDENCIES = $(top_builddir)/libnm-util/libnm-util.la \ - $(builddir)/../lib-ifnet-io.la $(am__DEPENDENCIES_1) + $(builddir)/../lib-ifnet-io.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent @@ -168,6 +169,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -263,6 +268,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -301,6 +309,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -332,7 +342,8 @@ check_ifnet_CPPFLAGS = $(CHECK_CFLAGS) $(GLIB_CFLAGS) check_ifnet_LDADD = $(top_builddir)/libnm-util/libnm-util.la \ $(builddir)/../lib-ifnet-io.la \ $(CHECK_LIBS) \ - $(GLIB_LIBS) + $(GLIB_LIBS) \ + $(LIBM) EXTRA_DIST = hostname \ net \ diff --git a/src/settings/plugins/ifnet/tests/net b/src/settings/plugins/ifnet/tests/net index 27d39f44..a5ac9ca2 100644 --- a/src/settings/plugins/ifnet/tests/net +++ b/src/settings/plugins/ifnet/tests/net @@ -3,6 +3,8 @@ # please review /etc/conf.d/net.example and save your configuration # in /etc/conf.d/net (this file :]!). +modules="!wpa_supplicant" + config_eth0=( "202.117.16.121 netmask 255.255.255.0 brd 202.117.16.255" "192.168.4.121/24" diff --git a/src/settings/plugins/ifnet/tests/test_all.c b/src/settings/plugins/ifnet/tests/test_all.c index 50441d4e..974258b9 100644 --- a/src/settings/plugins/ifnet/tests/test_all.c +++ b/src/settings/plugins/ifnet/tests/test_all.c @@ -56,6 +56,9 @@ test_getdata () && strcmp (ifnet_get_data ("ppp0", "password"), "password") == 0, "get data", "config_ppp0 password is not correctly read"); + ASSERT (ifnet_get_global_data ("modules") + && strcmp ("!wpa_supplicant", ifnet_get_global_data ("modules")) == 0, + "get data", "config_eth1 is not correct"); } static void diff --git a/src/settings/plugins/ifupdown/Makefile.in b/src/settings/plugins/ifupdown/Makefile.in index f5087648..d1414ef0 100644 --- a/src/settings/plugins/ifupdown/Makefile.in +++ b/src/settings/plugins/ifupdown/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -244,6 +244,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -339,6 +343,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -377,6 +384,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/plugins/ifupdown/tests/Makefile.am b/src/settings/plugins/ifupdown/tests/Makefile.am index ff219d5d..9a9ea1f7 100644 --- a/src/settings/plugins/ifupdown/tests/Makefile.am +++ b/src/settings/plugins/ifupdown/tests/Makefile.am @@ -29,4 +29,5 @@ endif EXTRA_DIST = \ test1 test2 test3 test4 test5 test6 test7 test8 test9 test11 test12 \ - test13 test14 test15 test16 test17-wired-static-verify-ip4 + test13 test14 test15 test16 test17-wired-static-verify-ip4 \ + test18-wired-static-verify-ip6 diff --git a/src/settings/plugins/ifupdown/tests/Makefile.in b/src/settings/plugins/ifupdown/tests/Makefile.in index a03be1bd..68c166c0 100644 --- a/src/settings/plugins/ifupdown/tests/Makefile.in +++ b/src/settings/plugins/ifupdown/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -168,6 +168,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -263,6 +267,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -301,6 +308,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -343,7 +352,8 @@ test_ifupdown_LDADD = \ EXTRA_DIST = \ test1 test2 test3 test4 test5 test6 test7 test8 test9 test11 test12 \ - test13 test14 test15 test16 test17-wired-static-verify-ip4 + test13 test14 test15 test16 test17-wired-static-verify-ip4 \ + test18-wired-static-verify-ip6 all: all-am diff --git a/src/settings/plugins/ifupdown/tests/test18-wired-static-verify-ip6 b/src/settings/plugins/ifupdown/tests/test18-wired-static-verify-ip6 new file mode 100644 index 00000000..29546a61 --- /dev/null +++ b/src/settings/plugins/ifupdown/tests/test18-wired-static-verify-ip6 @@ -0,0 +1,6 @@ +iface myip6tunnel inet6 v4tunnel + address fc00::1 + netmask 64 + endpoint 78.35.24.124 + dns-nameservers fc00::2 fc00::3 + dns-search example.com foo.example.com diff --git a/src/settings/plugins/keyfile/Makefile.in b/src/settings/plugins/keyfile/Makefile.in index c766e794..4b9ec0dd 100644 --- a/src/settings/plugins/keyfile/Makefile.in +++ b/src/settings/plugins/keyfile/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -220,6 +220,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -315,6 +319,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -353,6 +360,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c index c7889cfc..47392978 100644 --- a/src/settings/plugins/keyfile/reader.c +++ b/src/settings/plugins/keyfile/reader.c @@ -1351,7 +1351,8 @@ nm_keyfile_plugin_connection_from_file (const char *filename, GError **error) /* Verify the connection */ if (!nm_connection_verify (connection, &verify_error)) { g_set_error (error, KEYFILE_PLUGIN_ERROR, 0, - "invalid or missing connection property '%s'", + "invalid or missing connection property '%s/%s'", + verify_error ? g_type_name (nm_connection_lookup_setting_type_by_quark (verify_error->domain)) : "(unknown)", (verify_error && verify_error->message) ? verify_error->message : "(unknown)"); g_clear_error (&verify_error); g_object_unref (connection); diff --git a/src/settings/plugins/keyfile/tests/Makefile.in b/src/settings/plugins/keyfile/tests/Makefile.in index ff08e529..d37f2c61 100644 --- a/src/settings/plugins/keyfile/tests/Makefile.in +++ b/src/settings/plugins/keyfile/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -206,6 +206,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -301,6 +305,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -339,6 +346,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in index cf5b868f..e6cf35ad 100644 --- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in +++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -134,6 +134,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -229,6 +233,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -267,6 +274,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/settings/tests/Makefile.in b/src/settings/tests/Makefile.in index de5474d4..5fb95d31 100644 --- a/src/settings/tests/Makefile.in +++ b/src/settings/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -170,6 +170,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -265,6 +269,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -303,6 +310,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/supplicant-manager/Makefile.in b/src/supplicant-manager/Makefile.in index fbb43bde..4bde9543 100644 --- a/src/supplicant-manager/Makefile.in +++ b/src/supplicant-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -210,6 +210,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -305,6 +309,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -343,6 +350,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/supplicant-manager/nm-supplicant-interface.c b/src/supplicant-manager/nm-supplicant-interface.c index f8ad8f18..cbe7032f 100644 --- a/src/supplicant-manager/nm-supplicant-interface.c +++ b/src/supplicant-manager/nm-supplicant-interface.c @@ -50,6 +50,8 @@ static void wpas_iface_scan_done (DBusGProxy *proxy, gboolean success, gpointer user_data); +static void wpas_iface_get_props (NMSupplicantInterface *self); + #define NM_SUPPLICANT_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ NM_TYPE_SUPPLICANT_INTERFACE, \ NMSupplicantInterfacePrivate)) @@ -85,6 +87,8 @@ typedef struct { gboolean is_wireless; gboolean has_credreq; /* Whether querying 802.1x credentials is supported */ gboolean fast_supported; + guint32 max_scan_ssids; + guint32 ready_count; char * object_path; guint32 state; @@ -100,7 +104,7 @@ typedef struct { guint32 blobs_left; GHashTable * bss_proxies; - guint32 last_scan; + time_t last_scan; NMSupplicantConfig * cfg; @@ -257,6 +261,10 @@ bss_properties_changed (DBusGProxy *proxy, gpointer user_data) { NMSupplicantInterface *self = NM_SUPPLICANT_INTERFACE (user_data); + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); + + if (priv->scanning) + priv->last_scan = time (NULL); if (g_strcmp0 (interface, WPAS_DBUS_IFACE_BSS) == 0) g_signal_emit (self, signals[BSS_UPDATED], 0, dbus_g_proxy_get_path (proxy), props); @@ -268,6 +276,10 @@ old_bss_properties_changed (DBusGProxy *proxy, gpointer user_data) { NMSupplicantInterface *self = NM_SUPPLICANT_INTERFACE (user_data); + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); + + if (priv->scanning) + priv->last_scan = time (NULL); g_signal_emit (self, signals[BSS_UPDATED], 0, dbus_g_proxy_get_path (proxy), props); } @@ -346,7 +358,13 @@ wpas_iface_bss_added (DBusGProxy *proxy, GHashTable *props, gpointer user_data) { - handle_new_bss (NM_SUPPLICANT_INTERFACE (user_data), object_path, props); + NMSupplicantInterface *self = NM_SUPPLICANT_INTERFACE (user_data); + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); + + if (priv->scanning) + priv->last_scan = time (NULL); + + handle_new_bss (self, object_path, props); } static void @@ -365,7 +383,9 @@ wpas_iface_bss_removed (DBusGProxy *proxy, static int wpas_state_string_to_enum (const char *str_state) { - if (!strcmp (str_state, "disconnected")) + if (!strcmp (str_state, "interface_disabled")) + return NM_SUPPLICANT_INTERFACE_STATE_DISABLED; + else if (!strcmp (str_state, "disconnected")) return NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED; else if (!strcmp (str_state, "inactive")) return NM_SUPPLICANT_INTERFACE_STATE_INACTIVE; @@ -406,7 +426,12 @@ set_state (NMSupplicantInterface *self, guint32 new_state) if (priv->state >= NM_SUPPLICANT_INTERFACE_STATE_READY) g_return_if_fail (new_state > NM_SUPPLICANT_INTERFACE_STATE_READY); - if (new_state == NM_SUPPLICANT_INTERFACE_STATE_DOWN) { + if (new_state == NM_SUPPLICANT_INTERFACE_STATE_READY) { + /* Get properties again to update to the actual wpa_supplicant + * interface state. + */ + wpas_iface_get_props (self); + } else if (new_state == NM_SUPPLICANT_INTERFACE_STATE_DOWN) { /* Cancel all pending calls when going down */ cancel_all_callbacks (priv->other_pcalls); cancel_all_callbacks (priv->assoc_pcalls); @@ -438,6 +463,11 @@ set_state (NMSupplicantInterface *self, guint32 new_state) } priv->state = new_state; + + if ( priv->state == NM_SUPPLICANT_INTERFACE_STATE_SCANNING + || old_state == NM_SUPPLICANT_INTERFACE_STATE_SCANNING) + priv->last_scan = time (NULL); + g_signal_emit (self, signals[STATE], 0, priv->state, old_state); } @@ -456,16 +486,13 @@ static void set_scanning (NMSupplicantInterface *self, gboolean new_scanning) { NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); - GTimeVal cur_time; if (priv->scanning != new_scanning) { priv->scanning = new_scanning; /* Cache time of last scan completion */ - if (priv->scanning == FALSE) { - g_get_current_time (&cur_time); - priv->last_scan = cur_time.tv_sec; - } + if (priv->scanning == FALSE) + priv->last_scan = time (NULL); g_object_notify (G_OBJECT (self), "scanning"); } @@ -486,6 +513,12 @@ nm_supplicant_interface_get_scanning (NMSupplicantInterface *self) return FALSE; } +time_t +nm_supplicant_interface_get_last_scan_time (NMSupplicantInterface *self) +{ + return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->last_scan; +} + static void wpas_iface_scan_done (DBusGProxy *proxy, gboolean success, @@ -493,21 +526,57 @@ wpas_iface_scan_done (DBusGProxy *proxy, { NMSupplicantInterface *self = NM_SUPPLICANT_INTERFACE (user_data); NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); - GTimeVal cur_time; /* Cache last scan completed time */ - g_get_current_time (&cur_time); - priv->last_scan = cur_time.tv_sec; - + priv->last_scan = time (NULL); g_signal_emit (self, signals[SCAN_DONE], 0, success); } static void +parse_capabilities (NMSupplicantInterface *self, GHashTable *props) +{ + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); + GValue *value; + gboolean have_active = FALSE, have_ssid = FALSE; + + g_return_if_fail (props != NULL); + + value = g_hash_table_lookup (props, "Scan"); + if (value && G_VALUE_HOLDS (value, G_TYPE_STRV)) { + const char **vals = g_value_get_boxed (value); + const char **iter = vals; + + while (iter && *iter && (!have_active || !have_ssid)) { + if (g_strcmp0 (*iter, "active") == 0) + have_active = TRUE; + else if (g_strcmp0 (*iter, "ssid") == 0) + have_ssid = TRUE; + iter++; + } + } + + value = g_hash_table_lookup (props, "MaxScanSSID"); + if (value && G_VALUE_HOLDS (value, G_TYPE_INT)) { + /* We need active scan and SSID probe capabilities to care about MaxScanSSIDs */ + if (have_active && have_ssid) { + /* wpa_supplicant's WPAS_MAX_SCAN_SSIDS value is 16, but for speed + * and to ensure we don't disclose too many SSIDs from the hidden + * list, we'll limit to 5. + */ + priv->max_scan_ssids = CLAMP (g_value_get_int (value), 0, 5); + nm_log_info (LOGD_SUPPLICANT, "(%s) supports %d scan SSIDs", + priv->dev, priv->max_scan_ssids); + } + } +} + +static void wpas_iface_properties_changed (DBusGProxy *proxy, GHashTable *props, gpointer user_data) { NMSupplicantInterface *self = NM_SUPPLICANT_INTERFACE (user_data); + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); GValue *value; value = g_hash_table_lookup (props, "Scanning"); @@ -515,8 +584,16 @@ wpas_iface_properties_changed (DBusGProxy *proxy, set_scanning (self, g_value_get_boolean (value)); value = g_hash_table_lookup (props, "State"); - if (value && G_VALUE_HOLDS_STRING (value)) - set_state_from_string (self, g_value_get_string (value)); + if (value && G_VALUE_HOLDS_STRING (value)) { + if (priv->state >= NM_SUPPLICANT_INTERFACE_STATE_READY) { + /* Only transition to actual wpa_supplicant interface states (ie, + * anything > READY) after the NMSupplicantInterface has had a + * chance to initialize, which is signalled by entering the READY + * state. + */ + set_state_from_string (self, g_value_get_string (value)); + } + } value = g_hash_table_lookup (props, "BSSs"); if (value && G_VALUE_HOLDS (value, DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH)) { @@ -526,6 +603,22 @@ wpas_iface_properties_changed (DBusGProxy *proxy, for (i = 0; paths && (i < paths->len); i++) handle_new_bss (self, g_ptr_array_index (paths, i), NULL); } + + value = g_hash_table_lookup (props, "Capabilities"); + if (value && G_VALUE_HOLDS (value, DBUS_TYPE_G_MAP_OF_VARIANT)) + parse_capabilities (self, g_value_get_boxed (value)); +} + +static void +iface_check_ready (NMSupplicantInterface *self) +{ + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); + + if (priv->ready_count && priv->state < NM_SUPPLICANT_INTERFACE_STATE_READY) { + priv->ready_count--; + if (priv->ready_count == 0) + set_state (self, NM_SUPPLICANT_INTERFACE_STATE_READY); + } } static void @@ -545,6 +638,7 @@ iface_get_props_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_da error && error->message ? error->message : "(unknown)"); g_clear_error (&error); } + iface_check_ready (info->interface); } static void @@ -629,6 +723,8 @@ iface_check_netreply_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer us priv->has_credreq ? "supports" : "does not support"); } g_clear_error (&error); + + iface_check_ready (info->interface); } static void @@ -721,13 +817,10 @@ interface_add_done (NMSupplicantInterface *self, char *path) WPAS_DBUS_SERVICE, path, DBUS_INTERFACE_PROPERTIES); - /* Get initial properties */ + /* Get initial properties and check whether NetworkReply is supported */ wpas_iface_get_props (self); - - /* Check whether NetworkReply is supported */ wpas_iface_check_network_reply (self); - - set_state (self, NM_SUPPLICANT_INTERFACE_STATE_READY); + priv->ready_count = 2; } static void @@ -1159,8 +1252,18 @@ string_to_gvalue (const char *str) return val; } +static GValue * +byte_array_array_to_gvalue (const GPtrArray *array) +{ + GValue *val = g_slice_new0 (GValue); + + g_value_init (val, DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UCHAR); + g_value_set_boxed (val, array); + return val; +} + gboolean -nm_supplicant_interface_request_scan (NMSupplicantInterface * self) +nm_supplicant_interface_request_scan (NMSupplicantInterface *self, const GPtrArray *ssids) { NMSupplicantInterfacePrivate *priv; NMSupplicantInfo *info; @@ -1174,6 +1277,8 @@ nm_supplicant_interface_request_scan (NMSupplicantInterface * self) /* Scan parameters */ hash = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, destroy_gvalue); g_hash_table_insert (hash, "Type", string_to_gvalue ("active")); + if (ssids) + g_hash_table_insert (hash, "SSIDs", byte_array_array_to_gvalue (ssids)); info = nm_supplicant_info_new (self, priv->iface_proxy, priv->other_pcalls); call = dbus_g_proxy_begin_call (priv->iface_proxy, "Scan", @@ -1206,6 +1311,8 @@ nm_supplicant_interface_state_to_string (guint32 state) return "starting"; case NM_SUPPLICANT_INTERFACE_STATE_READY: return "ready"; + case NM_SUPPLICANT_INTERFACE_STATE_DISABLED: + return "disabled"; case NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED: return "disconnected"; case NM_SUPPLICANT_INTERFACE_STATE_INACTIVE: @@ -1259,6 +1366,15 @@ nm_supplicant_interface_get_ifname (NMSupplicantInterface *self) return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->dev; } +guint +nm_supplicant_interface_get_max_scan_ssids (NMSupplicantInterface *self) +{ + g_return_val_if_fail (self != NULL, 0); + g_return_val_if_fail (NM_IS_SUPPLICANT_INTERFACE (self), 0); + + return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->max_scan_ssids; +} + /*******************************************************************/ NMSupplicantInterface * diff --git a/src/supplicant-manager/nm-supplicant-interface.h b/src/supplicant-manager/nm-supplicant-interface.h index 608ee059..b99c0f26 100644 --- a/src/supplicant-manager/nm-supplicant-interface.h +++ b/src/supplicant-manager/nm-supplicant-interface.h @@ -34,6 +34,7 @@ enum { NM_SUPPLICANT_INTERFACE_STATE_INIT = 0, NM_SUPPLICANT_INTERFACE_STATE_STARTING, NM_SUPPLICANT_INTERFACE_STATE_READY, + NM_SUPPLICANT_INTERFACE_STATE_DISABLED, NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED, NM_SUPPLICANT_INTERFACE_STATE_INACTIVE, NM_SUPPLICANT_INTERFACE_STATE_SCANNING, @@ -127,7 +128,7 @@ const char * nm_supplicant_interface_get_device (NMSupplicantInterface * iface); const char *nm_supplicant_interface_get_object_path (NMSupplicantInterface * iface); -gboolean nm_supplicant_interface_request_scan (NMSupplicantInterface * self); +gboolean nm_supplicant_interface_request_scan (NMSupplicantInterface * self, const GPtrArray *ssids); guint32 nm_supplicant_interface_get_state (NMSupplicantInterface * self); @@ -135,8 +136,12 @@ const char *nm_supplicant_interface_state_to_string (guint32 state); gboolean nm_supplicant_interface_get_scanning (NMSupplicantInterface *self); +time_t nm_supplicant_interface_get_last_scan_time (NMSupplicantInterface *self); + const char *nm_supplicant_interface_get_ifname (NMSupplicantInterface *self); +guint nm_supplicant_interface_get_max_scan_ssids (NMSupplicantInterface *self); + gboolean nm_supplicant_interface_get_has_credentials_request (NMSupplicantInterface *self); gboolean nm_supplicant_interface_credentials_reply (NMSupplicantInterface *self, diff --git a/src/supplicant-manager/tests/Makefile.in b/src/supplicant-manager/tests/Makefile.in index 65be2b39..c649a3ab 100644 --- a/src/supplicant-manager/tests/Makefile.in +++ b/src/supplicant-manager/tests/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -170,6 +170,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -265,6 +269,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -303,6 +310,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in index 7d367415..3cc387ca 100644 --- a/src/tests/Makefile.in +++ b/src/tests/Makefile.in @@ -49,7 +49,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -187,6 +187,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -282,6 +286,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -320,6 +327,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/vpn-manager/Makefile.am b/src/vpn-manager/Makefile.am index c3c5b525..12e316d8 100644 --- a/src/vpn-manager/Makefile.am +++ b/src/vpn-manager/Makefile.am @@ -7,6 +7,7 @@ INCLUDES = \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/src \ -I${top_srcdir}/src/dns-manager \ -DVPN_NAME_FILES_DIR=\""$(sysconfdir)/NetworkManager/VPN"\" @@ -31,6 +32,7 @@ libvpn_manager_la_CPPFLAGS = \ libvpn_manager_la_LIBADD = \ $(top_builddir)/src/generated/libnm-generated.la \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(LIBNL_LIBS) \ $(DBUS_LIBS) \ diff --git a/src/vpn-manager/Makefile.in b/src/vpn-manager/Makefile.in index 9a7e5e42..64a9c8c3 100644 --- a/src/vpn-manager/Makefile.in +++ b/src/vpn-manager/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -59,6 +59,7 @@ am__DEPENDENCIES_1 = libvpn_manager_la_DEPENDENCIES = \ $(top_builddir)/src/generated/libnm-generated.la \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libvpn_manager_la_OBJECTS = libvpn_manager_la-nm-vpn-manager.lo \ @@ -171,6 +172,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -266,6 +271,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -304,6 +312,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -333,6 +343,7 @@ INCLUDES = \ -I${top_srcdir}/src/generated \ -I${top_builddir}/src/generated \ -I${top_srcdir}/src/logging \ + -I${top_srcdir}/src/posix-signals \ -I${top_srcdir}/src \ -I${top_srcdir}/src/dns-manager \ -DVPN_NAME_FILES_DIR=\""$(sysconfdir)/NetworkManager/VPN"\" @@ -355,6 +366,7 @@ libvpn_manager_la_CPPFLAGS = \ libvpn_manager_la_LIBADD = \ $(top_builddir)/src/generated/libnm-generated.la \ $(top_builddir)/src/logging/libnm-logging.la \ + $(top_builddir)/src/posix-signals/libnm-posix-signals.la \ $(top_builddir)/libnm-util/libnm-util.la \ $(LIBNL_LIBS) \ $(DBUS_LIBS) \ diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index b391f1ec..5f64153b 100644 --- a/src/vpn-manager/nm-vpn-connection.c +++ b/src/vpn-manager/nm-vpn-connection.c @@ -43,7 +43,6 @@ #include "nm-properties-changed-signal.h" #include "nm-dbus-glib-types.h" #include "NetworkManagerUtils.h" -#include "nm-dns-manager.h" #include "nm-netlink-monitor.h" #include "nm-netlink-utils.h" #include "nm-glib-compat.h" @@ -78,16 +77,24 @@ typedef struct { NMDevice *parent_dev; gulong device_monitor; gulong device_ip4; + gulong device_ip6; NMVPNConnectionState vpn_state; NMVPNConnectionStateReason failure_reason; DBusGProxy *proxy; guint ipconfig_timeout; + gboolean has_ip4; NMIP4Config *ip4_config; guint32 ip4_internal_gw; + guint32 ip4_external_gw; + gboolean has_ip6; + NMIP6Config *ip6_config; + struct in6_addr *ip6_internal_gw; + struct in6_addr *ip6_external_gw; char *ip_iface; int ip_ifindex; char *banner; + guint32 mtu; struct rtnl_route *gw_route; } NMVPNConnectionPrivate; @@ -133,13 +140,61 @@ ac_state_from_vpn_state (NMVPNConnectionState vpn_state) } static void +call_plugin_disconnect (NMVPNConnection *self) +{ + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self); + GError *error = NULL; + + if (priv->proxy) { + org_freedesktop_NetworkManager_VPN_Plugin_disconnect (priv->proxy, &error); + if (error) + nm_log_warn (LOGD_VPN, "error disconnecting VPN: %s", error->message); + g_clear_error (&error); + + g_object_unref (priv->proxy); + priv->proxy = NULL; + } +} + +static void +vpn_cleanup (NMVPNConnection *connection) +{ + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); + + if (priv->ip_ifindex) { + nm_system_iface_set_up (priv->ip_ifindex, FALSE, NULL); + /* FIXME: use AF_UNSPEC here when we have IPv6 support */ + nm_system_iface_flush_routes (priv->ip_ifindex, AF_INET); + nm_system_iface_flush_addresses (priv->ip_ifindex, AF_UNSPEC); + } + + if (priv->gw_route) { + nm_netlink_route_delete (priv->gw_route); + rtnl_route_put (priv->gw_route); + priv->gw_route = NULL; + } + + g_free (priv->banner); + priv->banner = NULL; + + g_free (priv->ip_iface); + priv->ip_iface = NULL; + priv->ip_ifindex = 0; + + /* Clear out connection secrets to ensure that the settings service + * gets asked for them next time the connection is activated. + */ + if (priv->connection) + nm_connection_clear_secrets (priv->connection); +} + +static void nm_vpn_connection_set_vpn_state (NMVPNConnection *connection, NMVPNConnectionState vpn_state, NMVPNConnectionStateReason reason) { NMVPNConnectionPrivate *priv; NMVPNConnectionState old_vpn_state; - char *ip_iface; g_return_if_fail (NM_IS_VPN_CONNECTION (connection)); @@ -155,10 +210,12 @@ nm_vpn_connection_set_vpn_state (NMVPNConnection *connection, nm_active_connection_set_state (NM_ACTIVE_CONNECTION (connection), ac_state_from_vpn_state (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); + /* Clear any in-progress secrets request */ + if (priv->secrets_id) { + nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection), priv->secrets_id); + priv->secrets_id = 0; + } + priv->secrets_idx = SECRETS_REQ_SYSTEM; /* 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 @@ -166,35 +223,50 @@ nm_vpn_connection_set_vpn_state (NMVPNConnection *connection, */ g_object_ref (connection); - g_signal_emit (connection, signals[VPN_STATE_CHANGED], 0, vpn_state, reason); + g_signal_emit (connection, signals[VPN_STATE_CHANGED], 0, vpn_state, old_vpn_state, reason); g_object_notify (G_OBJECT (connection), NM_VPN_CONNECTION_VPN_STATE); - /* Call dispatcher after the event gets processed internally */ switch (vpn_state) { + case NM_VPN_CONNECTION_STATE_NEED_AUTH: + /* Kick off the secrets requests; first we get existing system secrets + * and ask the plugin if these are sufficient, next we get all existing + * secrets from system and from user agents and ask the plugin again, + * and last we ask the user for new secrets if required. + */ + get_secrets (connection, SECRETS_REQ_SYSTEM); + break; case NM_VPN_CONNECTION_STATE_ACTIVATED: + /* Secrets no longer needed now that we're connected */ + nm_connection_clear_secrets (priv->connection); + + /* Let dispatcher scripts know we're up and running */ nm_utils_call_dispatcher ("vpn-up", priv->connection, priv->parent_dev, - ip_iface, + priv->ip_iface, priv->ip4_config, - NULL); + priv->ip6_config); break; case NM_VPN_CONNECTION_STATE_FAILED: case NM_VPN_CONNECTION_STATE_DISCONNECTED: if (old_vpn_state == NM_VPN_CONNECTION_STATE_ACTIVATED) { + /* Let dispatcher scripts know we're about to go down */ nm_utils_call_dispatcher ("vpn-down", priv->connection, priv->parent_dev, - ip_iface, + priv->ip_iface, NULL, NULL); } + + /* Tear down and clean up the connection */ + call_plugin_disconnect (connection); + vpn_cleanup (connection); break; default: break; } - g_free (ip_iface); g_object_unref (connection); } @@ -230,11 +302,34 @@ device_ip4_config_changed (NMDevice *device, || !nm_device_get_ip4_config (device)) return; - if (priv->gw_route) - rtnl_route_put (priv->gw_route); + /* Re-add the VPN gateway route */ + if (priv->ip4_external_gw) { + if (priv->gw_route) + rtnl_route_put (priv->gw_route); + priv->gw_route = nm_system_add_ip4_vpn_gateway_route (priv->parent_dev, + priv->ip4_external_gw); + } +} + +static void +device_ip6_config_changed (NMDevice *device, + GParamSpec *pspec, + gpointer user_data) +{ + NMVPNConnection *vpn = NM_VPN_CONNECTION (user_data); + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (vpn); + + if ( (priv->vpn_state != NM_VPN_CONNECTION_STATE_ACTIVATED) + || !nm_device_get_ip6_config (device)) + return; /* Re-add the VPN gateway route */ - priv->gw_route = nm_system_add_ip4_vpn_gateway_route (priv->parent_dev, priv->ip4_config); + if (priv->ip6_external_gw) { + if (priv->gw_route) + rtnl_route_put (priv->gw_route); + priv->gw_route = nm_system_add_ip6_vpn_gateway_route (priv->parent_dev, + priv->ip6_external_gw); + } } NMVPNConnection * @@ -271,6 +366,9 @@ nm_vpn_connection_new (NMConnection *connection, priv->device_ip4 = g_signal_connect (parent_device, "notify::" NM_DEVICE_IP4_CONFIG, G_CALLBACK (device_ip4_config_changed), self); + priv->device_ip6 = g_signal_connect (parent_device, "notify::" NM_DEVICE_IP6_CONFIG, + G_CALLBACK (device_ip6_config_changed), + self); if (!nm_active_connection_export (NM_ACTIVE_CONNECTION (self), connection, @@ -372,17 +470,18 @@ plugin_state_changed (DBusGProxy *proxy, } } +static char addr_to_string_buf[INET6_ADDRSTRLEN + 1]; + static const char * ip_address_to_string (guint32 numeric) { struct in_addr temp_addr; - static char buf[INET_ADDRSTRLEN + 1]; - memset (&buf, '\0', sizeof (buf)); + memset (&addr_to_string_buf, '\0', sizeof (addr_to_string_buf)); temp_addr.s_addr = numeric; - if (inet_ntop (AF_INET, &temp_addr, buf, INET_ADDRSTRLEN)) { - return buf; + if (inet_ntop (AF_INET, &temp_addr, addr_to_string_buf, INET_ADDRSTRLEN)) { + return addr_to_string_buf; } else { nm_log_warn (LOGD_VPN, "error converting IP4 address 0x%X", ntohl (temp_addr.s_addr)); @@ -390,115 +489,340 @@ ip_address_to_string (guint32 numeric) } } +static const char * +ip6_address_to_string (const struct in6_addr *addr) +{ + memset (addr_to_string_buf, '\0', sizeof (addr_to_string_buf)); + if (inet_ntop (AF_INET6, addr, addr_to_string_buf, INET6_ADDRSTRLEN)) { + return addr_to_string_buf; + } else { + nm_log_warn (LOGD_VPN, "error converting IP6 address"); + return NULL; + } +} + static void -print_vpn_config (NMIP4Config *config, - guint32 internal_gw, - const char *ip_iface, - const char *banner) +print_vpn_config (NMVPNConnection *connection) { + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); NMIP4Address *addr; + NMIP6Address *addr6; char *dns_domain = NULL; guint32 num, i; - g_return_if_fail (config != NULL); - - addr = nm_ip4_config_get_address (config, 0); - - nm_log_info (LOGD_VPN, "VPN Gateway: %s", ip_address_to_string (nm_ip4_address_get_gateway (addr))); - if (internal_gw) - nm_log_info (LOGD_VPN, "Internal Gateway: %s", ip_address_to_string (internal_gw)); - nm_log_info (LOGD_VPN, "Tunnel Device: %s", ip_iface); - nm_log_info (LOGD_VPN, "Internal IP4 Address: %s", ip_address_to_string (nm_ip4_address_get_address (addr))); - nm_log_info (LOGD_VPN, "Internal IP4 Prefix: %d", nm_ip4_address_get_prefix (addr)); - nm_log_info (LOGD_VPN, "Internal IP4 Point-to-Point Address: %s", - ip_address_to_string (nm_ip4_config_get_ptp_address (config))); - nm_log_info (LOGD_VPN, "Maximum Segment Size (MSS): %d", nm_ip4_config_get_mss (config)); - - num = nm_ip4_config_get_num_routes (config); - for (i = 0; i < num; i++) { - NMIP4Route *route; - - route = nm_ip4_config_get_route (config, i); - nm_log_info (LOGD_VPN, "Static Route: %s/%d Next Hop: %s", - ip_address_to_string (nm_ip4_route_get_dest (route)), - nm_ip4_route_get_prefix (route), - ip_address_to_string (nm_ip4_route_get_next_hop (route))); - } + if (priv->ip4_external_gw) { + nm_log_info (LOGD_VPN, "VPN Gateway: %s", + ip_address_to_string (priv->ip4_external_gw)); + } else if (priv->ip6_external_gw) { + nm_log_info (LOGD_VPN, "VPN Gateway: %s", + ip6_address_to_string (priv->ip6_external_gw)); + } - nm_log_info (LOGD_VPN, "Forbid Default Route: %s", - nm_ip4_config_get_never_default (config) ? "yes" : "no"); + nm_log_info (LOGD_VPN, "Tunnel Device: %s", priv->ip_iface); - num = nm_ip4_config_get_num_nameservers (config); - for (i = 0; i < num; i++) { - nm_log_info (LOGD_VPN, "Internal IP4 DNS: %s", - ip_address_to_string (nm_ip4_config_get_nameserver (config, i))); - } + if (priv->ip4_config) { + nm_log_info (LOGD_VPN, "IPv4 configuration:"); + + addr = nm_ip4_config_get_address (priv->ip4_config, 0); + + if (priv->ip4_internal_gw) + nm_log_info (LOGD_VPN, " Internal Gateway: %s", ip_address_to_string (priv->ip4_internal_gw)); + nm_log_info (LOGD_VPN, " Internal Address: %s", ip_address_to_string (nm_ip4_address_get_address (addr))); + nm_log_info (LOGD_VPN, " Internal Prefix: %d", nm_ip4_address_get_prefix (addr)); + nm_log_info (LOGD_VPN, " Internal Point-to-Point Address: %s", + ip_address_to_string (nm_ip4_config_get_ptp_address (priv->ip4_config))); + nm_log_info (LOGD_VPN, " Maximum Segment Size (MSS): %d", nm_ip4_config_get_mss (priv->ip4_config)); + + num = nm_ip4_config_get_num_routes (priv->ip4_config); + for (i = 0; i < num; i++) { + NMIP4Route *route; + + route = nm_ip4_config_get_route (priv->ip4_config, i); + nm_log_info (LOGD_VPN, " Static Route: %s/%d Next Hop: %s", + ip_address_to_string (nm_ip4_route_get_dest (route)), + nm_ip4_route_get_prefix (route), + ip_address_to_string (nm_ip4_route_get_next_hop (route))); + } + + nm_log_info (LOGD_VPN, " Forbid Default Route: %s", + nm_ip4_config_get_never_default (priv->ip4_config) ? "yes" : "no"); + + num = nm_ip4_config_get_num_nameservers (priv->ip4_config); + for (i = 0; i < num; i++) { + nm_log_info (LOGD_VPN, " Internal DNS: %s", + ip_address_to_string (nm_ip4_config_get_nameserver (priv->ip4_config, i))); + } + + if (nm_ip4_config_get_num_domains (priv->ip4_config) > 0) + dns_domain = (char *) nm_ip4_config_get_domain (priv->ip4_config, 0); + + nm_log_info (LOGD_VPN, " DNS Domain: '%s'", dns_domain ? dns_domain : "(none)"); + } else + nm_log_info (LOGD_VPN, "No IPv4 configuration"); + + if (priv->ip6_config) { + nm_log_info (LOGD_VPN, "IPv6 configuration:"); + + addr6 = nm_ip6_config_get_address (priv->ip6_config, 0); + + if (priv->ip6_internal_gw) + nm_log_info (LOGD_VPN, " Internal Gateway: %s", ip6_address_to_string (priv->ip6_internal_gw)); + nm_log_info (LOGD_VPN, " Internal Address: %s", ip6_address_to_string (nm_ip6_address_get_address (addr6))); + nm_log_info (LOGD_VPN, " Internal Prefix: %d", nm_ip6_address_get_prefix (addr6)); + nm_log_info (LOGD_VPN, " Internal Point-to-Point Address: %s", + ip6_address_to_string (nm_ip6_config_get_ptp_address (priv->ip6_config))); + nm_log_info (LOGD_VPN, " Maximum Segment Size (MSS): %d", nm_ip6_config_get_mss (priv->ip6_config)); - if (nm_ip4_config_get_num_domains (config) > 0) - dns_domain = (char *) nm_ip4_config_get_domain (config, 0); + num = nm_ip6_config_get_num_routes (priv->ip6_config); + for (i = 0; i < num; i++) { + NMIP6Route *route; - nm_log_info (LOGD_VPN, "DNS Domain: '%s'", dns_domain ? dns_domain : "(none)"); + route = nm_ip6_config_get_route (priv->ip6_config, i); + nm_log_info (LOGD_VPN, " Static Route: %s/%d Next Hop: %s", + ip6_address_to_string (nm_ip6_route_get_dest (route)), + nm_ip6_route_get_prefix (route), + ip6_address_to_string (nm_ip6_route_get_next_hop (route))); + } + + nm_log_info (LOGD_VPN, " Forbid Default Route: %s", + nm_ip6_config_get_never_default (priv->ip6_config) ? "yes" : "no"); + + num = nm_ip6_config_get_num_nameservers (priv->ip6_config); + for (i = 0; i < num; i++) { + nm_log_info (LOGD_VPN, " Internal DNS: %s", + ip6_address_to_string (nm_ip6_config_get_nameserver (priv->ip6_config, i))); + } - if (banner && strlen (banner)) { + if (nm_ip6_config_get_num_domains (priv->ip6_config) > 0) + dns_domain = (char *) nm_ip6_config_get_domain (priv->ip6_config, 0); + + nm_log_info (LOGD_VPN, " DNS Domain: '%s'", dns_domain ? dns_domain : "(none)"); + } else + nm_log_info (LOGD_VPN, "No IPv6 configuration"); + + if (priv->banner && strlen (priv->banner)) { nm_log_info (LOGD_VPN, "Login Banner:"); nm_log_info (LOGD_VPN, "-----------------------------------------"); - nm_log_info (LOGD_VPN, "%s", banner); + nm_log_info (LOGD_VPN, "%s", priv->banner); nm_log_info (LOGD_VPN, "-----------------------------------------"); } } -static void -nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, - GHashTable *config_hash, - gpointer user_data) +static gboolean +nm_vpn_connection_apply_config (NMVPNConnection *connection) { - NMVPNConnection *connection = NM_VPN_CONNECTION (user_data); NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); - NMSettingIP4Config *s_ip4; - NMIP4Address *addr; - NMIP4Config *config; - GValue *val; - int i; - guint32 vpn_ext_gw = 0; - nm_log_info (LOGD_VPN, "VPN connection '%s' (IP Config Get) reply received.", + nm_system_iface_set_up (priv->ip_ifindex, TRUE, NULL); + + if (priv->ip4_config) { + if (!nm_system_apply_ip4_config (priv->ip_ifindex, priv->ip4_config, + 0, NM_IP4_COMPARE_FLAG_ALL)) + return FALSE; + } + + if (priv->ip6_config) { + if (!nm_system_apply_ip6_config (priv->ip_ifindex, priv->ip6_config, + 0, NM_IP6_COMPARE_FLAG_ALL)) + /* FIXME: remove ip4 config */ + return FALSE; + } + + /* Add any explicit route to the VPN gateway through the parent device */ + if (priv->ip4_external_gw) { + priv->gw_route = nm_system_add_ip4_vpn_gateway_route (priv->parent_dev, + priv->ip4_external_gw); + } else if (priv->ip6_external_gw) { + priv->gw_route = nm_system_add_ip6_vpn_gateway_route (priv->parent_dev, + priv->ip6_external_gw); + } else { + priv->gw_route = NULL; + } + + nm_log_info (LOGD_VPN, "VPN connection '%s' (IP Config Get) complete.", nm_vpn_connection_get_name (connection)); + nm_vpn_connection_set_vpn_state (connection, + NM_VPN_CONNECTION_STATE_ACTIVATED, + NM_VPN_CONNECTION_STATE_REASON_NONE); + return TRUE; +} + +static void +nm_vpn_connection_config_maybe_complete (NMVPNConnection *connection, + gboolean success) +{ + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); + + if (priv->ipconfig_timeout == 0) { + /* config_complete() was already called with an error; + * ignore further calls. + */ + return; + } + + if (success) { + if ( (priv->has_ip4 && !priv->ip4_config) + || (priv->has_ip6 && !priv->ip6_config)) { + /* Need to wait for other config */ + return; + } + } g_source_remove (priv->ipconfig_timeout); priv->ipconfig_timeout = 0; - config = nm_ip4_config_new (); + if (success) { + print_vpn_config (connection); + + if (nm_vpn_connection_apply_config (connection)) + return; + } + + g_clear_object (&priv->ip4_config); + g_clear_object (&priv->ip6_config); - val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV); + nm_log_warn (LOGD_VPN, "VPN connection '%s' did not receive valid IP config information.", + nm_vpn_connection_get_name (connection)); + nm_vpn_connection_set_vpn_state (connection, + NM_VPN_CONNECTION_STATE_FAILED, + NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID); +} + +static gboolean +process_generic_config (NMVPNConnection *connection, + GHashTable *config_hash) +{ + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); + GValue *val; + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_CONFIG_TUNDEV); if (val) priv->ip_iface = g_strdup (g_value_get_string (val)); else { nm_log_err (LOGD_VPN, "invalid or missing tunnel device received!"); - goto error; + nm_vpn_connection_config_maybe_complete (connection, FALSE); + return FALSE; } /* Grab the interface index for address/routing operations */ priv->ip_ifindex = nm_netlink_iface_to_index (priv->ip_iface); if (priv->ip_ifindex < 0) { nm_log_err (LOGD_VPN, "(%s): failed to look up VPN interface index", priv->ip_iface); - goto error; + nm_vpn_connection_config_maybe_complete (connection, FALSE); + return FALSE; + } + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_CONFIG_BANNER); + if (val) { + g_free (priv->banner); + priv->banner = g_strdup (g_value_get_string (val)); + } + + /* External world-visible address of the VPN server */ + priv->ip4_external_gw = 0; + priv->ip6_external_gw = NULL; + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY); + if (val) { + if (G_VALUE_HOLDS (val, G_TYPE_UINT)) { + priv->ip4_external_gw = g_value_get_uint (val); + } else if (G_VALUE_HOLDS (val, DBUS_TYPE_G_UCHAR_ARRAY)) { + GByteArray *ba = g_value_get_boxed (val); + + if (ba->len == sizeof (struct in6_addr)) + priv->ip6_external_gw = g_memdup (ba->data, ba->len); + } else { + nm_log_err (LOGD_VPN, "(%s): VPN gateway is neither IPv4 nor IPv6", priv->ip_iface); + nm_vpn_connection_config_maybe_complete (connection, FALSE); + return FALSE; + } + } + + /* MTU; this is a per-connection value, though NM's API treats it + * like it's IP4-specific. So we store it for now and retrieve it + * later in ip4_config_get. + */ + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_CONFIG_MTU); + if (val) + priv->mtu = g_value_get_uint (val); + else + priv->mtu = 0; + + return TRUE; +} + +static void +nm_vpn_connection_config_get (DBusGProxy *proxy, + GHashTable *config_hash, + gpointer user_data) +{ + NMVPNConnection *connection = NM_VPN_CONNECTION (user_data); + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); + GValue *val; + + nm_log_info (LOGD_VPN, "VPN connection '%s' (IP Config Get) reply received.", + nm_vpn_connection_get_name (connection)); + + if (!process_generic_config (connection, config_hash)) + return; + + /* Note whether to expect IPv4 and IPv6 configs */ + val = g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_CONFIG_HAS_IP4); + priv->has_ip4 = val ? g_value_get_boolean (val) : FALSE; + g_clear_object (&priv->ip4_config); + + val = g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_CONFIG_HAS_IP6); + priv->has_ip6 = val ? g_value_get_boolean (val) : FALSE; + g_clear_object (&priv->ip6_config); +} + +static void +nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, + GHashTable *config_hash, + gpointer user_data) +{ + NMVPNConnection *connection = NM_VPN_CONNECTION (user_data); + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); + NMSettingIP4Config *s_ip4; + NMIP4Address *addr; + NMIP4Config *config; + GValue *val; + int i; + + if (priv->has_ip4) { + nm_log_info (LOGD_VPN, "VPN connection '%s' (IP4 Config Get) reply received.", + nm_vpn_connection_get_name (connection)); + + if (g_hash_table_size (config_hash) == 0) { + priv->has_ip4 = FALSE; + nm_vpn_connection_config_maybe_complete (connection, TRUE); + return; + } + } else { + nm_log_info (LOGD_VPN, "VPN connection '%s' (IP4 Config Get) reply received from old-style plugin.", + nm_vpn_connection_get_name (connection)); + + /* In the old API, the generic and IPv4 configuration items + * were mixed together. + */ + if (!process_generic_config (connection, config_hash)) + return; + + priv->has_ip4 = TRUE; + priv->has_ip6 = FALSE; } + config = nm_ip4_config_new (); + addr = nm_ip4_address_new (); nm_ip4_address_set_prefix (addr, 24); /* default to class C */ + if (priv->ip4_external_gw) + nm_ip4_address_set_gateway (addr, priv->ip4_external_gw); /* Internal address of the VPN subnet's gateway */ val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY); if (val) priv->ip4_internal_gw = g_value_get_uint (val); - /* External world-visible address of the VPN server */ - val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY); - if (val) { - nm_ip4_address_set_gateway (addr, g_value_get_uint (val)); - vpn_ext_gw = g_value_get_uint (val); - } - val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS); if (val) nm_ip4_address_set_address (addr, g_value_get_uint (val)); @@ -516,7 +840,9 @@ nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, } else { nm_log_err (LOGD_VPN, "invalid IP4 config received!"); nm_ip4_address_unref (addr); - goto error; + g_object_unref (config); + nm_vpn_connection_config_maybe_complete (connection, FALSE); + return; } val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_DNS); @@ -539,9 +865,8 @@ nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, if (val) nm_ip4_config_set_mss (config, g_value_get_uint (val)); - val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_MTU); - if (val) - nm_ip4_config_set_mtu (config, g_value_get_uint (val)); + if (priv->mtu) + nm_ip4_config_set_mtu (config, priv->mtu); val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN); if (val) @@ -556,12 +881,6 @@ nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, nm_ip4_config_add_domain (config, *domain); } - val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_BANNER); - if (val) { - g_free (priv->banner); - priv->banner = g_strdup (g_value_get_string (val)); - } - val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP4_CONFIG_ROUTES); if (val) { GSList *routes; @@ -576,10 +895,12 @@ nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, * the VPN server, we want to use the NM created route instead of * whatever the server provides. */ - if ( vpn_ext_gw - && nm_ip4_route_get_dest (route) == vpn_ext_gw - && nm_ip4_route_get_prefix (route) == 32) + if ( priv->ip4_external_gw + && nm_ip4_route_get_dest (route) == priv->ip4_external_gw + && nm_ip4_route_get_prefix (route) == 32) { + nm_ip4_route_unref (route); continue; + } /* Otherwise accept the VPN-provided route */ nm_ip4_config_take_route (config, route); @@ -592,42 +913,149 @@ nm_vpn_connection_ip4_config_get (DBusGProxy *proxy, if (val && G_VALUE_HOLDS_BOOLEAN (val)) nm_ip4_config_set_never_default (config, g_value_get_boolean (val)); - print_vpn_config (config, priv->ip4_internal_gw, priv->ip_iface, priv->banner); - /* Merge in user overrides from the NMConnection's IPv4 setting */ s_ip4 = nm_connection_get_setting_ip4_config (priv->connection); nm_utils_merge_ip4_config (config, s_ip4); - nm_system_iface_set_up (priv->ip_ifindex, TRUE, NULL); + priv->ip4_config = config; + nm_vpn_connection_config_maybe_complete (connection, TRUE); +} - if (nm_system_apply_ip4_config (priv->ip_ifindex, config, 0, NM_IP4_COMPARE_FLAG_ALL)) { - NMDnsManager *dns_mgr; +static void +nm_vpn_connection_ip6_config_get (DBusGProxy *proxy, + GHashTable *config_hash, + gpointer user_data) +{ + NMVPNConnection *connection = NM_VPN_CONNECTION (user_data); + NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); + NMSettingIP6Config *s_ip6; + NMIP6Address *addr; + NMIP6Config *config; + GValue *val; + int i; - /* Add any explicit route to the VPN gateway through the parent device */ - priv->gw_route = nm_system_add_ip4_vpn_gateway_route (priv->parent_dev, config); + nm_log_info (LOGD_VPN, "VPN connection '%s' (IP6 Config Get) reply received.", + nm_vpn_connection_get_name (connection)); - /* Add the VPN to DNS */ - dns_mgr = nm_dns_manager_get (NULL); - nm_dns_manager_add_ip4_config (dns_mgr, priv->ip_iface, config, NM_DNS_IP_CONFIG_TYPE_VPN); - g_object_unref (dns_mgr); + if (g_hash_table_size (config_hash) == 0) { + priv->has_ip6 = FALSE; + nm_vpn_connection_config_maybe_complete (connection, TRUE); + return; + } - priv->ip4_config = config; + config = nm_ip6_config_new (); - nm_log_info (LOGD_VPN, "VPN connection '%s' (IP Config Get) complete.", - nm_vpn_connection_get_name (connection)); - nm_vpn_connection_set_vpn_state (connection, - NM_VPN_CONNECTION_STATE_ACTIVATED, - NM_VPN_CONNECTION_STATE_REASON_NONE); - return; + addr = nm_ip6_address_new (); + nm_ip6_address_set_prefix (addr, 128); /* default to class C */ + if (priv->ip6_external_gw) + nm_ip6_address_set_gateway (addr, priv->ip6_external_gw); + + /* Internal address of the VPN subnet's gateway */ + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY); + if (val) { + GByteArray *ba = g_value_get_boxed (val); + + if (ba->len == sizeof (struct in6_addr)) + priv->ip6_internal_gw = g_memdup (ba->data, ba->len); } -error: - nm_log_warn (LOGD_VPN, "VPN connection '%s' did not receive valid IP config information.", - nm_vpn_connection_get_name (connection)); - nm_vpn_connection_set_vpn_state (connection, - NM_VPN_CONNECTION_STATE_FAILED, - NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID); - g_object_unref (config); + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS); + if (val) { + GByteArray *ba = g_value_get_boxed (val); + + if (ba->len == sizeof (struct in6_addr)) + nm_ip6_address_set_address (addr, (struct in6_addr *)ba->data); + } + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_PTP); + if (val) { + GByteArray *ba = g_value_get_boxed (val); + + if (ba->len == sizeof (struct in6_addr)) + nm_ip6_config_set_ptp_address (config, (struct in6_addr *)ba->data); + } + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_PREFIX); + if (val) + nm_ip6_address_set_prefix (addr, g_value_get_uint (val)); + + if (nm_ip6_address_get_address (addr) && nm_ip6_address_get_prefix (addr)) { + nm_ip6_config_take_address (config, addr); + } else { + nm_log_err (LOGD_VPN, "invalid IP6 config received!"); + nm_ip6_address_unref (addr); + g_object_unref (config); + nm_vpn_connection_config_maybe_complete (connection, FALSE); + } + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_DNS); + if (val) { + GPtrArray *dns = (GPtrArray *) g_value_get_boxed (val); + GByteArray *ba; + + for (i = 0; i < dns->len; i++) { + ba = dns->pdata[i]; + if (ba->len == sizeof (struct in6_addr)) + nm_ip6_config_add_nameserver (config, (struct in6_addr *)ba->data); + } + } + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_MSS); + if (val) + nm_ip6_config_set_mss (config, g_value_get_uint (val)); + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN); + if (val) + nm_ip6_config_add_domain (config, g_value_get_string (val)); + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS); + if (val) { + const char **domains = g_value_get_boxed (val); + const char **domain; + + for (domain = domains; domain && *domain; domain++) + nm_ip6_config_add_domain (config, *domain); + } + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_ROUTES); + if (val) { + GSList *routes; + GSList *iter; + + routes = nm_utils_ip6_routes_from_gvalue (val); + for (iter = routes; iter; iter = iter->next) { + NMIP6Route *route = iter->data; + + /* Ignore host routes to the VPN gateway since NM adds one itself + * below. Since NM knows more about the routing situation than + * the VPN server, we want to use the NM created route instead of + * whatever the server provides. + */ + if ( priv->ip6_external_gw + && nm_ip6_route_get_prefix (route) == 128 + && memcmp (nm_ip6_route_get_dest (route), priv->ip6_external_gw, + sizeof (struct in6_addr)) == 0) { + nm_ip6_route_unref (route); + continue; + } + + /* Otherwise accept the VPN-provided route */ + nm_ip6_config_take_route (config, route); + } + + g_slist_free (routes); + } + + val = (GValue *) g_hash_table_lookup (config_hash, NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT); + if (val && G_VALUE_HOLDS_BOOLEAN (val)) + nm_ip6_config_set_never_default (config, g_value_get_boolean (val)); + + /* Merge in user overrides from the NMConnection's IPv6 setting */ + s_ip6 = nm_connection_get_setting_ip6_config (priv->connection); + nm_utils_merge_ip6_config (config, s_ip6); + + priv->ip6_config = config; + nm_vpn_connection_config_maybe_complete (connection, TRUE); } static gboolean @@ -716,9 +1144,18 @@ really_activate (NMVPNConnection *connection, const char *username) priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); - /* Ip4Config signal */ dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, G_TYPE_VALUE, G_TYPE_INVALID); + + /* Config signal */ + dbus_g_proxy_add_signal (priv->proxy, "Config", + DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_connect_signal (priv->proxy, "Config", + G_CALLBACK (nm_vpn_connection_config_get), + connection, NULL); + + /* Ip4Config signal */ dbus_g_proxy_add_signal (priv->proxy, "Ip4Config", DBUS_TYPE_G_MAP_OF_VARIANT, G_TYPE_INVALID); @@ -726,6 +1163,14 @@ really_activate (NMVPNConnection *connection, const char *username) G_CALLBACK (nm_vpn_connection_ip4_config_get), connection, NULL); + /* Ip6Config signal */ + dbus_g_proxy_add_signal (priv->proxy, "Ip6Config", + DBUS_TYPE_G_MAP_OF_VARIANT, + G_TYPE_INVALID); + dbus_g_proxy_connect_signal (priv->proxy, "Ip6Config", + G_CALLBACK (nm_vpn_connection_ip6_config_get), + connection, NULL); + hash = _hash_with_username (priv->connection, username); org_freedesktop_NetworkManager_VPN_Plugin_connect_async (priv->proxy, hash, @@ -818,6 +1263,14 @@ nm_vpn_connection_get_ip4_config (NMVPNConnection *connection) return NM_VPN_CONNECTION_GET_PRIVATE (connection)->ip4_config; } +NMIP6Config * +nm_vpn_connection_get_ip6_config (NMVPNConnection *connection) +{ + g_return_val_if_fail (NM_IS_VPN_CONNECTION (connection), NULL); + + return NM_VPN_CONNECTION_GET_PRIVATE (connection)->ip6_config; +} + const char * nm_vpn_connection_get_ip_iface (NMVPNConnection *connection) { @@ -850,6 +1303,14 @@ nm_vpn_connection_get_ip4_internal_gateway (NMVPNConnection *connection) return NM_VPN_CONNECTION_GET_PRIVATE (connection)->ip4_internal_gw; } +struct in6_addr * +nm_vpn_connection_get_ip6_internal_gateway (NMVPNConnection *connection) +{ + g_return_val_if_fail (NM_IS_VPN_CONNECTION (connection), 0); + + return NM_VPN_CONNECTION_GET_PRIVATE (connection)->ip6_internal_gw; +} + void nm_vpn_connection_fail (NMVPNConnection *connection, NMVPNConnectionStateReason reason) @@ -896,11 +1357,19 @@ plugin_need_secrets_cb (DBusGProxy *proxy, if (setting_name && strlen (setting_name)) { /* More secrets required */ - nm_log_dbg (LOGD_VPN, "(%s/%s) service indicated additional secrets required", - nm_connection_get_uuid (priv->connection), - nm_connection_get_id (priv->connection)); - get_secrets (self, priv->secrets_idx + 1); + if (priv->secrets_idx == SECRETS_REQ_NEW) { + nm_log_err (LOGD_VPN, "(%s/%s) final secrets request failed to provide sufficient secrets", + nm_connection_get_uuid (priv->connection), + nm_connection_get_id (priv->connection)); + nm_vpn_connection_fail (self, NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS); + } else { + nm_log_dbg (LOGD_VPN, "(%s/%s) service indicated additional secrets required", + nm_connection_get_uuid (priv->connection), + nm_connection_get_id (priv->connection)); + + get_secrets (self, priv->secrets_idx + 1); + } return; } @@ -985,6 +1454,9 @@ get_secrets (NMVPNConnection *self, SecretsReq secrets_idx) g_assert_not_reached (); } + if (priv->user_requested) + flags |= NM_SETTINGS_GET_SECRETS_FLAG_USER_REQUESTED; + priv->secrets_id = nm_settings_connection_get_secrets (NM_SETTINGS_CONNECTION (priv->connection), filter_by_uid, priv->user_uid, @@ -1004,109 +1476,7 @@ get_secrets (NMVPNConnection *self, SecretsReq secrets_idx) } } -static void -vpn_cleanup (NMVPNConnection *connection) -{ - NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection); - - if (priv->ip_ifindex) { - nm_system_iface_set_up (priv->ip_ifindex, FALSE, NULL); - /* FIXME: use AF_UNSPEC here when we have IPv6 support */ - nm_system_iface_flush_routes (priv->ip_ifindex, AF_INET); - nm_system_iface_flush_addresses (priv->ip_ifindex, AF_UNSPEC); - } - - if (priv->ip4_config) { - NMIP4Config *parent_config; - NMDnsManager *dns_mgr; - - /* Remove attributes of the VPN's IP4 Config */ - dns_mgr = nm_dns_manager_get (NULL); - nm_dns_manager_remove_ip4_config (dns_mgr, priv->ip_iface, priv->ip4_config); - g_object_unref (dns_mgr); - - /* Remove any previously added VPN gateway host route */ - if (priv->gw_route) - nm_netlink_route_delete (priv->gw_route); - - /* Reset routes and addresses of the currently active device */ - parent_config = nm_device_get_ip4_config (priv->parent_dev); - if (parent_config) { - if (!nm_system_apply_ip4_config (nm_device_get_ip_ifindex (priv->parent_dev), - nm_device_get_ip4_config (priv->parent_dev), - nm_device_get_priority (priv->parent_dev), - NM_IP4_COMPARE_FLAG_ADDRESSES | NM_IP4_COMPARE_FLAG_ROUTES)) { - nm_log_err (LOGD_VPN, "failed to re-apply VPN parent device addresses and routes."); - } - } - } - - if (priv->gw_route) { - rtnl_route_put (priv->gw_route); - priv->gw_route = NULL; - } - - g_free (priv->banner); - priv->banner = NULL; - - g_free (priv->ip_iface); - priv->ip_iface = NULL; - priv->ip_ifindex = 0; - - /* Clear out connection secrets to ensure that the settings service - * gets asked for them next time the connection is activated. - */ - if (priv->connection) - nm_connection_clear_secrets (priv->connection); -} - -static void -connection_state_changed (NMVPNConnection *self, - NMVPNConnectionState state, - NMVPNConnectionStateReason reason) -{ - NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self); - - /* Clear any in-progress secrets request */ - if (priv->secrets_id) { - nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection), priv->secrets_id); - priv->secrets_id = 0; - } - priv->secrets_idx = SECRETS_REQ_SYSTEM; - - switch (state) { - case NM_VPN_CONNECTION_STATE_NEED_AUTH: - /* Kick off the secrets requests; first we get existing system secrets - * and ask the plugin if these are sufficient, next we get all existing - * secrets from system and from user agents and ask the plugin again, - * and last we ask the user for new secrets if required. - */ - get_secrets (self, SECRETS_REQ_SYSTEM); - break; - case NM_VPN_CONNECTION_STATE_ACTIVATED: - /* Secrets no longer needed now that we're connected */ - nm_connection_clear_secrets (priv->connection); - break; - case NM_VPN_CONNECTION_STATE_DISCONNECTED: - case NM_VPN_CONNECTION_STATE_FAILED: - if (priv->proxy) { - GError *err = NULL; - - org_freedesktop_NetworkManager_VPN_Plugin_disconnect (priv->proxy, &err); - if (err) { - nm_log_warn (LOGD_VPN, "error disconnecting VPN: %s", err->message); - g_error_free (err); - } - - g_object_unref (priv->proxy); - priv->proxy = NULL; - } - vpn_cleanup (self); - break; - default: - break; - } -} +/******************************************************************************/ static void nm_vpn_connection_init (NMVPNConnection *self) @@ -1127,9 +1497,15 @@ dispose (GObject *object) if (priv->gw_route) rtnl_route_put (priv->gw_route); + if (priv->ip6_internal_gw) + g_free (priv->ip6_internal_gw); + if (priv->ip6_external_gw) + g_free (priv->ip6_external_gw); if (priv->device_ip4) g_signal_handler_disconnect (priv->parent_dev, priv->device_ip4); + if (priv->device_ip6) + g_signal_handler_disconnect (priv->parent_dev, priv->device_ip6); if (priv->device_monitor) g_signal_handler_disconnect (priv->parent_dev, priv->device_monitor); @@ -1138,6 +1514,8 @@ dispose (GObject *object) if (priv->ip4_config) g_object_unref (priv->ip4_config); + if (priv->ip6_config) + g_object_unref (priv->ip6_config); if (priv->ipconfig_timeout) g_source_remove (priv->ipconfig_timeout); @@ -1197,7 +1575,6 @@ nm_vpn_connection_class_init (NMVPNConnectionClass *connection_class) g_type_class_add_private (connection_class, sizeof (NMVPNConnectionPrivate)); /* virtual methods */ - connection_class->vpn_state_changed = connection_state_changed; object_class->get_property = get_property; object_class->dispose = dispose; object_class->finalize = finalize; @@ -1223,16 +1600,14 @@ nm_vpn_connection_class_init (NMVPNConnectionClass *connection_class) /* signals */ signals[VPN_STATE_CHANGED] = - g_signal_new ("vpn-state-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVPNConnectionClass, vpn_state_changed), - NULL, NULL, - _nm_marshal_VOID__UINT_UINT, - G_TYPE_NONE, 2, - G_TYPE_UINT, G_TYPE_UINT); + g_signal_new (NM_VPN_CONNECTION_VPN_STATE_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + _nm_marshal_VOID__UINT_UINT_UINT, + G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (object_class), - &dbus_glib_nm_vpn_connection_object_info); + &dbus_glib_nm_vpn_connection_object_info); } diff --git a/src/vpn-manager/nm-vpn-connection.h b/src/vpn-manager/nm-vpn-connection.h index 93cc06d1..0e4f1a04 100644 --- a/src/vpn-manager/nm-vpn-connection.h +++ b/src/vpn-manager/nm-vpn-connection.h @@ -34,9 +34,14 @@ #define NM_IS_VPN_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_VPN_CONNECTION)) #define NM_VPN_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_VPN_CONNECTION, NMVPNConnectionClass)) +/* Properties */ #define NM_VPN_CONNECTION_VPN_STATE "vpn-state" #define NM_VPN_CONNECTION_BANNER "banner" +/* Signals */ +#define NM_VPN_CONNECTION_VPN_STATE_CHANGED "vpn-state-changed" + + typedef struct { NMActiveConnection parent; } NMVPNConnection; @@ -46,7 +51,8 @@ typedef struct { /* Signals */ void (*vpn_state_changed) (NMVPNConnection *connection, - NMVPNConnectionState state, + NMVPNConnectionState new_state, + NMVPNConnectionState old_state, NMVPNConnectionStateReason reason); } NMVPNConnectionClass; @@ -68,9 +74,11 @@ void nm_vpn_connection_fail (NMVPNConnection *connect void nm_vpn_connection_disconnect (NMVPNConnection *connection, NMVPNConnectionStateReason reason); NMIP4Config * nm_vpn_connection_get_ip4_config (NMVPNConnection *connection); +NMIP6Config * nm_vpn_connection_get_ip6_config (NMVPNConnection *connection); const char * nm_vpn_connection_get_ip_iface (NMVPNConnection *connection); int nm_vpn_connection_get_ip_ifindex (NMVPNConnection *connection); NMDevice * nm_vpn_connection_get_parent_device (NMVPNConnection *connection); guint32 nm_vpn_connection_get_ip4_internal_gateway (NMVPNConnection *connection); +struct in6_addr * nm_vpn_connection_get_ip6_internal_gateway (NMVPNConnection *connection); #endif /* NM_VPN_CONNECTION_H */ diff --git a/src/vpn-manager/nm-vpn-manager.c b/src/vpn-manager/nm-vpn-manager.c index 34131964..a462f547 100644 --- a/src/vpn-manager/nm-vpn-manager.c +++ b/src/vpn-manager/nm-vpn-manager.c @@ -115,19 +115,20 @@ find_active_vpn_connection_by_connection (NMVPNManager *self, NMConnection *conn static void connection_vpn_state_changed (NMVPNConnection *connection, - NMVPNConnectionState state, + NMVPNConnectionState new_state, + NMVPNConnectionState old_state, NMVPNConnectionStateReason reason, gpointer user_data) { NMVPNManager *manager = NM_VPN_MANAGER (user_data); - switch (state) { + switch (new_state) { case NM_VPN_CONNECTION_STATE_ACTIVATED: g_signal_emit (manager, signals[CONNECTION_ACTIVATED], 0, connection); break; case NM_VPN_CONNECTION_STATE_FAILED: case NM_VPN_CONNECTION_STATE_DISCONNECTED: - g_signal_emit (manager, signals[CONNECTION_DEACTIVATED], 0, connection, state, reason); + g_signal_emit (manager, signals[CONNECTION_DEACTIVATED], 0, connection, new_state, old_state, reason); break; default: break; @@ -188,7 +189,7 @@ nm_vpn_manager_activate_connection (NMVPNManager *manager, vpn = nm_vpn_service_activate (service, connection, device, specific_object, user_requested, user_uid, error); if (vpn) { - g_signal_connect (vpn, "vpn-state-changed", + g_signal_connect (vpn, NM_VPN_CONNECTION_VPN_STATE_CHANGED, G_CALLBACK (connection_vpn_state_changed), manager); } @@ -518,11 +519,9 @@ nm_vpn_manager_class_init (NMVPNManagerClass *manager_class) g_signal_new ("connection-deactivated", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMVPNManagerClass, connection_deactivated), - NULL, NULL, - _nm_marshal_VOID__OBJECT_UINT_UINT, - G_TYPE_NONE, 3, - G_TYPE_OBJECT, G_TYPE_UINT, G_TYPE_UINT); + 0, NULL, NULL, + _nm_marshal_VOID__OBJECT_UINT_UINT_UINT, + G_TYPE_NONE, 4, G_TYPE_OBJECT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); dbus_g_error_domain_register (NM_VPN_MANAGER_ERROR, NULL, NM_TYPE_VPN_MANAGER_ERROR); } diff --git a/src/vpn-manager/nm-vpn-manager.h b/src/vpn-manager/nm-vpn-manager.h index cec370c8..17225b44 100644 --- a/src/vpn-manager/nm-vpn-manager.h +++ b/src/vpn-manager/nm-vpn-manager.h @@ -55,9 +55,13 @@ typedef struct { GObjectClass parent; /* Signals */ + void (*connection_activated) (NMVPNManager *manager, + NMVPNConnection *connection); + void (*connection_deactivated) (NMVPNManager *manager, NMVPNConnection *connection, - NMVPNConnectionState state, + NMVPNConnectionState new_state, + NMVPNConnectionState old_state, NMVPNConnectionStateReason reason); } NMVPNManagerClass; diff --git a/src/vpn-manager/nm-vpn-service.c b/src/vpn-manager/nm-vpn-service.c index 95e4f2b1..a2c8b100 100644 --- a/src/vpn-manager/nm-vpn-service.c +++ b/src/vpn-manager/nm-vpn-service.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) 2005 - 2011 Red Hat, Inc. + * Copyright (C) 2005 - 2012 Red Hat, Inc. * Copyright (C) 2005 - 2008 Novell, Inc. */ @@ -31,6 +31,7 @@ #include "nm-vpn-service.h" #include "nm-dbus-manager.h" #include "nm-logging.h" +#include "nm-posix-signals.h" #include "nm-vpn-manager.h" #include "nm-glib-compat.h" @@ -168,6 +169,12 @@ nm_vpn_service_child_setup (gpointer user_data G_GNUC_UNUSED) /* We are in the child process at this point */ pid_t pid = getpid (); setpgid (pid, pid); + + /* + * We blocked signals in main(). We need to restore original signal + * mask for VPN service here so that it can receive signals. + */ + nm_unblock_posix_signals (NULL); } static void @@ -296,13 +303,14 @@ service_quit (gpointer user_data) static void connection_vpn_state_changed (NMVPNConnection *connection, - NMVPNConnectionState state, + NMVPNConnectionState new_state, + NMVPNConnectionState old_state, NMVPNConnectionStateReason reason, gpointer user_data) { NMVPNServicePrivate *priv = NM_VPN_SERVICE_GET_PRIVATE (user_data); - switch (state) { + switch (new_state) { case NM_VPN_CONNECTION_STATE_FAILED: case NM_VPN_CONNECTION_STATE_DISCONNECTED: /* Remove the connection from our list */ @@ -343,9 +351,9 @@ nm_vpn_service_activate (NMVPNService *service, clear_quit_timeout (service); vpn = nm_vpn_connection_new (connection, device, specific_object, user_requested, user_uid); - g_signal_connect (vpn, "vpn-state-changed", - G_CALLBACK (connection_vpn_state_changed), - service); + g_signal_connect (vpn, NM_VPN_CONNECTION_VPN_STATE_CHANGED, + G_CALLBACK (connection_vpn_state_changed), + service); priv->connections = g_slist_prepend (priv->connections, vpn); diff --git a/src/wifi/Makefile.in b/src/wifi/Makefile.in index 028469bf..5e77bae3 100644 --- a/src/wifi/Makefile.in +++ b/src/wifi/Makefile.in @@ -48,7 +48,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -174,6 +174,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -269,6 +273,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -307,6 +314,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/src/wifi/wifi-utils-nl80211.c b/src/wifi/wifi-utils-nl80211.c index 4a4e661e..663cbc26 100644 --- a/src/wifi/wifi-utils-nl80211.c +++ b/src/wifi/wifi-utils-nl80211.c @@ -535,7 +535,9 @@ struct nl80211_device_info { guint32 *freqs; int num_freqs; guint32 caps; - gboolean can_scan, can_scan_ssid; + gboolean can_scan; + gboolean can_scan_ssid; + gboolean supported; gboolean success; }; @@ -579,11 +581,24 @@ static int nl80211_wiphy_info_handler (struct nl_msg *msg, void *arg) struct nlattr *nl_cmd; int i; - nla_for_each_nested (nl_cmd, - tb[NL80211_ATTR_SUPPORTED_COMMANDS], i) { - guint32 cmd = nla_get_u32 (nl_cmd); - if (cmd == NL80211_CMD_TRIGGER_SCAN) + nla_for_each_nested (nl_cmd, tb[NL80211_ATTR_SUPPORTED_COMMANDS], i) { + switch (nla_get_u32 (nl_cmd)) { + case NL80211_CMD_TRIGGER_SCAN: info->can_scan = TRUE; + break; + case NL80211_CMD_CONNECT: + case NL80211_CMD_AUTHENTICATE: + /* Only devices that support CONNECT or AUTH actually support + * 802.11, unlike say ipw2x00 (up to at least kernel 3.4) which + * has minimal info support, but no actual command support. + * This check mirrors what wpa_supplicant does to determine + * whether or not to use the nl80211 driver. + */ + info->supported = TRUE; + break; + default: + break; + } } } @@ -650,6 +665,9 @@ static int nl80211_wiphy_info_handler (struct nl_msg *msg, void *arg) info->caps |= NM_WIFI_DEVICE_CAP_CIPHER_CCMP | NM_WIFI_DEVICE_CAP_RSN; break; + default: + nm_log_err (LOGD_HW | LOGD_WIFI, "Don't know the meaning of NL80211_ATTR_CIPHER_SUITES %#8.8x.", ciphers[i]); + break; } } } @@ -721,6 +739,13 @@ wifi_nl80211_init (const char *iface, int ifindex) goto error; } + if (!device_info.supported) { + nm_log_dbg (LOGD_HW | LOGD_WIFI, + "(%s): driver does not fully support nl80211, falling back to WEXT", + nl80211->parent.iface); + goto error; + } + if (!device_info.can_scan_ssid) { nm_log_err (LOGD_HW | LOGD_WIFI, "(%s): driver does not support SSID scans", @@ -735,6 +760,13 @@ wifi_nl80211_init (const char *iface, int ifindex) goto error; } + if (device_info.caps == 0) { + nm_log_err (LOGD_HW | LOGD_WIFI, + "(%s): driver doesn't report support of any encryption", + nl80211->parent.iface); + goto error; + } + nl80211->freqs = device_info.freqs; nl80211->num_freqs = device_info.num_freqs; nl80211->parent.can_scan_ssid = device_info.can_scan_ssid; diff --git a/src/wimax/Makefile.in b/src/wimax/Makefile.in index 2de52180..e463cf2d 100644 --- a/src/wimax/Makefile.in +++ b/src/wimax/Makefile.in @@ -47,7 +47,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -199,6 +199,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -294,6 +298,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -332,6 +339,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/test/Makefile.in b/test/Makefile.in index bb988be9..f8060eeb 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -49,7 +49,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -187,6 +187,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -282,6 +286,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -320,6 +327,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/tools/Makefile.in b/tools/Makefile.in index 29ec3eeb..37b7b3b9 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -46,7 +46,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -134,6 +134,10 @@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ @@ -229,6 +233,9 @@ UDEV_BASE_DIR = @UDEV_BASE_DIR@ USE_NLS = @USE_NLS@ UUID_CFLAGS = @UUID_CFLAGS@ UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -267,6 +274,8 @@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ diff --git a/vapi/Makefile.am b/vapi/Makefile.am new file mode 100644 index 00000000..67a31809 --- /dev/null +++ b/vapi/Makefile.am @@ -0,0 +1,27 @@ +EXTRA_DIST = \ + NetworkManager-1.0.metadata \ + NMClient-1.0.metadata \ + libnm-util.deps \ + libnm-glib.deps + +if ENABLE_VAPIGEN +include Makefile.vapigen + +libnm-util.vapi: $(top_srcdir)/libnm-util/NetworkManager-1.0.gir libnm-util.deps NetworkManager-1.0.metadata +libnm-glib.vapi: $(top_srcdir)/libnm-glib/NMClient-1.0.gir libnm-glib.deps NMClient-1.0.metadata + + +libnm_util_vapi_METADATADIRS = $(srcdir) +libnm_util_vapi_FILES = $(top_builddir)/libnm-util/NetworkManager-1.0.gir + +libnm_glib_vapi_METADATADIRS = $(srcdir) +libnm_glib_vapi_FILES = $(top_builddir)/libnm-glib/NMClient-1.0.gir +libnm_glib_vapi_VAPIDIRS = $(srcdir) + +VAPIGEN_VAPIS = libnm-util.vapi libnm-glib.vapi + +vapidir = $(VAPIGEN_VAPIDIR) +vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps) + + +endif diff --git a/vapi/Makefile.in b/vapi/Makefile.in new file mode 100644 index 00000000..d11f5d76 --- /dev/null +++ b/vapi/Makefile.in @@ -0,0 +1,611 @@ +# 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@ + +# Makefile for Vala API Generator (vapigen) +# Written by Evan Nemerson +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation +# +# Variables: +# +# VAPIGEN_FILES +# +# VAPIs to create +# +# *_DEPS / VAPIGEN_DEPS +# +# The dependencies. Generally the pkg-config names. +# +# *_METADATADIRS / VAPIGEN_METADATADIRS +# +# Directory containing the metadata. +# +# *_VAPIDIRS / VAPIGEN_VAPIDIRS +# +# Additional location(s) to search for VAPI dependencies. +# +# *_GIRDIRS / VAPIGEN_GIRDIRS +# +# Additional location(s) to search for GIR dependencies. +# +# *_FILES +# +# The files which should be used to generate the VAPI. + +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@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.vapigen +subdir = vapi +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/introspection.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.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)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/vapigen.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 = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(vapidir)" +DATA = $(vapi_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +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@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MAKEFILE = @GLIB_MAKEFILE@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ +GNUTLS_LIBS = @GNUTLS_LIBS@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +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@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +IPTABLES_PATH = @IPTABLES_PATH@ +IWMX_SDK_CFLAGS = @IWMX_SDK_CFLAGS@ +IWMX_SDK_LIBS = @IWMX_SDK_LIBS@ +KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDL = @LIBDL@ +LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ +LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ +LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBNL1_CFLAGS = @LIBNL1_CFLAGS@ +LIBNL1_LIBS = @LIBNL1_LIBS@ +LIBNL2_CFLAGS = @LIBNL2_CFLAGS@ +LIBNL2_LIBS = @LIBNL2_LIBS@ +LIBNL3_CFLAGS = @LIBNL3_CFLAGS@ +LIBNL3_LIBS = @LIBNL3_LIBS@ +LIBNL_CFLAGS = @LIBNL_CFLAGS@ +LIBNL_GENL3_CFLAGS = @LIBNL_GENL3_CFLAGS@ +LIBNL_GENL3_LIBS = @LIBNL_GENL3_LIBS@ +LIBNL_LIBS = @LIBNL_LIBS@ +LIBNL_ROUTE3_CFLAGS = @LIBNL_ROUTE3_CFLAGS@ +LIBNL_ROUTE3_LIBS = @LIBNL_ROUTE3_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +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@ +POLKIT_CFLAGS = @POLKIT_CFLAGS@ +POLKIT_LIBS = @POLKIT_LIBS@ +POSUB = @POSUB@ +PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ +QT_CFLAGS = @QT_CFLAGS@ +QT_LIBS = @QT_LIBS@ +RANLIB = @RANLIB@ +RESOLVCONF_PATH = @RESOLVCONF_PATH@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ +SYSTEMD_LIBS = @SYSTEMD_LIBS@ +SYSTEM_CA_PATH = @SYSTEM_CA_PATH@ +UDEV_BASE_DIR = @UDEV_BASE_DIR@ +USE_NLS = @USE_NLS@ +UUID_CFLAGS = @UUID_CFLAGS@ +UUID_LIBS = @UUID_LIBS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +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@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +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@ +EXTRA_DIST = \ + NetworkManager-1.0.metadata \ + NMClient-1.0.metadata \ + libnm-util.deps \ + libnm-glib.deps + +@ENABLE_VAPIGEN_TRUE@_vapigen_silent_prefix = $(_vapigen_silent_prefix_$(V)) +@ENABLE_VAPIGEN_TRUE@_vapigen_silent_prefix_ = $(_vapigen_silent_prefix_$(AM_DEFAULT_VERBOSITY)) +@ENABLE_VAPIGEN_TRUE@_vapigen_silent_prefix_0 = @echo " VAPIGEN $(1)"; +@ENABLE_VAPIGEN_TRUE@_vapigen_silent_opts = $(_vapigen_silent_opts_$(V)) +@ENABLE_VAPIGEN_TRUE@_vapigen_silent_opts_ = $(_vapigen_silent_opts_$(AM_DEFAULT_VERBOSITY)) +@ENABLE_VAPIGEN_TRUE@_vapigen_silent_opts_0 = --quiet +@ENABLE_VAPIGEN_TRUE@_vapi_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1)))) +@ENABLE_VAPIGEN_TRUE@libnm_util_vapi_METADATADIRS = $(srcdir) +@ENABLE_VAPIGEN_TRUE@libnm_util_vapi_FILES = $(top_builddir)/libnm-util/NetworkManager-1.0.gir +@ENABLE_VAPIGEN_TRUE@libnm_glib_vapi_METADATADIRS = $(srcdir) +@ENABLE_VAPIGEN_TRUE@libnm_glib_vapi_FILES = $(top_builddir)/libnm-glib/NMClient-1.0.gir +@ENABLE_VAPIGEN_TRUE@libnm_glib_vapi_VAPIDIRS = $(srcdir) +@ENABLE_VAPIGEN_TRUE@VAPIGEN_VAPIS = libnm-util.vapi libnm-glib.vapi +@ENABLE_VAPIGEN_TRUE@vapidir = $(VAPIGEN_VAPIDIR) +@ENABLE_VAPIGEN_TRUE@vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.vapigen $(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 vapi/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu vapi/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): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-vapiDATA: $(vapi_DATA) + @$(NORMAL_INSTALL) + test -z "$(vapidir)" || $(MKDIR_P) "$(DESTDIR)$(vapidir)" + @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vapidir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(vapidir)" || exit $$?; \ + done + +uninstall-vapiDATA: + @$(NORMAL_UNINSTALL) + @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(vapidir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(vapidir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +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 +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(vapidir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +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 mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-vapiDATA + +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 -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-vapiDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool 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 \ + install-vapiDATA installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-vapiDATA + + +@ENABLE_VAPIGEN_TRUE@$(if $(VAPIGEN),,$(error You must define VAPIGEN)) + +@ENABLE_VAPIGEN_TRUE@define vapigen +@ENABLE_VAPIGEN_TRUE@$(1): $$($(_vapi_name)_GIR) +@ENABLE_VAPIGEN_TRUE@ $(_vapigen_silent_prefix) $(VAPIGEN) $(_vapigen_silent_opts) \ +@ENABLE_VAPIGEN_TRUE@ --library $(1:.vapi=) \ +@ENABLE_VAPIGEN_TRUE@ $(foreach _vapi_metadatadir_name,$(if $($(_vapi_name)_METADATADIRS),$($(_vapi_name)_METADATADIRS),$(VAPIGEN_METADATADIRS)),--metadatadir $(_vapi_metadatadir_name)) \ +@ENABLE_VAPIGEN_TRUE@ $(foreach _vapi_dir_name,$(if $($(_vapi_name)_VAPIDIRS),$($(_vapi_name)_VAPIDIRS),$(VAPIGEN_VAPIDIRS)),--vapidir $(_vapi_dir_name)) \ +@ENABLE_VAPIGEN_TRUE@ $(foreach _vapi_dep_name,$(if $($(_vapi_name)_DEPS),$($(_vapi_name)_DEPS),$(VAPIGEN_DEPS)),--pkg $(_vapi_dep_name)) \ +@ENABLE_VAPIGEN_TRUE@ $$($(_vapi_name)_FILES) +@ENABLE_VAPIGEN_TRUE@endef + +@ENABLE_VAPIGEN_TRUE@$(foreach vapi,$(VAPIGEN_VAPIS),$(eval $(call vapigen,$(vapi)))) + +@ENABLE_VAPIGEN_TRUE@libnm-util.vapi: $(top_srcdir)/libnm-util/NetworkManager-1.0.gir libnm-util.deps NetworkManager-1.0.metadata +@ENABLE_VAPIGEN_TRUE@libnm-glib.vapi: $(top_srcdir)/libnm-glib/NMClient-1.0.gir libnm-glib.deps NMClient-1.0.metadata + +# 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/vapi/Makefile.vapigen b/vapi/Makefile.vapigen new file mode 100644 index 00000000..30e515bf --- /dev/null +++ b/vapi/Makefile.vapigen @@ -0,0 +1,60 @@ +# Makefile for Vala API Generator (vapigen) +# Written by Evan Nemerson +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation +# +# Variables: +# +# VAPIGEN_FILES +# +# VAPIs to create +# +# *_DEPS / VAPIGEN_DEPS +# +# The dependencies. Generally the pkg-config names. +# +# *_METADATADIRS / VAPIGEN_METADATADIRS +# +# Directory containing the metadata. +# +# *_VAPIDIRS / VAPIGEN_VAPIDIRS +# +# Additional location(s) to search for VAPI dependencies. +# +# *_GIRDIRS / VAPIGEN_GIRDIRS +# +# Additional location(s) to search for GIR dependencies. +# +# *_FILES +# +# The files which should be used to generate the VAPI. + +_vapigen_silent_prefix = $(_vapigen_silent_prefix_$(V)) +_vapigen_silent_prefix_ = $(_vapigen_silent_prefix_$(AM_DEFAULT_VERBOSITY)) +_vapigen_silent_prefix_0 = @echo " VAPIGEN $(1)"; +_vapigen_silent_opts = $(_vapigen_silent_opts_$(V)) +_vapigen_silent_opts_ = $(_vapigen_silent_opts_$(AM_DEFAULT_VERBOSITY)) +_vapigen_silent_opts_0 = --quiet + +$(if $(VAPIGEN),,$(error You must define VAPIGEN)) + +_vapi_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1)))) + +define vapigen +$(1): $$($(_vapi_name)_GIR) + $(_vapigen_silent_prefix) $(VAPIGEN) $(_vapigen_silent_opts) \ + --library $(1:.vapi=) \ + $(foreach _vapi_metadatadir_name,$(if $($(_vapi_name)_METADATADIRS),$($(_vapi_name)_METADATADIRS),$(VAPIGEN_METADATADIRS)),--metadatadir $(_vapi_metadatadir_name)) \ + $(foreach _vapi_dir_name,$(if $($(_vapi_name)_VAPIDIRS),$($(_vapi_name)_VAPIDIRS),$(VAPIGEN_VAPIDIRS)),--vapidir $(_vapi_dir_name)) \ + $(foreach _vapi_dep_name,$(if $($(_vapi_name)_DEPS),$($(_vapi_name)_DEPS),$(VAPIGEN_DEPS)),--pkg $(_vapi_dep_name)) \ + $$($(_vapi_name)_FILES) +endef + +$(foreach vapi,$(VAPIGEN_VAPIS),$(eval $(call vapigen,$(vapi)))) diff --git a/vapi/NMClient-1.0.metadata b/vapi/NMClient-1.0.metadata new file mode 100644 index 00000000..12f14699 --- /dev/null +++ b/vapi/NMClient-1.0.metadata @@ -0,0 +1,109 @@ +RemoteSettings.new_async skip +RemoteConnection.updated#virtual_method skip +Client.new_async skip + +ACTIVE_CONNECTION_* cheader_filename="nm-active-connection.h" name="ACTIVE_CONNECTION_(.+)" parent="NM.ActiveConnection" +CLIENT_* cheader_filename="nm-client.h" name="CLIENT_(.+)" parent="NM.Client" +ACCESS_POINT_* cheader_filename="nm-access-point.h" name="ACCESS_POINT_(.+)" parent="NM.AccessPoint" + +DEVICE_* cheader_filename="nm-device.h" name="DEVICE_(.+)" parent="NM.Device" +DEVICE_ADSL_* cheader_filename="nm-device-adsl.h" name="DEVICE_ADSL_(.+)" parent="NM.DeviceAdsl" +DEVICE_BOND_* cheader_filename="nm-device-bond.h" name="DEVICE_BOND_(.+)" parent="NM.DeviceBond" +DEVICE_BT_* cheader_filename="nm-device-bt.h" name="DEVICE_BT_(.+)" parent="NM.DeviceBt" +DEVICE_ETHERNET_* cheader_filename="nm-device-ethernet.h" name="DEVICE_ETHERNET_(.+)" parent="NM.DeviceEthernet" + +DEVICE_INFINIBAND_* cheader_filename="nm-device-infiniband.h" name="DEVICE_INFINIBAND_(.+)" parent="NM.DeviceInfiniband" +DEVICE_MODEM_* cheader_filename="nm-device-modem.h" name="DEVICE_MODEM_(.+)" parent="NM.DeviceModem" +DEVICE_OLPC_MESH_* cheader_filename="nm-device-olpc-mesh.h" name="DEVICE_OLPC_(.+)" parent="NM.DeviceOlpcMesh" + +DEVICE_VLAN_* cheader_filename="nm-device-vlan.h" name="DEVICE_VLAN_(.+)" parent="NM.DeviceVlan" +DEVICE_WIFI_* cheader_filename="nm-device-wifi.h" name="DEVICE_WIFI_(.+)" parent="NM.DeviceWifi" +DEVICE_WIMAX_* cheader_filename="nm-device-wimax.h" name="DEVICE_WIMAX_(.+)" parent="NM.DeviceWimax" +DHCP4_CONFIG_OPTIONS cheader_filename="nm-dhcp4-config.h" name="DHCP4_CONFIG_(.+)" parent="NM.DHCP4Config" +DHCP6_CONFIG_OPTIONS cheader_filename="nm-dhcp6-config.h" name="DHCP4_CONFIG_(.+)" parent="NM.DHCP6Config" +IP4_CONFIG_* cheader_filename="nm-ip4-config.h" name="IP4_CONFIG_(.+)" parent="NM.IP4Config" +IP6_CONFIG_* cheader_filename="nm-ip6-config.h" name="IP6_CONFIG_(.+)" parent="NM.IP6Config" +OBJECT_* cheader_filename="nm-object.h" name="OBJECT_(.+)" parent="NM.Object" +REMOTE_CONNECTION_* cheader_filename="nm-remote-connection.h" name="REMOTE_CONNECTION_(.+)" parent="NM.RemoteConnection" +REMOTE_SETTINGS_* cheader_filename="nm-remote-settings.h" name="REMOTE_SETTINGS_(.+)" parent="NM.RemoteSettings" +SECRET_AGENT_* cheader_filename="nm-secret-agent.h" name="SECRET_AGENT_(.+)" parent="NM.SecretAgent" +VPN_CONNECTION_* cheader_filename="nm-vpn-connection.h" name="VPN_CONNECTION_(.+)" parent="NM.VPNConnection" +WIMAX_NSP_* cheader_filename="nm-wimax-nsp.h" name="WIMAX_NSP_(.+)" parent="NM.WimaxNsp" + +AccessPoint cheader_filename="nm-access-point.h" +ActiveConnection cheader_filename="nm-active-connection.h" +Client cheader_filename="nm-client.h" +DHCP4Config cheader_filename="nm-dhcp4-config.h" +DHCP6Config cheader_filename="nm-dhcp6-config.h" +Device cheader_filename="nm-device.h" +DeviceAdsl cheader_filename="nm-device-adsl.h" +DeviceBond cheader_filename="nm-device-bond.h" +DeviceBt cheader_filename="nm-device-bt.h" +DeviceEthernet cheader_filename="nm-device-ethernet.h" +DeviceInfiniband cheader_filename="nm-device-infiniband.h" +DeviceModem cheader_filename="nm-device-modem.h" +DeviceOlpcMesh cheader_filename="nm-device-olpc-mesh.h" +DeviceVlan cheader_filename="nm-device-vlan.h" +DeviceWifi cheader_filename="nm-device-wifi.h" +DeviceWimax cheader_filename="nm-device-wimax.h" +IP4Config cheader_filename="nm-ip4-config.h" +IP6AddressArray cheader_filename="nm-types.h" +IP6AddressObjectArray cheader_filename="nm-types.h" +IP6Config cheader_filename="nm-ip6-config.h" +IP6RouteObjectArray cheader_filename="nm-types.h" +ObjectArray cheader_filename="nm-types.h" +RemoteConnection cheader_filename="nm-remote-connection.h" +RemoteSettings cheader_filename="nm-remote-settings.h" +Ssid cheader_filename="nm-types.h" +StringArray cheader_filename="nm-types.h" +UintArray cheader_filename="nm-types.h" +VPNConnection cheader_filename="nm-vpn-connection.h" +WimaxNsp cheader_filename="nm-wimax-nsp.h" + + +ClientPermission cheader_filename="nm-client.h" +ClientPermissionResult cheader_filename="nm-client.h" +DeviceAdslError cheader_filename="nm-device-adsl.h" +DeviceBondError cheader_filename="nm-device-bond.h" +DeviceBtError cheader_filename="nm-device-bt.h" +DeviceEthernetError cheader_filename="nm-device-ethernet.h" +DeviceInfinibandError cheader_filename="nm-device-infiniband.h" +DeviceModemError cheader_filename="nm-device-modem.h" +DeviceOlpcMeshError cheader_filename="nm-device-olpc-mesh.h" +DeviceVlanError cheader_filename="nm-device-vlan.h" +DeviceWifiError cheader_filename="nm-device-wifi.h" +DeviceWimaxError cheader_filename="nm-device-wimax.h" +ObjectError cheader_filename="nm-object.h" +RemoteSettingsError cheader_filename="nm-remote-settings.h" +SecretAgentError cheader_filename="nm-secret-agent.h" +SecretAgentGetSecretsFlags cheader_filename="nm-secret-agent.h" +WimaxNspNetworkType cheader_filename="nm-wimax-nsp.h" + +ClientActivateFn cheader_filename="nm-client.h" +ClientAddActivateFn cheader_filename="nm-client.h" +DeviceDeactivateFn cheader_filename="nm-device.h" +RemoteConnectionCommitFunc cheader_filename="nm-remote-connection.h" +RemoteConnectionDeleteFunc cheader_filename="nm-remote-connection.h" +RemoteConnectionGetSecretsFunc cheader_filename="nm-remote-connection.h" +RemoteSettingsAddConnectionFunc cheader_filename="nm-remote-settings.h" +RemoteSettingsSaveHostnameFunc cheader_filename="nm-remote-settings.h" +SecretAgentDeleteSecretsFunc cheader_filename="nm-secret-agent.h" +SecretAgentGetSecretsFunc cheader_filename="nm-secret-agent.h" +SecretAgentSaveSecretsFunc cheader_filename="nm-secret-agent.h" + +device_adsl_error_quark cheader_filename="nm-device-adsl.h" parent="NM.DeviceAdslError" name="device_adsl_error_(.+)" +device_bond_error_quark cheader_filename="nm-device-bond.h" parent="NM.DeviceBondError" name="device_bond_error_(.+)" +device_bt_error_quark cheader_filename="nm-device-bt.h" parent="NM.DeviceBtError" name="device_bt_error_(.+)" +device_ethernet_error_quark cheader_filename="nm-device-ethernet.h" parent="NM.DeviceEthernetError" name="device_ethernet_error_(.+)" +device_infiniband_error_quark cheader_filename="nm-device-infiniband.h" parent="NM.DeviceInfinibandError" name="device_infiniband_error_(.+)" +device_modem_error_quark cheader_filename="nm-device-modem.h" parent="NM.DeviceModemError" name="device_modem_error_(.+)" +device_olpc_mesh_error_quark cheader_filename="nm-device-olpc-mesh.h" parent="NM.DeviceOlpcMeshError" name="device_olpc_mesh_error_(.+)" +device_vlan_error_quark cheader_filename="nm-device-vlan.h" parent="NM.DeviceVlanError" name="device_vlan_error(.+)" +device_wifi_error_quark cheader_filename="nm-device-wifi.h" parent="NM.DeviceWifiError" name="device_wifi_error_(.+)" +device_wimax_error_quark cheader_filename="nm-device-wimax.h" parent="NM.DeviceWimaxError" name="device_wimax_error_(.+)" +object_error_quark cheader_filename="nm-object.h" parent="NM.ObjectError" name="object_error_(.+)" +remote_settings_error_quark cheader_filename="nm-remote-settings.h" name="remote_settings_error_(.+)" parent="NM.RemoteSettingsError" +secret_agent_error_quark cheader_filename="nm-secret-agent.h" name="secret_agent_error_(.+)" parent="NM.SecretAgentError" + +Object cheader_filename="nm-object.h" +SecretAgent cheader_filename="nm-secret-agent.h" diff --git a/vapi/NetworkManager-1.0.metadata b/vapi/NetworkManager-1.0.metadata new file mode 100644 index 00000000..d757828f --- /dev/null +++ b/vapi/NetworkManager-1.0.metadata @@ -0,0 +1,152 @@ +Setting.get_secret_flags#virtual_method skip +Setting.set_secret_flags#virtual_method skip + +Connection cheader_filename="nm-connection.h" +IP4Address cheader_filename="nm-setting-ip4-config.h" +IP4Route cheader_filename="nm-setting-ip4-config.h" +IP6Address cheader_filename="nm-setting-ip6-config.h" +IP6Route cheader_filename="nm-setting-ip6-config.h" +Setting8021x cheader_filename="nm-setting-8021x.h" +SettingAdsl cheader_filename="nm-setting-adsl.h" +SettingBluetooth cheader_filename="nm-setting-bluetooth.h" +SettingBond cheader_filename="nm-setting-bond.h" +SettingCdma cheader_filename="nm-setting-cdma.h" +SettingConnection cheader_filename="nm-setting-connection.h" +SettingGsm cheader_filename="nm-setting-gsm.h" +SettingIP4Config cheader_filename="nm-setting-ip4-config.h" +SettingIP6Config cheader_filename="nm-setting-ip6-config.h" +SettingInfiniband cheader_filename="nm-setting-infiniband.h" +SettingOlpcMesh cheader_filename="nm-setting-olpc-mesh.h" +SettingPPP cheader_filename="nm-setting-ppp.h" +SettingPPPOE cheader_filename="nm-setting-pppoe.h" +SettingSerial cheader_filename="nm-setting-serial.h" +SettingVPN cheader_filename="nm-setting-vpn.h" +SettingVlan cheader_filename="nm-setting-vlan.h" +SettingWimax cheader_filename="nm-setting-wimax.h" +SettingWired cheader_filename="nm-setting-wired.h" +SettingWireless cheader_filename="nm-setting-wireless.h" +SettingWirelessSecurity cheader_filename="nm-setting-wireless-security.h" + +Setting cheader_filename="nm-setting.h" + +80211ApFlags cheader_filename="NetworkManager.h" +80211ApSecurityFlags cheader_filename="NetworkManager.h" +80211Mode cheader_filename="NetworkManager.h" +ActiveConnectionState cheader_filename="NetworkManager.h" +BluetoothCapabilities cheader_filename="NetworkManager.h" +ConnectionError cheader_filename="nm-connection.h" +DeviceCapabilities cheader_filename="NetworkManager.h" +DeviceModemCapabilities cheader_filename="NetworkManager.h" +DeviceState cheader_filename="NetworkManager.h" +DeviceStateReason cheader_filename="NetworkManager.h" +DeviceType cheader_filename="NetworkManager.h" +DeviceWifiCapabilities cheader_filename="NetworkManager.h" +Setting8021xCKFormat cheader_filename="nm-setting-8021x.h" +Setting8021xCKScheme cheader_filename="nm-setting-8021x.h" +Setting8021xError cheader_filename="nm-setting-8021x.h" +SettingAdslError cheader_filename="nm-setting-adsl.h" +SettingBluetoothError cheader_filename="nm-setting-bluetooth.h" +SettingBondError cheader_filename="nm-setting-bond.h" +SettingCdmaError cheader_filename="nm-setting-cdma.h" +SettingCompareFlags cheader_filename="nm-setting.h" +SettingConnectionError cheader_filename="nm-setting-connection.h" +SettingDiffResult cheader_filename="nm-setting.h" +SettingError cheader_filename="nm-setting.h" +SettingGsmError cheader_filename="nm-setting-gsm.h" +SettingGsmNetworkBand cheader_filename="nm-setting-gsm.h" +SettingGsmNetworkType cheader_filename="nm-setting-gsm.h" +SettingHashFlags cheader_filename="nm-setting.h" +SettingIP4ConfigError cheader_filename="nm-setting-ip4-config.h" +SettingIP6ConfigError cheader_filename="nm-setting-ip6-config.h" +SettingIP6ConfigPrivacy cheader_filename="nm-setting-ip6-config.h" +SettingInfinibandError cheader_filename="nm-setting-infiniband.h" +SettingOlpcMeshError cheader_filename="nm-setting-olpc-mesh.h" +SettingPPPError cheader_filename="nm-setting-ppp.h" +SettingPPPOEError cheader_filename="nm-setting-pppoe.h" +SettingSecretFlags cheader_filename="nm-setting.h" +SettingSerialError cheader_filename="nm-setting-serial.h" +SettingVlanError cheader_filename="nm-setting-vlan.h" +SettingVpnError cheader_filename="nm-setting-vpn.h" +SettingWimaxError cheader_filename="nm-setting-wimax.h" +SettingWiredError cheader_filename="nm-setting-wired.h" +SettingWirelessError cheader_filename="nm-setting-wireless.h" +SettingWirelessSecurityError cheader_filename="nm-setting-wireless-security.h" +State cheader_filename="NetworkManager.h" + +VPNConnectionState cheader_filename="NetworkManagerVPN.h" +VPNConnectionStateReason cheader_filename="NetworkManagerVPN.h" +VPNPluginFailure cheader_filename="NetworkManagerVPN.h" +VPNServiceState cheader_filename="NetworkManagerVPN.h" + +VlanFlags cheader_filename="nm-setting-vlan.h" +VlanPriorityMap cheader_filename="nm-setting-vlan.h" +WepKeyType cheader_filename="nm-setting-wireless-security.h" + +SettingClearSecretsWithFlagsFn cheader_filename="nm-setting.h" +SettingValueIterFn cheader_filename="nm-setting.h" +VPNIterFunc cheader_filename="nm-setting-vpn.h" + +CONNECTION_PATH cheader_filename="nm-connection.h" +DBUS_* cheader_filename="NetworkManager.h" +DBUS_PATH_VPN cheader_filename="NetworkManagerVPN.h" +DBUS_PATH_VPN_CONNECTION cheader_filename="NetworkManagerVPN.h" +DBUS_VPN_* cheader_filename="NetworkManagerVPN.h" + +//DBUS_* parent="NM.DBus" cheader_filename="NetworkManager.h" name="DBUS_(.+)" +//DBUS_PATH_VPN parent="NM.DBus" cheader_filename="NetworkManagerVPN.h" name="DBUS_(.+)" +//DBUS_PATH_VPN_CONNECTION parent="NM.DBus" cheader_filename="NetworkManagerVPN.h" name="DBUS_(.+)" +//DBUS_VPN_* parent="NM.DBus.VPN" cheader_filename="NetworkManagerVPN.h" name="DBUS_VPN_(.+)" + +SETTING_NAME cheader_filename="nm-setting.h" + +SETTING_802_1X_* parent="NM.Setting8021x" name="SETTING_802_1X_(.+)" +SETTING_ADSL_* parent="NM.SettingAdsl" cheader_filename="nm-setting-adsl.h" name="SETTING_ADSL_(.+)" +SETTING_BLUETOOTH_* parent="NM.SettingBluetooth" cheader_filename="nm-setting-bluetooth.h" name="SETTING_BLUETOOTH_(.+)" +SETTING_BOND_* parent="NM.SettingBond" cheader_filename="nm-setting-bond.h" name="SETTING_BOND_(.+)" +SETTING_CDMA_* parent="NM.SettingCdma" cheader_filename="nm-setting-cdma.h" name="SETTING_CDMA_(.+)" +SETTING_CONNECTION_* parent="NM.SettingConnection" cheader_filename="nm-setting-connection.h" name="SETTING_CONNECTION_(.+)" +SETTING_GSM_* parent="NM.SettingGsm" cheader_filename="nm-setting-gsm.h" name="SETTING_GSM_(.+)" +SETTING_INFINIBAND_* parent="NM.SettingInfiniband" cheader_filename="nm-setting-infiniband.h" name="SETTING_INFINIBAND_(.+)" +SETTING_IP4_* parent="NM.SettingIP4" cheader_filename="nm-setting-ip4-config.h" name="SETTING_IP4_(.+)" +SETTING_IP6_* parent="NM.SettingIP6" cheader_filename="nm-setting-ip6-config.h" name="SETTING_IP6_(.+)" +SETTING_OLPC_* parent="NM.SettingOLPC" cheader_filename="nm-setting-olpc-mesh.h" name="SETTING_OLPC_(.+)" +SETTING_PPP_* parent="NM.SettingPPP" cheader_filename="nm-setting-ppp.h" name="SETTING_PPP_(.+)" +SETTING_PPPOE_* parent="NM.SettingPPPOE" cheader_filename="nm-setting-pppoe.h" name="SETTING_PPPOE_(.+)" +SETTING_SERIAL_* parent="NM.SettingSerial" cheader_filename="nm-setting-serial.h" name="SETTING_SERIAL_(.+)" +SETTING_VLAN_* parent="NM.SettingVlan" cheader_filename="nm-setting-vlan.h" name="SETTING_VLAN_(.+)" +SETTING_VPN_* parent="NM.SettingVpn" cheader_filename="nm-setting-vpn.h" name="SETTING_VPN_(.+)" +SETTING_WIMAX_* parent="NM.SettingWimax" cheader_filename="nm-setting-wimax.h" name="SETTING_WIMAX_(.+)" +SETTING_WIRED_* parent="NM.SettingWired" cheader_filename="nm-setting-wired.h" name="SETTING_WIRED_(.+)" +SETTING_WIRELESS_* parent="NM.SettingWireless" cheader_filename="nm-setting-wireless.h" name="SETTING_WIRELESS_(.+)" +SETTING_WIRELESS_SECURITY_* parent="NM.SettingWirelessSecurity" cheader_filename="nm-setting-wireless-security.h" name="SETTING_WIRELESS_SECURITY_(.+)" + +VPN_* parent="NM.VPN" name="VPN_(.+)" cheader_filename="NetworkManagerVPN.h" + +connection_error_quark cheader_filename="nm-connection.h" name="connection_(.+)" parent="NM.Connection" + +setting_802_1x_error_quark cheader_filename="nm-setting-8021x.h" name="setting_802_1x_error_(.+)" parent="NM.Setting8021xError" +setting_adsl_error_quark cheader_filename="nm-setting-adsl.h" name="setting_adsl_error_(.+)" parent="NM.SettingAdslError" +setting_bluetooth_error_quark cheader_filename="nm-setting-bluetooth.h" name="setting_bluetooth_error_(.+)" parent="NM.SettingBluetoothError" +setting_bond_error_quark cheader_filename="nm-setting-bond.h" name="setting_bond_error_(.+)" parent="NM.SettingBondError" +setting_cdma_error_quark cheader_filename="nm-setting-cdma.h" name="setting_cdma_error_(.+)" parent="NM.SettingCdmaError" +setting_connection_error_quark cheader_filename="nm-setting-connection.h" name="setting_connection_error_(.+)" parent="NM.SettingConnectionError" +setting_error_quark cheader_filename="nm-setting.h" name="setting_error_(.+)" parent="NM.SettingError" +setting_gsm_error_quark cheader_filename="nm-setting-gsm.h" name="setting_gsm_error_(.+)" parent="NM.SettingGsmError" +setting_infiniband_error_quark cheader_filename="nm-setting-infiniband.h" name="setting_infiniband_error_(.+)" parent="NM.SettingInfinibandError" +setting_ip4_config_error_quark cheader_filename="nm-setting-ip4-config.h" name="setting_ip4_config_error_(.+)" parent="NM.SettingIP4ConfigError" +setting_ip6_config_error_quark cheader_filename="nm-setting-ip6-config.h" name="setting_ip6_config_error_(.+)" parent="NM.SettingIP6ConfigError" +setting_olpc_mesh_error_quark cheader_filename="nm-setting-olpc-mesh.h" name="setting_olpc_mesh_error_(.+)" parent="NM.SettingOlpcMeshError" +setting_ppp_error_quark cheader_filename="nm-setting-ppp.h" name="setting_ppp_error_(.+)" parent="NM.SettingPPPError" +setting_pppoe_error_quark cheader_filename="nm-setting-pppoe.h" name="setting_pppoe_error_(.+)" parent="NM.SettingPPPOEError" +setting_serial_error_quark cheader_filename="nm-setting-serial.h" name="setting_serial_error_(.+)" parent="NM.SettingSerialError" +setting_vlan_error_quark cheader_filename="nm-setting-vlan.h" name="setting_vlan_error_(.+)" parent="NM.SettingVlanError" +setting_vpn_error_quark cheader_filename="nm-setting-vpn.h" name="setting_vpn_error_(.+)" parent="NM.SettingVpnError" +setting_wimax_error_quark cheader_filename="nm-setting-wimax.h" name="setting_wimax_error_(.+)" parent="NM.SettingWimaxError" +setting_wired_error_quark cheader_filename="nm-setting-wired.h" name="setting_wired_error_(.+)" parent="NM.SettingWiredError" +setting_wireless_error_quark cheader_filename="nm-setting-wireless.h" name="setting_wireless_error_(.+)" parent="NM.SettingWirelessError" +setting_wireless_security_error_quark cheader_filename="nm-setting-wireless-security.h" name="setting_wireless_security_error_(.+)" parent="NM.SettingWirelessSecurityError" + +SETTING_PARAM_* cheader_filename="nm-setting.h" parent="NM.Setting" name="SETTING_PARAM_(.+)" +utils_* cheader_filename="nm-utils.h" parent="NM.Utils" name="utils_(.+)" +UTILS_* cheader_filename="nm-utils.h" parent="NM.Utils" name="UTILS_(.+)" +UtilsSecurityType cheader_filename="nm-utils.h" parent="NM.Utils" name="SecurityType" diff --git a/vapi/libnm-glib.deps b/vapi/libnm-glib.deps new file mode 100644 index 00000000..56e99859 --- /dev/null +++ b/vapi/libnm-glib.deps @@ -0,0 +1,3 @@ +dbus-glib-1 +libnm-util +gio-2.0 diff --git a/vapi/libnm-util.deps b/vapi/libnm-util.deps new file mode 100644 index 00000000..efd2584d --- /dev/null +++ b/vapi/libnm-util.deps @@ -0,0 +1,2 @@ +dbus-glib-1 +gio-2.0 |