summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/src/connections.c10
-rw-r--r--configure.ac13
-rw-r--r--docs/Makefile.am4
-rw-r--r--examples/C/Makefile.am2
-rw-r--r--examples/C/add-connection-glib.c112
-rw-r--r--examples/Makefile.am4
-rw-r--r--initscript/Makefile.am3
-rw-r--r--initscript/linexa/Makefile.am6
-rw-r--r--initscript/linexa/networkmanager.in59
-rw-r--r--libnm-glib/Makefile.am2
-rw-r--r--libnm-glib/nm-object.c17
-rw-r--r--libnm-util/crypto.c1
-rw-r--r--libnm-util/nm-setting-wireless-security.c3
-rw-r--r--libnm-util/nm-setting-wireless.c1
-rw-r--r--po/bg.po1927
-rw-r--r--po/es.po175
-rw-r--r--po/hu.po1499
-rw-r--r--po/pl.po1751
-rw-r--r--src/NetworkManager.conf26
-rw-r--r--src/backends/Makefile.am4
-rw-r--r--src/backends/NetworkManagerLinexa.c66
-rw-r--r--src/dhcp-manager/nm-dhcp-client.c1
-rw-r--r--src/dhcp-manager/nm-dhcp-dhclient.c4
-rw-r--r--src/dns-manager/nm-dns-bind.c1
-rw-r--r--src/dns-manager/nm-dns-dnsmasq.c1
-rw-r--r--src/dns-manager/nm-dns-manager.c2
-rw-r--r--src/dns-manager/nm-dns-plugin.c3
-rw-r--r--src/dnsmasq-manager/nm-dnsmasq-manager.c3
-rw-r--r--src/nm-device-ethernet.c298
-rw-r--r--src/nm-device-wifi.c402
-rw-r--r--src/nm-device.c1
-rw-r--r--src/nm-manager.c20
-rw-r--r--src/nm-policy-hostname.c7
-rw-r--r--src/nm-policy-hosts.c241
-rw-r--r--src/nm-policy-hosts.h2
-rw-r--r--src/nm-policy.c10
-rw-r--r--src/nm-system.c4
-rw-r--r--src/ppp-manager/nm-ppp-manager.c1
-rw-r--r--src/supplicant-manager/nm-supplicant-interface.c1077
-rw-r--r--src/supplicant-manager/nm-supplicant-interface.h57
-rw-r--r--src/supplicant-manager/nm-supplicant-manager.c427
-rw-r--r--src/supplicant-manager/nm-supplicant-manager.h38
-rw-r--r--src/supplicant-manager/nm-supplicant-settings-verify.c1
-rw-r--r--src/system-settings/nm-default-wired-connection.c1
-rw-r--r--src/tests/test-policy-hosts.c207
-rw-r--r--src/vpn-manager/nm-vpn-service.c1
-rw-r--r--system-settings/plugins/ifcfg-rh/reader.c1
-rw-r--r--system-settings/plugins/ifcfg-rh/writer.c22
-rw-r--r--system-settings/plugins/ifnet/net_utils.c1
49 files changed, 5787 insertions, 2732 deletions
diff --git a/cli/src/connections.c b/cli/src/connections.c
index 606fddadee..1dd70c164e 100644
--- a/cli/src/connections.c
+++ b/cli/src/connections.c
@@ -657,10 +657,11 @@ check_ethernet_compatible (NMDeviceEthernet *device, NMConnection *connection, G
if (s_wired) {
const GByteArray *mac;
const char *device_mac_str;
- struct ether_addr *device_mac;
+ struct ether_addr *device_mac = NULL;
device_mac_str = nm_device_ethernet_get_permanent_hw_address (device);
- device_mac = ether_aton (device_mac_str);
+ if (device_mac_str)
+ device_mac = ether_aton (device_mac_str);
if (!device_mac) {
g_set_error (error, 0, 0, "Invalid device MAC address.");
return FALSE;
@@ -706,10 +707,11 @@ check_wifi_compatible (NMDeviceWifi *device, NMConnection *connection, GError **
if (s_wireless) {
const GByteArray *mac;
const char *device_mac_str;
- struct ether_addr *device_mac;
+ struct ether_addr *device_mac = NULL;
device_mac_str = nm_device_wifi_get_permanent_hw_address (device);
- device_mac = ether_aton (device_mac_str);
+ if (device_mac_str)
+ device_mac = ether_aton (device_mac_str);
if (!device_mac) {
g_set_error (error, 0, 0, "Invalid device MAC address.");
return FALSE;
diff --git a/configure.ac b/configure.ac
index db28815783..e66a1f4903 100644
--- a/configure.ac
+++ b/configure.ac
@@ -84,7 +84,7 @@ dnl Make sha1.c happy on big endian systems
dnl
AC_C_BIGENDIAN
-AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, suse, gentoo, debian, arch, slackware, paldo, mandriva or pardus]))
+AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, suse, gentoo, debian, arch, slackware, paldo, mandriva, pardus or linexa]))
if test "z$with_distro" = "z"; then
AC_CHECK_FILE(/etc/redhat-release,with_distro="redhat")
AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse")
@@ -96,6 +96,7 @@ if test "z$with_distro" = "z"; then
AC_CHECK_FILE(/etc/frugalware-release,with_distro="frugalware")
AC_CHECK_FILE(/etc/mandriva-release,with_distro="mandriva")
AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus")
+ AC_CHECK_FILE(/etc/linexa-release,with_distro="linexa")
if test "z$with_distro" = "z"; then
with_distro=`lsb_release -is`
fi
@@ -107,7 +108,7 @@ if test "z$with_distro" = "z"; then
exit 1
else
case $with_distro in
- redhat|suse|gentoo|debian|slackware|arch|paldo|frugalware|mandriva|pardus) ;;
+ redhat|suse|gentoo|debian|slackware|arch|paldo|frugalware|mandriva|pardus|linexa) ;;
*)
echo "Your distribution (${with_distro}) is not yet supported! (patches welcome)"
exit 1
@@ -165,6 +166,11 @@ if test x"$with_distro" = xpardus; then
AC_DEFINE(TARGET_PARDUS, 1, [Define if you have Pardus])
fi
+AM_CONDITIONAL(TARGET_LINEXA, test x"$with_distro" = xlinexa)
+if test x"$with_distro" = xlinexa; then
+ AC_DEFINE(TARGET_LINEXA, 1, [Define if you have linexa])
+fi
+
dnl
dnl Distribution version string
dnl
@@ -543,6 +549,8 @@ initscript/paldo/Makefile
initscript/paldo/NetworkManager
initscript/Mandriva/Makefile
initscript/Mandriva/networkmanager
+initscript/linexa/Makefile
+initscript/linexa/networkmanager
introspection/Makefile
man/Makefile
man/NetworkManager.8
@@ -560,6 +568,7 @@ docs/libnm-util/Makefile
NetworkManager.pc
examples/Makefile
examples/python/Makefile
+examples/C/Makefile
])
AC_OUTPUT
diff --git a/docs/Makefile.am b/docs/Makefile.am
index fe74511025..5a3da7e067 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -1,7 +1,7 @@
-SUBDIRS = libnm-glib libnm-util
-
if WITH_DOCS
+SUBDIRS = libnm-glib libnm-util
+
INCLUDES = \
-I$(top_srcdir)/include \
-I$(top_srcdir)/libnm-util
diff --git a/examples/C/Makefile.am b/examples/C/Makefile.am
new file mode 100644
index 0000000000..68c0697b0b
--- /dev/null
+++ b/examples/C/Makefile.am
@@ -0,0 +1,2 @@
+EXTRA_DIST = \
+ add-connection-glib.c
diff --git a/examples/C/add-connection-glib.c b/examples/C/add-connection-glib.c
new file mode 100644
index 0000000000..0e8dc18036
--- /dev/null
+++ b/examples/C/add-connection-glib.c
@@ -0,0 +1,112 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2010 Red Hat, Inc.
+ */
+
+/*
+ * The example shows how to call AddConnection() D-Bus method to add
+ * a connection to system settings service. It uses dbus-glib and libnm-util
+ * libraries.
+ *
+ * Compile with:
+ * gcc -Wall `pkg-config --libs --cflags glib-2.0 dbus-glib-1 libnm-util` add-connection-glib.c -o add-connection-glib
+ */
+
+#include <glib.h>
+#include <dbus/dbus-glib.h>
+
+#include <nm-connection.h>
+#include <nm-setting-connection.h>
+#include <nm-setting-wired.h>
+#include <nm-setting-ip4-config.h>
+#include <NetworkManager.h>
+#include <nm-utils.h>
+
+#define DBUS_TYPE_G_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE))
+#define DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT))
+
+void add_connection (DBusGProxy *proxy, const char *con_name)
+{
+ NMConnection *connection;
+ NMSettingConnection *s_con;
+ NMSettingWired *s_wired;
+ NMSettingIP4Config *s_ip4;
+ char *uuid;
+ GHashTable *hash;
+ GError *error = NULL;
+
+ /* Create a new connection object */
+ connection = (NMConnection *) nm_connection_new ();
+
+ /* Build up the 'connection' Setting */
+ s_con = (NMSettingConnection *) nm_setting_connection_new ();
+ uuid = nm_utils_uuid_generate ();
+ g_object_set (G_OBJECT (s_con),
+ NM_SETTING_CONNECTION_UUID, uuid,
+ NM_SETTING_CONNECTION_ID, con_name,
+ NM_SETTING_CONNECTION_TYPE, "802-3-ethernet",
+ NULL);
+ g_free (uuid);
+ nm_connection_add_setting (connection, NM_SETTING (s_con));
+
+ /* Build up the 'wired' Setting */
+ s_wired = (NMSettingWired *) nm_setting_wired_new ();
+ nm_connection_add_setting (connection, NM_SETTING (s_wired));
+
+ /* Build up the 'ipv4' Setting */
+ s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
+ g_object_set (G_OBJECT (s_ip4),
+ NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+ NULL);
+ nm_connection_add_setting (connection, NM_SETTING (s_ip4));
+
+ hash = nm_connection_to_hash (connection);
+
+ /* Call AddConnection with the hash as argument */
+ dbus_g_proxy_call (proxy, "AddConnection", &error,
+ DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT, hash,
+ G_TYPE_INVALID);
+
+ g_hash_table_destroy (hash);
+ g_object_unref (connection);
+}
+
+
+int main (int argc, char *argv[])
+{
+ DBusGConnection *bus;
+ DBusGProxy *proxy;
+
+ /* Initialize GType system */
+ g_type_init ();
+
+ /* Get system bus */
+ bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
+
+ /* Create a D-Bus proxy; NM_DBUS_* defined in NetworkManager.h */
+ proxy = dbus_g_proxy_new_for_name (bus,
+ NM_DBUS_SERVICE_SYSTEM_SETTINGS,
+ NM_DBUS_PATH_SETTINGS,
+ NM_DBUS_IFACE_SETTINGS);
+
+ /* Add a connection */
+ add_connection (proxy, "__Test connection__");
+
+ g_object_unref (proxy);
+ dbus_g_connection_unref (bus);
+
+ return 0;
+}
diff --git a/examples/Makefile.am b/examples/Makefile.am
index c2ddf781cc..643959b143 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1 +1,3 @@
-SUBDIRS=python
+SUBDIRS= \
+ python \
+ C
diff --git a/initscript/Makefile.am b/initscript/Makefile.am
index 4cc710eba4..65555e3eff 100644
--- a/initscript/Makefile.am
+++ b/initscript/Makefile.am
@@ -23,3 +23,6 @@ endif
if TARGET_MANDRIVA
SUBDIRS += Mandriva
endif
+if TARGET_LINEXA
+SUBDIRS += linexa
+endif
diff --git a/initscript/linexa/Makefile.am b/initscript/linexa/Makefile.am
new file mode 100644
index 0000000000..0a0cc2bb3e
--- /dev/null
+++ b/initscript/linexa/Makefile.am
@@ -0,0 +1,6 @@
+EXTRA_DIST = networkmanager
+DISTCLEANFILES = networkmanager
+
+initddir = $(sysconfdir)/rc.d/init.d
+initd_SCRIPTS = networkmanager
+
diff --git a/initscript/linexa/networkmanager.in b/initscript/linexa/networkmanager.in
new file mode 100644
index 0000000000..0d754c3604
--- /dev/null
+++ b/initscript/linexa/networkmanager.in
@@ -0,0 +1,59 @@
+#!/bin/bash
+# Start the networkmanager daemon
+#
+# Author: Elias <elias@linexa.de>
+# [2010-08-20]
+
+# Information about the daemon
+title="networkmanager" # No spaces allowed in here
+start_after="dbus" # dependencies for start-up
+stop_after="xinetd" # dependencies for stop
+runlevel="2" # start/stop in this runlevel
+sequence="25" # "checkinstall networkmanager enable"
+ # will create links to:
+ # /etc/rc.d/rc${runlevel}.d/S${sequence}${title}
+ # /etc/rc.d/rc${runlevel}.d/S$((100 - ${sequence}))${title}
+
+# check whether daemon is running
+# returns 0 if running, >0 if not
+check() {
+ [ -f /var/run/NetworkManager.pid ]
+}
+
+# start procedure
+start() {
+ if check ; then
+ warning "${title} is already running. Type 'service restart ${title}'" # Issue a warning
+ else
+ /usr/sbin/NetworkManager &
+ evaluate_retval "Starting ${title}. " # Print [ done ] or [ failed ] depending on outcome
+ fi
+}
+
+# stop procedure
+stop() {
+ if check ; then # daemon is running
+ kill $(cat /var/run/NetworkManager.pid)
+ evaluate_retval "Stopping ${title}." # Print [ done ] or [ failed ] depending on outcome
+ else # daemon not running
+ warning "${title} is not running." # Issue a warning
+ fi
+}
+
+# restart procedure
+restart() {
+ stop
+ sleep 1
+ start
+}
+
+# reload action
+reload() {
+ if check ; then # daemon is running
+ kill -HUP $(cat /var/run/NetworkManager.pid) &>/dev/null
+ evaluate_retval "Reloading ${title}." # Print [ done ] or [ failed ] depending on outcome
+ else # daemon not running
+ warning "${title} is not running." # Issue a warning
+ fi
+}
+
diff --git a/libnm-glib/Makefile.am b/libnm-glib/Makefile.am
index feb6c05eb2..aa6f959608 100644
--- a/libnm-glib/Makefile.am
+++ b/libnm-glib/Makefile.am
@@ -117,7 +117,7 @@ libnm_glib_la_LIBADD = \
$(GUDEV_LIBS)
libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-glib.ver \
- -version-info "6:1:4"
+ -version-info "6:2:4"
noinst_PROGRAMS = libnm-glib-test
diff --git a/libnm-glib/nm-object.c b/libnm-glib/nm-object.c
index 72ea05005e..85cb6b78ab 100644
--- a/libnm-glib/nm-object.c
+++ b/libnm-glib/nm-object.c
@@ -527,12 +527,17 @@ _nm_object_set_property (NMObject *object,
g_return_if_fail (prop_name != NULL);
g_return_if_fail (G_IS_VALUE (value));
- dbus_g_proxy_call_no_reply (NM_OBJECT_GET_PRIVATE (object)->properties_proxy,
- "Set",
- G_TYPE_STRING, interface,
- G_TYPE_STRING, prop_name,
- G_TYPE_VALUE, value,
- G_TYPE_INVALID);
+ if (!dbus_g_proxy_call_with_timeout (NM_OBJECT_GET_PRIVATE (object)->properties_proxy,
+ "Set", 2000, NULL,
+ G_TYPE_STRING, interface,
+ G_TYPE_STRING, prop_name,
+ G_TYPE_VALUE, value,
+ G_TYPE_INVALID)) {
+
+ /* Ignore errors. dbus_g_proxy_call_with_timeout() is called instead of
+ * dbus_g_proxy_call_no_reply() to give NM chance to authenticate the caller.
+ */
+ }
}
char *
diff --git a/libnm-util/crypto.c b/libnm-util/crypto.c
index 813cbc8ee5..70872db414 100644
--- a/libnm-util/crypto.c
+++ b/libnm-util/crypto.c
@@ -23,6 +23,7 @@
#include <glib.h>
#include <string.h>
+#include <strings.h>
#include <unistd.h>
#include <stdlib.h>
#include <glib/gi18n.h>
diff --git a/libnm-util/nm-setting-wireless-security.c b/libnm-util/nm-setting-wireless-security.c
index 678a6fad80..ca789b422b 100644
--- a/libnm-util/nm-setting-wireless-security.c
+++ b/libnm-util/nm-setting-wireless-security.c
@@ -19,10 +19,11 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2007 - 2008 Red Hat, Inc.
+ * (C) Copyright 2007 - 2010 Red Hat, Inc.
* (C) Copyright 2007 - 2008 Novell, Inc.
*/
+#include <config.h>
#include <string.h>
#include <ctype.h>
#include <dbus/dbus-glib.h>
diff --git a/libnm-util/nm-setting-wireless.c b/libnm-util/nm-setting-wireless.c
index 99af8f2a34..ec7d53ad77 100644
--- a/libnm-util/nm-setting-wireless.c
+++ b/libnm-util/nm-setting-wireless.c
@@ -24,6 +24,7 @@
*/
#include <string.h>
+#include <net/ethernet.h>
#include <netinet/ether.h>
#include <dbus/dbus-glib.h>
diff --git a/po/bg.po b/po/bg.po
index 7c8ad028e8..5a1e7c1c08 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -2,274 +2,1891 @@
# Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the NetworkManager package.
# Alexander Shopov <ash@contact.bg>, 2005, 2007, 2008.
+# Damyan Ivanov <dam+gnome@ktnx.net>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: NetworkManager trunk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-02 08:52+0300\n"
-"PO-Revision-Date: 2008-08-01 07:30+0300\n"
-"Last-Translator: Alexander Shopov <ash@contact.bg>\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=NetworkManager&component=general\n"
+"POT-Creation-Date: 2010-09-20 15:25+0000\n"
+"PO-Revision-Date: 2010-09-29 23:55+0300\n"
+"Last-Translator: Damyan Ivanov <dam+gnome@ktnx.net>\n"
"Language-Team: Bulgarian <dict@fsa-bg.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"
-#: ../src/nm-netlink-monitor.c:193 ../src/nm-netlink-monitor.c:471
+#: ../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 "ИМЕ"
+
+#. 0
+#: ../cli/src/connections.c:61 ../cli/src/connections.c:76
+msgid "UUID"
+msgstr "УÐИВЕРСÐЛЕРИДЕÐТИФИКÐТОР"
+
+#. 1
+#: ../cli/src/connections.c:62
+msgid "DEVICES"
+msgstr "УСТРОЙСТВÐ"
+
+#. 2
+#: ../cli/src/connections.c:63 ../cli/src/connections.c:78
+msgid "SCOPE"
+msgstr "ОБСЕГ"
+
+#. 3
+#: ../cli/src/connections.c:64
+msgid "DEFAULT"
+msgstr "ПОДРÐЗ."
+
+#. 4
+#: ../cli/src/connections.c:65
+msgid "DBUS-SERVICE"
+msgstr "УСЛУГÐ-DBUS"
+
+#. 5
+#: ../cli/src/connections.c:66
+msgid "SPEC-OBJECT"
+msgstr "СПЕЦИФИКÐЦ."
+
+#. 6
+#: ../cli/src/connections.c:67
+msgid "VPN"
+msgstr "ВЧМ"
+
+#. 1
+#. 0
+#. 1
+#: ../cli/src/connections.c:77 ../cli/src/devices.c:62 ../cli/src/devices.c:90
+msgid "TYPE"
+msgstr "ВИД"
+
+# Заглавие за датата и чаÑа, когато поÑледно е използвана връзката.
+# Използва Ñе вътрешниÑÑ‚ формат (Ñекунди от фикÑирана дата през 1700г).
+#. 3
+#: ../cli/src/connections.c:79
+msgid "TIMESTAMP"
+msgstr "ПОСЛ. ÐКТ."
+
+# Заглавие за датата и чаÑа, когато поÑледно е използвана връзката.
+# Използва Ñе локализиран формат за дата и чаÑ.
+#. 4
+#: ../cli/src/connections.c:80
+msgid "TIMESTAMP-REAL"
+msgstr "ПОСЛЕДÐО ÐКТИВÐÐ"
+
+#. 5
+#: ../cli/src/connections.c:81
+msgid "AUTOCONNECT"
+msgstr "ÐВТОМÐТИЧÐÐ"
+
+#. 6
+#: ../cli/src/connections.c:82
+msgid "READONLY"
+msgstr "СÐМО ЧЕТ."
+
+#. 7
+#: ../cli/src/connections.c:83
+msgid "DBUS-PATH"
+msgstr "ПЪТ-DBUS"
+
+#: ../cli/src/connections.c:159
#, c-format
-msgid "error processing netlink message: %s"
-msgstr "грешка при обработката на Ñледното Ñъобщение от Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой: %s"
+msgid ""
+"Usage: nmcli con { COMMAND | help }\n"
+" COMMAND := { list | status | up | down }\n"
+"\n"
+" list [id <id> | uuid <id> | system | user]\n"
+" status\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
+"<timeout>]\n"
+" down id <id> | uuid <id>\n"
+msgstr ""
+"Употреба: nmcli con { КОМÐÐДР| help }\n"
+" КОМÐÐДР:= { list | status | up | down }\n"
+"\n"
+" list [id <ид> | uuid <ид> | system | user]\n"
+" status\n"
+" up id <ид> | uuid <ид> [iface <интерфейÑ>] [ap <хардуерен адреÑ>] [--"
+"nowait] [--timeout <изчакване>]\n"
+" down id <ид> | uuid <ид>\n"
-#: ../src/nm-netlink-monitor.c:250
+#: ../cli/src/connections.c:199 ../cli/src/connections.c:540
#, c-format
-msgid "unable to allocate netlink handle for monitoring link status: %s"
+msgid "Error: 'con list': %s"
+msgstr "Грешка при „con list“ – %s"
+
+#: ../cli/src/connections.c:201 ../cli/src/connections.c:542
+#, c-format
+msgid "Error: 'con list': %s; allowed fields: %s"
+msgstr "Грешка при „con list“ – %s; допуÑтимите полета Ñа %s"
+
+#: ../cli/src/connections.c:209
+#| msgid "Connection Established"
+msgid "Connection details"
+msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° връзката"
+
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+msgid "system"
+msgstr "ÑиÑтема"
+
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+msgid "user"
+msgstr "потреб."
+
+#: ../cli/src/connections.c:386
+msgid "never"
+msgstr "никога"
+
+#. "CAPABILITIES"
+#. Print header
+#. "WIFI-PROPERTIES"
+#: ../cli/src/connections.c:387 ../cli/src/connections.c:388
+#: ../cli/src/connections.c:606 ../cli/src/connections.c:609
+#: ../cli/src/devices.c:432 ../cli/src/devices.c:557 ../cli/src/devices.c:583
+#: ../cli/src/devices.c:584 ../cli/src/devices.c:585 ../cli/src/devices.c:586
+#: ../cli/src/devices.c:587 ../cli/src/settings.c:508
+#: ../cli/src/settings.c:551 ../cli/src/settings.c:652
+#: ../cli/src/settings.c:926 ../cli/src/settings.c:927
+#: ../cli/src/settings.c:929 ../cli/src/settings.c:931
+#: ../cli/src/settings.c:1056 ../cli/src/settings.c:1057
+#: ../cli/src/settings.c:1058 ../cli/src/settings.c:1137
+#: ../cli/src/settings.c:1138 ../cli/src/settings.c:1139
+#: ../cli/src/settings.c:1140 ../cli/src/settings.c:1141
+#: ../cli/src/settings.c:1142 ../cli/src/settings.c:1143
+#: ../cli/src/settings.c:1144 ../cli/src/settings.c:1145
+#: ../cli/src/settings.c:1146 ../cli/src/settings.c:1147
+#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149
+#: ../cli/src/settings.c:1224
+msgid "yes"
+msgstr "да"
+
+#: ../cli/src/connections.c:387 ../cli/src/connections.c:388
+#: ../cli/src/connections.c:606 ../cli/src/connections.c:609
+#: ../cli/src/devices.c:432 ../cli/src/devices.c:557 ../cli/src/devices.c:583
+#: ../cli/src/devices.c:584 ../cli/src/devices.c:585 ../cli/src/devices.c:586
+#: ../cli/src/devices.c:587 ../cli/src/settings.c:508
+#: ../cli/src/settings.c:510 ../cli/src/settings.c:551
+#: ../cli/src/settings.c:652 ../cli/src/settings.c:926
+#: ../cli/src/settings.c:927 ../cli/src/settings.c:929
+#: ../cli/src/settings.c:931 ../cli/src/settings.c:1056
+#: ../cli/src/settings.c:1057 ../cli/src/settings.c:1058
+#: ../cli/src/settings.c:1137 ../cli/src/settings.c:1138
+#: ../cli/src/settings.c:1139 ../cli/src/settings.c:1140
+#: ../cli/src/settings.c:1141 ../cli/src/settings.c:1142
+#: ../cli/src/settings.c:1143 ../cli/src/settings.c:1144
+#: ../cli/src/settings.c:1145 ../cli/src/settings.c:1146
+#: ../cli/src/settings.c:1147 ../cli/src/settings.c:1148
+#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1224
+#| msgid "none"
+msgid "no"
+msgstr "не"
+
+#: ../cli/src/connections.c:461 ../cli/src/connections.c:504
+#| msgid "No active connections!"
+msgid "System connections"
+msgstr "СиÑтемни връзки"
+
+#: ../cli/src/connections.c:466 ../cli/src/connections.c:517
+#| msgid "VPN Connections"
+msgid "User connections"
+msgstr "ПотребителÑки връзки"
+
+#: ../cli/src/connections.c:478 ../cli/src/connections.c:1338
+#: ../cli/src/connections.c:1354 ../cli/src/connections.c:1363
+#: ../cli/src/connections.c:1374 ../cli/src/connections.c:1459
+#: ../cli/src/devices.c:962 ../cli/src/devices.c:972 ../cli/src/devices.c:1074
+#: ../cli/src/devices.c:1081
+#, c-format
+msgid "Error: %s argument is missing."
+msgstr "ЛипÑва аргумент за „%s“."
+
+#: ../cli/src/connections.c:491
+#, c-format
+msgid "Error: %s - no such connection."
+msgstr "ÐÑма връзка „%s“."
+
+#: ../cli/src/connections.c:523 ../cli/src/connections.c:1387
+#: ../cli/src/connections.c:1477 ../cli/src/devices.c:785
+#: ../cli/src/devices.c:852 ../cli/src/devices.c:986 ../cli/src/devices.c:1087
+#, c-format
+msgid "Unknown parameter: %s\n"
+msgstr "Ðепознат параметър „%s“\n"
+
+#: ../cli/src/connections.c:532
+#, c-format
+msgid "Error: no valid parameter specified."
+msgstr "ÐÑма указани параметри."
+
+#: ../cli/src/connections.c:547 ../cli/src/connections.c:1580
+#: ../cli/src/devices.c:1293 ../cli/src/network-manager.c:359
+#, c-format
+msgid "Error: %s."
+msgstr "Грешка – %s."
+
+#: ../cli/src/connections.c:653
+#, c-format
+msgid "Error: 'con status': %s"
+msgstr "Грешка при „con status“ – %s"
+
+#: ../cli/src/connections.c:655
+#, c-format
+msgid "Error: 'con status': %s; allowed fields: %s"
+msgstr "Грешка при „con status“ – %s. ДопуÑтимите полета Ñа %s"
+
+#: ../cli/src/connections.c:662
+#| msgid "No active connections!"
+msgid "Active connections"
+msgstr "Ðктивни връзки"
+
+#: ../cli/src/connections.c:1030
+#, c-format
+#| msgid "No active connections!"
+msgid "no active connection on device '%s'"
+msgstr "нÑма активна връзка, използваща уÑтройÑтвото „%s“"
+
+#: ../cli/src/connections.c:1038
+#, c-format
+#| msgid "No active connections!"
+msgid "no active connection or device"
+msgstr "нÑма активна връзка или уÑтройÑтво"
+
+#: ../cli/src/connections.c:1088
+#, c-format
+msgid "device '%s' not compatible with connection '%s'"
+msgstr "уÑтройÑтвото „%s“ не е ÑъвмеÑтимо Ñ Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð° „%s“"
+
+#: ../cli/src/connections.c:1090
+#, c-format
+#| msgid "Error retrieving VPN connection '%s'"
+msgid "no device found for connection '%s'"
+msgstr "не е открито уÑтройÑтво за връзката „%s“"
+
+#: ../cli/src/connections.c:1101
+msgid "activating"
+msgstr "включване"
+
+#: ../cli/src/connections.c:1103
+msgid "activated"
+msgstr "включена"
+
+#: ../cli/src/connections.c:1106 ../cli/src/connections.c:1129
+#: ../cli/src/connections.c:1162 ../cli/src/devices.c:246
+#: ../cli/src/devices.c:558 ../cli/src/network-manager.c:94
+#: ../cli/src/network-manager.c:149 ../cli/src/settings.c:473
+#| msgid "(unknown)"
+msgid "unknown"
+msgstr "неизвеÑтно"
+
+#: ../cli/src/connections.c:1115
+#| msgid "VPN connecting to '%s'"
+msgid "VPN connecting (prepare)"
+msgstr "Свързване към ВЧМ (подготовка)"
+
+#: ../cli/src/connections.c:1117
+msgid "VPN connecting (need authentication)"
+msgstr "Свързване към ВЧМ (нужна е идентификациÑ)"
+
+#: ../cli/src/connections.c:1119
+#| msgid "VPN Connections"
+msgid "VPN connecting"
+msgstr "Свързване към ВЧМ"
+
+#: ../cli/src/connections.c:1121
+msgid "VPN connecting (getting IP configuration)"
+msgstr "Свързване към ВЧМ (получаване на наÑтройките за IP)"
+
+#: ../cli/src/connections.c:1123
+#| msgid "Disconnected"
+msgid "VPN connected"
+msgstr "Свързан към ВЧМ"
+
+#: ../cli/src/connections.c:1125
+#| msgid "VPN Connect Failure"
+msgid "VPN connection failed"
+msgstr "ÐеуÑпешно Ñвързване към ВЧМ"
+
+#: ../cli/src/connections.c:1127
+#| msgid "Disconnected"
+msgid "VPN disconnected"
+msgstr "Връзката към ВЧМ е прекъÑната"
+
+#: ../cli/src/connections.c:1138
+#| msgid "(unknown)"
+msgid "unknown reason"
+msgstr "неизвеÑтна причина"
+
+#: ../cli/src/connections.c:1140
+msgid "none"
+msgstr "липÑва"
+
+#: ../cli/src/connections.c:1142
+#| msgid "The network connection has been disconnected."
+msgid "the user was disconnected"
+msgstr "потребителÑÑ‚ е изключен"
+
+#: ../cli/src/connections.c:1144
+#| msgid "The network connection has been disconnected."
+msgid "the base network connection was interrupted"
+msgstr "оÑновната връзка към мрежата е прекъÑната"
+
+#: ../cli/src/connections.c:1146
+msgid "the VPN service stopped unexpectedly"
+msgstr "уÑлугата за ВЧМ ÑÐ¿Ñ€Ñ Ð½ÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½Ð¾"
+
+#: ../cli/src/connections.c:1148
+msgid "the VPN service returned invalid configuration"
+msgstr "уÑлугата за ВЧМ предоÑтави неправилни наÑтройки"
+
+#: ../cli/src/connections.c:1150
+msgid "the connection attempt timed out"
+msgstr "времето за Ñвързване изтече"
+
+#: ../cli/src/connections.c:1152
+msgid "the VPN service did not start in time"
+msgstr "уÑлугата за ВЧМ не уÑÐ¿Ñ Ð´Ð° тръгне в определеното време"
+
+#: ../cli/src/connections.c:1154
+msgid "the VPN service failed to start"
+msgstr "уÑлугата за ВЧМ не уÑÐ¿Ñ Ð´Ð° тръгне"
+
+#: ../cli/src/connections.c:1156
+msgid "no valid VPN secrets"
+msgstr "нÑма правилни пароли за ВЧМ"
+
+#: ../cli/src/connections.c:1158
+msgid "invalid VPN secrets"
+msgstr "неправилни пароли за ВЧМ"
+
+#: ../cli/src/connections.c:1160
+msgid "the connection was removed"
+msgstr "връзката е премахната"
+
+#: ../cli/src/connections.c:1174
+#, c-format
+msgid "state: %s\n"
+msgstr "ÑÑŠÑтоÑние: %s\n"
+
+#: ../cli/src/connections.c:1177 ../cli/src/connections.c:1203
+#, c-format
+#| msgid "Connection Established"
+msgid "Connection activated\n"
+msgstr "Връзката е активирана\n"
+
+#: ../cli/src/connections.c:1180
+#, c-format
+#| msgid "Connection to the wired network failed."
+msgid "Error: Connection activation failed."
+msgstr "Грешка при активиране на връзката."
+
+#: ../cli/src/connections.c:1199
+#, c-format
+msgid "state: %s (%d)\n"
+msgstr "ÑÑŠÑтоÑние: %s (%d)\n"
+
+#: ../cli/src/connections.c:1209
+#, c-format
+msgid "Error: Connection activation failed: %s."
+msgstr "Грешка при активиране на връзката: %s."
+
+#: ../cli/src/connections.c:1226 ../cli/src/devices.c:909
+#, c-format
+msgid "Error: Timeout %d sec expired."
+msgstr "ПроÑрочено е времето от %d Ñек."
+
+#: ../cli/src/connections.c:1269
+#, c-format
+msgid "Error: Connection activation failed: %s"
+msgstr "Грешка при активиране на връзката: %s"
+
+#: ../cli/src/connections.c:1283
+#, c-format
+#| msgid "Error retrieving VPN connection '%s'"
+msgid "Error: Obtaining active connection for '%s' failed."
+msgstr "Грешка при получаване на активната връзка за „%s“."
+
+#: ../cli/src/connections.c:1292
+#, c-format
+#| msgid "No active connections!"
+msgid "Active connection state: %s\n"
+msgstr "СъÑтоÑние на активната връзка: %s\n"
+
+#: ../cli/src/connections.c:1293
+#, c-format
+#| msgid "No active connections!"
+msgid "Active connection path: %s\n"
+msgstr "Път на активната връзка: %s\n"
+
+#: ../cli/src/connections.c:1347 ../cli/src/connections.c:1468
+#, c-format
+#| msgid "Error retrieving VPN connection '%s'"
+msgid "Error: Unknown connection: %s."
+msgstr "Ðепозната връзка „%s“."
+
+#: ../cli/src/connections.c:1382 ../cli/src/devices.c:980
+#, c-format
+msgid "Error: timeout value '%s' is not valid."
+msgstr "Ограничението на времето „%s“ не е правилно."
+
+#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1485
+#, c-format
+msgid "Error: id or uuid has to be specified."
msgstr ""
-"не може да Ñе зададе модул в Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой за наблюдение на ÑÑŠÑтоÑнието на "
-"връзката — %s"
+"Указването на идентификатор или универÑален идентификатор (uuid) е "
+"задължително."
-#: ../src/nm-netlink-monitor.c:260
+#: ../cli/src/connections.c:1415
#, c-format
-msgid "unable to connect to netlink for monitoring link status: %s"
+msgid "Error: No suitable device found: %s."
+msgstr "Ðе е намерено подходÑщо уÑтройÑтво – %s."
+
+#: ../cli/src/connections.c:1417
+#, c-format
+msgid "Error: No suitable device found."
+msgstr "Ðе е намерено подходÑщо уÑтройÑтво."
+
+#: ../cli/src/connections.c:1512
+#, c-format
+#| msgid "Connection Information"
+msgid "Warning: Connection not active\n"
+msgstr "Предупреждение: Връзката не е активна\n"
+
+#: ../cli/src/connections.c:1569
+#, c-format
+msgid "Error: 'con' command '%s' is not valid."
+msgstr "„con“ не поддържа команда „%s“."
+
+#: ../cli/src/connections.c:1605
+#, c-format
+msgid "Error: could not connect to D-Bus."
+msgstr "Грешка при Ñвързване Ñ D-Bus."
+
+#: ../cli/src/connections.c:1612
+#, c-format
+msgid "Error: Could not get system settings."
+msgstr "Грешка при получаване на ÑиÑтемните наÑтройки."
+
+#: ../cli/src/connections.c:1620
+#, c-format
+msgid "Error: Could not get user settings."
+msgstr "Грешка при получаване на потребителÑките наÑтройки."
+
+#: ../cli/src/connections.c:1630
+#, c-format
+msgid "Error: Can't obtain connections: settings services are not running."
+msgstr ""
+"Грешка при получаване на ÑпиÑъка Ñ Ð²Ñ€ÑŠÐ·ÐºÐ¸ – уÑлугите за наÑтройки не Ñа "
+"налични."
+
+#. 0
+#. 9
+#: ../cli/src/devices.c:61 ../cli/src/devices.c:89 ../cli/src/devices.c:184
+msgid "DEVICE"
+msgstr "УСТРОЙСТВО"
+
+#. 1
+#. 4
+#. 0
+#: ../cli/src/devices.c:63 ../cli/src/devices.c:93
+#: ../cli/src/network-manager.c:36
+msgid "STATE"
+msgstr "СЪСТОЯÐИЕ"
+
+#: ../cli/src/devices.c:72
+msgid "GENERAL"
+msgstr "ОБЩИ"
+
+#. 0
+#: ../cli/src/devices.c:73
+msgid "CAPABILITIES"
+msgstr "ВЪЗМОЖÐОСТИ"
+
+#. 1
+#: ../cli/src/devices.c:74
+msgid "WIFI-PROPERTIES"
+msgstr "БЕЗЖИЧÐИ-Ð¥ÐРÐКТЕРИСТИКИ"
+
+#. 2
+#: ../cli/src/devices.c:75
+#| msgid "PEAP"
+msgid "AP"
+msgstr "ТД"
+
+#. 3
+#: ../cli/src/devices.c:76
+msgid "WIRED-PROPERTIES"
+msgstr "ЖИЧÐИ-Ð¥ÐРÐКТЕРИСТИКИ"
+
+#. 4
+#: ../cli/src/devices.c:77
+msgid "IP4-SETTINGS"
+msgstr "ПÐРÐМЕТРИ-IP4"
+
+#. 5
+#: ../cli/src/devices.c:78
+msgid "IP4-DNS"
+msgstr "IP4-DNS"
+
+#. 6
+#: ../cli/src/devices.c:79
+msgid "IP6-SETTINGS"
+msgstr "ПÐРÐМЕТРИ-IP6"
+
+#. 7
+#: ../cli/src/devices.c:80
+msgid "IP6-DNS"
+msgstr "IP6-DNS"
+
+#. 2
+#: ../cli/src/devices.c:91
+msgid "DRIVER"
+msgstr "ДРÐЙВЕР"
+
+#. 3
+#: ../cli/src/devices.c:92
+msgid "HWADDR"
+msgstr "Ð¥ÐРДУЕРЕÐ-ÐДРЕС"
+
+#. 0
+#: ../cli/src/devices.c:102
+msgid "CARRIER-DETECT"
+msgstr "СИГÐÐЛ-ОТКР."
+
+#. 1
+#: ../cli/src/devices.c:103
+msgid "SPEED"
+msgstr "СКОРОСТ"
+
+#. 0
+#: ../cli/src/devices.c:112
+msgid "CARRIER"
+msgstr "СИГÐÐЛ"
+
+#. 0
+#: ../cli/src/devices.c:122
+msgid "WEP"
+msgstr "WEP"
+
+#. 1
+#: ../cli/src/devices.c:123
+msgid "WPA"
+msgstr "WPA"
+
+#. 2
+#: ../cli/src/devices.c:124
+#| msgid "WPA2 TKIP"
+msgid "WPA2"
+msgstr "WPA2"
+
+#. 3
+#: ../cli/src/devices.c:125
+msgid "TKIP"
+msgstr "TKIP"
+
+#. 4
+#: ../cli/src/devices.c:126
+#| msgid "AES-CCMP"
+msgid "CCMP"
+msgstr "CCMP"
+
+#. 0
+#: ../cli/src/devices.c:135 ../cli/src/devices.c:146
+msgid "ADDRESS"
+msgstr "ÐДРЕС"
+
+#. 1
+#: ../cli/src/devices.c:136 ../cli/src/devices.c:147
+msgid "PREFIX"
+msgstr "ПРЕФИКС"
+
+#. 2
+#: ../cli/src/devices.c:137 ../cli/src/devices.c:148
+msgid "GATEWAY"
+msgstr "ШЛЮЗ"
+
+#. 0
+#: ../cli/src/devices.c:157 ../cli/src/devices.c:166
+msgid "DNS"
+msgstr "DNS"
+
+#. 0
+#: ../cli/src/devices.c:175
+msgid "SSID"
+msgstr "SSID"
+
+#. 1
+#: ../cli/src/devices.c:176
+msgid "BSSID"
+msgstr "BSSID"
+
+#. 2
+#: ../cli/src/devices.c:177
+msgid "MODE"
+msgstr "РЕЖИМ"
+
+#. 3
+#: ../cli/src/devices.c:178
+msgid "FREQ"
+msgstr "ЧЕСТОТÐ"
+
+#. 4
+#: ../cli/src/devices.c:179
+msgid "RATE"
+msgstr "СКОРОСТ-ПРЕДÐÐ’ÐÐЕ"
+
+#. 5
+#: ../cli/src/devices.c:180
+msgid "SIGNAL"
+msgstr "СИГÐÐЛ"
+
+#. 6
+#: ../cli/src/devices.c:181
+msgid "SECURITY"
+msgstr "СИГУРÐОСТ"
+
+#. 7
+#: ../cli/src/devices.c:182
+msgid "WPA-FLAGS"
+msgstr "ФЛÐГОВЕ-WPA"
+
+#. 8
+#: ../cli/src/devices.c:183
+msgid "RSN-FLAGS"
+msgstr "ФЛÐГОВЕ-RSN"
+
+#. 10
+#: ../cli/src/devices.c:185
+msgid "ACTIVE"
+msgstr "ÐКТИВÐÐ"
+
+#: ../cli/src/devices.c:208
+#, c-format
+msgid ""
+"Usage: nmcli dev { COMMAND | help }\n"
+"\n"
+" COMMAND := { status | list | disconnect | wifi }\n"
+"\n"
+" status\n"
+" list [iface <iface>]\n"
+" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
+" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
+"\n"
+msgstr ""
+"Употреба: nmcli dev { КОМÐÐДР| help }\n"
+"\n"
+" КОМÐÐДР:= { status | list | disconnect | wifi }\n"
+"\n"
+" status\n"
+" list [ iface <интерфейÑ>]\n"
+" disconnect iface <интерфейÑ> [--nowait] [--timeout <време>]\n"
+" wifi [list [iface <интерфейÑ>] [hwaddr <хардуерен адреÑ>]]\n"
+"\n"
+
+#: ../cli/src/devices.c:228
+msgid "unmanaged"
+msgstr "не Ñе управлÑва"
+
+#: ../cli/src/devices.c:230
+msgid "unavailable"
+msgstr "не е налично"
+
+# Ñтава дума за уÑтройÑтво
+# или за общото ÑÑŠÑтоÑние на N-M
+#: ../cli/src/devices.c:232 ../cli/src/network-manager.c:91
+#| msgid "Disconnected"
+msgid "disconnected"
+msgstr "без връзка"
+
+#: ../cli/src/devices.c:234
+msgid "connecting (prepare)"
+msgstr "Ñвързване (подготовка)"
+
+#: ../cli/src/devices.c:236
+#| msgid "Connection Information"
+msgid "connecting (configuring)"
+msgstr "Ñвързване (наÑтройка)"
+
+#: ../cli/src/devices.c:238
+msgid "connecting (need authentication)"
+msgstr "Ñвързване (нужна е идентификациÑ)"
+
+#: ../cli/src/devices.c:240
+#| msgid "Connection Information"
+msgid "connecting (getting IP configuration)"
+msgstr "Ñвързване (получаване на наÑтройките за IP)"
+
+# Ñтава дума и за конкретно уÑтройÑтво,
+# и за NM като цÑло
+#: ../cli/src/devices.c:242 ../cli/src/network-manager.c:89
+#| msgid "Disconnected"
+msgid "connected"
+msgstr "има връзка"
+
+#: ../cli/src/devices.c:244
+#| msgid "Connection Established"
+msgid "connection failed"
+msgstr "неуÑпешно Ñвързване"
+
+# вид уÑтройÑтво (жично, безжично, телефон, bluetooth) или вид мрежа (инфраÑтруктура, ad-hoc)
+#: ../cli/src/devices.c:267 ../cli/src/devices.c:424
+msgid "Unknown"
+msgstr "Ðепознат"
+
+# низът Ñе използва когато дадена безжична мрежа нÑма флагове от рода на pair_ccmp, pair_wpe140 и Ñ‚.н.
+#: ../cli/src/devices.c:299
+#| msgid "none"
+msgid "(none)"
+msgstr "(без)"
+
+#: ../cli/src/devices.c:324
+#, c-format
+msgid "%s: error converting IP4 address 0x%X"
+msgstr "%s: грешка при преобразуване на Ð°Ð´Ñ€ÐµÑ IP4 0x%X"
+
+#: ../cli/src/devices.c:393
+#, c-format
+msgid "%u MHz"
+msgstr "%u МХц"
+
+#: ../cli/src/devices.c:394
+#, c-format
+#| msgid "%d Mb/s"
+msgid "%u MB/s"
+msgstr "%u МБ/Ñ"
+
+#: ../cli/src/devices.c:403
+msgid "Encrypted: "
+msgstr "Шифроване: "
+
+#: ../cli/src/devices.c:408
+msgid "WEP "
+msgstr "WEP"
+
+#: ../cli/src/devices.c:410
+#| msgid "WPA TKIP"
+msgid "WPA "
+msgstr "WPA"
+
+#: ../cli/src/devices.c:412
+#| msgid "WPA2 TKIP"
+msgid "WPA2 "
+msgstr "WPA2"
+
+#: ../cli/src/devices.c:415
+#| msgid "WPA Enterprise"
+msgid "Enterprise "
+msgstr "ИндуÑÑ‚Ñ€."
+
+# Режима на мрежата
+#: ../cli/src/devices.c:424
+msgid "Ad-Hoc"
+msgstr "Специален"
+
+# Режима на мрежата
+#: ../cli/src/devices.c:424
+msgid "Infrastructure"
+msgstr "ИнфраÑтруктурен"
+
+#: ../cli/src/devices.c:486
+#, c-format
+msgid "Error: 'dev list': %s"
+msgstr "Грешка при „dev list“ – %s"
+
+#: ../cli/src/devices.c:488
+#, c-format
+msgid "Error: 'dev list': %s; allowed fields: %s"
+msgstr "Грешка при „dev list“ – %s; допуÑтимите полета Ñа %s"
+
+#: ../cli/src/devices.c:497
+msgid "Device details"
+msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° уÑтройÑтвото"
+
+# или е драйвер,
+# или е грешка при прекъÑване на връзката
+#: ../cli/src/devices.c:527 ../cli/src/devices.c:925
+msgid "(unknown)"
+msgstr "(нÑма информациÑ)"
+
+# хардуерен адреÑ
+#: ../cli/src/devices.c:528
+#| msgid "(unknown)"
+msgid "unknown)"
+msgstr "(нÑма информациÑ)"
+
+#: ../cli/src/devices.c:554
+#, c-format
+#| msgid "%d Mb/s"
+msgid "%u Mb/s"
+msgstr "%u Мб/Ñ"
+
+# дадено уÑтройÑтво има Ñигнал по жицата
+#. Print header
+#. "WIRED-PROPERTIES"
+#: ../cli/src/devices.c:627
+#| msgid "None"
+msgid "on"
+msgstr "Ñвързано"
+
+#: ../cli/src/devices.c:627
+msgid "off"
+msgstr "без връзка"
+
+#: ../cli/src/devices.c:808
+#, c-format
+msgid "Error: 'dev status': %s"
+msgstr "Грешка при „dev status“ – %s"
+
+#: ../cli/src/devices.c:810
+#, c-format
+msgid "Error: 'dev status': %s; allowed fields: %s"
+msgstr "Грешка при „dev status“ – %s; допуÑтимите полета Ñа %s"
+
+#: ../cli/src/devices.c:817
+msgid "Status of devices"
+msgstr "СъÑтоÑние на уÑтройÑтвата"
+
+#: ../cli/src/devices.c:845
+#, c-format
+msgid "Error: '%s' argument is missing."
+msgstr "ЛипÑва аргумент за „%s“."
+
+#: ../cli/src/devices.c:874 ../cli/src/devices.c:1013
+#: ../cli/src/devices.c:1136
+#, c-format
+msgid "Error: Device '%s' not found."
+msgstr "УÑтройÑтвото „%s“ не е намерено."
+
+#: ../cli/src/devices.c:897
+#, c-format
+msgid "Success: Device '%s' successfully disconnected."
+msgstr "Връзката на уÑтройÑтвото „%s“ е прекъÑната."
+
+#: ../cli/src/devices.c:922
+#, c-format
+msgid "Error: Device '%s' (%s) disconnecting failed: %s"
+msgstr "Грешка при прекъÑване на връзката на уÑтройÑтвото „%s“ (%s) – %s"
+
+#: ../cli/src/devices.c:930
+#, c-format
+msgid "Device state: %d (%s)\n"
+msgstr "СъÑтоÑние на уÑтройÑтвото: %d (%s)\n"
+
+#: ../cli/src/devices.c:994
+#, c-format
+msgid "Error: iface has to be specified."
+msgstr "Указването на „iface“ е задължително."
+
+#: ../cli/src/devices.c:1112
+#, c-format
+msgid "Error: 'dev wifi': %s"
+msgstr "Грешка при „dev wifi“ – %s"
+
+#: ../cli/src/devices.c:1114
+#, c-format
+msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgstr "Грешка при „dev wifi“ – %s; допуÑтимите полета Ñа %s"
+
+#: ../cli/src/devices.c:1121
+msgid "WiFi scan list"
+msgstr "Открити безжични мрежи"
+
+#: ../cli/src/devices.c:1156 ../cli/src/devices.c:1210
+#, c-format
+msgid "Error: Access point with hwaddr '%s' not found."
+msgstr "Ðе е открита точка за доÑтъп Ñ Ñ…Ð°Ñ€Ð´ÑƒÐµÑ€ÐµÐ½ Ð°Ð´Ñ€ÐµÑ â€ž%s“."
+
+#: ../cli/src/devices.c:1173
+#, c-format
+msgid "Error: Device '%s' is not a WiFi device."
+msgstr "„%s“ не е уÑтройÑтво за безжична мрежа."
+
+#: ../cli/src/devices.c:1237
+#, c-format
+msgid "Error: 'dev wifi' command '%s' is not valid."
+msgstr "„%s“ не е правилна команда за „dev wifi“."
+
+#: ../cli/src/devices.c:1284
+#, c-format
+msgid "Error: 'dev' command '%s' is not valid."
+msgstr "„%s“ не е правилна команда за „dev“."
+
+#: ../cli/src/network-manager.c:35
+msgid "RUNNING"
+msgstr "ВКЛЮЧЕÐ"
+
+#. 1
+#: ../cli/src/network-manager.c:37
+msgid "NET-ENABLED"
+msgstr "МРЕЖÐ-ВКЛЮЧ"
+
+#. 2
+#: ../cli/src/network-manager.c:38
+msgid "WIFI-HARDWARE"
+msgstr "БЕЗЖ. Ð¥ÐРДУЕР"
+
+#. 3
+#: ../cli/src/network-manager.c:39
+msgid "WIFI"
+msgstr "БЕЗЖ.МРЕЖÐ"
+
+#. 4
+#: ../cli/src/network-manager.c:40
+msgid "WWAN-HARDWARE"
+msgstr "МОБ. Ð¥ÐРДУЕР"
+
+#. 5
+#: ../cli/src/network-manager.c:41
+msgid "WWAN"
+msgstr "МОБ. МРЕЖÐ"
+
+#: ../cli/src/network-manager.c:64
+#, c-format
+msgid ""
+"Usage: nmcli nm { COMMAND | help }\n"
+"\n"
+" COMMAND := { status | enable | sleep | wifi | wwan }\n"
+"\n"
+" status\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
+" wifi [on|off]\n"
+" wwan [on|off]\n"
+"\n"
msgstr ""
-"не може да Ñе оÑъщеÑтви връзка Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой за наблюдение на ÑÑŠÑтоÑнието "
-"на връзката — %s"
+"Употреба: nmcli nm { КОМÐÐДР| help }\n"
+"\n"
+" КОМÐÐДР:= { status | enable | sleep | wifi | wwan }\n"
+"\n"
+" status\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
+" wifi [on|off]\n"
+" wwan [on|off]\n"
+"\n"
-#: ../src/nm-netlink-monitor.c:268
+#: ../cli/src/network-manager.c:85
+msgid "asleep"
+msgstr "ÑпÑщ"
+
+#: ../cli/src/network-manager.c:87
+#| msgid "C_onnect"
+msgid "connecting"
+msgstr "Ñвързване"
+
+#: ../cli/src/network-manager.c:128
+#, c-format
+msgid "Error: 'nm status': %s"
+msgstr "Грешка при „nm status“ – %s"
+
+#: ../cli/src/network-manager.c:130
+#, c-format
+msgid "Error: 'nm status': %s; allowed fields: %s"
+msgstr "Грешка при „nm status“ – %s; допуÑтимите полета Ñа %s"
+
+#: ../cli/src/network-manager.c:137
+#| msgid "NetworkManager Applet"
+msgid "NetworkManager status"
+msgstr "СъÑтоÑние на NetworkManager"
+
+#. Print header
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "enabled"
+msgstr "включено"
+
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "disabled"
+msgstr "изключено"
+
+#: ../cli/src/network-manager.c:152
+msgid "running"
+msgstr "включен"
+
+#: ../cli/src/network-manager.c:152
+msgid "not running"
+msgstr "изключен"
+
+#: ../cli/src/network-manager.c:175
+#, c-format
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Грешка при Ñвързване към ÑиÑтемната шина – %s"
+
+#: ../cli/src/network-manager.c:186
#, c-format
-msgid "unable to join netlink group for monitoring link status: %s"
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Грешка при Ñъздаване на обект-поÑредник за D-Bus."
+
+#: ../cli/src/network-manager.c:192
+#, c-format
+msgid "Error in sleep: %s"
+msgstr "Грешка при приÑпиване – %s"
+
+#: ../cli/src/network-manager.c:237 ../cli/src/network-manager.c:286
+#: ../cli/src/network-manager.c:318
+#, c-format
+msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
+msgstr "СтойноÑтта „%s“ за „--fields“ не е правилна; допуÑтимите полета Ñа %s"
+
+#: ../cli/src/network-manager.c:245
+#| msgid "Networking disabled"
+msgid "Networking enabled"
+msgstr "Мрежата е включена"
+
+#: ../cli/src/network-manager.c:256
+#, c-format
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
msgstr ""
-"не може да Ñе оÑъщеÑтви приÑъединÑване към групата на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой за "
-"наблюдение на ÑÑŠÑтоÑнието на връзката — %s"
+"ÐедопуÑтим аргумент на „enable“ – „%s“. Използвайте „true“ или „false“."
-#: ../src/nm-netlink-monitor.c:276
+#: ../cli/src/network-manager.c:265
#, c-format
-msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "NetworkManager не предоÑÑ‚Ð°Ð²Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° приÑпиването."
+
+#: ../cli/src/network-manager.c:273
+#, c-format
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
msgstr ""
-"не може да Ñе зададе временна памет в Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой за наблюдение на "
-"ÑÑŠÑтоÑнието на връзката — %s"
+"„%s“ не е правилен параметър за „sleep“. Използвайте „true“ или „false“."
+
+#: ../cli/src/network-manager.c:294
+msgid "WiFi enabled"
+msgstr "Безжичната мрежа е включена"
-#: ../src/nm-netlink-monitor.c:494
+#: ../cli/src/network-manager.c:305
#, c-format
-msgid "error occurred while waiting for data on socket"
-msgstr "грешка при изчакване за данни през гнездо"
+msgid "Error: invalid 'wifi' parameter: '%s'."
+msgstr "„%s“ не е правилен параметър за „wifi“."
+
+#: ../cli/src/network-manager.c:326
+msgid "WWAN enabled"
+msgstr "Мобилната мрежа е включена"
-#: ../src/NetworkManager.c:250
+#: ../cli/src/network-manager.c:337
#, c-format
-msgid "Invalid option. Please use --help to see a list of valid options.\n"
-msgstr "Ðеправилна опциÑ. Ползвайте --help, за да видите ÑпиÑъка Ñ Ð¾Ð¿Ñ†Ð¸Ð¸.\n"
+msgid "Error: invalid 'wwan' parameter: '%s'."
+msgstr "„%s“ не е правилен параметър за „wwan“."
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:87
-msgid "# Created by NetworkManager\n"
-msgstr "# Създаден от NetworkManager\n"
+#: ../cli/src/network-manager.c:348
+#, c-format
+msgid "Error: 'nm' command '%s' is not valid."
+msgstr "„%s“ не е правилна команда за „nm“."
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:93
+#: ../cli/src/nmcli.c:69
#, c-format
msgid ""
-"# Merged from %s\n"
+"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
+"\n"
+"OPTIONS\n"
+" -t[erse] terse output\n"
+" -p[retty] pretty output\n"
+" -m[ode] tabular|multiline output mode\n"
+" -f[ields] <field1,field2,...>|all|common specify fields to output\n"
+" -e[scape] yes|no escape columns separators in "
+"values\n"
+" -v[ersion] show program version\n"
+" -h[elp] print this help\n"
+"\n"
+"OBJECT\n"
+" nm NetworkManager status\n"
+" con NetworkManager connections\n"
+" dev devices managed by NetworkManager\n"
"\n"
msgstr ""
-"# СлÑÑ‚ от %s\n"
+"Употреба: %s [ОПЦИИ] ОБЕКТ { КОМÐÐДР| help }\n"
+"\n"
+"ОПЦИИ\n"
+" -t[erse] Ñбит изход\n"
+" -p[retty] краÑив изход\n"
+" -m[ode] tabular|multiline режим на изхода\n"
+" -f[ields] <поле1,поле2,…>|all|common извеждани полета\n"
+" -е[scape] yes|no кодиране на разделителите между "
+"колоните в ÑтойноÑтите\n"
+" -v[ersion] показване на верÑиÑта на "
+"програмата\n"
+" -h[elp] показване на тази помощна "
+"информациÑ\n"
+"\n"
+"OBJECT\n"
+" nm ÑÑŠÑтоÑние на NetworkManager\n"
+" con връзки на NetworkManager\n"
+" dev уÑтройÑтва, управлÑвани от NetworkManager\n"
"\n"
-#: ../src/dns-manager/nm-dns-manager.c:117
-msgid "NOTE: the glibc resolver does not support more than 3 nameservers."
-msgstr "БЕЛЕЖКÐ: Ñтандартно glibc поддържа макÑимум 3 Ñървъра за имена."
+#: ../cli/src/nmcli.c:113
+#, c-format
+msgid "Error: Object '%s' is unknown, try 'nmcli help'."
+msgstr "Обектът „%s“ е непознат. Опитайте Ñ â€žnmcli help“."
-#: ../src/dns-manager/nm-dns-manager.c:119
-msgid "The nameservers listed below may not be recognized."
-msgstr "Сървърите за имена отдолу могат да не бъдат разпознати."
+#: ../cli/src/nmcli.c:143
+#, c-format
+msgid "Error: Option '--terse' is specified the second time."
+msgstr "ОпциÑта „--terse“ е указана втори път."
-#: ../system-settings/src/main.c:365
+#: ../cli/src/nmcli.c:148
#, c-format
-msgid "Auto %s"
-msgstr "Ðвтоматично %s"
+msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
+msgstr "ОпциÑта „--terse“ е неÑъвмеÑтима Ñ â€ž--pretty“."
-#: ../libnm-util/crypto.c:125
+#: ../cli/src/nmcli.c:156
+#, c-format
+msgid "Error: Option '--pretty' is specified the second time."
+msgstr "ОпциÑта „--pretty“ е указана втори път."
+
+#: ../cli/src/nmcli.c:161
+#, c-format
+msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
+msgstr "ОпциÑта „--pretty“ е неÑъвмеÑтима Ñ â€ž--terse“."
+
+#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
+#, c-format
+msgid "Error: missing argument for '%s' option."
+msgstr "ЛипÑва аргумент на опциÑта „%s“."
+
+#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
+#, c-format
+msgid "Error: '%s' is not valid argument for '%s' option."
+msgstr "„%s“ не е правилен аргумент за опциÑта „%s“."
+
+#: ../cli/src/nmcli.c:203
+#, c-format
+msgid "Error: fields for '%s' options are missing."
+msgstr "ЛипÑват полета за опциите „%s“."
+
+#: ../cli/src/nmcli.c:209
+#, c-format
+msgid "nmcli tool, version %s\n"
+msgstr "nmcli, верÑÐ¸Ñ %s\n"
+
+#: ../cli/src/nmcli.c:215
+#, c-format
+msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
+msgstr "ОпциÑта „%s“ е непозната. Опитайте Ñ â€žnmcli -help“."
+
+#: ../cli/src/nmcli.c:234
+#, c-format
+msgid "Caught signal %d, shutting down..."
+msgstr "Получен е Ñигнал %d, Ñпиране…"
+
+#: ../cli/src/nmcli.c:259
+#, c-format
+msgid "Error: Could not connect to NetworkManager."
+msgstr "Грешка при Ñвързване Ñ NetworkManager."
+
+#: ../cli/src/nmcli.c:275
+msgid "Success"
+msgstr "УÑпех"
+
+#: ../cli/src/settings.c:411
+#, c-format
+msgid "%d (hex-ascii-key)"
+msgstr "%d (ключ в шеÑтнайÑетичен запиÑ)"
+
+#: ../cli/src/settings.c:413
+#, c-format
+#| msgid "WEP 128-bit Passphrase"
+msgid "%d (104/128-bit passphrase)"
+msgstr "%d (104/128 битова парола)"
+
+#: ../cli/src/settings.c:416
+#, c-format
+#| msgid "(unknown)"
+msgid "%d (unknown)"
+msgstr "%d (неизвеÑтен)"
+
+#: ../cli/src/settings.c:442
+#| msgid "(unknown)"
+msgid "0 (unknown)"
+msgstr "0 (неизвеÑтно)"
+
+#: ../cli/src/settings.c:448
+msgid "any, "
+msgstr "вÑÑка, "
+
+#: ../cli/src/settings.c:450
+msgid "900 MHz, "
+msgstr "900 МХц, "
+
+#: ../cli/src/settings.c:452
+msgid "1800 MHz, "
+msgstr "1800 МХц, "
+
+#: ../cli/src/settings.c:454
+msgid "1900 MHz, "
+msgstr "1900 МХц, "
+
+#: ../cli/src/settings.c:456
+msgid "850 MHz, "
+msgstr "850 МХц, "
+
+#: ../cli/src/settings.c:458
+msgid "WCDMA 3GPP UMTS 2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 2100 МХц, "
+
+#: ../cli/src/settings.c:460
+msgid "WCDMA 3GPP UMTS 1800 MHz, "
+msgstr "WCDMA 3GPP UMTS 1800 МХц, "
+
+#: ../cli/src/settings.c:462
+msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700/2100 МХц, "
+
+#: ../cli/src/settings.c:464
+msgid "WCDMA 3GPP UMTS 800 MHz, "
+msgstr "WCDMA 3GPP UMTS 800 МХц, "
+
+#: ../cli/src/settings.c:466
+msgid "WCDMA 3GPP UMTS 850 MHz, "
+msgstr "WCDMA 3GPP UMTS 850 МХц, "
+
+#: ../cli/src/settings.c:468
+msgid "WCDMA 3GPP UMTS 900 MHz, "
+msgstr "WCDMA 3GPP UMTS 900 МХц, "
+
+#: ../cli/src/settings.c:470
+msgid "WCDMA 3GPP UMTS 1700 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700 МХц, "
+
+#: ../cli/src/settings.c:554 ../cli/src/settings.c:721
+msgid "auto"
+msgstr "автоматично"
+
+#: ../cli/src/settings.c:716 ../cli/src/settings.c:719
+#: ../cli/src/settings.c:720 ../cli/src/utils.c:172
+msgid "not set"
+msgstr "не е зададено"
+
+#: ../cli/src/utils.c:124
+#, c-format
+msgid "field '%s' has to be alone"
+msgstr "полето „%s“ Ñ‚Ñ€Ñбва да е единÑтвено"
+
+#: ../cli/src/utils.c:127
+#, c-format
+msgid "invalid field '%s'"
+msgstr "грешно поле „%s“"
+
+#: ../cli/src/utils.c:146
+#, c-format
+msgid "Option '--terse' requires specifying '--fields'"
+msgstr "ОпциÑта „--terse“ изиÑква указването на „--fields“"
+
+#: ../cli/src/utils.c:150
+#, c-format
+msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
+msgstr "ОпциÑта „--terse“ изиÑква конкретни ÑтойноÑти за „--fields“, а не „%s“"
+
+#: ../libnm-util/crypto.c:120
#, c-format
msgid "PEM key file had no end tag '%s'."
msgstr "КрайниÑÑ‚ етикет „%s“ липÑва в Ñертификат във формат PEM."
-#: ../libnm-util/crypto.c:135
+#: ../libnm-util/crypto.c:130
#, c-format
msgid "Doesn't look like a PEM private key file."
msgstr "Това не изглежда да е Ñертификат във формат PEM Ñ Ñ‡Ð°Ñтен ключ."
-#: ../libnm-util/crypto.c:143
+#: ../libnm-util/crypto.c:138
#, c-format
msgid "Not enough memory to store PEM file data."
msgstr ""
"ÐÑма доÑтатъчно памет за запазването на данните от Ñертификата във формат "
"PEM."
-#: ../libnm-util/crypto.c:159
+#: ../libnm-util/crypto.c:154
#, c-format
msgid "Malformed PEM file: Proc-Type was not first tag."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM: първиÑÑ‚ етикет не беше „Proc-Type“."
+"Ðеправилен Ñертификат във формат PEM – първиÑÑ‚ етикет не е „Proc-Type“."
-#: ../libnm-util/crypto.c:167
+#: ../libnm-util/crypto.c:162
#, c-format
msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
msgstr ""
"Ðеправилен Ñертификат във формат PEM: непознат етикет „Proc-Type“ — „%s“."
-#: ../libnm-util/crypto.c:177
+#: ../libnm-util/crypto.c:172
#, c-format
msgid "Malformed PEM file: DEK-Info was not the second tag."
-msgstr ""
-"Ðеправилен Ñертификат във формат PEM: вториÑÑ‚ етикет не беше „DEK-Info“."
+msgstr "Ðеправилен Ñертификат във формат PEM – вториÑÑ‚ етикет не е „DEK-Info“."
-#: ../libnm-util/crypto.c:188
+#: ../libnm-util/crypto.c:183
#, c-format
msgid "Malformed PEM file: no IV found in DEK-Info tag."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM: липÑва първоначален вектор в етикета "
-"„DEK-Info“."
+"Ðеправилен Ñертификат във формат PEM – в етикета „DEK-Info“ липÑва начален "
+"вектор."
-#: ../libnm-util/crypto.c:195
+#: ../libnm-util/crypto.c:190
#, c-format
msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM: неправилен първоначален вектор в "
-"етикета „DEK-Info“."
+"Ðеправилен Ñертификат във формат PEM – неправилен начален вектор в етикета "
+"„DEK-Info“."
-#: ../libnm-util/crypto.c:208
+#: ../libnm-util/crypto.c:203
#, c-format
msgid "Malformed PEM file: unknown private key cipher '%s'."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM: непознат шифър за чаÑтен ключ „%s“."
+"Ðеправилен Ñертификат във формат PEM – непознат шифър „%s“ за чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
-#: ../libnm-util/crypto.c:227
+#: ../libnm-util/crypto.c:222
#, c-format
msgid "Could not decode private key."
-msgstr "ЧаÑтниÑÑ‚ ключ не може да бъде декодиран."
+msgstr "Грешка при декодиране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
-#: ../libnm-util/crypto.c:271
+#: ../libnm-util/crypto.c:267
#, c-format
msgid "PEM certificate '%s' had no end tag '%s'."
-msgstr "КрайниÑÑ‚ етикет „1$%s“ липÑва в Ñертификата във формат PEM — „2$%s“."
+msgstr "КрайниÑÑ‚ етикет „%2$s“ липÑва в Ñертификата във формат PEM — „%1$s“."
-#: ../libnm-util/crypto.c:281
+#: ../libnm-util/crypto.c:277
#, c-format
msgid "Failed to decode certificate."
-msgstr "Сертификатът не може да бъде декодиран."
+msgstr "Грешка при декодиране на Ñертификата."
-#: ../libnm-util/crypto.c:290 ../libnm-util/crypto.c:298
+#: ../libnm-util/crypto.c:286
#, c-format
msgid "Not enough memory to store certificate data."
-msgstr "ÐÑма памет за запазването на данните от Ñертификат."
+msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на данните от Ñертификата."
-#: ../libnm-util/crypto.c:328
+#: ../libnm-util/crypto.c:294
+#, c-format
+#| msgid "Not enough memory to store PEM file data."
+msgid "Not enough memory to store file data."
+msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на данните от файла."
+
+#: ../libnm-util/crypto.c:324
#, c-format
msgid "IV must be an even number of bytes in length."
-msgstr "ÐачалниÑÑ‚ вектор Ñ‚Ñ€Ñбва да е четен брой байта на дължина."
+msgstr "ÐачалниÑÑ‚ вектор Ñ‚Ñ€Ñбва да е Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ четен брой байта."
-#: ../libnm-util/crypto.c:337
+#: ../libnm-util/crypto.c:333
#, c-format
msgid "Not enough memory to store the IV."
-msgstr "ÐÑма доÑтатъчно памет за запазването на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€."
+msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€."
-#: ../libnm-util/crypto.c:348
+#: ../libnm-util/crypto.c:344
#, c-format
msgid "IV contains non-hexadecimal digits."
msgstr "ÐачалниÑÑ‚ вектор Ñъдържа низ, който не е шеÑтнайÑетично чиÑло."
-#: ../libnm-util/crypto.c:386 ../libnm-util/crypto_gnutls.c:126
-#: ../libnm-util/crypto_nss.c:136
+#: ../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
#, c-format
msgid "Private key cipher '%s' was unknown."
msgstr "Шифърът за чаÑтен ключ „%s“ е непознат."
-#: ../libnm-util/crypto.c:395
+#: ../libnm-util/crypto.c:391
+#, c-format
+#| msgid "Not enough memory to store decrypted private key."
+msgid "Not enough memory to decrypt private key."
+msgstr "ÐÑма доÑтатъчно памет за разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
+
+#: ../libnm-util/crypto.c:511
#, c-format
-msgid "Not enough memory to create private key decryption key."
-msgstr "ÐÑма доÑтатъчно памет за Ñъздаването на чаÑтен ключ за дешифриране."
+#| msgid "Failed to decrypt the private key: %d."
+msgid "Unable to determine private key type."
+msgstr "Видът на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ не може да Ñе определи."
-#: ../libnm-util/crypto.c:513
+#: ../libnm-util/crypto.c:530
#, c-format
msgid "Not enough memory to store decrypted private key."
-msgstr "ÐÑма доÑтатъчно памет за запазването на чаÑтен ключ за дешифриране."
+msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на Ñ€Ð°Ð·ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‡Ð°Ñтен ключ."
-#: ../libnm-util/crypto_gnutls.c:73
+#: ../libnm-util/crypto_gnutls.c:49
+#| msgid "Failed to initialize the decryption context."
+msgid "Failed to initialize the crypto engine."
+msgstr "Грешка при инициализиране на модула за шифроване."
+
+#: ../libnm-util/crypto_gnutls.c:93
#, c-format
msgid "Failed to initialize the MD5 engine: %s / %s."
-msgstr "Модулът за MD5 не може да бъде инициализиран: %s / %s."
+msgstr "Грешка при инициализиране на модула за MD5 – %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:156
+#, c-format
+msgid "Invalid IV length (must be at least %zd)."
+msgstr "Ðеправилен начален вектор (Ñ‚Ñ€Ñбва да е поне %zd)."
-#: ../libnm-util/crypto_gnutls.c:135 ../libnm-util/crypto_nss.c:145
+#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
#, c-format
msgid "Not enough memory for decrypted key buffer."
-msgstr "ÐÑма доÑтатъчно памет за буфера за дешифриране."
+msgstr "ÐÑма доÑтатъчно памет за буфера за Ñ€Ð°Ð·ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
-#: ../libnm-util/crypto_gnutls.c:143
+#: ../libnm-util/crypto_gnutls.c:173
#, c-format
msgid "Failed to initialize the decryption cipher context: %s / %s."
-msgstr "КонтекÑÑ‚ÑŠÑ‚ за дешифриране не може да бъде инициализиран: %s / %s."
+msgstr "Грешка при инициализиране на контекÑта за разшифроване – %s / %s."
-#: ../libnm-util/crypto_gnutls.c:152
+#: ../libnm-util/crypto_gnutls.c:182
#, c-format
msgid "Failed to set symmetric key for decryption: %s / %s."
-msgstr "СиметричниÑÑ‚ ключ за дешифриране не може да бъде зададен: %s / %s."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за разшифроване – %s / %s."
-#: ../libnm-util/crypto_gnutls.c:161
+#: ../libnm-util/crypto_gnutls.c:191
#, c-format
msgid "Failed to set IV for decryption: %s / %s."
-msgstr "ÐачалниÑÑ‚ вектор за дешифриране не може да бъде зададен: %s / %s."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за разшифроване – %s / %s."
-#: ../libnm-util/crypto_gnutls.c:170
+#: ../libnm-util/crypto_gnutls.c:200
#, c-format
msgid "Failed to decrypt the private key: %s / %s."
-msgstr "ЧаÑтниÑÑ‚ ключ не може да бъде дешифриран: %s / %s."
+msgstr "Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – %s / %s."
-#: ../libnm-util/crypto_gnutls.c:208
+#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
+#, c-format
+#| msgid "Failed to decrypt the private key: %d."
+msgid "Failed to decrypt the private key: unexpected padding length."
+msgstr ""
+"Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – неочаквана дължина на "
+"подравнÑването."
+
+#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
+#, c-format
+#| msgid "Failed to decrypt the private key: %d."
+msgid "Failed to decrypt the private key."
+msgstr "Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
+
+#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
+#, c-format
+msgid "Could not allocate memory for encrypting."
+msgstr "ÐÑма доÑтатъчно памет за буфер при шифроване."
+
+#: ../libnm-util/crypto_gnutls.c:294
+#, c-format
+#| msgid "Failed to initialize the decryption cipher context: %s / %s."
+msgid "Failed to initialize the encryption cipher context: %s / %s."
+msgstr "Грешка при инициализиране на контекÑта за шифроване – %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:303
+#, c-format
+#| msgid "Failed to set symmetric key for decryption: %s / %s."
+msgid "Failed to set symmetric key for encryption: %s / %s."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за шифроване – %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:313
+#, c-format
+#| msgid "Failed to set IV for decryption: %s / %s."
+msgid "Failed to set IV for encryption: %s / %s."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за шифроване – %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:322
+#, c-format
+#| msgid "Failed to decrypt the private key: %s / %s."
+msgid "Failed to encrypt the data: %s / %s."
+msgstr "Грешка при шифроване на данните – %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:362
#, c-format
msgid "Error initializing certificate data: %s"
-msgstr "Грешка при инициализиране на данните от Ñертификата: %s"
+msgstr "Грешка при инициализиране на данните от Ñертификата – %s"
-#: ../libnm-util/crypto_gnutls.c:220
+#: ../libnm-util/crypto_gnutls.c:384
#, c-format
msgid "Couldn't decode certificate: %s"
-msgstr "Сертификатът не може да бъде декодиран: %s"
+msgstr "Грешка при декодиране на Ñертификата – %s"
+
+#: ../libnm-util/crypto_gnutls.c:408
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %s"
+msgstr "Грешка при инициализиране на модула за декодиране на PKCS#12 – %s"
+
+#: ../libnm-util/crypto_gnutls.c:421
+#, c-format
+#| msgid "Couldn't decode certificate: %s"
+msgid "Couldn't decode PKCS#12 file: %s"
+msgstr "Грешка при декодиране на файла PKCS#12 – %s"
-#: ../libnm-util/crypto_nss.c:78
+#: ../libnm-util/crypto_gnutls.c:433
+#, c-format
+#| msgid "Couldn't decode certificate: %s"
+msgid "Couldn't verify PKCS#12 file: %s"
+msgstr "Грешка при проверка на файла PKCS#12 – %s"
+
+#: ../libnm-util/crypto_nss.c:56
+#, c-format
+#| msgid "Failed to initialize the MD5 engine: %s / %s."
+msgid "Failed to initialize the crypto engine: %d."
+msgstr "Грешка при инициализиране на модула за шифроване – %d."
+
+#: ../libnm-util/crypto_nss.c:111
#, c-format
msgid "Failed to initialize the MD5 context: %d."
-msgstr "КонтекÑÑ‚ÑŠÑ‚ за MD5 не може да бъде инициализиран: %d."
+msgstr "Грешка при инициализиране на контекÑта за MD5 – %d."
+
+#: ../libnm-util/crypto_nss.c:179
+#, c-format
+msgid "Invalid IV length (must be at least %d)."
+msgstr "Ðеправилна дължина на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ (Ñ‚Ñ€Ñбва да е поне %d)."
-#: ../libnm-util/crypto_nss.c:153
+#: ../libnm-util/crypto_nss.c:196
#, c-format
msgid "Failed to initialize the decryption cipher slot."
-msgstr "Буферът за шифъра за дешифриране не може да бъде инициализиран."
+msgstr "Грешка при инициализиране на буфер за шифъра за разшифроване."
-#: ../libnm-util/crypto_nss.c:163
+#: ../libnm-util/crypto_nss.c:206
#, c-format
msgid "Failed to set symmetric key for decryption."
-msgstr "СиметричниÑÑ‚ ключ за дешифриране не може да бъде зададен."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за разшифроване."
-#: ../libnm-util/crypto_nss.c:173
+#: ../libnm-util/crypto_nss.c:216
#, c-format
msgid "Failed to set IV for decryption."
-msgstr "ÐачалниÑÑ‚ вектор за дешифриране не може да бъде зададен."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за разшифроване."
-#: ../libnm-util/crypto_nss.c:181
+#: ../libnm-util/crypto_nss.c:224
#, c-format
msgid "Failed to initialize the decryption context."
-msgstr "КонтекÑÑ‚ÑŠÑ‚ за дешифриране не може да бъде инициализиран."
+msgstr "Грешка при инициализиране на контекÑта за разшифроване."
-#: ../libnm-util/crypto_nss.c:194
+#: ../libnm-util/crypto_nss.c:237
#, c-format
msgid "Failed to decrypt the private key: %d."
-msgstr "ЧаÑтниÑÑ‚ ключ не може да бъде дешифриран: %d."
+msgstr "Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – %d."
-#: ../libnm-util/crypto_nss.c:206
+#: ../libnm-util/crypto_nss.c:245
+#, c-format
+#| msgid "Failed to decrypt the private key: %d."
+msgid "Failed to decrypt the private key: decrypted data too large."
+msgstr ""
+"Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – твърде много разшифровани данни."
+
+#: ../libnm-util/crypto_nss.c:256
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
-msgstr "Дешифрирането на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ не може да приключи: %d."
+msgstr "Грешка при завършване на разшифроването на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – %d."
+
+#: ../libnm-util/crypto_nss.c:364
+#, c-format
+#| msgid "Failed to initialize the decryption cipher slot."
+msgid "Failed to initialize the encryption cipher slot."
+msgstr "Грешка при инициализиране на буфер за шифъра за шифроване."
+
+#: ../libnm-util/crypto_nss.c:372
+#, c-format
+#| msgid "Failed to set symmetric key for decryption."
+msgid "Failed to set symmetric key for encryption."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за шифроване."
+
+#: ../libnm-util/crypto_nss.c:380
+#, c-format
+#| msgid "Failed to set IV for decryption."
+msgid "Failed to set IV for encryption."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за шифроване."
+
+#: ../libnm-util/crypto_nss.c:388
+#, c-format
+#| msgid "Failed to initialize the decryption context."
+msgid "Failed to initialize the encryption context."
+msgstr "Грешка при инициализиране на контекÑта за шифроване."
-#: ../libnm-util/crypto_nss.c:250
+#: ../libnm-util/crypto_nss.c:396
+#, c-format
+#| msgid "Failed to decrypt the private key: %d."
+msgid "Failed to encrypt: %d."
+msgstr "Грешка при шифроване – %d."
+
+#: ../libnm-util/crypto_nss.c:404
+#, c-format
+msgid "Unexpected amount of data after encrypting."
+msgstr "Ðеочакван обем данни Ñлед шифроване."
+
+#: ../libnm-util/crypto_nss.c:447
#, c-format
msgid "Couldn't decode certificate: %d"
-msgstr "Сертификатът не може да бъде дешифриран: %d"
+msgstr "Грешка при декодиране на Ñертификата – %d"
+
+#: ../libnm-util/crypto_nss.c:482
+#, c-format
+msgid "Couldn't convert password to UCS2: %d"
+msgstr "Грешка при преобразуване на паролата в UCS2 – %d"
+
+#: ../libnm-util/crypto_nss.c:510
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %d"
+msgstr "Грешка при инициализиране на модула за декодиране на PKCS#12 – %d"
+
+#: ../libnm-util/crypto_nss.c:519
+#, c-format
+#| msgid "Couldn't decode certificate: %d"
+msgid "Couldn't decode PKCS#12 file: %d"
+msgstr "Грешка при декодиране на файла Ñ PKCS#12 – %d"
+
+#: ../libnm-util/crypto_nss.c:528
+#, c-format
+#| msgid "Couldn't decode certificate: %d"
+msgid "Couldn't verify PKCS#12 file: %d"
+msgstr "Грешка при проверка на файла Ñ PKCS#12 – %d"
+
+#: ../libnm-util/crypto_nss.c:557
+#| msgid "Could not decode private key."
+msgid "Could not generate random data."
+msgstr "Грешка при генериране на Ñлучайни чиÑла."
+
+#: ../libnm-util/nm-utils.c:1975
+#, c-format
+#| msgid "Not enough memory to create private key decryption key."
+msgid "Not enough memory to make encryption key."
+msgstr "ÐÑма доÑтатъчно памет за Ñъздаването на ключ за шифроване."
+
+#: ../libnm-util/nm-utils.c:2085
+#| msgid "Not enough memory to store PEM file data."
+msgid "Could not allocate memory for PEM file creation."
+msgstr "ÐÑма доÑтатъчно памет за Ñъздаването на файл във формат PEM."
+
+#: ../libnm-util/nm-utils.c:2097
+#, c-format
+msgid "Could not allocate memory for writing IV to PEM file."
+msgstr ""
+"ÐÑма доÑтатъчно памет за запиÑването на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ във файл във формат "
+"PEM."
+
+#: ../libnm-util/nm-utils.c:2109
+#, c-format
+msgid "Could not allocate memory for writing encrypted key to PEM file."
+msgstr ""
+"ÐÑма доÑтатъчно памет за запиÑване на ключа за шифроване във файл във формат "
+"PEM."
+
+#: ../libnm-util/nm-utils.c:2128
+#, c-format
+#| msgid "Not enough memory to store PEM file data."
+msgid "Could not allocate memory for PEM file data."
+msgstr "ÐÑма доÑтатъчно памет за данните за файла във формат PEM."
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
+msgid "Connection sharing via a protected WiFi network"
+msgstr "СподелÑне на връзката през защитена безжична мрежа"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
+msgid "Connection sharing via an open WiFi network"
+msgstr "СподелÑне на връзката през отворена безжична мрежа"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
+msgid "Modify persistent system hostname"
+msgstr "ПромÑна на името на хоÑта"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
+#| msgid "No active connections!"
+msgid "Modify system connections"
+msgstr "ПромÑна на ÑиÑтемни връзки"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
+msgid "System policy prevents modification of system settings"
+msgstr "Политиката на ÑиÑтемата не позволÑва промÑна на ÑиÑтемните наÑтройки"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr "Политиката на ÑиÑтемата не позволÑва промÑна на името на хоÑта"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва ÑподелÑне на връзки през защитена "
+"безжична мрежа"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва ÑподелÑне на връзки през отворена "
+"безжична мрежа"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+#| msgid "No network connection"
+msgid "Allow control of network connections"
+msgstr "Разрешаване на управлението на мрежовите връзки"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Allow use of user-specific connections"
+msgstr "Разрешаване на използването на потребителÑки връзки"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Enable or disable WiFi devices"
+msgstr "Включване и изключване на уÑтройÑтва за безжични мрежи"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable mobile broadband devices"
+msgstr "Включване и изключване на уÑтройÑтва за доÑтъп до мобилни мрежи"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+#| msgid "Enable _Networking"
+msgid "Enable or disable system networking"
+msgstr "Включване и изключване на мрежата на ÑиÑтемно ниво"
+
+#: ../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 ""
+"ПриÑпиване и Ñъбуждане на NetworkManager (за целите на модула за управление "
+"на захранването на ÑиÑтемата)"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid "System policy prevents control of network connections"
+msgstr "Политиката на ÑиÑтемата не позволÑва управлÑване на мрежовите връзки"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за "
+"безжични мрежи"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за "
+"мобилни мрежи"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid "System policy prevents enabling or disabling system networking"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва включване и изключване на мрежата на "
+"ÑиÑтемно ниво"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва приÑпиване и Ñъбуждане на NetworkManager"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents use of user-specific connections"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва използване на потребителÑки връзки"
+
+#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231
+#: ../src/nm-netlink-monitor.c:653
+#, c-format
+msgid "error processing netlink message: %s"
+msgstr "грешка при обработката на Ñъобщение от Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой – %s"
+
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "грешка при изчакване за данни през гнездо"
+
+#: ../src/nm-netlink-monitor.c:254
+#, c-format
+msgid "unable to connect to netlink for monitoring link status: %s"
+msgstr ""
+"грешка при Ñвързване Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой за наблюдение на ÑÑŠÑтоÑнието на "
+"връзката — %s"
+
+#: ../src/nm-netlink-monitor.c:265
+#, c-format
+#| msgid "unable to allocate netlink handle for monitoring link status: %s"
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr ""
+"грешка при включване на предаването на удоÑÑ‚Ð¾Ð²ÐµÑ€ÐµÐ½Ð¸Ñ Ð² модула на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ "
+"Ñлой — %s"
+
+#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
+#, c-format
+msgid "unable to allocate netlink handle for monitoring link status: %s"
+msgstr ""
+"грешка при задаване на модул в Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой за наблюдение на ÑÑŠÑтоÑнието на "
+"връзката — %s"
+
+#: ../src/nm-netlink-monitor.c:376
+#, c-format
+msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgstr ""
+"грешка при заделÑне на временна памет в Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой за наблюдение на "
+"ÑÑŠÑтоÑнието на връзката — %s"
+
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+#| msgid "unable to join netlink group for monitoring link status: %s"
+msgid "unable to join netlink group: %s"
+msgstr "грешка при приÑъединÑване към групата на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой — %s"
+
+#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
+#, c-format
+#| msgid "error processing netlink message: %s"
+msgid "error updating link cache: %s"
+msgstr "грешка при обновÑване на информациÑта за връзките – %s"
+
+#: ../src/main.c:499
+#, c-format
+msgid "Invalid option. Please use --help to see a list of valid options.\n"
+msgstr "Ðеправилна опциÑ. Ползвайте --help, за да видите ÑпиÑъка Ñ Ð¾Ð¿Ñ†Ð¸Ð¸.\n"
+
+#: ../src/main.c:570
+#, c-format
+#| msgid "Invalid option. Please use --help to see a list of valid options.\n"
+msgid "%s. Please use --help to see a list of valid options.\n"
+msgstr "%s. Ползвайте --help, за да видите ÑпиÑъка Ñ Ð¾Ð¿Ñ†Ð¸Ð¸.\n"
+
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328
+msgid "# Created by NetworkManager\n"
+msgstr "# Създаден от NetworkManager\n"
+
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344
+#, c-format
+msgid ""
+"# Merged from %s\n"
+"\n"
+msgstr ""
+"# СлÑÑ‚ от %s\n"
+"\n"
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
+msgid "no usable DHCP client could be found."
+msgstr "не е намерен подходÑщ клиент за DHCP."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
+msgid "'dhclient' could be found."
+msgstr "Ðе е намерен „dhclient“."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
+msgid "'dhcpcd' could be found."
+msgstr "Ðе е намерен „dhcpcd“."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
+#, c-format
+msgid "unsupported DHCP client '%s'"
+msgstr "Клиентът за DHCP „%s“ не Ñе поддържа"
+
+#: ../src/logging/nm-logging.c:146
+#, c-format
+msgid "Unknown log level '%s'"
+msgstr "Ðепознат праг за ÑъобщениÑта в журнала „%s“"
+
+#: ../src/logging/nm-logging.c:171
+#, c-format
+msgid "Unknown log domain '%s'"
+msgstr "Ðепознат домейн за ÑъобщениÑта в журнала „%s“"
+
+#: ../src/dns-manager/nm-dns-manager.c:384
+#| msgid "NOTE: the glibc resolver does not support more than 3 nameservers."
+msgid "NOTE: the libc resolver may not support more than 3 nameservers."
+msgstr "ЗÐБЕЛЕЖКÐ: libc може да не поддържа повече от 3 Ñървъра за имена."
+
+#: ../src/dns-manager/nm-dns-manager.c:386
+msgid "The nameservers listed below may not be recognized."
+msgstr "Долните Ñървъри за имена може да не бъдат разпознати."
+
+#: ../src/system-settings/nm-default-wired-connection.c:157
+#, c-format
+msgid "Auto %s"
+msgstr "Ðвтоматично %s"
+
+#: ../system-settings/plugins/ifcfg-rh/reader.c:3412
+#: ../system-settings/plugins/ifnet/connection_parser.c:49
+#| msgid "Open System"
+msgid "System"
+msgstr "СиÑтемна"
#~ msgid "Passphrase for wireless network %s"
#~ msgstr "Парола за безжичната мрежа %s"
@@ -277,33 +1894,18 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "Connection to the wireless network '%s' failed."
#~ msgstr "ÐеуÑпешно Ñвързване към безжичната мрежа „%s“."
-#~ msgid "Connection to the wired network failed."
-#~ msgstr "ÐеуÑпешно Ñвързване към кабелната мрежа."
-
#~ msgid "Error displaying connection information:"
#~ msgstr "Грешка при показване на информациÑта за връзката:"
#~ msgid "Could not find some required resources (the glade file)!"
#~ msgstr "ÐÑкои реÑурÑи не бÑха открити (файлът на glade)!"
-#~ msgid "No active connections!"
-#~ msgstr "ÐÑма дейÑтващи връзки!"
-
-#~ msgid "%d Mb/s"
-#~ msgstr "%d Mb/s"
-
#~ msgid "Wired Ethernet (%s)"
#~ msgstr "Кабелен Етернет (%s)"
#~ msgid "Wireless Ethernet (%s)"
#~ msgstr "Безжичен Етернет (%s)"
-#~ msgid "Unknown"
-#~ msgstr "неопределима"
-
-#~ msgid "NetworkManager Applet"
-#~ msgstr "Ðплетът NetworkManager"
-
#~ msgid ""
#~ "Copyright © 2004-2006 Red Hat, Inc.\n"
#~ "Copyright © 2005-2006 Novell, Inc."
@@ -351,9 +1953,6 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ "Връзката към ВЧМ „%s“ Ñе провали поради грешка при Ñтартиране на "
#~ "програмата за ВЧМ."
-#~ msgid "VPN Connect Failure"
-#~ msgstr "Грешка при Ñвързване към ВЧМ"
-
#~ msgid "Could not start the VPN connection '%s' due to a connection error."
#~ msgstr "Връзката към ВЧМ „%s“ Ñе провали поради грешка при Ñвързването."
@@ -386,9 +1985,6 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "The network device \"%s (%s)\" does not support link detection."
#~ msgstr "Мрежовото уÑтройÑтво „%s (%s)“ не поддържа заÑичане на връзка."
-#~ msgid "(unknown)"
-#~ msgstr "(не Ñе знае)"
-
#~ msgid "Preparing device %s for the wired network..."
#~ msgstr "ПодготвÑне на уÑтройÑтвото „%s“ за кабелната мрежа…"
@@ -419,12 +2015,6 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "NetworkManager is not running"
#~ msgstr "NetworkManager не е включен"
-#~ msgid "Networking disabled"
-#~ msgstr "Мрежата е изключена"
-
-#~ msgid "No network connection"
-#~ msgstr "ÐÑма връзка към мрежа"
-
#~ msgid "Wired network connection"
#~ msgstr "Връзка към кабелна мрежа"
@@ -437,9 +2027,6 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "VPN connection to '%s'"
#~ msgstr "Връзка по ВЧМ към „%s“"
-#~ msgid "VPN connecting to '%s'"
-#~ msgstr "Свързване по ВЧМ към „%s“"
-
#~ msgid "_Connect to Other Wireless Network..."
#~ msgstr "_Свързване към други безжични мрежи…"
@@ -470,9 +2057,6 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "NetworkManager is not running..."
#~ msgstr "NetworkManager не е включен…"
-#~ msgid "Enable _Networking"
-#~ msgstr "_Включване на мрежата"
-
#~ msgid "Enable _Wireless"
#~ msgstr "Включване на _безжичната мрежа"
@@ -492,39 +2076,21 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ "Ðплетът NetworkManager не може да открие необходим реÑурÑ. Програмата не "
#~ "може да продължи работа.\n"
-#~ msgid "Open System"
-#~ msgstr "Открита ÑиÑтема"
-
#~ msgid "Shared Key"
#~ msgstr "Споделен ключ"
#~ msgid "Automatic (Default)"
#~ msgstr "Ðвтоматично (по подразбиране)"
-#~ msgid "AES-CCMP"
-#~ msgstr "AES-CCMP"
-
-#~ msgid "TKIP"
-#~ msgstr "TKIP"
-
#~ msgid "Dynamic WEP"
#~ msgstr "Динамичен WEP"
-#~ msgid "None"
-#~ msgstr "Без"
-
#~ msgid "WEP 64/128-bit ASCII"
#~ msgstr "40/128-битов ключ за WEP в ASCII"
#~ msgid "WEP 64/128-bit Hex"
#~ msgstr "40/128-битов шеÑтнадеÑетичен ключ за WEP"
-#~ msgid "WEP 128-bit Passphrase"
-#~ msgstr "128 битова парола WEP"
-
-#~ msgid "PEAP"
-#~ msgstr "PEAP"
-
#~ msgid "TLS"
#~ msgstr "TLS"
@@ -534,9 +2100,6 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "WPA2 Enterprise"
#~ msgstr "WPA2 Enterprise"
-#~ msgid "WPA Enterprise"
-#~ msgstr "WPA Enterprise"
-
#~ msgid "WPA2 Personal"
#~ msgstr "WPA2 Personal"
@@ -683,15 +2246,9 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "CA Certificate File:"
#~ msgstr "Файл ÑÑŠÑ Ñертификатите на Ñертифициращите организации:"
-#~ msgid "C_onnect"
-#~ msgstr "_Свързване"
-
#~ msgid "Client Certificate File:"
#~ msgstr "Файл Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñките Ñертификати:"
-#~ msgid "Connection Information"
-#~ msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° връзката"
-
#~ msgid "Default Route:"
#~ msgstr "Маршрут по подразбиране:"
@@ -842,9 +2399,6 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ "Ñофтуер за връзка към ВЧМ от вида „%1$s“. Свържете Ñе ÑÑŠÑ ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ "
#~ "админиÑтратор."
-#~ msgid "Error retrieving VPN connection '%s'"
-#~ msgstr "Грешка при получаване на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° връзката към ВЧМ „%s“"
-
#~ msgid ""
#~ "Could not find the UI files for VPN connection type '%s'. Contact your "
#~ "system administrator."
@@ -897,36 +2451,24 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "Manage Virtual Private Network Connections"
#~ msgstr "Управление на връзките към ВЧМ"
-#~ msgid "VPN Connections"
-#~ msgstr "Връзки към ВЧМ"
-
#~ msgid "40-bit WEP"
#~ msgstr "40-битов WEP"
#~ msgid "104-bit WEP"
#~ msgstr "104-битов WEP"
-#~ msgid "WPA TKIP"
-#~ msgstr "WPA TKIP"
-
#~ msgid "WPA CCMP"
#~ msgstr "WPA CCMP"
#~ msgid "WPA Automatic"
#~ msgstr "Ðвтоматичен WPA"
-#~ msgid "WPA2 TKIP"
-#~ msgstr "WPA2 TKIP"
-
#~ msgid "WPA2 CCMP"
#~ msgstr "WPA2 CCMP"
#~ msgid "WPA2 Automatic"
#~ msgstr "Ðвтоматичен WPA2"
-#~ msgid "none"
-#~ msgstr "липÑва"
-
#~ msgid "operation took too long"
#~ msgstr "операциÑта продължи прекалено дълго"
@@ -949,14 +2491,5 @@ msgstr "Сертификатът не може да бъде дешифрираÐ
#~ msgid "You are now connected to the wired network."
#~ msgstr "Свързани Ñте към кабелната мрежа."
-#~ msgid "Connection Established"
-#~ msgstr "Връзката е оÑъщеÑтвена"
-
-#~ msgid "Disconnected"
-#~ msgstr "Без връзка"
-
-#~ msgid "The network connection has been disconnected."
-#~ msgstr "Връзката към мрежата е прекъÑната."
-
#~ msgid "LEAP"
#~ msgstr "LEAP"
diff --git a/po/es.po b/po/es.po
index d002f77513..74746f4a46 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,5 +1,5 @@
# translation of es.po to Spanish
-# translation of NetworkManager.HEAD.po to
+# translation of NetworkManager.master.po to
# Traducción de NetworkManager al español.
# Copyright (C) Spanish translation for NetworkManager
# This file is distributed under the same license as the NetworkManager package.
@@ -12,11 +12,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: es\n"
+"Project-Id-Version: NetworkManager.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=NetworkManager&component=general\n"
-"POT-Creation-Date: 2010-09-17 15:25+0000\n"
-"PO-Revision-Date: 2010-09-18 11:01+0200\n"
+"POT-Creation-Date: 2010-09-21 03:25+0000\n"
+"PO-Revision-Date: 2010-09-25 11:36+0200\n"
"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n"
@@ -94,7 +94,12 @@ msgstr "AUTOCONECTAR"
msgid "READONLY"
msgstr "SÓLOLECTURA"
-#: ../cli/src/connections.c:158
+#. 7
+#: ../cli/src/connections.c:83
+msgid "DBUS-PATH"
+msgstr "RUTA-DBUS"
+
+#: ../cli/src/connections.c:159
#, c-format
msgid ""
"Usage: nmcli con { COMMAND | help }\n"
@@ -115,37 +120,37 @@ msgstr ""
"<timeout>]\n"
" down id <id> | uuid <id>\n"
-#: ../cli/src/connections.c:198 ../cli/src/connections.c:537
+#: ../cli/src/connections.c:199 ../cli/src/connections.c:540
#, c-format
msgid "Error: 'con list': %s"
msgstr "Error: «con list»: %s"
-#: ../cli/src/connections.c:200 ../cli/src/connections.c:539
+#: ../cli/src/connections.c:201 ../cli/src/connections.c:542
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
msgstr "Error: «con list»: %s; campos permitidos: %s"
-#: ../cli/src/connections.c:208
+#: ../cli/src/connections.c:209
msgid "Connection details"
msgstr "Detalles de conexiones"
-#: ../cli/src/connections.c:382 ../cli/src/connections.c:602
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
msgid "system"
msgstr "sistema"
-#: ../cli/src/connections.c:382 ../cli/src/connections.c:602
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
msgid "user"
msgstr "usuario"
-#: ../cli/src/connections.c:384
+#: ../cli/src/connections.c:386
msgid "never"
msgstr "nunca"
#. "CAPABILITIES"
#. Print header
#. "WIFI-PROPERTIES"
-#: ../cli/src/connections.c:385 ../cli/src/connections.c:386
-#: ../cli/src/connections.c:603 ../cli/src/connections.c:606
+#: ../cli/src/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
@@ -164,8 +169,8 @@ msgstr "nunca"
msgid "yes"
msgstr "sí"
-#: ../cli/src/connections.c:385 ../cli/src/connections.c:386
-#: ../cli/src/connections.c:603 ../cli/src/connections.c:606
+#: ../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
@@ -184,272 +189,272 @@ msgstr "sí"
msgid "no"
msgstr "no"
-#: ../cli/src/connections.c:458 ../cli/src/connections.c:501
+#: ../cli/src/connections.c:461 ../cli/src/connections.c:504
msgid "System connections"
msgstr "Conexiones de sistema"
-#: ../cli/src/connections.c:463 ../cli/src/connections.c:514
+#: ../cli/src/connections.c:466 ../cli/src/connections.c:517
msgid "User connections"
msgstr "Conexiones de usuario"
-#: ../cli/src/connections.c:475 ../cli/src/connections.c:1335
-#: ../cli/src/connections.c:1351 ../cli/src/connections.c:1360
-#: ../cli/src/connections.c:1371 ../cli/src/connections.c:1456
+#: ../cli/src/connections.c:478 ../cli/src/connections.c:1338
+#: ../cli/src/connections.c:1354 ../cli/src/connections.c:1363
+#: ../cli/src/connections.c:1374 ../cli/src/connections.c:1459
#: ../cli/src/devices.c:962 ../cli/src/devices.c:972 ../cli/src/devices.c:1074
#: ../cli/src/devices.c:1081
#, c-format
msgid "Error: %s argument is missing."
msgstr "Error: falta el argumento %s."
-#: ../cli/src/connections.c:488
+#: ../cli/src/connections.c:491
#, c-format
msgid "Error: %s - no such connection."
msgstr "Error: %s - no hay tal conexión."
-#: ../cli/src/connections.c:520 ../cli/src/connections.c:1384
-#: ../cli/src/connections.c:1474 ../cli/src/devices.c:785
+#: ../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
#, c-format
msgid "Unknown parameter: %s\n"
msgstr "Parámetro desconocido: %s\n"
-#: ../cli/src/connections.c:529
+#: ../cli/src/connections.c:532
#, c-format
msgid "Error: no valid parameter specified."
msgstr "Error: no se especificó un parámetro válido."
-#: ../cli/src/connections.c:544 ../cli/src/connections.c:1577
+#: ../cli/src/connections.c:547 ../cli/src/connections.c:1580
#: ../cli/src/devices.c:1293 ../cli/src/network-manager.c:359
#, c-format
msgid "Error: %s."
msgstr "Error: %s."
-#: ../cli/src/connections.c:650
+#: ../cli/src/connections.c:653
#, c-format
msgid "Error: 'con status': %s"
msgstr "Error: «con status»: %s"
-#: ../cli/src/connections.c:652
+#: ../cli/src/connections.c:655
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
msgstr "Error: «con status»: %s; campos permitidos: %s"
-#: ../cli/src/connections.c:659
+#: ../cli/src/connections.c:662
msgid "Active connections"
msgstr "Conexiones activas"
-#: ../cli/src/connections.c:1027
+#: ../cli/src/connections.c:1030
#, c-format
msgid "no active connection on device '%s'"
msgstr "conexión no activa en el dispositivo «%s»"
-#: ../cli/src/connections.c:1035
+#: ../cli/src/connections.c:1038
#, c-format
msgid "no active connection or device"
msgstr "conexión o dispositivo no activo"
-#: ../cli/src/connections.c:1085
+#: ../cli/src/connections.c:1088
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr "dispositivo «%s» incompatible con conexión «%s»"
-#: ../cli/src/connections.c:1087
+#: ../cli/src/connections.c:1090
#, c-format
msgid "no device found for connection '%s'"
msgstr "no se encontró dispositivo para conexión «%s»"
-#: ../cli/src/connections.c:1098
+#: ../cli/src/connections.c:1101
msgid "activating"
msgstr "activando"
-#: ../cli/src/connections.c:1100
+#: ../cli/src/connections.c:1103
msgid "activated"
msgstr "activada"
-#: ../cli/src/connections.c:1103 ../cli/src/connections.c:1126
-#: ../cli/src/connections.c:1159 ../cli/src/devices.c:246
+#: ../cli/src/connections.c:1106 ../cli/src/connections.c:1129
+#: ../cli/src/connections.c:1162 ../cli/src/devices.c:246
#: ../cli/src/devices.c:558 ../cli/src/network-manager.c:94
#: ../cli/src/network-manager.c:149 ../cli/src/settings.c:473
msgid "unknown"
msgstr "desconocido"
-#: ../cli/src/connections.c:1112
+#: ../cli/src/connections.c:1115
msgid "VPN connecting (prepare)"
msgstr "Conectando VPN (preparar)"
-#: ../cli/src/connections.c:1114
+#: ../cli/src/connections.c:1117
msgid "VPN connecting (need authentication)"
msgstr "Conectando VPN (necesita autenticación)"
-#: ../cli/src/connections.c:1116
+#: ../cli/src/connections.c:1119
msgid "VPN connecting"
msgstr "Conectando VPN"
-#: ../cli/src/connections.c:1118
+#: ../cli/src/connections.c:1121
msgid "VPN connecting (getting IP configuration)"
msgstr "Conectando VPN (obteniendo configuración IP)"
-#: ../cli/src/connections.c:1120
+#: ../cli/src/connections.c:1123
msgid "VPN connected"
msgstr "VPN conectada"
-#: ../cli/src/connections.c:1122
+#: ../cli/src/connections.c:1125
msgid "VPN connection failed"
msgstr "FalloÌ la conexioÌn VPN"
-#: ../cli/src/connections.c:1124
+#: ../cli/src/connections.c:1127
msgid "VPN disconnected"
msgstr "VPN desconectada"
-#: ../cli/src/connections.c:1135
+#: ../cli/src/connections.c:1138
msgid "unknown reason"
msgstr "razón desconocida"
-#: ../cli/src/connections.c:1137
+#: ../cli/src/connections.c:1140
msgid "none"
msgstr "ninguna"
-#: ../cli/src/connections.c:1139
+#: ../cli/src/connections.c:1142
msgid "the user was disconnected"
msgstr "el usuario estaba desconectado"
-#: ../cli/src/connections.c:1141
+#: ../cli/src/connections.c:1144
msgid "the base network connection was interrupted"
msgstr "se interrumpió la conexión de red de base"
-#: ../cli/src/connections.c:1143
+#: ../cli/src/connections.c:1146
msgid "the VPN service stopped unexpectedly"
msgstr "el servicio VPN se detuvo inesperadamente"
-#: ../cli/src/connections.c:1145
+#: ../cli/src/connections.c:1148
msgid "the VPN service returned invalid configuration"
msgstr "el servicio VPN retornó una configuración no válida"
-#: ../cli/src/connections.c:1147
+#: ../cli/src/connections.c:1150
msgid "the connection attempt timed out"
msgstr "se agotaron los intentos de conexión"
-#: ../cli/src/connections.c:1149
+#: ../cli/src/connections.c:1152
msgid "the VPN service did not start in time"
msgstr "el servicio VPN no inició a tiempo"
-#: ../cli/src/connections.c:1151
+#: ../cli/src/connections.c:1154
msgid "the VPN service failed to start"
msgstr "el servicio VPN falló en el inicio"
-#: ../cli/src/connections.c:1153
+#: ../cli/src/connections.c:1156
msgid "no valid VPN secrets"
msgstr "secretos VPN inválidos"
-#: ../cli/src/connections.c:1155
+#: ../cli/src/connections.c:1158
msgid "invalid VPN secrets"
msgstr "secretos VPN válidos"
-#: ../cli/src/connections.c:1157
+#: ../cli/src/connections.c:1160
msgid "the connection was removed"
msgstr "se eliminó la conexión"
-#: ../cli/src/connections.c:1171
+#: ../cli/src/connections.c:1174
#, c-format
msgid "state: %s\n"
msgstr "estado: %s\n"
-#: ../cli/src/connections.c:1174 ../cli/src/connections.c:1200
+#: ../cli/src/connections.c:1177 ../cli/src/connections.c:1203
#, c-format
msgid "Connection activated\n"
msgstr "Conexión activada\n"
-#: ../cli/src/connections.c:1177
+#: ../cli/src/connections.c:1180
#, c-format
msgid "Error: Connection activation failed."
msgstr "Error: falló la activación de la conexión."
-#: ../cli/src/connections.c:1196
+#: ../cli/src/connections.c:1199
#, c-format
msgid "state: %s (%d)\n"
msgstr "estado: %s (%d)\n"
-#: ../cli/src/connections.c:1206
+#: ../cli/src/connections.c:1209
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "Error: falló la activación de la conexión: %s."
-#: ../cli/src/connections.c:1223 ../cli/src/devices.c:909
+#: ../cli/src/connections.c:1226 ../cli/src/devices.c:909
#, c-format
msgid "Error: Timeout %d sec expired."
msgstr "Error: expiró la pausa de %d segundos."
-#: ../cli/src/connections.c:1266
+#: ../cli/src/connections.c:1269
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "Error: falló la activación de la conexión: %s"
-#: ../cli/src/connections.c:1280
+#: ../cli/src/connections.c:1283
#, c-format
msgid "Error: Obtaining active connection for '%s' failed."
msgstr "Error: falló la obtención de conexión activa para «%s»."
-#: ../cli/src/connections.c:1289
+#: ../cli/src/connections.c:1292
#, c-format
msgid "Active connection state: %s\n"
msgstr "Estado de la conexión activa: %s\n"
-#: ../cli/src/connections.c:1290
+#: ../cli/src/connections.c:1293
#, c-format
msgid "Active connection path: %s\n"
msgstr "Ruta de la conexión activa: %s\n"
-#: ../cli/src/connections.c:1344 ../cli/src/connections.c:1465
+#: ../cli/src/connections.c:1347 ../cli/src/connections.c:1468
#, c-format
msgid "Error: Unknown connection: %s."
msgstr "Error: conexión desconocida: %s."
-#: ../cli/src/connections.c:1379 ../cli/src/devices.c:980
+#: ../cli/src/connections.c:1382 ../cli/src/devices.c:980
#, c-format
msgid "Error: timeout value '%s' is not valid."
msgstr "Error: valor de pausa «%s» inválido."
-#: ../cli/src/connections.c:1392 ../cli/src/connections.c:1482
+#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1485
#, c-format
msgid "Error: id or uuid has to be specified."
msgstr "Error: se debe especificar un id o uuid."
-#: ../cli/src/connections.c:1412
+#: ../cli/src/connections.c:1415
#, c-format
msgid "Error: No suitable device found: %s."
msgstr "Error: no se encontró un dispositivo apropiado: %s."
-#: ../cli/src/connections.c:1414
+#: ../cli/src/connections.c:1417
#, c-format
msgid "Error: No suitable device found."
msgstr "Error: no se encontró un dispositivo apropiado."
-#: ../cli/src/connections.c:1509
+#: ../cli/src/connections.c:1512
#, c-format
msgid "Warning: Connection not active\n"
msgstr "Advertencia: conexión inactiva\n"
-#: ../cli/src/connections.c:1566
+#: ../cli/src/connections.c:1569
#, c-format
msgid "Error: 'con' command '%s' is not valid."
msgstr "Error: comando «con» «%s» no es válido."
-#: ../cli/src/connections.c:1602
+#: ../cli/src/connections.c:1605
#, c-format
msgid "Error: could not connect to D-Bus."
msgstr "Error: no se pudo conectar con D-Bus."
-#: ../cli/src/connections.c:1609
+#: ../cli/src/connections.c:1612
#, c-format
msgid "Error: Could not get system settings."
msgstr "Error: no se pudo obtener configuración de sistema."
-#: ../cli/src/connections.c:1617
+#: ../cli/src/connections.c:1620
#, c-format
msgid "Error: Could not get user settings."
msgstr "Error: No se pudo obtener configuración de usuario."
-#: ../cli/src/connections.c:1627
+#: ../cli/src/connections.c:1630
#, c-format
msgid "Error: Can't obtain connections: settings services are not running."
msgstr ""
@@ -891,17 +896,6 @@ 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"
msgid ""
"Usage: nmcli nm { COMMAND | help }\n"
"\n"
@@ -973,19 +967,16 @@ msgstr "no ejecutando"
#: ../cli/src/network-manager.c:175
#, c-format
-#| msgid "Error: could not connect to D-Bus."
msgid "Error: Couldn't connect to system bus: %s"
msgstr "Error: no se pudo conectar con el bus del sistema: %s"
#: ../cli/src/network-manager.c:186
#, c-format
-#| msgid "Error: could not connect to D-Bus."
msgid "Error: Couldn't create D-Bus object proxy."
msgstr "Error: no se pudo crear un objeto proxy en D-Bus."
#: ../cli/src/network-manager.c:192
#, c-format
-#| msgid "Error: 'con list': %s"
msgid "Error in sleep: %s"
msgstr "Error al dormir: %s"
@@ -996,25 +987,21 @@ msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
msgstr "Error: «--fields» valor «%s» no es válido aquí; campos permitidos: %s"
#: ../cli/src/network-manager.c:245
-#| msgid "WiFi enabled"
msgid "Networking enabled"
msgstr "Red activada"
#: ../cli/src/network-manager.c:256
#, c-format
-#| msgid "Error: invalid 'wwan' parameter: '%s'."
msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
msgstr "Error: parámetro «enable» inválido: «%s»; use «true» o «false»."
#: ../cli/src/network-manager.c:265
#, c-format
-#| msgid "Error: Could not connect to NetworkManager."
msgid "Error: Sleeping status is not exported by NetworkManager."
msgstr "Error: NetworkManager no exporta el estado para dormir."
#: ../cli/src/network-manager.c:273
#, c-format
-#| msgid "Error: invalid 'wifi' parameter: '%s'."
msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
msgstr "Error: parámetro «wifi» inválido: «%s»."
diff --git a/po/hu.po b/po/hu.po
index f71625495e..0ca4386f29 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,16 +7,1234 @@ msgid ""
msgstr ""
"Project-Id-Version: NetworkManager master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&component=general\n"
-"POT-Creation-Date: 2009-09-29 03:25+0000\n"
-"PO-Revision-Date: 2010-01-03 14:57+0100\n"
+"POT-Creation-Date: 2010-09-22 03:25+0000\n"
+"PO-Revision-Date: 2010-10-02 20:50+0200\n"
"Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n"
"Language-Team: Hungarian <gnome at fsf dot hu>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Launchpad-Export-Date: 2010-10-02 18:28+0000\n"
"X-Generator: KBabel 1.11.4\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 "NÉV"
+
+#. 0
+#: ../cli/src/connections.c:61 ../cli/src/connections.c:76
+msgid "UUID"
+msgstr "UUID"
+
+#. 1
+#: ../cli/src/connections.c:62
+msgid "DEVICES"
+msgstr "ESZKÖZÖK"
+
+#. 2
+#: ../cli/src/connections.c:63 ../cli/src/connections.c:78
+msgid "SCOPE"
+msgstr "HATÓKÖR"
+
+#. 3
+#: ../cli/src/connections.c:64
+msgid "DEFAULT"
+msgstr "ALAPÉRTELMEZETT"
+
+#. 4
+#: ../cli/src/connections.c:65
+msgid "DBUS-SERVICE"
+msgstr "DBUS-SZOLGÃLTATÃS"
+
+#. 5
+#: ../cli/src/connections.c:66
+msgid "SPEC-OBJECT"
+msgstr "SPEC-OBJEKTUM"
+
+#. 6
+#: ../cli/src/connections.c:67
+msgid "VPN"
+msgstr "VPN"
+
+#. 1
+#. 0
+#. 1
+#: ../cli/src/connections.c:77 ../cli/src/devices.c:62 ../cli/src/devices.c:90
+msgid "TYPE"
+msgstr "TÃPUS"
+
+#. 3
+#: ../cli/src/connections.c:79
+msgid "TIMESTAMP"
+msgstr "IDÅBÉLYEG"
+
+#. 4
+#: ../cli/src/connections.c:80
+msgid "TIMESTAMP-REAL"
+msgstr "IDÅBÉLYEG-VALÓDI"
+
+#. 5
+#: ../cli/src/connections.c:81
+msgid "AUTOCONNECT"
+msgstr "AUTO-CSATLAKOZÃS"
+
+#. 6
+#: ../cli/src/connections.c:82
+msgid "READONLY"
+msgstr "CSAK OLVASHATÓ"
+
+#. 7
+#: ../cli/src/connections.c:83
+msgid "DBUS-PATH"
+msgstr "DBUS-ÚTVONAL"
+
+#: ../cli/src/connections.c:159
+#, c-format
+msgid ""
+"Usage: nmcli con { COMMAND | help }\n"
+" COMMAND := { list | status | up | down }\n"
+"\n"
+" list [id <id> | uuid <id> | system | user]\n"
+" status\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
+"<timeout>]\n"
+" down id <id> | uuid <id>\n"
+msgstr ""
+"Használat: nmcli con { PARANCS | help }\n"
+" PARANCS := { list | status | up | down }\n"
+"\n"
+" list [id <azonosító> | uuid <azonosító> | system | user]\n"
+" status\n"
+" up id <azonosító> | uuid <azonosító> [iface <csatoló>] [ap <hwcím>] [--"
+"nowait] [--timeout <időkorlát>]\n"
+" down id <azonosító> | uuid <azonosító>\n"
+
+#: ../cli/src/connections.c:199 ../cli/src/connections.c:540
+#, c-format
+msgid "Error: 'con list': %s"
+msgstr "Hiba: „con listâ€: %s"
+
+#: ../cli/src/connections.c:201 ../cli/src/connections.c:542
+#, c-format
+msgid "Error: 'con list': %s; allowed fields: %s"
+msgstr "Hiba: „con listâ€: %s; engedélyezett mezÅ‘k: %s"
+
+#: ../cli/src/connections.c:209
+msgid "Connection details"
+msgstr "Kapcsolat részletei"
+
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+msgid "system"
+msgstr "rendszer"
+
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+msgid "user"
+msgstr "felhasználó"
+
+#: ../cli/src/connections.c:386
+msgid "never"
+msgstr "soha"
+
+#. "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
+msgid "yes"
+msgstr "igen"
+
+#: ../cli/src/connections.c:387 ../cli/src/connections.c:388
+#: ../cli/src/connections.c:606 ../cli/src/connections.c:609
+#: ../cli/src/devices.c:432 ../cli/src/devices.c:557 ../cli/src/devices.c:583
+#: ../cli/src/devices.c:584 ../cli/src/devices.c:585 ../cli/src/devices.c:586
+#: ../cli/src/devices.c:587 ../cli/src/settings.c:508
+#: ../cli/src/settings.c:510 ../cli/src/settings.c:551
+#: ../cli/src/settings.c:652 ../cli/src/settings.c:926
+#: ../cli/src/settings.c:927 ../cli/src/settings.c:929
+#: ../cli/src/settings.c:931 ../cli/src/settings.c:1056
+#: ../cli/src/settings.c:1057 ../cli/src/settings.c:1058
+#: ../cli/src/settings.c:1137 ../cli/src/settings.c:1138
+#: ../cli/src/settings.c:1139 ../cli/src/settings.c:1140
+#: ../cli/src/settings.c:1141 ../cli/src/settings.c:1142
+#: ../cli/src/settings.c:1143 ../cli/src/settings.c:1144
+#: ../cli/src/settings.c:1145 ../cli/src/settings.c:1146
+#: ../cli/src/settings.c:1147 ../cli/src/settings.c:1148
+#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1224
+msgid "no"
+msgstr "nem"
+
+#: ../cli/src/connections.c:461 ../cli/src/connections.c:504
+msgid "System connections"
+msgstr "Rendszerkapcsolatok"
+
+#: ../cli/src/connections.c:466 ../cli/src/connections.c:517
+msgid "User connections"
+msgstr "Felhasználói kapcsolatok"
+
+#: ../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
+#, c-format
+msgid "Error: %s argument is missing."
+msgstr "Hiba: az argumentum (%s) hiányzik."
+
+#: ../cli/src/connections.c:491
+#, c-format
+msgid "Error: %s - no such connection."
+msgstr "Hiba: nincs ilyen kapcsolat: %s."
+
+#: ../cli/src/connections.c:523 ../cli/src/connections.c:1387
+#: ../cli/src/connections.c:1477 ../cli/src/devices.c:785
+#: ../cli/src/devices.c:852 ../cli/src/devices.c:986 ../cli/src/devices.c:1087
+#, c-format
+msgid "Unknown parameter: %s\n"
+msgstr "Ismeretlen paraméter: %s\n"
+
+#: ../cli/src/connections.c:532
+#, c-format
+msgid "Error: no valid parameter specified."
+msgstr "Hiba: nincs megadva érvényes paraméter."
+
+#: ../cli/src/connections.c:547 ../cli/src/connections.c:1580
+#: ../cli/src/devices.c:1293 ../cli/src/network-manager.c:359
+#, c-format
+msgid "Error: %s."
+msgstr "Hiba: %s."
+
+#: ../cli/src/connections.c:653
+#, c-format
+msgid "Error: 'con status': %s"
+msgstr "Hiba: „con statusâ€: %s"
+
+#: ../cli/src/connections.c:655
+#, c-format
+msgid "Error: 'con status': %s; allowed fields: %s"
+msgstr "Hiba: „con statusâ€: %s; engedélyezett mezÅ‘k: %s"
+
+#: ../cli/src/connections.c:662
+msgid "Active connections"
+msgstr "Aktív kapcsolatok"
+
+#: ../cli/src/connections.c:1030
+#, c-format
+msgid "no active connection on device '%s'"
+msgstr "nincs aktív kapcsolat a(z) „%s†eszközön"
+
+#: ../cli/src/connections.c:1038
+#, c-format
+msgid "no active connection or device"
+msgstr "nincs aktív kapcsolat vagy eszköz"
+
+#: ../cli/src/connections.c:1088
+#, c-format
+msgid "device '%s' not compatible with connection '%s'"
+msgstr "a(z) „%s†eszköz nem kompatibilis a(z) „%s†kapcsolattal"
+
+#: ../cli/src/connections.c:1090
+#, c-format
+msgid "no device found for connection '%s'"
+msgstr "nem található eszköz a(z) „%s†kapcsolathoz"
+
+#: ../cli/src/connections.c:1101
+msgid "activating"
+msgstr "aktiválás"
+
+#: ../cli/src/connections.c:1103
+msgid "activated"
+msgstr "aktiválva"
+
+#: ../cli/src/connections.c:1106 ../cli/src/connections.c:1129
+#: ../cli/src/connections.c:1162 ../cli/src/devices.c:246
+#: ../cli/src/devices.c:558 ../cli/src/network-manager.c:94
+#: ../cli/src/network-manager.c:149 ../cli/src/settings.c:473
+msgid "unknown"
+msgstr "ismeretlen"
+
+#: ../cli/src/connections.c:1115
+msgid "VPN connecting (prepare)"
+msgstr "VPN kapcsolódás (előkészítés)"
+
+#: ../cli/src/connections.c:1117
+msgid "VPN connecting (need authentication)"
+msgstr "VPN csatlakozás (hitelesítés szükséges)"
+
+#: ../cli/src/connections.c:1119
+msgid "VPN connecting"
+msgstr "VPN csatlakozás"
+
+#: ../cli/src/connections.c:1121
+msgid "VPN connecting (getting IP configuration)"
+msgstr "VPN kapcsolódás (IP-beállítások lekérése)"
+
+#: ../cli/src/connections.c:1123
+msgid "VPN connected"
+msgstr "VPN csatlakozott"
+
+#: ../cli/src/connections.c:1125
+msgid "VPN connection failed"
+msgstr "VPN csatlakozás sikertelen"
+
+#: ../cli/src/connections.c:1127
+msgid "VPN disconnected"
+msgstr "VPN leválasztva"
+
+#: ../cli/src/connections.c:1138
+msgid "unknown reason"
+msgstr "ismeretlen ok"
+
+#: ../cli/src/connections.c:1140
+msgid "none"
+msgstr "nincs"
+
+#: ../cli/src/connections.c:1142
+msgid "the user was disconnected"
+msgstr "felhasználó leválasztva"
+
+#: ../cli/src/connections.c:1144
+msgid "the base network connection was interrupted"
+msgstr "az alap hálózati kapcsolat megszakadt"
+
+#: ../cli/src/connections.c:1146
+msgid "the VPN service stopped unexpectedly"
+msgstr "a VPN szolgáltatás váratlanul leállt"
+
+#: ../cli/src/connections.c:1148
+msgid "the VPN service returned invalid configuration"
+msgstr "a VPN szolgáltatás érvénytelen beállításokat adott"
+
+#: ../cli/src/connections.c:1150
+msgid "the connection attempt timed out"
+msgstr "a csatlakozási kísérlet túllépte az időkorlátot"
+
+#: ../cli/src/connections.c:1152
+msgid "the VPN service did not start in time"
+msgstr "a VPN szolgáltatás nem indult el időben"
+
+#: ../cli/src/connections.c:1154
+msgid "the VPN service failed to start"
+msgstr "a VPN szolgáltatás nem indult el"
+
+#: ../cli/src/connections.c:1156
+msgid "no valid VPN secrets"
+msgstr "nincsenek érvényes VPN titkok"
+
+#: ../cli/src/connections.c:1158
+msgid "invalid VPN secrets"
+msgstr "érvénytelen VPN titkok"
+
+#: ../cli/src/connections.c:1160
+msgid "the connection was removed"
+msgstr "a kapcsolat eltávolításra került"
+
+#: ../cli/src/connections.c:1174
+#, c-format
+msgid "state: %s\n"
+msgstr "állapot: %s\n"
+
+#: ../cli/src/connections.c:1177 ../cli/src/connections.c:1203
+#, c-format
+msgid "Connection activated\n"
+msgstr "Kapcsolat aktiválva\n"
+
+#: ../cli/src/connections.c:1180
+#, c-format
+msgid "Error: Connection activation failed."
+msgstr "Hiba: a kapcsolat aktiválása meghiúsult."
+
+#: ../cli/src/connections.c:1199
+#, c-format
+msgid "state: %s (%d)\n"
+msgstr "állapot: %s (%d)\n"
+
+#: ../cli/src/connections.c:1209
+#, c-format
+msgid "Error: Connection activation failed: %s."
+msgstr "Hiba: a kapcsolat aktiválása meghiúsult: %s."
+
+#: ../cli/src/connections.c:1226 ../cli/src/devices.c:909
+#, c-format
+msgid "Error: Timeout %d sec expired."
+msgstr "Hiba: az időkorlát (%d mp) lejárt."
+
+#: ../cli/src/connections.c:1269
+#, c-format
+msgid "Error: Connection activation failed: %s"
+msgstr "Hiba: a kapcsolat aktiválása meghiúsult: %s"
+
+#: ../cli/src/connections.c:1283
+#, c-format
+msgid "Error: Obtaining active connection for '%s' failed."
+msgstr "Hiba: az aktív kapcsolat létrehozása meghiúsult ehhez: „%sâ€."
+
+#: ../cli/src/connections.c:1292
+#, c-format
+msgid "Active connection state: %s\n"
+msgstr "Aktív kapcsolat állapota: %s\n"
+
+#: ../cli/src/connections.c:1293
+#, c-format
+msgid "Active connection path: %s\n"
+msgstr "Aktív kapcsolat útvonala: %s\n"
+
+#: ../cli/src/connections.c:1347 ../cli/src/connections.c:1468
+#, c-format
+msgid "Error: Unknown connection: %s."
+msgstr "Hiba: ismeretlen kapcsolat: %s."
+
+#: ../cli/src/connections.c:1382 ../cli/src/devices.c:980
+#, c-format
+msgid "Error: timeout value '%s' is not valid."
+msgstr "Hiba: a(z) „%s†időkorlát érvénytelen."
+
+#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1485
+#, c-format
+msgid "Error: id or uuid has to be specified."
+msgstr "Hiba: meg kell adni az id vagy uuid egyikét."
+
+#: ../cli/src/connections.c:1415
+#, c-format
+msgid "Error: No suitable device found: %s."
+msgstr "Hiba: nem található megfelelő eszköz: %s."
+
+#: ../cli/src/connections.c:1417
+#, c-format
+msgid "Error: No suitable device found."
+msgstr "Hiba: nem található megfelelő eszköz."
+
+#: ../cli/src/connections.c:1512
+#, c-format
+msgid "Warning: Connection not active\n"
+msgstr "Figyelmeztetés: a kapcsolat nem aktív\n"
+
+#: ../cli/src/connections.c:1569
+#, c-format
+msgid "Error: 'con' command '%s' is not valid."
+msgstr "Hiba: a(z) „%s†„con†parancs nem érvényes."
+
+#: ../cli/src/connections.c:1605
+#, c-format
+msgid "Error: could not connect to D-Bus."
+msgstr "Hiba: nem lehet a D-Bushoz kapcsolódni."
+
+#: ../cli/src/connections.c:1612
+#, c-format
+msgid "Error: Could not get system settings."
+msgstr "Hiba: a rendszer beállításai nem kérhetők le."
+
+#: ../cli/src/connections.c:1620
+#, c-format
+msgid "Error: Could not get user settings."
+msgstr "Hiba: a felhasználó beállításai nem kérhetők le."
+
+#: ../cli/src/connections.c:1630
+#, c-format
+msgid "Error: Can't obtain connections: settings services are not running."
+msgstr "Hiba: nem kérhetők le a kapcsolatok: a beállítószolgáltatások nem futnak."
+
+#. 0
+#. 9
+#: ../cli/src/devices.c:61 ../cli/src/devices.c:89 ../cli/src/devices.c:184
+msgid "DEVICE"
+msgstr "ESZKÖZ"
+
+#. 1
+#. 4
+#. 0
+#: ../cli/src/devices.c:63 ../cli/src/devices.c:93
+#: ../cli/src/network-manager.c:36
+msgid "STATE"
+msgstr "ÃLLAPOT"
+
+#: ../cli/src/devices.c:72
+msgid "GENERAL"
+msgstr "ÃLTALÃNOS"
+
+#. 0
+#: ../cli/src/devices.c:73
+msgid "CAPABILITIES"
+msgstr "KÉPESSÉGEK"
+
+#. 1
+#: ../cli/src/devices.c:74
+msgid "WIFI-PROPERTIES"
+msgstr "WIFI-KÉPESSÉGEK"
+
+#. 2
+#: ../cli/src/devices.c:75
+msgid "AP"
+msgstr "AP"
+
+#. 3
+#: ../cli/src/devices.c:76
+msgid "WIRED-PROPERTIES"
+msgstr "VEZETÉKES-TULAJDONSÃGOK"
+
+#. 4
+#: ../cli/src/devices.c:77
+msgid "IP4-SETTINGS"
+msgstr "IP4-BEÃLLÃTÃSOK"
+
+#. 5
+#: ../cli/src/devices.c:78
+msgid "IP4-DNS"
+msgstr "IP4-DNS"
+
+#. 6
+#: ../cli/src/devices.c:79
+msgid "IP6-SETTINGS"
+msgstr "IP6-BEÃLLÃTÃSOK"
+
+#. 7
+#: ../cli/src/devices.c:80
+msgid "IP6-DNS"
+msgstr "IP6-DNS"
+
+#. 2
+#: ../cli/src/devices.c:91
+msgid "DRIVER"
+msgstr "ILLESZTÅPROGRAM"
+
+#. 3
+#: ../cli/src/devices.c:92
+msgid "HWADDR"
+msgstr "HWCÃM"
+
+#. 0
+#: ../cli/src/devices.c:102
+msgid "CARRIER-DETECT"
+msgstr "HORDOZÓ-FELISMERÉS"
+
+#. 1
+#: ../cli/src/devices.c:103
+msgid "SPEED"
+msgstr "SEBESSÉG"
+
+#. 0
+#: ../cli/src/devices.c:112
+msgid "CARRIER"
+msgstr "HORDOZÓ"
+
+#. 0
+#: ../cli/src/devices.c:122
+msgid "WEP"
+msgstr "WEP"
+
+#. 1
+#: ../cli/src/devices.c:123
+msgid "WPA"
+msgstr "WPA"
+
+#. 2
+#: ../cli/src/devices.c:124
+msgid "WPA2"
+msgstr "WPA2"
+
+#. 3
+#: ../cli/src/devices.c:125
+msgid "TKIP"
+msgstr "TKIP"
+
+#. 4
+#: ../cli/src/devices.c:126
+msgid "CCMP"
+msgstr "CCMP"
+
+#. 0
+#: ../cli/src/devices.c:135 ../cli/src/devices.c:146
+msgid "ADDRESS"
+msgstr "CÃM"
+
+#. 1
+#: ../cli/src/devices.c:136 ../cli/src/devices.c:147
+msgid "PREFIX"
+msgstr "ELÅTAG"
+
+#. 2
+#: ../cli/src/devices.c:137 ../cli/src/devices.c:148
+msgid "GATEWAY"
+msgstr "ÃTJÃRÓ"
+
+#. 0
+#: ../cli/src/devices.c:157 ../cli/src/devices.c:166
+msgid "DNS"
+msgstr "DNS"
+
+#. 0
+#: ../cli/src/devices.c:175
+msgid "SSID"
+msgstr "SSID"
+
+#. 1
+#: ../cli/src/devices.c:176
+msgid "BSSID"
+msgstr "BSSID"
+
+#. 2
+#: ../cli/src/devices.c:177
+msgid "MODE"
+msgstr "MÓD"
+
+#. 3
+#: ../cli/src/devices.c:178
+msgid "FREQ"
+msgstr "FREK"
+
+#. 4
+#: ../cli/src/devices.c:179
+msgid "RATE"
+msgstr "SEBESSÉG"
+
+#. 5
+#: ../cli/src/devices.c:180
+msgid "SIGNAL"
+msgstr "SZIGNÃL"
+
+#. 6
+#: ../cli/src/devices.c:181
+msgid "SECURITY"
+msgstr "BIZTONSÃG"
+
+#. 7
+#: ../cli/src/devices.c:182
+msgid "WPA-FLAGS"
+msgstr "WPA-JELZÅK"
+
+#. 8
+#: ../cli/src/devices.c:183
+msgid "RSN-FLAGS"
+msgstr "RSN-JELZÅK"
+
+#. 10
+#: ../cli/src/devices.c:185
+msgid "ACTIVE"
+msgstr "AKTÃV"
+
+#: ../cli/src/devices.c:208
+#, c-format
+msgid ""
+"Usage: nmcli dev { COMMAND | help }\n"
+"\n"
+" COMMAND := { status | list | disconnect | wifi }\n"
+"\n"
+" status\n"
+" list [iface <iface>]\n"
+" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
+" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
+"\n"
+msgstr ""
+"Használat: nmcli dev { PARANCS | help }\n"
+"\n"
+" PARANCS := { status | list | disconnect | wifi }\n"
+"\n"
+" status\n"
+" list [iface <csatoló>]\n"
+" disconnect iface <csatoló> [--nowait] [--timeout <időkorlát>]\n"
+" wifi [list [iface <csatoló>] [hwaddr <hwcím>]]\n"
+"\n"
+
+#: ../cli/src/devices.c:228
+msgid "unmanaged"
+msgstr "kezeletlen"
+
+#: ../cli/src/devices.c:230
+msgid "unavailable"
+msgstr "elérhetetlen"
+
+#: ../cli/src/devices.c:232 ../cli/src/network-manager.c:91
+msgid "disconnected"
+msgstr "leválasztva"
+
+#: ../cli/src/devices.c:234
+msgid "connecting (prepare)"
+msgstr "kapcsolódás (előkészítés)"
+
+#: ../cli/src/devices.c:236
+msgid "connecting (configuring)"
+msgstr "kapcsolódás (konfigurálás)"
+
+#: ../cli/src/devices.c:238
+msgid "connecting (need authentication)"
+msgstr "kapcsolódás (hitelesítés szükséges)"
+
+#: ../cli/src/devices.c:240
+msgid "connecting (getting IP configuration)"
+msgstr "kapcsolódás (IP-beállítások lekérése)"
+
+#: ../cli/src/devices.c:242 ../cli/src/network-manager.c:89
+msgid "connected"
+msgstr "kapcsolódva"
+
+#: ../cli/src/devices.c:244
+msgid "connection failed"
+msgstr "kapcsolódás sikertelen"
+
+#: ../cli/src/devices.c:267 ../cli/src/devices.c:424
+msgid "Unknown"
+msgstr "Ismeretlen"
+
+#: ../cli/src/devices.c:299
+msgid "(none)"
+msgstr "(semmi)"
+
+#: ../cli/src/devices.c:324
+#, c-format
+msgid "%s: error converting IP4 address 0x%X"
+msgstr "%s: hiba az IP4 cím (0x%X) konvertálásakor"
+
+#: ../cli/src/devices.c:393
+#, c-format
+msgid "%u MHz"
+msgstr "%u MHz"
+
+#: ../cli/src/devices.c:394
+#, c-format
+msgid "%u MB/s"
+msgstr "%u MB/s"
+
+#: ../cli/src/devices.c:403
+msgid "Encrypted: "
+msgstr "Titkosított: "
+
+#: ../cli/src/devices.c:408
+msgid "WEP "
+msgstr "WEP "
+
+#: ../cli/src/devices.c:410
+msgid "WPA "
+msgstr "WPA "
+
+#: ../cli/src/devices.c:412
+msgid "WPA2 "
+msgstr "WPA2 "
+
+#: ../cli/src/devices.c:415
+msgid "Enterprise "
+msgstr "Enterprise "
+
+#: ../cli/src/devices.c:424
+msgid "Ad-Hoc"
+msgstr "Eseti"
+
+#: ../cli/src/devices.c:424
+msgid "Infrastructure"
+msgstr "Infrastruktúra"
+
+#: ../cli/src/devices.c:486
+#, c-format
+msgid "Error: 'dev list': %s"
+msgstr "Hiba: „dev listâ€: %s"
+
+#: ../cli/src/devices.c:488
+#, c-format
+msgid "Error: 'dev list': %s; allowed fields: %s"
+msgstr "Hiba: „dev listâ€: %s; engedélyezett mezÅ‘k: %s"
+
+#: ../cli/src/devices.c:497
+msgid "Device details"
+msgstr "Eszköz részletei"
+
+#: ../cli/src/devices.c:527 ../cli/src/devices.c:925
+msgid "(unknown)"
+msgstr "(ismeretlen)"
+
+#: ../cli/src/devices.c:528
+msgid "unknown)"
+msgstr "ismeretlen)"
+
+#: ../cli/src/devices.c:554
+#, c-format
+msgid "%u Mb/s"
+msgstr "%u Mb/s"
+
+#. Print header
+#. "WIRED-PROPERTIES"
+#: ../cli/src/devices.c:627
+msgid "on"
+msgstr "be"
+
+#: ../cli/src/devices.c:627
+msgid "off"
+msgstr "ki"
+
+#: ../cli/src/devices.c:808
+#, c-format
+msgid "Error: 'dev status': %s"
+msgstr "Hiba: „dev statusâ€: %s"
+
+#: ../cli/src/devices.c:810
+#, c-format
+msgid "Error: 'dev status': %s; allowed fields: %s"
+msgstr "Hiba: „dev statusâ€: %s; engedélyezett mezÅ‘k: %s"
+
+#: ../cli/src/devices.c:817
+msgid "Status of devices"
+msgstr "Eszközök állapota"
+
+#: ../cli/src/devices.c:845
+#, c-format
+msgid "Error: '%s' argument is missing."
+msgstr "Hiba: „%s†argumentum hiányzik."
+
+#: ../cli/src/devices.c:874 ../cli/src/devices.c:1013
+#: ../cli/src/devices.c:1136
+#, c-format
+msgid "Error: Device '%s' not found."
+msgstr "Hiba: a(z) „%s†eszköz nem található."
+
+#: ../cli/src/devices.c:897
+#, c-format
+msgid "Success: Device '%s' successfully disconnected."
+msgstr "Siker: a(z) „%s†eszköz sikeresen leválasztva."
+
+#: ../cli/src/devices.c:922
+#, c-format
+msgid "Error: Device '%s' (%s) disconnecting failed: %s"
+msgstr "Hiba: a(z) „%s†(%s) eszköz leválasztása meghiúsult: %s"
+
+#: ../cli/src/devices.c:930
+#, c-format
+msgid "Device state: %d (%s)\n"
+msgstr "Eszköz állapota: %d (%s)\n"
+
+#: ../cli/src/devices.c:994
+#, c-format
+msgid "Error: iface has to be specified."
+msgstr "Hiba: meg kell adni a csatolót."
+
+#: ../cli/src/devices.c:1112
+#, c-format
+msgid "Error: 'dev wifi': %s"
+msgstr "Hiba: „dev wifiâ€: %s"
+
+#: ../cli/src/devices.c:1114
+#, c-format
+msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgstr "Hiba: „dev wifiâ€: %s; engedélyezett mezÅ‘k: %s"
+
+#: ../cli/src/devices.c:1121
+msgid "WiFi scan list"
+msgstr "WiFi-keresési lista"
+
+#: ../cli/src/devices.c:1156 ../cli/src/devices.c:1210
+#, c-format
+msgid "Error: Access point with hwaddr '%s' not found."
+msgstr "Hiba: nem található a(z) „%s†hwcímű hozzáférési pont,"
+
+#: ../cli/src/devices.c:1173
+#, c-format
+msgid "Error: Device '%s' is not a WiFi device."
+msgstr "Hiba: a(z) „%s†eszköz nem WiFi-eszköz."
+
+#: ../cli/src/devices.c:1237
+#, c-format
+msgid "Error: 'dev wifi' command '%s' is not valid."
+msgstr "Hiba: a „dev wifi†parancs („%s) nem érvényes."
+
+#: ../cli/src/devices.c:1284
+#, c-format
+msgid "Error: 'dev' command '%s' is not valid."
+msgstr "Hiba: a „dev†parancs („%s) nem érvényes."
+
+#: ../cli/src/network-manager.c:35
+msgid "RUNNING"
+msgstr "FUT"
+
+#. 1
+#: ../cli/src/network-manager.c:37
+msgid "NET-ENABLED"
+msgstr "NET-KÉPES"
+
+#. 2
+#: ../cli/src/network-manager.c:38
+msgid "WIFI-HARDWARE"
+msgstr "WIFI-HARDVER"
+
+#. 3
+#: ../cli/src/network-manager.c:39
+msgid "WIFI"
+msgstr "WIFI"
+
+#. 4
+#: ../cli/src/network-manager.c:40
+msgid "WWAN-HARDWARE"
+msgstr "WWAN-HARDVER"
+
+#. 5
+#: ../cli/src/network-manager.c:41
+msgid "WWAN"
+msgstr "WWAN"
+
+#: ../cli/src/network-manager.c:64
+#, c-format
+#| msgid ""
+#| "Usage: nmcli nm { COMMAND | help }\n"
+#| "\n"
+#| " COMMAND := { status | sleep | wakeup | wifi | wwan }\n"
+#| "\n"
+#| " status\n"
+#| " sleep\n"
+#| " wakeup\n"
+#| " wifi [on|off]\n"
+#| " wwan [on|off]\n"
+#| "\n"
+msgid ""
+"Usage: nmcli nm { COMMAND | help }\n"
+"\n"
+" COMMAND := { status | enable | sleep | wifi | wwan }\n"
+"\n"
+" status\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
+" wifi [on|off]\n"
+" wwan [on|off]\n"
+"\n"
+msgstr ""
+"Használat: nmcli nm { PARANCS | help }\n"
+"\n"
+" PARANCS := { status | enable | sleep | wifi | wwan }\n"
+"\n"
+" status\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
+" wifi [on|off]\n"
+" wwan [on|off]\n"
+"\n"
+
+#: ../cli/src/network-manager.c:85
+msgid "asleep"
+msgstr "alszik"
+
+#: ../cli/src/network-manager.c:87
+msgid "connecting"
+msgstr "csatlakozás"
+
+#: ../cli/src/network-manager.c:128
+#, c-format
+msgid "Error: 'nm status': %s"
+msgstr "Hiba: „nm statusâ€: %s"
+
+#: ../cli/src/network-manager.c:130
+#, c-format
+msgid "Error: 'nm status': %s; allowed fields: %s"
+msgstr "Hiba: „nm statusâ€: %s; engedélyezett mezÅ‘k: %s"
+
+#: ../cli/src/network-manager.c:137
+msgid "NetworkManager status"
+msgstr "Hálózatkezelő állapota"
+
+#. Print header
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "enabled"
+msgstr "engedélyezve"
+
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "disabled"
+msgstr "letiltva"
+
+#: ../cli/src/network-manager.c:152
+msgid "running"
+msgstr "fut"
+
+#: ../cli/src/network-manager.c:152
+msgid "not running"
+msgstr "nem fut"
+
+#: ../cli/src/network-manager.c:175
+#, c-format
+#| msgid "Error: could not connect to D-Bus."
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Hiba: nem lehet a rendszerbuszhoz kapcsolódni: %s"
+
+#: ../cli/src/network-manager.c:186
+#, c-format
+#| msgid "Error: could not connect to D-Bus."
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Hiba: nem lehet a D-Bus objektumproxyhoz kapcsolódni."
+
+#: ../cli/src/network-manager.c:192
+#, c-format
+#| msgid "Error: 'con list': %s"
+msgid "Error in sleep: %s"
+msgstr "Hiba az alváskor: %s"
+
+#: ../cli/src/network-manager.c:237 ../cli/src/network-manager.c:286
+#: ../cli/src/network-manager.c:318
+#, c-format
+msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
+msgstr "Hiba: a(z) „%s†„--fields†érték itt nem érvényes; engedélyezett mezők: %s"
+
+#: ../cli/src/network-manager.c:245
+#| msgid "WiFi enabled"
+msgid "Networking enabled"
+msgstr "Hálózatkezelés engedélyezve"
+
+#: ../cli/src/network-manager.c:256
+#, c-format
+#| msgid "Error: invalid 'wwan' parameter: '%s'."
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr "Hiba: érvénytelen „enable†paraméter: „%sâ€; használja a „true†vagy „false†egyikét."
+
+#: ../cli/src/network-manager.c:265
+#, c-format
+#| msgid "Error: Could not connect to NetworkManager."
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Hiba: a Hálózatkezelő nem exportálta az alvási állapotot."
+
+#: ../cli/src/network-manager.c:273
+#, c-format
+#| msgid "Error: invalid 'wifi' parameter: '%s'."
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
+msgstr "Hiba: érvénytelen „sleep†paraméter: „%sâ€; használja a „true†vagy „false†egyikét."
+
+#: ../cli/src/network-manager.c:294
+msgid "WiFi enabled"
+msgstr "WiFi engedélyezve"
+
+#: ../cli/src/network-manager.c:305
+#, c-format
+msgid "Error: invalid 'wifi' parameter: '%s'."
+msgstr "Hiba: érvénytelen „wifi†paraméter: „%sâ€."
+
+#: ../cli/src/network-manager.c:326
+msgid "WWAN enabled"
+msgstr "WWAN engedélyezve"
+
+#: ../cli/src/network-manager.c:337
+#, c-format
+msgid "Error: invalid 'wwan' parameter: '%s'."
+msgstr "Hiba: érvénytelen „wwan†paraméter: „%sâ€."
+
+#: ../cli/src/network-manager.c:348
+#, c-format
+msgid "Error: 'nm' command '%s' is not valid."
+msgstr "Hiba: a(z) „%s†„nm†parancs nem érvényes."
+
+#: ../cli/src/nmcli.c:69
+#, c-format
+msgid ""
+"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
+"\n"
+"OPTIONS\n"
+" -t[erse] terse output\n"
+" -p[retty] pretty output\n"
+" -m[ode] tabular|multiline output mode\n"
+" -f[ields] <field1,field2,...>|all|common specify fields to output\n"
+" -e[scape] yes|no escape columns separators in "
+"values\n"
+" -v[ersion] show program version\n"
+" -h[elp] print this help\n"
+"\n"
+"OBJECT\n"
+" nm NetworkManager status\n"
+" con NetworkManager connections\n"
+" dev devices managed by NetworkManager\n"
+"\n"
+msgstr ""
+"Használat: %s [KAPCSOLÓK] OBJEKTUM { PARANCS | help }\n"
+"\n"
+"KAPCSOLÓK\n"
+" -t[erse] tömör kimenet\n"
+" -p[retty] szép kimenet\n"
+" -m[ode] tabular|multiline kimeneti mód\n"
+" -f[ields] <mező1,mező2,…>|all|common kiírandó mezők megadása\n"
+" -e[scape] yes|no oszlopelválasztók escape-lése "
+"az értékekben\n"
+" -v[ersion] programverzió kiírása\n"
+" -h[elp] ezen súgó kiírása\n"
+"\n"
+"OBJEKTUM\n"
+" nm Hálózatkezelő állapota\n"
+" con Hálózatkezelő kapcsolatai\n"
+" dev A Hálózatkezelő által kezelt eszközök\n"
+"\n"
+
+#: ../cli/src/nmcli.c:113
+#, c-format
+msgid "Error: Object '%s' is unknown, try 'nmcli help'."
+msgstr "Hiba: a(z) „%s†objektum ismeretlen, adja ki az „nmcli help†parancsot."
+
+#: ../cli/src/nmcli.c:143
+#, c-format
+msgid "Error: Option '--terse' is specified the second time."
+msgstr "Hiba: a „--terse†kapcsoló másodszor lett megadva."
+
+#: ../cli/src/nmcli.c:148
+#, c-format
+msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
+msgstr "Hiba: a „--terse†és a „--pretty†kapcsolók kölcsönösen kizáróak."
+
+#: ../cli/src/nmcli.c:156
+#, c-format
+msgid "Error: Option '--pretty' is specified the second time."
+msgstr "Hiba: a „--pretty†kapcsoló másodszor lett megadva."
+
+#: ../cli/src/nmcli.c:161
+#, c-format
+msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
+msgstr "Hiba: a „--pretty†és „--terse†kapcsolók kölcsönösen kizáróak."
+
+#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
+#, c-format
+msgid "Error: missing argument for '%s' option."
+msgstr "Hiba: a(z) „%s†kapcsoló argumentuma hiányzik."
+
+#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
+#, c-format
+msgid "Error: '%s' is not valid argument for '%s' option."
+msgstr "Hiba: „%s†nem érvényes argumentum a(z) „%s†kapcsolóhoz."
+
+#: ../cli/src/nmcli.c:203
+#, c-format
+msgid "Error: fields for '%s' options are missing."
+msgstr "Hiba: a(z) „%s†kapcsoló mezői hiányoznak."
+
+#: ../cli/src/nmcli.c:209
+#, c-format
+msgid "nmcli tool, version %s\n"
+msgstr "nmcli eszköz, %s verzió\n"
+
+#: ../cli/src/nmcli.c:215
+#, c-format
+msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
+msgstr "Hiba: a(z) „%s†kapcsoló ismeretlen, adja ki az „nmcli-help†parancsot."
+
+#: ../cli/src/nmcli.c:234
+#, c-format
+msgid "Caught signal %d, shutting down..."
+msgstr "%d szignál érkezett, leállítás…"
+
+#: ../cli/src/nmcli.c:259
+#, c-format
+msgid "Error: Could not connect to NetworkManager."
+msgstr "Hiba: nem lehet kapcsolódni a Hálózatkezelőhöz."
+
+#: ../cli/src/nmcli.c:275
+msgid "Success"
+msgstr "Siker"
+
+#: ../cli/src/settings.c:411
+#, c-format
+msgid "%d (hex-ascii-key)"
+msgstr "%d (hex-ascii-kulcs)"
+
+#: ../cli/src/settings.c:413
+#, c-format
+msgid "%d (104/128-bit passphrase)"
+msgstr "%d (104/128 bites jelmondat)"
+
+#: ../cli/src/settings.c:416
+#, c-format
+msgid "%d (unknown)"
+msgstr "%d (ismeretlen)"
+
+#: ../cli/src/settings.c:442
+msgid "0 (unknown)"
+msgstr "0 (ismeretlen)"
+
+#: ../cli/src/settings.c:448
+msgid "any, "
+msgstr "bármely, "
+
+#: ../cli/src/settings.c:450
+msgid "900 MHz, "
+msgstr "900 MHz, "
+
+#: ../cli/src/settings.c:452
+msgid "1800 MHz, "
+msgstr "1800 MHz, "
+
+#: ../cli/src/settings.c:454
+msgid "1900 MHz, "
+msgstr "1900 MHz, "
+
+#: ../cli/src/settings.c:456
+msgid "850 MHz, "
+msgstr "850 MHz, "
+
+#: ../cli/src/settings.c:458
+msgid "WCDMA 3GPP UMTS 2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 2100 MHz, "
+
+#: ../cli/src/settings.c:460
+msgid "WCDMA 3GPP UMTS 1800 MHz, "
+msgstr "WCDMA 3GPP UMTS 1800 MHz, "
+
+#: ../cli/src/settings.c:462
+msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
+
+#: ../cli/src/settings.c:464
+msgid "WCDMA 3GPP UMTS 800 MHz, "
+msgstr "WCDMA 3GPP UMTS 800 MHz, "
+
+#: ../cli/src/settings.c:466
+msgid "WCDMA 3GPP UMTS 850 MHz, "
+msgstr "WCDMA 3GPP UMTS 850 MHz, "
+
+#: ../cli/src/settings.c:468
+msgid "WCDMA 3GPP UMTS 900 MHz, "
+msgstr "WCDMA 3GPP UMTS 900 MHz, "
+
+#: ../cli/src/settings.c:470
+msgid "WCDMA 3GPP UMTS 1700 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700 MHz, "
+
+#: ../cli/src/settings.c:554 ../cli/src/settings.c:721
+msgid "auto"
+msgstr "auto"
+
+#: ../cli/src/settings.c:716 ../cli/src/settings.c:719
+#: ../cli/src/settings.c:720 ../cli/src/utils.c:172
+msgid "not set"
+msgstr "nincs beállítva"
+
+#: ../cli/src/utils.c:124
+#, c-format
+msgid "field '%s' has to be alone"
+msgstr "a(z) „%s†mezőnek önállónak kell lennie"
+
+#: ../cli/src/utils.c:127
+#, c-format
+msgid "invalid field '%s'"
+msgstr "érvénytelen mezÅ‘: „%sâ€"
+
+#: ../cli/src/utils.c:146
+#, c-format
+msgid "Option '--terse' requires specifying '--fields'"
+msgstr "A „--terse†megköveteli a „--fields†megadását."
+
+#: ../cli/src/utils.c:150
+#, c-format
+msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
+msgstr "A „--terse†adott „--fields†kapcsolóértékeket követel meg, nem ezt: „%sâ€."
+
#: ../libnm-util/crypto.c:120
#, c-format
msgid "PEM key file had no end tag '%s'."
@@ -104,7 +1322,7 @@ msgstr "Az IV nem hexadecimális számjegyeket tartalmaz."
#: ../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:335
+#: ../libnm-util/crypto_nss.c:336
#, c-format
msgid "Private key cipher '%s' was unknown."
msgstr "A(z) „%s†személyeskulcs-titkosító ismeretlen."
@@ -163,17 +1381,17 @@ msgstr "Az IV beállítása meghiúsult a visszafejtéshez: %s / %s."
msgid "Failed to decrypt the private key: %s / %s."
msgstr "A személyes kulcs visszafejtése meghiúsult: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:266
+#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
#, c-format
msgid "Failed to decrypt the private key: unexpected padding length."
msgstr "A személyes kulcs visszafejtése meghiúsult: váratlan kitöltéshossz."
-#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:277
+#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
#, c-format
msgid "Failed to decrypt the private key."
msgstr "A személyes kulcs visszafejtése meghiúsult."
-#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:355
+#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
#, c-format
msgid "Could not allocate memory for encrypting."
msgstr "Nem sikerült memóriát foglalni a titkosításhoz."
@@ -223,7 +1441,7 @@ msgstr "A PKCS#12 fájl nem fejthető vissza: %s"
msgid "Couldn't verify PKCS#12 file: %s"
msgstr "A PKCS#12 fájl nem ellenőrizhető: %s"
-#: ../libnm-util/crypto_nss.c:57
+#: ../libnm-util/crypto_nss.c:56
#, c-format
msgid "Failed to initialize the crypto engine: %d."
msgstr "A titkosító alrendszer előkészítése meghiúsult: %d."
@@ -266,153 +1484,259 @@ msgstr "A személyes kulcs visszafejtése meghiúsult: %d."
#: ../libnm-util/crypto_nss.c:245
#, c-format
msgid "Failed to decrypt the private key: decrypted data too large."
-msgstr "A személyes kulcs visszafejtése meghiúsult: a visszafejtett adatok túl nagyok."
+msgstr ""
+"A személyes kulcs visszafejtése meghiúsult: a visszafejtett adatok túl "
+"nagyok."
#: ../libnm-util/crypto_nss.c:256
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
msgstr "A személyes kulcs visszafejtésének befejezése meghiúsult: %d."
-#: ../libnm-util/crypto_nss.c:363
+#: ../libnm-util/crypto_nss.c:364
#, c-format
msgid "Failed to initialize the encryption cipher slot."
msgstr "A titkosítóhely előkészítése meghiúsult."
-#: ../libnm-util/crypto_nss.c:371
+#: ../libnm-util/crypto_nss.c:372
#, c-format
msgid "Failed to set symmetric key for encryption."
msgstr "A szimmetrikus kulcs nem állítható be a titkosításhoz."
-#: ../libnm-util/crypto_nss.c:379
+#: ../libnm-util/crypto_nss.c:380
#, c-format
msgid "Failed to set IV for encryption."
msgstr "Az IV nem állítható be a titkosításhoz."
-#: ../libnm-util/crypto_nss.c:387
+#: ../libnm-util/crypto_nss.c:388
#, c-format
msgid "Failed to initialize the encryption context."
msgstr "A titkosítási kontextus előkészítése meghiúsult."
-#: ../libnm-util/crypto_nss.c:395
+#: ../libnm-util/crypto_nss.c:396
#, c-format
msgid "Failed to encrypt: %d."
msgstr "A titkosítás meghiúsult: %d."
-#: ../libnm-util/crypto_nss.c:403
+#: ../libnm-util/crypto_nss.c:404
#, c-format
msgid "Unexpected amount of data after encrypting."
msgstr "Váratlan mennyiségű adat a titkosítás után."
-#: ../libnm-util/crypto_nss.c:446
+#: ../libnm-util/crypto_nss.c:447
#, c-format
msgid "Couldn't decode certificate: %d"
msgstr "A tanúsítvány nem fejthető vissza: %d"
-#: ../libnm-util/crypto_nss.c:481
+#: ../libnm-util/crypto_nss.c:482
#, c-format
msgid "Couldn't convert password to UCS2: %d"
msgstr "A jelszó nem alakítható UCS2 formátumra: %d"
-#: ../libnm-util/crypto_nss.c:509
+#: ../libnm-util/crypto_nss.c:510
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %d"
msgstr "A PKCS#12 dekódoló nem készíthető elő: %d"
-#: ../libnm-util/crypto_nss.c:518
+#: ../libnm-util/crypto_nss.c:519
#, c-format
msgid "Couldn't decode PKCS#12 file: %d"
msgstr "A PKCS#12 fájl nem fejthető vissza: %d"
-#: ../libnm-util/crypto_nss.c:527
+#: ../libnm-util/crypto_nss.c:528
#, c-format
msgid "Couldn't verify PKCS#12 file: %d"
msgstr "A PKCS#12 fájl nem ellenőrizhető: %d"
-#: ../libnm-util/crypto_nss.c:556
+#: ../libnm-util/crypto_nss.c:557
msgid "Could not generate random data."
msgstr "Nem sikerült a véletlen adatok előállítása."
-#: ../libnm-util/nm-utils.c:1522
+#: ../libnm-util/nm-utils.c:1975
#, c-format
msgid "Not enough memory to make encryption key."
msgstr "Nincs elég memória titkosítási kulcs készítéséhez."
-#: ../libnm-util/nm-utils.c:1633
+#: ../libnm-util/nm-utils.c:2085
msgid "Could not allocate memory for PEM file creation."
msgstr "Nem sikerült memóriát foglalni PEM fájl készítéséhez."
-#: ../libnm-util/nm-utils.c:1645
+#: ../libnm-util/nm-utils.c:2097
#, c-format
msgid "Could not allocate memory for writing IV to PEM file."
msgstr "Nem sikerült memóriát foglalni az IV írásához PEM fájlba."
-#: ../libnm-util/nm-utils.c:1657
+#: ../libnm-util/nm-utils.c:2109
#, c-format
msgid "Could not allocate memory for writing encrypted key to PEM file."
msgstr "Nem sikerült memóriát foglalni a titkosított kulcs PEM fájlba írásához."
-#: ../libnm-util/nm-utils.c:1676
+#: ../libnm-util/nm-utils.c:2128
#, c-format
msgid "Could not allocate memory for PEM file data."
msgstr "Nem sikerült memóriát foglalni a PEM fájl adatainak."
-#: ../src/nm-netlink-monitor.c:194 ../src/nm-netlink-monitor.c:464
-#: ../src/nm-netlink-monitor.c:569
-#: ../src/ip6-manager/nm-netlink-listener.c:352
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
+msgid "Connection sharing via a protected WiFi network"
+msgstr "Kapcsolatmegosztás védett WiFi hálózaton"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
+msgid "Connection sharing via an open WiFi network"
+msgstr "Kapcsolatmegosztás nyílt WiFi hálózaton"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
+msgid "Modify persistent system hostname"
+msgstr "Ãllandó rendszergépnév módosítása"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
+msgid "Modify system connections"
+msgstr "Rendszerkapcsolatok módosítása"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
+msgid "System policy prevents modification of system settings"
+msgstr "A rendszer házirendje megakadályozza a rendszerbeállítások módosítását"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr ""
+"A rendszer házirendje megakadályozza a rendszer állandó gépnevének "
+"módosítását"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr ""
+"A rendszer házirendje megakadályozza a kapcsolatok megosztását védett WiFi "
+"hálózaton"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr ""
+"A rendszer házirendje megakadályozza a kapcsolatok megosztását nyílt WiFi "
+"hálózaton"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+msgid "Allow control of network connections"
+msgstr "Hálózati kapcsolatok felügyeletének engedélyezése"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Allow use of user-specific connections"
+msgstr "Felhasználói szintű kapcsolatok engedélyezése"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Enable or disable WiFi devices"
+msgstr "WiFi eszközök be- és kikapcsolása"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable mobile broadband devices"
+msgstr "Mobil széles sávú eszközök be- és kikapcsolása"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+msgid "Enable or disable system networking"
+msgstr "Rendszer hálózatkezelésének be- és kikapcsolása"
+
+#: ../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 ""
+"Hálózatkezelő elaltatása vagy felébresztése (csak a rendszer "
+"energiagazdálkodása által használandó)"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid "System policy prevents control of network connections"
+msgstr "A rendszer házirendje megakadályozza a hálózati kapcsolatok felügyeletét"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr "A rendszer házirendje megakadályozza a WiFi eszközök be- vagy kikapcsolását"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr ""
+"A rendszer házirendje megakadályozza a mobil széles sávú eszközök be- vagy "
+"kikapcsolását"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid "System policy prevents enabling or disabling system networking"
+msgstr ""
+"A rendszer házirendje megakadályozza a rendszer hálózatkezelésének be- vagy "
+"kikapcsolását"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr ""
+"A rendszer házirendje megakadályozza a Hálózatkezelő elaltatását vagy "
+"felébresztését"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents use of user-specific connections"
+msgstr "A rendszer házirendje megakadályozza a felhasználói kapcsolatok használatát"
+
+#: ../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 "hiba a netlink üzenet feldolgozásakor: %s"
-#: ../src/nm-netlink-monitor.c:260
-#, c-format
-msgid "unable to allocate netlink handle for monitoring link status: %s"
-msgstr ""
-"nem lehet netlink kezelőt lefoglalni a kapcsolat állapotának megfigyelése "
-"érdekében: %s"
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "hiba lépett fel adatokra várakozás közben a foglalaton"
-#: ../src/nm-netlink-monitor.c:270
+#: ../src/nm-netlink-monitor.c:254
#, c-format
msgid "unable to connect to netlink for monitoring link status: %s"
msgstr ""
"nem lehet kapcsolódni a netlinkhez a kapcsolat állapotának megfigyelése "
"érdekében: %s"
-#: ../src/nm-netlink-monitor.c:278
+#: ../src/nm-netlink-monitor.c:265
#, c-format
-msgid "unable to join netlink group for monitoring link status: %s"
+msgid "unable to enable netlink handle credential passing: %s"
msgstr ""
-"nem lehet csatlakozni a netlink csoporthoz a kapcsolat állapotának "
-"megfigyelése érdekében: %s"
+"nem engedélyezhető a hálózati kapcsolatkezelő hitelesítési adatainak "
+"átadása: %s"
+
+#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
+#, c-format
+msgid "unable to allocate netlink handle for monitoring link status: %s"
+msgstr ""
+"nem lehet netlink kezelőt lefoglalni a kapcsolat állapotának megfigyelése "
+"érdekében: %s"
-#: ../src/nm-netlink-monitor.c:286
+#: ../src/nm-netlink-monitor.c:376
#, c-format
msgid "unable to allocate netlink link cache for monitoring link status: %s"
msgstr ""
"nem lehet netlink kapcsolat-gyorsítótárat lefoglalni a kapcsolat állapotának "
"megfigyelése érdekében: %s"
-#: ../src/nm-netlink-monitor.c:494
-#: ../src/ip6-manager/nm-netlink-listener.c:382
-msgid "error occurred while waiting for data on socket"
-msgstr "hiba lépett fel adatokra várakozás közben a foglalaton"
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "nem lehet csatlakozni a netlink csoporthoz: %s"
-#: ../src/nm-netlink-monitor.c:558
+#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
#, c-format
msgid "error updating link cache: %s"
msgstr "hiba a kapcsolat gyorsítótárának frissítésekor: %s"
-#: ../src/NetworkManager.c:330
+#: ../src/main.c:499
#, c-format
msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgstr ""
"Érvénytelen kapcsoló. Az érvényes kapcsolók listájáért használja a --help "
"kapcsolót.\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:304
+#: ../src/main.c:570
+#, c-format
+msgid "%s. Please use --help to see a list of valid options.\n"
+msgstr "%s. Használja a --help kapcsolót az érvényes kapcsolókért.\n"
+
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328
msgid "# Created by NetworkManager\n"
-msgstr "# Készítette a NetworkManager\n"
+msgstr "# Készítette a Hálózatkezelő\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:310
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344
#, c-format
msgid ""
"# Merged from %s\n"
@@ -421,73 +1745,48 @@ msgstr ""
"# Összefésülve ebből: %s\n"
"\n"
-#: ../src/ip6-manager/nm-netlink-listener.c:200
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
+msgid "no usable DHCP client could be found."
+msgstr "nem található használható DHCP-kliens."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
+msgid "'dhclient' could be found."
+msgstr "A „dhclient†nem használható."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
+msgid "'dhcpcd' could be found."
+msgstr "A „dhcpd†nem használható."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
#, c-format
-msgid "unable to allocate netlink handle: %s"
-msgstr "nem lehet netlink kezelőt lefoglalni: %s"
+msgid "unsupported DHCP client '%s'"
+msgstr "nem támogatott DHCP-kliens („%sâ€)"
-#: ../src/ip6-manager/nm-netlink-listener.c:210
+#: ../src/logging/nm-logging.c:146
#, c-format
-msgid "unable to connect to netlink: %s"
-msgstr "nem lehet kapcsolódni a netlinkhez: %s"
+msgid "Unknown log level '%s'"
+msgstr "Ismeretlen naplózási szint: „%sâ€"
-#: ../src/ip6-manager/nm-netlink-listener.c:307
+#: ../src/logging/nm-logging.c:171
#, c-format
-msgid "unable to join netlink group: %s"
-msgstr "nem lehet csatlakozni a netlink csoporthoz: %s"
+msgid "Unknown log domain '%s'"
+msgstr "Ismeretlen naplózási tartomány: „%sâ€"
-#: ../src/dns-manager/nm-dns-manager.c:315
+#: ../src/dns-manager/nm-dns-manager.c:384
msgid "NOTE: the libc resolver may not support more than 3 nameservers."
msgstr "MEGJEGYZÉS: a libc feloldó nem támogat háromnál több névkiszolgálót."
-#: ../src/dns-manager/nm-dns-manager.c:317
+#: ../src/dns-manager/nm-dns-manager.c:386
msgid "The nameservers listed below may not be recognized."
msgstr "Az alább felsorolt névkiszolgálók lehet, hogy nem kerülnek felismerésre."
-#: ../src/system-settings/nm-default-wired-connection.c:194
+#: ../src/system-settings/nm-default-wired-connection.c:157
#, c-format
msgid "Auto %s"
msgstr "Automatikus %s"
-#: ../system-settings/plugins/ifcfg-rh/reader.c:2406
+#: ../system-settings/plugins/ifcfg-rh/reader.c:3412
+#: ../system-settings/plugins/ifnet/connection_parser.c:49
msgid "System"
msgstr "Rendszer"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
-msgid "Connection sharing via a protected WiFi network"
-msgstr "Kapcsolatmegosztás védett WiFi hálózaton"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
-msgid "Connection sharing via an open WiFi network"
-msgstr "Kapcsolatmegosztás nyílt WiFi hálózaton"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
-msgid "Modify persistent system hostname"
-msgstr "Ãllandó rendszergépnév módosítása"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
-msgid "Modify system connections"
-msgstr "Rendszerkapcsolatok módosítása"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
-msgid "System policy prevents modification of system settings"
-msgstr "A rendszer házirendje megakadályozza a rendszerbeállítások módosítását"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
-msgid "System policy prevents modification of the persistent system hostname"
-msgstr ""
-"A rendszer házirendje megakadályozza a rendszer állandó gépnevének "
-"módosítását"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
-msgid "System policy prevents sharing connections via a protected WiFi network"
-msgstr ""
-"A rendszer házirendje megakadályozza a kapcsolatok megosztását védett WiFi "
-"hálózaton"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
-msgid "System policy prevents sharing connections via an open WiFi network"
-msgstr ""
-"A rendszer házirendje megakadályozza a kapcsolatok megosztását nyílt WiFi "
-"hálózaton"
-
diff --git a/po/pl.po b/po/pl.po
index cfa994a294..f1b0650d04 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,20 +7,96 @@
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-02-26 03:24+0000\n"
-"PO-Revision-Date: 2010-03-08 11:52+0100\n"
-"Last-Translator: Tomasz Dominikowski <dominikowski@gmail.com>\n"
-"Language-Team: Polish <gnomepl@aviary.pl>\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=NetworkManager&component=general\n"
+"POT-Creation-Date: 2010-09-22 03:25+0000\n"
+"PO-Revision-Date: 2010-09-22 17:43+0200\n"
+"Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
"X-Poedit-Language: Polish\n"
"X-Poedit-Country: Poland\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 "NAZWA"
-#: ../cli/src/connections.c:86
+#. 0
+#: ../cli/src/connections.c:61 ../cli/src/connections.c:76
+msgid "UUID"
+msgstr "UUID"
+
+#. 1
+#: ../cli/src/connections.c:62
+msgid "DEVICES"
+msgstr "URZÄ„DZENIA"
+
+#. 2
+#: ../cli/src/connections.c:63 ../cli/src/connections.c:78
+msgid "SCOPE"
+msgstr "ZAKRES"
+
+#. 3
+#: ../cli/src/connections.c:64
+msgid "DEFAULT"
+msgstr "DOMYÅšLNE"
+
+#. 4
+#: ../cli/src/connections.c:65
+msgid "DBUS-SERVICE"
+msgstr "USÅUGA-DBUS"
+
+#. 5
+#: ../cli/src/connections.c:66
+msgid "SPEC-OBJECT"
+msgstr "KONKRETNY-OBIEKT"
+
+#. 6
+#: ../cli/src/connections.c:67
+msgid "VPN"
+msgstr "VPN"
+
+#. 1
+#. 0
+#. 1
+#: ../cli/src/connections.c:77 ../cli/src/devices.c:62 ../cli/src/devices.c:90
+msgid "TYPE"
+msgstr "TYP"
+
+#. 3
+#: ../cli/src/connections.c:79
+msgid "TIMESTAMP"
+msgstr "OKRES-CZASU"
+
+#. 4
+#: ../cli/src/connections.c:80
+msgid "TIMESTAMP-REAL"
+msgstr "RZECZYWISTY-OKRES-CZASU"
+
+#. 5
+#: ../cli/src/connections.c:81
+msgid "AUTOCONNECT"
+msgstr "ÅÄ„CZENIE-AUTOMATYCZNE"
+
+#. 6
+#: ../cli/src/connections.c:82
+msgid "READONLY"
+msgstr "TYLKO-DO-ODCZYTU"
+
+#. 7
+#: ../cli/src/connections.c:83
+msgid "DBUS-PATH"
+msgstr "ŚCIEŻKA-DO-DBUS"
+
+#: ../cli/src/connections.c:159
#, c-format
msgid ""
"Usage: nmcli con { COMMAND | help }\n"
@@ -28,7 +104,8 @@ msgid ""
"\n"
" list [id <id> | uuid <id> | system | user]\n"
" status\n"
-" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout <timeout>]\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
+"<timeout>]\n"
" down id <id> | uuid <id>\n"
msgstr ""
"Użycie: nmcli con { POLECENIE | help }\n"
@@ -36,418 +113,528 @@ msgstr ""
"\n"
" list [id <identyfikator> | uuid <identyfikator> | system | user]\n"
" status\n"
-" up id <id> | uuid <id> [iface <interfejs>] [ap <adres_sprzętowy>] [--nowait] [--timeout <czas>]\n"
+" up id <id> | uuid <id> [iface <interfejs>] [ap <adres_sprzętowy>] [--"
+"nowait] [--timeout <czas>]\n"
" down id <identyfikator> | uuid <identyfikator>\n"
+#: ../cli/src/connections.c:199 ../cli/src/connections.c:540
+#, c-format
+msgid "Error: 'con list': %s"
+msgstr "BÅ‚Ä…d: \"con list\": %s"
+
+#: ../cli/src/connections.c:201 ../cli/src/connections.c:542
+#, c-format
+msgid "Error: 'con list': %s; allowed fields: %s"
+msgstr "BÅ‚Ä…d: \"con list\": %s; dozwolone pola: %s"
+
+#: ../cli/src/connections.c:209
+msgid "Connection details"
+msgstr "Szczegóły połączenia"
+
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+msgid "system"
+msgstr "systemowe"
+
+#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+msgid "user"
+msgstr "użytkownika"
+
+#: ../cli/src/connections.c:386
+msgid "never"
+msgstr "nigdy"
+
+#. "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
+msgid "yes"
+msgstr "tak"
-#: ../cli/src/connections.c:158
-msgid "Connections"
-msgstr "Połączenia"
-
-
-#: ../cli/src/connections.c:158
-#: ../cli/src/connections.c:160
-#: ../cli/src/connections.c:196
-#: ../cli/src/connections.c:198
-#: ../cli/src/connections.c:205
-#: ../cli/src/connections.c:207
-#: ../cli/src/devices.c:298
-#: ../cli/src/devices.c:458
-#: ../cli/src/devices.c:460
-msgid "Type"
-msgstr "Typ"
-
-
-#: ../cli/src/connections.c:158
-#: ../cli/src/connections.c:160
-#: ../cli/src/connections.c:196
-#: ../cli/src/connections.c:198
-#: ../cli/src/connections.c:205
-#: ../cli/src/connections.c:207
-#: ../cli/src/connections.c:297
-#: ../cli/src/connections.c:299
-msgid "UUID"
-msgstr "UUID"
-
-
-#: ../cli/src/connections.c:158
-#: ../cli/src/connections.c:160
-#: ../cli/src/connections.c:196
-#: ../cli/src/connections.c:198
-#: ../cli/src/connections.c:205
-#: ../cli/src/connections.c:207
-#: ../cli/src/connections.c:297
-#: ../cli/src/connections.c:299
-msgid "Name"
-msgstr "Nazwa"
-
-
-#: ../cli/src/connections.c:163
-#, c-format
-msgid "System connections:\n"
-msgstr "Połączenia systemowe:\n"
-
+#: ../cli/src/connections.c:387 ../cli/src/connections.c:388
+#: ../cli/src/connections.c:606 ../cli/src/connections.c:609
+#: ../cli/src/devices.c:432 ../cli/src/devices.c:557 ../cli/src/devices.c:583
+#: ../cli/src/devices.c:584 ../cli/src/devices.c:585 ../cli/src/devices.c:586
+#: ../cli/src/devices.c:587 ../cli/src/settings.c:508
+#: ../cli/src/settings.c:510 ../cli/src/settings.c:551
+#: ../cli/src/settings.c:652 ../cli/src/settings.c:926
+#: ../cli/src/settings.c:927 ../cli/src/settings.c:929
+#: ../cli/src/settings.c:931 ../cli/src/settings.c:1056
+#: ../cli/src/settings.c:1057 ../cli/src/settings.c:1058
+#: ../cli/src/settings.c:1137 ../cli/src/settings.c:1138
+#: ../cli/src/settings.c:1139 ../cli/src/settings.c:1140
+#: ../cli/src/settings.c:1141 ../cli/src/settings.c:1142
+#: ../cli/src/settings.c:1143 ../cli/src/settings.c:1144
+#: ../cli/src/settings.c:1145 ../cli/src/settings.c:1146
+#: ../cli/src/settings.c:1147 ../cli/src/settings.c:1148
+#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1224
+msgid "no"
+msgstr "nie"
-#: ../cli/src/connections.c:167
-#, c-format
-msgid "User connections:\n"
-msgstr "Połączenia użytkownika:\n"
+#: ../cli/src/connections.c:461 ../cli/src/connections.c:504
+msgid "System connections"
+msgstr "Połączenia systemowe"
+#: ../cli/src/connections.c:466 ../cli/src/connections.c:517
+msgid "User connections"
+msgstr "Połączenia użytkownika"
-#: ../cli/src/connections.c:178
-#: ../cli/src/connections.c:967
-#: ../cli/src/connections.c:983
-#: ../cli/src/connections.c:992
-#: ../cli/src/connections.c:1003
-#: ../cli/src/connections.c:1085
-#: ../cli/src/devices.c:604
-#: ../cli/src/devices.c:614
-#: ../cli/src/devices.c:699
-#: ../cli/src/devices.c:785
-#: ../cli/src/devices.c:792
+#: ../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
#, c-format
msgid "Error: %s argument is missing."
msgstr "BÅ‚Ä…d: brak parametru %s."
-
-#: ../cli/src/connections.c:189
+#: ../cli/src/connections.c:491
#, c-format
msgid "Error: %s - no such connection."
msgstr "Błąd: %s - nie ma takiego połączenia."
-
-#: ../cli/src/connections.c:196
-msgid "System-wide connections"
-msgstr "Połączenia systemowe"
-
-
-#: ../cli/src/connections.c:205
-msgid "User connections"
-msgstr "Połączenia użytkownika"
-
-
-#: ../cli/src/connections.c:212
-#: ../cli/src/connections.c:1016
-#: ../cli/src/connections.c:1103
-#: ../cli/src/devices.c:446
-#: ../cli/src/devices.c:494
-#: ../cli/src/devices.c:628
-#: ../cli/src/devices.c:706
-#: ../cli/src/devices.c:798
+#: ../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
#, c-format
msgid "Unknown parameter: %s\n"
msgstr "Nieznany parametr: %s\n"
-
-#: ../cli/src/connections.c:221
+#: ../cli/src/connections.c:532
#, c-format
msgid "Error: no valid parameter specified."
msgstr "Błąd: nie podano prawidłowego parametru."
+#: ../cli/src/connections.c:547 ../cli/src/connections.c:1580
+#: ../cli/src/devices.c:1293 ../cli/src/network-manager.c:359
+#, c-format
+msgid "Error: %s."
+msgstr "BÅ‚Ä…d: %s."
-#. FIXME: Fix the output
-#: ../cli/src/connections.c:268
-#: ../cli/src/devices.c:302
-#: ../cli/src/devices.c:321
-#: ../cli/src/devices.c:353
-#: ../cli/src/devices.c:355
-#: ../cli/src/devices.c:357
-#: ../cli/src/devices.c:359
-#: ../cli/src/devices.c:361
-msgid "yes"
-msgstr "tak"
-
-
-#: ../cli/src/connections.c:268
-#: ../cli/src/devices.c:304
-msgid "no"
-msgstr "nie"
+#: ../cli/src/connections.c:653
+#, c-format
+msgid "Error: 'con status': %s"
+msgstr "BÅ‚Ä…d: \"con status\": %s"
+#: ../cli/src/connections.c:655
+#, c-format
+msgid "Error: 'con status': %s; allowed fields: %s"
+msgstr "BÅ‚Ä…d: \"con status\": %s; dozwolone pola: %s"
-#: ../cli/src/connections.c:297
+#: ../cli/src/connections.c:662
msgid "Active connections"
msgstr "Aktywne połączenia"
-
-#: ../cli/src/connections.c:297
-#: ../cli/src/connections.c:299
-#: ../cli/src/devices.c:302
-#: ../cli/src/devices.c:304
-msgid "Default"
-msgstr "Domyślne"
-
-
-#: ../cli/src/connections.c:297
-#: ../cli/src/connections.c:299
-msgid "Service"
-msgstr "Usługa"
-
-
-#: ../cli/src/connections.c:297
-#: ../cli/src/connections.c:299
-msgid "Devices"
-msgstr "UrzÄ…dzenia"
-
-
-#: ../cli/src/connections.c:659
+#: ../cli/src/connections.c:1030
#, c-format
msgid "no active connection on device '%s'"
msgstr "brak aktywnych połączeń na urządzeniu \"%s\""
-
-#: ../cli/src/connections.c:667
+#: ../cli/src/connections.c:1038
#, c-format
msgid "no active connection or device"
msgstr "brak aktywnych połączeń na urządzeń"
+#: ../cli/src/connections.c:1088
+#, 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:1090
+#, c-format
+msgid "no device found for connection '%s'"
+msgstr "nie odnaleziono urządzenia dla połączenia \"%s\""
-#: ../cli/src/connections.c:730
+#: ../cli/src/connections.c:1101
msgid "activating"
msgstr "aktywowanie"
-
-#: ../cli/src/connections.c:732
+#: ../cli/src/connections.c:1103
msgid "activated"
msgstr "aktywowano"
-
-#: ../cli/src/connections.c:735
-#: ../cli/src/connections.c:758
-#: ../cli/src/connections.c:791
-#: ../cli/src/devices.c:111
-#: ../cli/src/network-manager.c:76
-#: ../cli/src/network-manager.c:98
+#: ../cli/src/connections.c:1106 ../cli/src/connections.c:1129
+#: ../cli/src/connections.c:1162 ../cli/src/devices.c:246
+#: ../cli/src/devices.c:558 ../cli/src/network-manager.c:94
+#: ../cli/src/network-manager.c:149 ../cli/src/settings.c:473
msgid "unknown"
msgstr "nieznane"
-
-#: ../cli/src/connections.c:744
+#: ../cli/src/connections.c:1115
msgid "VPN connecting (prepare)"
msgstr "ÅÄ…czenie z VPN (przygotowanie)"
-
-#: ../cli/src/connections.c:746
+#: ../cli/src/connections.c:1117
msgid "VPN connecting (need authentication)"
msgstr "ÅÄ…czenie z VPN (wymaga uwierzytelnienia)"
-
-#: ../cli/src/connections.c:748
+#: ../cli/src/connections.c:1119
msgid "VPN connecting"
msgstr "ÅÄ…czenie z VPN"
-
-#: ../cli/src/connections.c:750
+#: ../cli/src/connections.c:1121
msgid "VPN connecting (getting IP configuration)"
msgstr "ÅÄ…czenie z VPN (pobieranie konfiguracji adresu IP)"
-
-#: ../cli/src/connections.c:752
+#: ../cli/src/connections.c:1123
msgid "VPN connected"
msgstr "Połączono z VPN"
-
-#: ../cli/src/connections.c:754
+#: ../cli/src/connections.c:1125
msgid "VPN connection failed"
msgstr "Połączenie z VPN się nie powiodło"
-
-#: ../cli/src/connections.c:756
+#: ../cli/src/connections.c:1127
msgid "VPN disconnected"
msgstr "Rozłączono z VPN"
-
-#: ../cli/src/connections.c:767
+#: ../cli/src/connections.c:1138
msgid "unknown reason"
msgstr "nieznany powód"
-
-#: ../cli/src/connections.c:769
+#: ../cli/src/connections.c:1140
msgid "none"
msgstr "brak"
-
-#: ../cli/src/connections.c:771
+#: ../cli/src/connections.c:1142
msgid "the user was disconnected"
msgstr "użytkownik został rozłączony"
-
-#: ../cli/src/connections.c:773
+#: ../cli/src/connections.c:1144
msgid "the base network connection was interrupted"
msgstr "podstawowe połączenie sieciowe zostało przerwane"
-
-#: ../cli/src/connections.c:775
+#: ../cli/src/connections.c:1146
msgid "the VPN service stopped unexpectedly"
msgstr "usługa VPN została nieoczekiwanie zatrzymana"
-
-#: ../cli/src/connections.c:777
+#: ../cli/src/connections.c:1148
msgid "the VPN service returned invalid configuration"
msgstr "usługa VPN zwróciła nieprawidłową konfigurację"
-
-#: ../cli/src/connections.c:779
+#: ../cli/src/connections.c:1150
msgid "the connection attempt timed out"
msgstr "próba połączenia przekroczyła czas oczekiwania"
-
-#: ../cli/src/connections.c:781
+#: ../cli/src/connections.c:1152
msgid "the VPN service did not start in time"
msgstr "usługa VPN nie została uruchomiona w czasie"
-
-#: ../cli/src/connections.c:783
+#: ../cli/src/connections.c:1154
msgid "the VPN service failed to start"
msgstr "uruchomienie usługi VPN się nie powiodło"
-
-#: ../cli/src/connections.c:785
+#: ../cli/src/connections.c:1156
msgid "no valid VPN secrets"
msgstr "brak prawidłowych haseł VPN"
-
-#: ../cli/src/connections.c:787
+#: ../cli/src/connections.c:1158
msgid "invalid VPN secrets"
msgstr "nieprawidłowe hasła VPN"
-
-#: ../cli/src/connections.c:789
+#: ../cli/src/connections.c:1160
msgid "the connection was removed"
msgstr "połączenie zostało usunięte"
-
-#: ../cli/src/connections.c:803
+#: ../cli/src/connections.c:1174
#, c-format
msgid "state: %s\n"
msgstr "stan: %s\n"
-
-#: ../cli/src/connections.c:806
-#: ../cli/src/connections.c:832
+#: ../cli/src/connections.c:1177 ../cli/src/connections.c:1203
#, c-format
msgid "Connection activated\n"
msgstr "Aktywowano połączenie\n"
-
-#: ../cli/src/connections.c:809
+#: ../cli/src/connections.c:1180
#, c-format
msgid "Error: Connection activation failed."
msgstr "Błąd: aktywacja połączenia się nie powiodła."
-
-#: ../cli/src/connections.c:828
+#: ../cli/src/connections.c:1199
#, c-format
msgid "state: %s (%d)\n"
msgstr "stan: %s (%d)\n"
-
-#: ../cli/src/connections.c:838
+#: ../cli/src/connections.c:1209
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "Błąd: aktywacja połączenia się nie powiodła: %s."
-
-#: ../cli/src/connections.c:855
-#: ../cli/src/devices.c:551
+#: ../cli/src/connections.c:1226 ../cli/src/devices.c:909
#, c-format
msgid "Error: Timeout %d sec expired."
msgstr "BÅ‚Ä…d: przekroczono czas oczekiwania o %d sekund."
-
-#: ../cli/src/connections.c:898
+#: ../cli/src/connections.c:1269
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "Błąd: aktywacja połączenia się nie powiodła: %s"
-
-#: ../cli/src/connections.c:912
+#: ../cli/src/connections.c:1283
#, c-format
msgid "Error: Obtaining active connection for '%s' failed."
msgstr "Błąd: uzyskanie aktywnego połączenia dla \"%s\" się nie powiodło."
-
-#: ../cli/src/connections.c:921
+#: ../cli/src/connections.c:1292
#, c-format
msgid "Active connection state: %s\n"
msgstr "Stan aktywnego połączenia: %s\n"
-
-#: ../cli/src/connections.c:922
+#: ../cli/src/connections.c:1293
#, c-format
msgid "Active connection path: %s\n"
msgstr "Ścieżka aktywnego połączenia: %s\n"
-
-#: ../cli/src/connections.c:976
-#: ../cli/src/connections.c:1094
+#: ../cli/src/connections.c:1347 ../cli/src/connections.c:1468
#, c-format
msgid "Error: Unknown connection: %s."
msgstr "Błąd: nieznane połączenie: %s."
-
-#: ../cli/src/connections.c:1011
-#: ../cli/src/devices.c:622
+#: ../cli/src/connections.c:1382 ../cli/src/devices.c:980
#, c-format
msgid "Error: timeout value '%s' is not valid."
msgstr "Błąd: wartość czasu oczekiwania \"%s\" jest nieprawidłowa."
-
-#: ../cli/src/connections.c:1024
-#: ../cli/src/connections.c:1111
+#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1485
#, c-format
msgid "Error: id or uuid has to be specified."
msgstr "Błąd: należy podać identyfikator lub UUID."
-
-#: ../cli/src/connections.c:1044
+#: ../cli/src/connections.c:1415
#, c-format
msgid "Error: No suitable device found: %s."
msgstr "BÅ‚Ä…d: nie odnaleziono odpowiedniego urzÄ…dzenia: %s"
-
-#: ../cli/src/connections.c:1046
+#: ../cli/src/connections.c:1417
#, c-format
msgid "Error: No suitable device found."
msgstr "BÅ‚Ä…d: nie odnaleziono odpowiedniego urzÄ…dzenia."
-
-#: ../cli/src/connections.c:1138
+#: ../cli/src/connections.c:1512
#, c-format
msgid "Warning: Connection not active\n"
msgstr "Ostrzeżenie: połączenie nie jest aktywne\n"
-
-#: ../cli/src/connections.c:1189
+#: ../cli/src/connections.c:1569
#, c-format
msgid "Error: 'con' command '%s' is not valid."
msgstr "Błąd: polecenie \"con\" \"%s\" jest nieprawidłowe."
-
-#: ../cli/src/connections.c:1216
+#: ../cli/src/connections.c:1605
#, 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:1223
+#: ../cli/src/connections.c:1612
#, c-format
msgid "Error: Could not get system settings."
msgstr "Błąd: nie można uzyskać ustawień systemu."
-
-#: ../cli/src/connections.c:1231
+#: ../cli/src/connections.c:1620
#, c-format
msgid "Error: Could not get user settings."
msgstr "Błąd: nie można uzyskać ustawień użytkownika."
-
-#: ../cli/src/connections.c:1241
+#: ../cli/src/connections.c:1630
#, c-format
msgid "Error: Can't obtain connections: settings services are not running."
msgstr "Błąd: nie można uzyskać połączeń: usługi ustawień nie są uruchomione."
-
+#. 0
+#. 9
+#: ../cli/src/devices.c:61 ../cli/src/devices.c:89 ../cli/src/devices.c:184
+msgid "DEVICE"
+msgstr "URZÄ„DZENIE"
+
+#. 1
+#. 4
+#. 0
+#: ../cli/src/devices.c:63 ../cli/src/devices.c:93
+#: ../cli/src/network-manager.c:36
+msgid "STATE"
+msgstr "STAN"
+
+#: ../cli/src/devices.c:72
+msgid "GENERAL"
+msgstr "OGÓLNE"
+
+#. 0
#: ../cli/src/devices.c:73
+msgid "CAPABILITIES"
+msgstr "MOŻLIWOŚCI"
+
+#. 1
+#: ../cli/src/devices.c:74
+msgid "WIFI-PROPERTIES"
+msgstr "WÅAÅšCIWOÅšCI-WIFI"
+
+#. 2
+#: ../cli/src/devices.c:75
+msgid "AP"
+msgstr "PUNKT-DOSTĘPOWY"
+
+#. 3
+#: ../cli/src/devices.c:76
+msgid "WIRED-PROPERTIES"
+msgstr "WÅAÅšCIWOÅšCI-POÅÄ„CZENIA-PRZEWODOWEGO"
+
+#. 4
+#: ../cli/src/devices.c:77
+msgid "IP4-SETTINGS"
+msgstr "USTAWIENIA-IP4"
+
+#. 5
+#: ../cli/src/devices.c:78
+msgid "IP4-DNS"
+msgstr "IP4-DNS"
+
+#. 6
+#: ../cli/src/devices.c:79
+msgid "IP6-SETTINGS"
+msgstr "USTAWIENIA-IP6"
+
+#. 7
+#: ../cli/src/devices.c:80
+msgid "IP6-DNS"
+msgstr "IP6-DNS"
+
+#. 2
+#: ../cli/src/devices.c:91
+msgid "DRIVER"
+msgstr "STEROWNIK"
+
+#. 3
+#: ../cli/src/devices.c:92
+msgid "HWADDR"
+msgstr "ADRES-SPRZĘTOWY"
+
+#. 0
+#: ../cli/src/devices.c:102
+msgid "CARRIER-DETECT"
+msgstr "WYKRYWANIE-OPERATORA"
+
+#. 1
+#: ../cli/src/devices.c:103
+msgid "SPEED"
+msgstr "PRĘDKOŚĆ"
+
+#. 0
+#: ../cli/src/devices.c:112
+msgid "CARRIER"
+msgstr "OPERATOR"
+
+#. 0
+#: ../cli/src/devices.c:122
+msgid "WEP"
+msgstr "WEP"
+
+#. 1
+#: ../cli/src/devices.c:123
+msgid "WPA"
+msgstr "WPA"
+
+#. 2
+#: ../cli/src/devices.c:124
+msgid "WPA2"
+msgstr "WPA2"
+
+#. 3
+#: ../cli/src/devices.c:125
+msgid "TKIP"
+msgstr "TKIP"
+
+#. 4
+#: ../cli/src/devices.c:126
+msgid "CCMP"
+msgstr "CCMP"
+
+#. 0
+#: ../cli/src/devices.c:135 ../cli/src/devices.c:146
+msgid "ADDRESS"
+msgstr "ADRES"
+
+#. 1
+#: ../cli/src/devices.c:136 ../cli/src/devices.c:147
+msgid "PREFIX"
+msgstr "PRZEDROSTEK"
+
+#. 2
+#: ../cli/src/devices.c:137 ../cli/src/devices.c:148
+msgid "GATEWAY"
+msgstr "BRAMA"
+
+#. 0
+#: ../cli/src/devices.c:157 ../cli/src/devices.c:166
+msgid "DNS"
+msgstr "DNS"
+
+#. 0
+#: ../cli/src/devices.c:175
+msgid "SSID"
+msgstr "SSID"
+
+#. 1
+#: ../cli/src/devices.c:176
+msgid "BSSID"
+msgstr "BSSID"
+
+#. 2
+#: ../cli/src/devices.c:177
+msgid "MODE"
+msgstr "TRYB"
+
+#. 3
+#: ../cli/src/devices.c:178
+msgid "FREQ"
+msgstr "CZĘSTOTLIWOŚĆ"
+
+#. 4
+#: ../cli/src/devices.c:179
+msgid "RATE"
+msgstr "OCENA"
+
+#. 5
+#: ../cli/src/devices.c:180
+msgid "SIGNAL"
+msgstr "SYGNAÅ"
+
+#. 6
+#: ../cli/src/devices.c:181
+msgid "SECURITY"
+msgstr "ZABEZPIECZENIA"
+
+#. 7
+#: ../cli/src/devices.c:182
+msgid "WPA-FLAGS"
+msgstr "FLAGI-WPA"
+
+#. 8
+#: ../cli/src/devices.c:183
+msgid "RSN-FLAGS"
+msgstr "FLAGI-RSN"
+
+#. 10
+#: ../cli/src/devices.c:185
+msgid "ACTIVE"
+msgstr "AKTYWNOŚĆ"
+
+#: ../cli/src/devices.c:208
#, c-format
msgid ""
"Usage: nmcli dev { COMMAND | help }\n"
@@ -457,581 +644,404 @@ msgid ""
" status\n"
" list [iface <iface>]\n"
" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
-" wifi [list [iface <iface>] | apinfo iface <iface> hwaddr <hwaddr>]\n"
+" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
"\n"
msgstr ""
"Użycie: nmcli dev { POLECENIE | help }\n"
"\n"
-" COMMAND := { status | list | disconnect | wifi }\n"
+" POLECENIE := { status | list | disconnect | wifi }\n"
"\n"
" status\n"
" list [iface <interfejs>]\n"
" disconnect iface <interfejs> [--nowait] [--timeout <czas>]\n"
-" wifi [list [iface <interfejs>] | apinfo iface <interfejs> hwaddr <adres_sprzętowy>]\n"
+" wifi [list [iface <interfejs>] [hwaddr <adres_sprzętowy>]]\n"
"\n"
-
-#: ../cli/src/devices.c:93
+#: ../cli/src/devices.c:228
msgid "unmanaged"
msgstr "niezarzÄ…dzane"
-
-#: ../cli/src/devices.c:95
+#: ../cli/src/devices.c:230
msgid "unavailable"
msgstr "niedostępne"
-
-#: ../cli/src/devices.c:97
-#: ../cli/src/network-manager.c:73
+#: ../cli/src/devices.c:232 ../cli/src/network-manager.c:91
msgid "disconnected"
msgstr "rozłączono"
-
-#: ../cli/src/devices.c:99
+#: ../cli/src/devices.c:234
msgid "connecting (prepare)"
msgstr "Å‚Ä…czenie (przygotowanie)"
-
-#: ../cli/src/devices.c:101
+#: ../cli/src/devices.c:236
msgid "connecting (configuring)"
msgstr "Å‚Ä…czenie (konfigurowanie)"
-
-#: ../cli/src/devices.c:103
+#: ../cli/src/devices.c:238
msgid "connecting (need authentication)"
msgstr "Å‚Ä…czenie (wymaga uwierzytelnienia)"
-
-#: ../cli/src/devices.c:105
+#: ../cli/src/devices.c:240
msgid "connecting (getting IP configuration)"
msgstr "Å‚Ä…czenie (pobieranie konfiguracji adresu IP)"
-
-#: ../cli/src/devices.c:107
-#: ../cli/src/network-manager.c:71
+#: ../cli/src/devices.c:242 ../cli/src/network-manager.c:89
msgid "connected"
msgstr "połączono"
-
-#: ../cli/src/devices.c:109
+#: ../cli/src/devices.c:244
msgid "connection failed"
msgstr "połączenie się nie powiodło"
-
-#: ../cli/src/devices.c:132
-#: ../cli/src/devices.c:876
+#: ../cli/src/devices.c:267 ../cli/src/devices.c:424
msgid "Unknown"
msgstr "Nieznane"
-
-#. print them
-#: ../cli/src/devices.c:164
-#: ../cli/src/devices.c:266
-#: ../cli/src/devices.c:861
-#: ../cli/src/devices.c:879
+#: ../cli/src/devices.c:299
msgid "(none)"
msgstr "(brak)"
-
-#: ../cli/src/devices.c:209
+#: ../cli/src/devices.c:324
#, c-format
msgid "%s: error converting IP4 address 0x%X"
msgstr "%s: błąd podczas konwertowania adresu IPv4 0x%X"
-
-#: ../cli/src/devices.c:238
+#: ../cli/src/devices.c:393
#, c-format
-msgid "%s, %s, Freq %d MHz, Rate %d Mb/s, Strength %d"
-msgstr "%s, %s, częstotliwość %d MHz, prędkość %d Mb/s, siła sygnału %d"
-
-
-#: ../cli/src/devices.c:239
-msgid "Ad-Hoc"
-msgstr "Ad-hoc"
-
-
-#: ../cli/src/devices.c:248
-msgid ", Encrypted: "
-msgstr ", zaszyfrowane: "
-
-
-#: ../cli/src/devices.c:253
-msgid " WEP"
-msgstr " WEP"
+msgid "%u MHz"
+msgstr "%u MHz"
+#: ../cli/src/devices.c:394
+#, c-format
+msgid "%u MB/s"
+msgstr "%u MB/s"
-#: ../cli/src/devices.c:255
-msgid " WPA"
-msgstr " WPA"
+#: ../cli/src/devices.c:403
+msgid "Encrypted: "
+msgstr "Zaszyfrowane: "
+#: ../cli/src/devices.c:408
+msgid "WEP "
+msgstr "WEP "
-#: ../cli/src/devices.c:257
-msgid " WPA2"
-msgstr " WPA2"
+#: ../cli/src/devices.c:410
+msgid "WPA "
+msgstr "WPA "
+#: ../cli/src/devices.c:412
+msgid "WPA2 "
+msgstr "WPA2 "
-#: ../cli/src/devices.c:260
-msgid " Enterprise"
-msgstr " Enterprise"
+#: ../cli/src/devices.c:415
+msgid "Enterprise "
+msgstr "Enterprise "
+#: ../cli/src/devices.c:424
+msgid "Ad-Hoc"
+msgstr "Ad-hoc"
-#: ../cli/src/devices.c:294
-#: ../cli/src/devices.c:458
-#: ../cli/src/devices.c:460
-msgid "Device"
-msgstr "UrzÄ…dzenie"
+#: ../cli/src/devices.c:424
+msgid "Infrastructure"
+msgstr "Infrastruktura"
+#: ../cli/src/devices.c:486
+#, c-format
+msgid "Error: 'dev list': %s"
+msgstr "BÅ‚Ä…d: \"dev list\": %s"
-#: ../cli/src/devices.c:299
-msgid "Driver"
-msgstr "Sterownik"
+#: ../cli/src/devices.c:488
+#, c-format
+msgid "Error: 'dev list': %s; allowed fields: %s"
+msgstr "BÅ‚Ä…d: \"dev list\": %s; dozwolone pola: %s"
+#: ../cli/src/devices.c:497
+msgid "Device details"
+msgstr "Informacje o urzÄ…dzeniu"
-#: ../cli/src/devices.c:299
-#: ../cli/src/devices.c:567
+#: ../cli/src/devices.c:527 ../cli/src/devices.c:925
msgid "(unknown)"
msgstr "(nieznane)"
+#: ../cli/src/devices.c:528
+msgid "unknown)"
+msgstr "nieznane)"
-#: ../cli/src/devices.c:300
-#: ../cli/src/devices.c:458
-#: ../cli/src/devices.c:460
-msgid "State"
-msgstr "Stan"
-
-
-#: ../cli/src/devices.c:313
-msgid "HW Address"
-msgstr "Adres sprzętowy"
-
-
-#: ../cli/src/devices.c:319
-#, c-format
-msgid ""
-"\n"
-" Capabilities:\n"
-msgstr ""
-"\n"
-" Możliwości:\n"
-
-
-#: ../cli/src/devices.c:321
-msgid "Carrier Detect"
-msgstr "Wykrywanie operatora"
-
-
-#: ../cli/src/devices.c:336
+#: ../cli/src/devices.c:554
#, c-format
msgid "%u Mb/s"
msgstr "%u Mb/s"
-
-#: ../cli/src/devices.c:337
-msgid "Speed"
-msgstr "Prędkość"
-
-
-#: ../cli/src/devices.c:348
-#, c-format
-msgid ""
-"\n"
-" Wireless Properties\n"
-msgstr ""
-"\n"
-" Właściwości sieci bezprzewodowej\n"
-
-
-#: ../cli/src/devices.c:353
-msgid "WEP Encryption"
-msgstr "Szyfrowanie WEP"
-
-
-#: ../cli/src/devices.c:355
-msgid "WPA Encryption"
-msgstr "Szyfrowanie WPA"
-
-
-#: ../cli/src/devices.c:357
-msgid "WPA2 Encryption"
-msgstr "Szyfrowanie WPA2"
-
-
-#: ../cli/src/devices.c:359
-msgid "TKIP cipher"
-msgstr "Szyfr TKIP"
-
-
-#: ../cli/src/devices.c:361
-msgid "CCMP cipher"
-msgstr "Szyfr CCMP"
-
-
-#: ../cli/src/devices.c:368
-#, c-format
-msgid ""
-"\n"
-" Wireless Access Points %s\n"
-msgstr ""
-"\n"
-" Bezprzewodowe punkty dostępowe %s\n"
-
-
-#: ../cli/src/devices.c:368
-msgid "(* = current AP)"
-msgstr "(* = bieżący punkt dostępowy)"
-
-
-#: ../cli/src/devices.c:374
-#, c-format
-msgid ""
-"\n"
-" Wired Properties\n"
-msgstr ""
-"\n"
-" Właściwości sieci przewodowej\n"
-
-
-#: ../cli/src/devices.c:377
-#: ../cli/src/devices.c:379
-msgid "Carrier"
-msgstr "Operator"
-
-
-#: ../cli/src/devices.c:377
+#. Print header
+#. "WIRED-PROPERTIES"
+#: ../cli/src/devices.c:627
msgid "on"
msgstr "włączone"
-
-#: ../cli/src/devices.c:379
+#: ../cli/src/devices.c:627
msgid "off"
msgstr "wyłączone"
-
-#: ../cli/src/devices.c:387
+#: ../cli/src/devices.c:808
#, c-format
-msgid ""
-"\n"
-" IPv4 Settings:\n"
-msgstr ""
-"\n"
-" Ustawienia IPv4:\n"
-
-
-#: ../cli/src/devices.c:395
-msgid "Address"
-msgstr "Adres"
-
-
-#: ../cli/src/devices.c:401
-msgid "Prefix"
-msgstr "Przedrostek"
-
-
-#: ../cli/src/devices.c:405
-msgid "Gateway"
-msgstr "Brama"
-
-
-#: ../cli/src/devices.c:416
-msgid "DNS"
-msgstr "DNS"
+msgid "Error: 'dev status': %s"
+msgstr "BÅ‚Ä…d: \"dev status\": %s"
+#: ../cli/src/devices.c:810
+#, c-format
+msgid "Error: 'dev status': %s; allowed fields: %s"
+msgstr "BÅ‚Ä…d: \"dev status\": %s; dozwolone pola: %s"
-#: ../cli/src/devices.c:458
+#: ../cli/src/devices.c:817
msgid "Status of devices"
msgstr "Stan urzÄ…dzenia"
-
-#: ../cli/src/devices.c:487
+#: ../cli/src/devices.c:845
#, c-format
msgid "Error: '%s' argument is missing."
msgstr "BÅ‚Ä…d: brak parametru \"%s\"."
-
-#: ../cli/src/devices.c:516
-#: ../cli/src/devices.c:655
-#: ../cli/src/devices.c:729
+#: ../cli/src/devices.c:874 ../cli/src/devices.c:1013
+#: ../cli/src/devices.c:1136
#, c-format
msgid "Error: Device '%s' not found."
msgstr "BÅ‚Ä…d: nie odnaleziono urzÄ…dzenia \"%s\"."
-
-#: ../cli/src/devices.c:539
+#: ../cli/src/devices.c:897
#, c-format
msgid "Success: Device '%s' successfully disconnected."
msgstr "Powodzenie: urządzenie \"%s\" zostało rozłączone."
-
-#: ../cli/src/devices.c:564
+#: ../cli/src/devices.c:922
#, 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:572
+#: ../cli/src/devices.c:930
#, c-format
msgid "Device state: %d (%s)\n"
msgstr "Stan urzÄ…dzenia: %d (%s)\n"
-
-#: ../cli/src/devices.c:636
+#: ../cli/src/devices.c:994
#, c-format
msgid "Error: iface has to be specified."
msgstr "Błąd: należy podać interfejs."
-
-#: ../cli/src/devices.c:736
-#: ../cli/src/devices.c:746
-msgid "WiFi scan list"
-msgstr "Lista skanowania sieci WiFi"
-
-
-#: ../cli/src/devices.c:740
+#: ../cli/src/devices.c:1112
#, 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:754
-msgid "Device:"
-msgstr "UrzÄ…dzenie:"
+msgid "Error: 'dev wifi': %s"
+msgstr "BÅ‚Ä…d: \"dev wifi\": %s"
-
-#: ../cli/src/devices.c:806
+#: ../cli/src/devices.c:1114
#, c-format
-msgid "Error: hwaddr has to be specified."
-msgstr "Błąd: należy podać adres sprzętowy."
+msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgstr "BÅ‚Ä…d: \"dev wifi\": %s; dozwolone pola: %s"
+#: ../cli/src/devices.c:1121
+msgid "WiFi scan list"
+msgstr "Lista skanowania sieci WiFi"
-#: ../cli/src/devices.c:844
+#: ../cli/src/devices.c:1156 ../cli/src/devices.c:1210
#, c-format
msgid "Error: Access point with hwaddr '%s' not found."
msgstr "Błąd: nie odnaleziono punktu dostępowego z adresem sprzętowym \"%s\"."
-
-#: ../cli/src/devices.c:862
+#: ../cli/src/devices.c:1173
#, c-format
-msgid "%u MHz"
-msgstr "%u MHz"
-
-
-#: ../cli/src/devices.c:863
-#, c-format
-msgid "%u MB/s"
-msgstr "%u MB/s"
-
-
-#: ../cli/src/devices.c:869
-#: ../cli/src/devices.c:871
-msgid "AP parameters"
-msgstr "Parametry punkty dostępowego"
-
-
-#: ../cli/src/devices.c:873
-msgid "SSID:"
-msgstr "SSID:"
-
-
-#: ../cli/src/devices.c:874
-msgid "BSSID:"
-msgstr "BSSID:"
-
-
-#: ../cli/src/devices.c:875
-msgid "Frequency:"
-msgstr "Częstotliwość:"
-
-
-#: ../cli/src/devices.c:876
-msgid "Mode:"
-msgstr "Tryb:"
-
-
-#: ../cli/src/devices.c:876
-msgid "Ad-hoc"
-msgstr "Ad-hoc"
-
-
-#: ../cli/src/devices.c:876
-msgid "Infrastructure"
-msgstr "Infrastruktura"
-
-
-#: ../cli/src/devices.c:877
-msgid "Maximal bitrate:"
-msgstr "Maksymalna prędkość:"
-
-
-#: ../cli/src/devices.c:878
-msgid "Strength:"
-msgstr "Siła sygnału:"
-
-
-#: ../cli/src/devices.c:879
-msgid "Flags:"
-msgstr "Flagi:"
-
-
-#: ../cli/src/devices.c:879
-msgid "privacy"
-msgstr "prywatne"
-
-
-#: ../cli/src/devices.c:880
-msgid "WPA flags:"
-msgstr "Flagi WPA:"
-
-
-#: ../cli/src/devices.c:881
-msgid "RSN flags:"
-msgstr "Flagi RSN:"
-
+msgid "Error: Device '%s' is not a WiFi device."
+msgstr "BÅ‚Ä…d: urzÄ…dzenie \"%s\" nie jest urzÄ…dzeniem WiFi."
-#: ../cli/src/devices.c:907
+#: ../cli/src/devices.c:1237
#, 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:943
+#: ../cli/src/devices.c:1284
#, c-format
msgid "Error: 'dev' command '%s' is not valid."
msgstr "Błąd: polecenie \"dev\" \"%s\" jest nieprawidłowe."
+#: ../cli/src/network-manager.c:35
+msgid "RUNNING"
+msgstr "URUCHOMIONE"
+
+#. 1
+#: ../cli/src/network-manager.c:37
+msgid "NET-ENABLED"
+msgstr "SIEĆ-WÅÄ„CZONA"
-#: ../cli/src/network-manager.c:46
+#. 2
+#: ../cli/src/network-manager.c:38
+msgid "WIFI-HARDWARE"
+msgstr "SPRZĘT-WIFI"
+
+#. 3
+#: ../cli/src/network-manager.c:39
+msgid "WIFI"
+msgstr "WIFI"
+
+#. 4
+#: ../cli/src/network-manager.c:40
+msgid "WWAN-HARDWARE"
+msgstr "SPRZĘT-WWAN"
+
+#. 5
+#: ../cli/src/network-manager.c:41
+msgid "WWAN"
+msgstr "WWAN"
+
+#: ../cli/src/network-manager.c:64
#, c-format
msgid ""
"Usage: nmcli nm { COMMAND | help }\n"
"\n"
-" COMMAND := { status | sleep | wakeup | wifi | wwan }\n"
+" COMMAND := { status | enable | sleep | wifi | wwan }\n"
"\n"
" status\n"
-" sleep\n"
-" wakeup\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
" wifi [on|off]\n"
" wwan [on|off]\n"
"\n"
msgstr ""
"Użycie: nmcli nm { POLECENIE | help }\n"
"\n"
-" POLECENIE := { status | sleep | wakeup | wifi | wwan }\n"
+" POLECENIE := { status | enable | sleep | wifi | wwan }\n"
"\n"
" status\n"
-" sleep\n"
-" wakeup\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
" wifi [on|off]\n"
" wwan [on|off]\n"
"\n"
-
-#: ../cli/src/network-manager.c:67
+#: ../cli/src/network-manager.c:85
msgid "asleep"
msgstr "wstrzymane"
-
-#: ../cli/src/network-manager.c:69
+#: ../cli/src/network-manager.c:87
msgid "connecting"
msgstr "Å‚Ä…czenie"
+#: ../cli/src/network-manager.c:128
+#, c-format
+msgid "Error: 'nm status': %s"
+msgstr "BÅ‚Ä…d: \"nm status\": %s"
-#: ../cli/src/network-manager.c:93
-#: ../cli/src/network-manager.c:94
-#: ../cli/src/network-manager.c:95
-#: ../cli/src/network-manager.c:96
-#: ../cli/src/network-manager.c:143
-#: ../cli/src/network-manager.c:160
-msgid "enabled"
-msgstr "włączone"
-
-
-#: ../cli/src/network-manager.c:93
-#: ../cli/src/network-manager.c:94
-#: ../cli/src/network-manager.c:95
-#: ../cli/src/network-manager.c:96
-#: ../cli/src/network-manager.c:143
-#: ../cli/src/network-manager.c:160
-msgid "disabled"
-msgstr "wyłączone"
-
+#: ../cli/src/network-manager.c:130
+#, c-format
+msgid "Error: 'nm status': %s; allowed fields: %s"
+msgstr "BÅ‚Ä…d: \"nm status\": %s; dozwolone pola: %s"
-#: ../cli/src/network-manager.c:102
+#: ../cli/src/network-manager.c:137
msgid "NetworkManager status"
msgstr "Stan programu NetworkManager"
+#. Print header
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "enabled"
+msgstr "włączone"
-#: ../cli/src/network-manager.c:104
-msgid "NM running:"
-msgstr "Program NetworkManager jest uruchomiony:"
-
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "disabled"
+msgstr "wyłączone"
-#: ../cli/src/network-manager.c:104
+#: ../cli/src/network-manager.c:152
msgid "running"
msgstr "uruchamiany"
-
-#: ../cli/src/network-manager.c:104
+#: ../cli/src/network-manager.c:152
msgid "not running"
msgstr "nieuruchomiony"
+#: ../cli/src/network-manager.c:175
+#, 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:105
-msgid "NM state:"
-msgstr "Stan programu NetworkManager:"
-
-
-#: ../cli/src/network-manager.c:106
-msgid "NM wireless hardware:"
-msgstr "Adres sprzętowy programu NetworkManager:"
+#: ../cli/src/network-manager.c:186
+#, 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:192
+#, c-format
+msgid "Error in sleep: %s"
+msgstr "BÅ‚Ä…d w poleceniu sleep: %s"
-#. no argument, show current state
-#: ../cli/src/network-manager.c:107
-#: ../cli/src/network-manager.c:143
-msgid "NM wireless:"
-msgstr "Sieć bezprzewodowa programu NetworkManager:"
+#: ../cli/src/network-manager.c:237 ../cli/src/network-manager.c:286
+#: ../cli/src/network-manager.c:318
+#, c-format
+msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
+msgstr ""
+"Błąd: wartość \"%s\" opcji \"--fields\" jest nieprawidłowa; dozwolone pola: "
+"%s."
+#: ../cli/src/network-manager.c:245
+msgid "Networking enabled"
+msgstr "Sieć jest włączona"
-#: ../cli/src/network-manager.c:108
-msgid "NM WWAN hardware:"
-msgstr "WWAM sprzętu programu NetworkManager:"
+#: ../cli/src/network-manager.c:256
+#, 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:265
+#, c-format
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "BÅ‚Ä…d: stan snu nie jest eksportowany przez program NetworkManager."
-#. no argument, show current state
-#: ../cli/src/network-manager.c:109
-#: ../cli/src/network-manager.c:160
-msgid "NM WWAN:"
-msgstr "WWAN programu NetworkManager:"
+#: ../cli/src/network-manager.c:273
+#, 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:294
+msgid "WiFi enabled"
+msgstr "WiFi jest włączone"
-#: ../cli/src/network-manager.c:150
+#: ../cli/src/network-manager.c:305
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
msgstr "Błąd: nieprawidłowy parametr \"wifi\": \"%s\"."
+#: ../cli/src/network-manager.c:326
+msgid "WWAN enabled"
+msgstr "WWAN jest włączone"
-#: ../cli/src/network-manager.c:167
+#: ../cli/src/network-manager.c:337
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
msgstr "Błąd: nieprawidłowy parametr \"wwan\": \"%s\"."
-
-#: ../cli/src/network-manager.c:178
+#: ../cli/src/network-manager.c:348
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
msgstr "Błąd: parametr \"nm\" \"%s\" jest nieprawidłowy."
-
-#: ../cli/src/nmcli.c:65
+#: ../cli/src/nmcli.c:69
#, c-format
msgid ""
"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
"\n"
"OPTIONS\n"
-" -t[erse] terse output\n"
-" -p[retty] pretty output\n"
-" -v[ersion] show program version\n"
-" -h[elp] print this help\n"
+" -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"
@@ -1042,10 +1052,14 @@ msgstr ""
"Użycie: %s [OPCJE] OBIEKT { POLECENIE | help }\n"
"\n"
"OPCJE\n"
-" -t[erse] zwięzłe wyjście\n"
-" -p[retty] sformatowane wyjście\n"
-" -v[ersion] wyświetla wersję programu\n"
-" -h[elp] wyświetla tę opcję\n"
+" -t[erse] zwięzłe wyjście\n"
+" -p[retty] sformatowane wyjście\n"
+" -m[ode] tabulatory|wielowierszowe tryb wyjścia\n"
+" -f[ields] <pole1,pole2,...>|all|common określa pola do wyjścia\n"
+" -e[scape] yes|no modyfikuje separatory kolumn w "
+"wartościach\n"
+" -v[ersion] wyświetla wersję programu\n"
+" -h[elp] wyświetla tę opcję\n"
"\n"
"OBIEKT\n"
" nm stan programu NetworkManager\n"
@@ -1053,41 +1067,170 @@ msgstr ""
" dev urzÄ…dzenia zarzÄ…dzane przez program NetworkManager\n"
"\n"
+#: ../cli/src/nmcli.c:113
+#, c-format
+msgid "Error: Object '%s' is unknown, try 'nmcli help'."
+msgstr ""
+"Błąd: obiekt \"%s\" jest nieznany, można spróbować polecenie \"nmcli help\"."
-#: ../cli/src/nmcli.c:106
+#: ../cli/src/nmcli.c:143
#, c-format
-msgid "Object '%s' is unknown, try 'nmcli help'."
-msgstr "Obiekt \"%s\" jest nieznany. Można spróbować polecenie \"nmcli help\"."
+msgid "Error: Option '--terse' is specified the second time."
+msgstr "Błąd: opcja \"--terse\" został podana po raz drugi."
+#: ../cli/src/nmcli.c:148
+#, c-format
+msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
+msgstr ""
+"BÅ‚Ä…d: opcja \"--terse\" jest wzajemnie wykluczajÄ…ca z opcjÄ… \"--pretty\"."
-#: ../cli/src/nmcli.c:139
+#: ../cli/src/nmcli.c:156
#, c-format
-msgid "nmcli tool, version %s\n"
-msgstr "narzędzie nmcli, wersja %s\n"
+msgid "Error: Option '--pretty' is specified the second time."
+msgstr "Błąd: opcja \"--pretty\" został podana po raz drugi."
+
+#: ../cli/src/nmcli.c:161
+#, c-format
+msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
+msgstr ""
+"BÅ‚Ä…d: opcja \"--pretty\" jest wzajemnie wykluczajÄ…ca z opcjÄ… \"--terse\"."
+
+#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
+#, c-format
+msgid "Error: missing argument for '%s' option."
+msgstr "BÅ‚Ä…d: brak parametru dla opcji \"%s\"."
+
+#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
+#, c-format
+msgid "Error: '%s' is not valid argument for '%s' option."
+msgstr "Błąd: \"%s\" nie jest prawidłowym parametrem dla opcji \"%s\"."
+#: ../cli/src/nmcli.c:203
+#, c-format
+msgid "Error: fields for '%s' options are missing."
+msgstr "Błąd: brak pól dla opcji \"%s\"."
-#: ../cli/src/nmcli.c:145
+#: ../cli/src/nmcli.c:209
#, c-format
-msgid "Option '%s' is unknown, try 'nmcli -help'."
-msgstr "Opcja \"%s\" jest nieznana. Można spróbować polecenie \"nmcli help\"."
+msgid "nmcli tool, version %s\n"
+msgstr "narzędzie nmcli, wersja %s\n"
+#: ../cli/src/nmcli.c:215
+#, c-format
+msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
+msgstr ""
+"Błąd: opcja \"%s\" jest nieznana. Można spróbować polecenie \"nmcli help\"."
-#: ../cli/src/nmcli.c:164
+#: ../cli/src/nmcli.c:234
#, c-format
msgid "Caught signal %d, shutting down..."
msgstr "Przechwycono sygnał %d, wyłączanie..."
-
-#: ../cli/src/nmcli.c:189
+#: ../cli/src/nmcli.c:259
#, c-format
msgid "Error: Could not connect to NetworkManager."
msgstr "Błąd: nie można połączyć się z programem NetworkManager."
-
-#: ../cli/src/nmcli.c:205
+#: ../cli/src/nmcli.c:275
msgid "Success"
msgstr "Powodzenie"
+#: ../cli/src/settings.c:411
+#, c-format
+msgid "%d (hex-ascii-key)"
+msgstr "%d (klucz-szesnastkowy-acsii))"
+
+#: ../cli/src/settings.c:413
+#, c-format
+msgid "%d (104/128-bit passphrase)"
+msgstr "%d (104/128-bitowe hasło)"
+
+#: ../cli/src/settings.c:416
+#, c-format
+msgid "%d (unknown)"
+msgstr "%d (nieznane)"
+
+#: ../cli/src/settings.c:442
+msgid "0 (unknown)"
+msgstr "0 (nieznane)"
+
+#: ../cli/src/settings.c:448
+msgid "any, "
+msgstr "dowolne, "
+
+#: ../cli/src/settings.c:450
+msgid "900 MHz, "
+msgstr "900 MHz, "
+
+#: ../cli/src/settings.c:452
+msgid "1800 MHz, "
+msgstr "1800 MHz, "
+
+#: ../cli/src/settings.c:454
+msgid "1900 MHz, "
+msgstr "1900 MHz, "
+
+#: ../cli/src/settings.c:456
+msgid "850 MHz, "
+msgstr "850 MHz, "
+
+#: ../cli/src/settings.c:458
+msgid "WCDMA 3GPP UMTS 2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 2100 MHz, "
+
+#: ../cli/src/settings.c:460
+msgid "WCDMA 3GPP UMTS 1800 MHz, "
+msgstr "WCDMA 3GPP UMTS 1800 MHz, "
+
+#: ../cli/src/settings.c:462
+msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
+
+#: ../cli/src/settings.c:464
+msgid "WCDMA 3GPP UMTS 800 MHz, "
+msgstr "WCDMA 3GPP UMTS 800 MHz, "
+
+#: ../cli/src/settings.c:466
+msgid "WCDMA 3GPP UMTS 850 MHz, "
+msgstr "WCDMA 3GPP UMTS 850 MHz, "
+
+#: ../cli/src/settings.c:468
+msgid "WCDMA 3GPP UMTS 900 MHz, "
+msgstr "WCDMA 3GPP UMTS 900 MHz, "
+
+#: ../cli/src/settings.c:470
+msgid "WCDMA 3GPP UMTS 1700 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700 MHz, "
+
+#: ../cli/src/settings.c:554 ../cli/src/settings.c:721
+msgid "auto"
+msgstr "automatyczne"
+
+#: ../cli/src/settings.c:716 ../cli/src/settings.c:719
+#: ../cli/src/settings.c:720 ../cli/src/utils.c:172
+msgid "not set"
+msgstr "nieustawione"
+
+#: ../cli/src/utils.c:124
+#, c-format
+msgid "field '%s' has to be alone"
+msgstr "pole \"%s\" musi być same"
+
+#: ../cli/src/utils.c:127
+#, c-format
+msgid "invalid field '%s'"
+msgstr "nieprawidłowe pole \"%s\""
+
+#: ../cli/src/utils.c:146
+#, c-format
+msgid "Option '--terse' requires specifying '--fields'"
+msgstr "Opcja \"--terse\" wymaga podania opcji \"--fields\""
+
+#: ../cli/src/utils.c:150
+#, c-format
+msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
+msgstr ""
+"Opcja \"--terse\" wymaga konkretnej wartości opcji \"--fields\", nie \"%s\""
#: ../libnm-util/crypto.c:120
#, c-format
@@ -1099,7 +1242,6 @@ msgstr "Plik klucza PEM nie zawiera znacznika końcowego \"%s\"."
msgid "Doesn't look like a PEM private key file."
msgstr "Nie wyglÄ…da na plik klucza prywatnego PEM."
-
#: ../libnm-util/crypto.c:138
#, c-format
msgid "Not enough memory to store PEM file data."
@@ -1145,7 +1287,6 @@ msgstr "Nie można zdekodować klucza prywatnego."
msgid "PEM certificate '%s' had no end tag '%s'."
msgstr "Certyfikat PEM \"%s\" nie zawiera kończącego znacznika \"%s\"."
-
#: ../libnm-util/crypto.c:277
#, c-format
msgid "Failed to decode certificate."
@@ -1161,7 +1302,6 @@ msgstr "Brak wystarczającej ilości pamięci do przechowania danych certyfikatu
msgid "Not enough memory to store file data."
msgstr "Brak wystarczającej ilości pamięci do przechowania danych pliku."
-
#: ../libnm-util/crypto.c:324
#, c-format
msgid "IV must be an even number of bytes in length."
@@ -1172,16 +1312,13 @@ msgstr "Liczba bajtów w IV musi być liczbą parzystą."
msgid "Not enough memory to store the IV."
msgstr "Brak wystarczającej ilości pamięci do przechowania IV."
-
#: ../libnm-util/crypto.c:344
#, c-format
msgid "IV contains non-hexadecimal digits."
msgstr "IV zawiera nieszesnastkowe cyfry."
-#: ../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.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
#, c-format
msgid "Private key cipher '%s' was unknown."
@@ -1192,7 +1329,6 @@ msgstr "Nieznany szyfr klucza prywatnego \"%s\"."
msgid "Not enough memory to decrypt private key."
msgstr "Brak wystarczającej ilości pamięci do odszyfrowania klucza prywatnego."
-
#: ../libnm-util/crypto.c:511
#, c-format
msgid "Unable to determine private key type."
@@ -1201,95 +1337,85 @@ msgstr "Nie można określić typu klucza prywatnego."
#: ../libnm-util/crypto.c:530
#, c-format
msgid "Not enough memory to store decrypted private key."
-msgstr "Brak wystarczającej ilości pamięci do przechowania odszyfrowanego klucza prywatnego."
-
+msgstr ""
+"Brak wystarczającej ilości pamięci do przechowania odszyfrowanego klucza "
+"prywatnego."
#: ../libnm-util/crypto_gnutls.c:49
msgid "Failed to initialize the crypto engine."
msgstr "Zainicjowanie modułu szyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_gnutls.c:93
#, c-format
msgid "Failed to initialize the MD5 engine: %s / %s."
msgstr "Zainicjowanie modułu MD5 się nie powiodło: %s / %s."
-
#: ../libnm-util/crypto_gnutls.c:156
#, c-format
msgid "Invalid IV length (must be at least %zd)."
msgstr "Nieprawidłowa długość IV (musi wynosić co najmniej %zd)."
-#: ../libnm-util/crypto_gnutls.c:165
-#: ../libnm-util/crypto_nss.c:188
+#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
#, c-format
msgid "Not enough memory for decrypted key buffer."
msgstr "Brak wystarczającej ilości pamięci dla bufora odszyfrowanego klucza."
-
#: ../libnm-util/crypto_gnutls.c:173
#, c-format
msgid "Failed to initialize the decryption cipher context: %s / %s."
-msgstr "Zainicjowanie kontekstu szyfru do odszyfrowania się nie powiodło: %s / %s."
-
+msgstr ""
+"Zainicjowanie kontekstu szyfru do odszyfrowania się nie powiodło: %s / %s."
#: ../libnm-util/crypto_gnutls.c:182
#, c-format
msgid "Failed to set symmetric key for decryption: %s / %s."
-msgstr "Ustawienie klucza symetrycznego do odszyfrowania się nie powiodło: %s / %s."
-
+msgstr ""
+"Ustawienie klucza symetrycznego do odszyfrowania się nie powiodło: %s / %s."
#: ../libnm-util/crypto_gnutls.c:191
#, c-format
msgid "Failed to set IV for decryption: %s / %s."
msgstr "Ustawienie IV do odszyfrowania się nie powiodło: %s / %s."
-
#: ../libnm-util/crypto_gnutls.c:200
#, c-format
msgid "Failed to decrypt the private key: %s / %s."
msgstr "Odszyfrowanie klucza prywatnego się nie powiodło: %s / %s."
-
-#: ../libnm-util/crypto_gnutls.c:210
-#: ../libnm-util/crypto_nss.c:267
+#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
#, c-format
msgid "Failed to decrypt the private key: unexpected padding length."
-msgstr "Odszyfrowanie klucza prywatnego się nie powiodło: nieoczekiwana długość wypełnienia."
-
+msgstr ""
+"Odszyfrowanie klucza prywatnego się nie powiodło: nieoczekiwana długość "
+"wypełnienia."
-#: ../libnm-util/crypto_gnutls.c:221
-#: ../libnm-util/crypto_nss.c:278
+#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
#, c-format
msgid "Failed to decrypt the private key."
msgstr "Odszyfrowanie klucza prywatnego się nie powiodło."
-
-#: ../libnm-util/crypto_gnutls.c:286
-#: ../libnm-util/crypto_nss.c:356
+#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
#, c-format
msgid "Could not allocate memory for encrypting."
msgstr "Nie można przydzielić pamięci do szyfrowania."
-
#: ../libnm-util/crypto_gnutls.c:294
#, c-format
msgid "Failed to initialize the encryption cipher context: %s / %s."
-msgstr "Zainicjowanie kontekstu szyfru do szyfrowania się nie powiodło: %s / %s."
-
+msgstr ""
+"Zainicjowanie kontekstu szyfru do szyfrowania się nie powiodło: %s / %s."
#: ../libnm-util/crypto_gnutls.c:303
#, c-format
msgid "Failed to set symmetric key for encryption: %s / %s."
-msgstr "Ustawienie klucza symetrycznego do szyfrowania się nie powiodło: %s / %s."
-
+msgstr ""
+"Ustawienie klucza symetrycznego do szyfrowania się nie powiodło: %s / %s."
#: ../libnm-util/crypto_gnutls.c:313
#, c-format
msgid "Failed to set IV for encryption: %s / %s."
msgstr "Ustawienie IV do szyfrowania się nie powiodło: %s / %s."
-
#: ../libnm-util/crypto_gnutls.c:322
#, c-format
msgid "Failed to encrypt the data: %s / %s."
@@ -1300,7 +1426,6 @@ msgstr "Zaszyfrowanie danych się nie powiodło: %s / %s."
msgid "Error initializing certificate data: %s"
msgstr "BÅ‚Ä…d podczas inicjowania danych certyfikatu: %s"
-
#: ../libnm-util/crypto_gnutls.c:384
#, c-format
msgid "Couldn't decode certificate: %s"
@@ -1311,121 +1436,103 @@ msgstr "Nie można zdekodować certyfikatu: %s"
msgid "Couldn't initialize PKCS#12 decoder: %s"
msgstr "Nie można zainicjować dekodera PKCS#12: %s"
-
#: ../libnm-util/crypto_gnutls.c:421
#, c-format
msgid "Couldn't decode PKCS#12 file: %s"
msgstr "Nie można odszyfrować pliku PKCS#12: %s"
-
#: ../libnm-util/crypto_gnutls.c:433
#, c-format
msgid "Couldn't verify PKCS#12 file: %s"
msgstr "Nie można zweryfikować pliku PKCS#12: %s"
-
#: ../libnm-util/crypto_nss.c:56
#, c-format
msgid "Failed to initialize the crypto engine: %d."
msgstr "Zainicjowanie modułu szyfrowania się nie powiodło: %d."
-
#: ../libnm-util/crypto_nss.c:111
#, c-format
msgid "Failed to initialize the MD5 context: %d."
msgstr "Zainicjowanie kontekstu MD5 się nie powiodło: %d."
-
#: ../libnm-util/crypto_nss.c:179
#, c-format
msgid "Invalid IV length (must be at least %d)."
msgstr "Nieprawidłowa długość IV (musi wynosić co najmniej %d)."
-
#: ../libnm-util/crypto_nss.c:196
#, c-format
msgid "Failed to initialize the decryption cipher slot."
msgstr "Zainicjowanie gniazda szyfru do odszyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:206
#, c-format
msgid "Failed to set symmetric key for decryption."
msgstr "Ustawienie klucza symetrycznego do odszyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:216
#, c-format
msgid "Failed to set IV for decryption."
msgstr "Ustawienie IV do odszyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:224
#, c-format
msgid "Failed to initialize the decryption context."
msgstr "Zainicjowanie kontekstu odszyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:237
#, c-format
msgid "Failed to decrypt the private key: %d."
msgstr "Odszyfrowanie klucza prywatnego się nie powiodło: %d."
-
#: ../libnm-util/crypto_nss.c:245
#, c-format
msgid "Failed to decrypt the private key: decrypted data too large."
-msgstr "Odszyfrowanie klucza prywatnego się nie powiodło: odszyfrowane dane są za duże."
-
+msgstr ""
+"Odszyfrowanie klucza prywatnego się nie powiodło: odszyfrowane dane są za "
+"duże."
#: ../libnm-util/crypto_nss.c:256
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
msgstr "Zakończenie odszyfrowania klucza prywatnego się nie powiodło: %d."
-
#: ../libnm-util/crypto_nss.c:364
#, c-format
msgid "Failed to initialize the encryption cipher slot."
msgstr "Zainicjowanie gniazda szyfru do szyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:372
#, c-format
msgid "Failed to set symmetric key for encryption."
msgstr "Ustawienie klucza symetrycznego do szyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:380
#, c-format
msgid "Failed to set IV for encryption."
msgstr "Ustawienie IV do szyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:388
#, c-format
msgid "Failed to initialize the encryption context."
msgstr "Zainicjowanie kontekstu szyfrowania się nie powiodło."
-
#: ../libnm-util/crypto_nss.c:396
#, c-format
msgid "Failed to encrypt: %d."
msgstr "Zaszyfrowanie się nie powiodło: %d."
-
#: ../libnm-util/crypto_nss.c:404
#, c-format
msgid "Unexpected amount of data after encrypting."
msgstr "Nieoczekiwana ilość danych po zaszyfrowaniu."
-
#: ../libnm-util/crypto_nss.c:447
#, c-format
msgid "Couldn't decode certificate: %d"
msgstr "Nie można zdekodować certyfikatu: %d"
-
#: ../libnm-util/crypto_nss.c:482
#, c-format
msgid "Couldn't convert password to UCS2: %d"
@@ -1436,109 +1543,200 @@ msgstr "Nie można przekonwertować hasła do UCS2: %d"
msgid "Couldn't initialize PKCS#12 decoder: %d"
msgstr "Nie można zainicjować dekodera PKCS#12: %d"
-
#: ../libnm-util/crypto_nss.c:519
#, c-format
msgid "Couldn't decode PKCS#12 file: %d"
msgstr "Nie można odszyfrować pliku PKCS#12: %d"
-
#: ../libnm-util/crypto_nss.c:528
#, c-format
msgid "Couldn't verify PKCS#12 file: %d"
msgstr "Nie można zweryfikować pliku PKCS#12: %d"
-
#: ../libnm-util/crypto_nss.c:557
msgid "Could not generate random data."
msgstr "Nie można utworzyć losowych danych."
-
-#: ../libnm-util/nm-utils.c:1545
+#: ../libnm-util/nm-utils.c:1975
#, 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:1655
+#: ../libnm-util/nm-utils.c:2085
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:1667
+#: ../libnm-util/nm-utils.c:2097
#, 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:1679
+#: ../libnm-util/nm-utils.c:2109
#, 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."
-
+msgstr ""
+"Nie można przydzielić pamięci do zapisywania zaszyfrowanego klucza do pliku "
+"PEM."
-#: ../libnm-util/nm-utils.c:1698
+#: ../libnm-util/nm-utils.c:2128
#, c-format
msgid "Could not allocate memory for PEM file data."
msgstr "Nie można przydzielić pamięci dla danych pliku PEM."
-#: ../src/nm-netlink-monitor.c:194
-#: ../src/nm-netlink-monitor.c:464
-#: ../src/nm-netlink-monitor.c:582
-#: ../src/ip6-manager/nm-netlink-listener.c:352
-#, c-format
-msgid "error processing netlink message: %s"
-msgstr "błąd podczas przetwarzania komunikatu netlink: %s"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
+msgid "Connection sharing via a protected WiFi network"
+msgstr "Współdzielenie połączenia przez chronioną sieć WiFi"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
+msgid "Connection sharing via an open WiFi network"
+msgstr "Współdzielenie połączenia przez otwartą sieć WiFi"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
+msgid "Modify persistent system hostname"
+msgstr "Modyfikacja trwałej systemowej nazwy komputera"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
+msgid "Modify system connections"
+msgstr "Modyfikacja połączeń systemowych"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
+msgid "System policy prevents modification of system settings"
+msgstr "Polityka systemu powstrzymuje modyfikację ustawień systemowych"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr ""
+"Polityka systemu powstrzymuje modyfikację trwałej systemowej nazwy komputera"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr ""
+"Polityka systemu powstrzymuje współdzielenie połączeń przez chronioną sieć "
+"WiFi"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr ""
+"Polityka systemu powstrzymuje współdzielenie połączeń przez otwartą sieć WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+msgid "Allow control of network connections"
+msgstr "Umożliwienie kontroli połączeń sieciowych"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Allow use of user-specific connections"
+msgstr "Umożliwienie użycia połączeń użytkowników"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Enable or disable WiFi devices"
+msgstr "Włączenie lub wyłączenie urządzeń WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable mobile broadband devices"
+msgstr "Włączenie lub wyłączenie urządzeń komórkowych"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+msgid "Enable or disable system networking"
+msgstr "Włączenie lub wyłączenie sieci systemowej"
+
+#: ../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 ""
+"Umieszczenie programu NetworkManager w stanie uśpienia lub przebudzenie go "
+"(powinno być używane tylko przez systemowe zarządzanie zasilaniem)"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid "System policy prevents control of network connections"
+msgstr "Polityka systemu powstrzymuje kontrolę połączeń sieciowych"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr "Polityka systemu powstrzymuje włączanie lub wyłączanie urządzeń WiFi"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr ""
+"Polityka systemu powstrzymuje włączenie lub wyłączenie urządzeń komórkowych"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid "System policy prevents enabling or disabling system networking"
+msgstr ""
+"Polityka systemu powstrzymuje włączanie lub wyłączanie sieci systemowej"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr ""
+"Polityka systemu powstrzymuje umieszczenie programu NetworkManager w stanie "
+"uśpienia lub przebudzenie go"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents use of user-specific connections"
+msgstr "Polityka systemu powstrzymuje użycie połączeń użytkownika"
-#: ../src/nm-netlink-monitor.c:260
+#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231
+#: ../src/nm-netlink-monitor.c:653
#, c-format
-msgid "unable to allocate netlink handle for monitoring link status: %s"
-msgstr "nie można przydzielić uchwytu netlink dla monitorowania stanu połączenia: %s"
+msgid "error processing netlink message: %s"
+msgstr "błąd podczas przetwarzania komunikatu netlink: %s"
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "wystąpił błąd podczas oczekiwania na dane na gnieździe"
-#: ../src/nm-netlink-monitor.c:270
+#: ../src/nm-netlink-monitor.c:254
#, c-format
msgid "unable to connect to netlink for monitoring link status: %s"
-msgstr "nie można połączyć się z netlink dla monitorowania stanu połączenia: %s"
-
+msgstr ""
+"nie można połączyć się z netlink dla monitorowania stanu połączenia: %s"
-#: ../src/nm-netlink-monitor.c:278
+#: ../src/nm-netlink-monitor.c:265
#, c-format
-msgid "unable to join netlink group for monitoring link status: %s"
-msgstr "nie można dołączyć do grupy netlink dla monitorowania stanu połączenia: %s"
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr ""
+"nie można włączyć przekazywania danych uwierzytelniających uchwytu netlink: "
+"%s"
+#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
+#, c-format
+msgid "unable to allocate netlink handle for monitoring link status: %s"
+msgstr ""
+"nie można przydzielić uchwytu netlink dla monitorowania stanu połączenia: %s"
-#: ../src/nm-netlink-monitor.c:286
+#: ../src/nm-netlink-monitor.c:376
#, c-format
msgid "unable to allocate netlink link cache for monitoring link status: %s"
-msgstr "nie można przydzielić pamięci podręcznej połączenia netlink dla monitorowania stanu połączenia: %s"
-
-
-#: ../src/nm-netlink-monitor.c:494
-#: ../src/ip6-manager/nm-netlink-listener.c:382
-msgid "error occurred while waiting for data on socket"
-msgstr "wystąpił błąd podczas oczekiwania na dane na gnieździe"
+msgstr ""
+"nie można przydzielić pamięci podręcznej połączenia netlink dla "
+"monitorowania stanu połączenia: %s"
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "nie można dołączyć do grupy netlink: %s"
-#: ../src/nm-netlink-monitor.c:558
-#: ../src/nm-netlink-monitor.c:571
+#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
#, c-format
msgid "error updating link cache: %s"
msgstr "błąd podczas aktualizowania pamięci podręcznej połączenia: %s"
-
-#: ../src/NetworkManager.c:494
+#: ../src/main.c:499
#, 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"
+msgstr ""
+"Nieprawidłowa opcja. Parametr --help wyświetli listę prawidłowych opcji.\n"
+#: ../src/main.c:570
+#, 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/dhcp-manager/nm-dhcp-dhclient.c:300
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328
msgid "# Created by NetworkManager\n"
msgstr "# Utworzony przez program NetworkManager\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:316
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344
#, c-format
msgid ""
"# Merged from %s\n"
@@ -1547,70 +1745,47 @@ msgstr ""
"# Scalony od %s\n"
"\n"
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
+msgid "no usable DHCP client could be found."
+msgstr "nie odnaleziono używalnego klienta DHCP."
-#: ../src/ip6-manager/nm-netlink-listener.c:200
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
+msgid "'dhclient' could be found."
+msgstr "nie można odnaleźć polecenia \"dhclient\"."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
+msgid "'dhcpcd' could be found."
+msgstr "nie można odnaleźć usługi \"dhcpcd\"."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
#, c-format
-msgid "unable to allocate netlink handle: %s"
-msgstr "nie można przydzielić uchwytu netlink: %s"
+msgid "unsupported DHCP client '%s'"
+msgstr "nieobsługiwany klient DHCP \"%s\""
-#: ../src/ip6-manager/nm-netlink-listener.c:210
+#: ../src/logging/nm-logging.c:146
#, c-format
-msgid "unable to connect to netlink: %s"
-msgstr "nie można połączyć się z netlink: %s"
+msgid "Unknown log level '%s'"
+msgstr "Nieznany poziom dziennika \"%s\""
-#: ../src/ip6-manager/nm-netlink-listener.c:307
+#: ../src/logging/nm-logging.c:171
#, c-format
-msgid "unable to join netlink group: %s"
-msgstr "nie można dołączyć do grupy netlink: %s"
+msgid "Unknown log domain '%s'"
+msgstr "Nieznana domena dziennika \"%s\""
-#: ../src/dns-manager/nm-dns-manager.c:315
+#: ../src/dns-manager/nm-dns-manager.c:384
msgid "NOTE: the libc resolver may not support more than 3 nameservers."
msgstr "UWAGA: obsługa nazw libc nie obsługuje więcej niż 3 serwery nazw."
-#: ../src/dns-manager/nm-dns-manager.c:317
+#: ../src/dns-manager/nm-dns-manager.c:386
msgid "The nameservers listed below may not be recognized."
msgstr "Poniższe serwery nazw nie mogą nie zostać rozpoznane."
-
#: ../src/system-settings/nm-default-wired-connection.c:157
#, c-format
msgid "Auto %s"
msgstr "Automatyczne %s"
-
-#: ../system-settings/plugins/ifcfg-rh/reader.c:3213
+#: ../system-settings/plugins/ifcfg-rh/reader.c:3412
+#: ../system-settings/plugins/ifnet/connection_parser.c:49
msgid "System"
msgstr "Systemowe"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
-msgid "Connection sharing via a protected WiFi network"
-msgstr "Współdzielenie połączenia przez chronioną sieć WiFi"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
-msgid "Connection sharing via an open WiFi network"
-msgstr "Współdzielenie połączenia przez otwartą sieć WiFi"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
-msgid "Modify persistent system hostname"
-msgstr "Modyfikacja trwałej systemowej nazwy komputera"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
-msgid "Modify system connections"
-msgstr "Modyfikacja połączeń systemowych"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
-msgid "System policy prevents modification of system settings"
-msgstr "Polityka systemu powstrzymuje modyfikację ustawień systemowych"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
-msgid "System policy prevents modification of the persistent system hostname"
-msgstr "Polityka systemu powstrzymuje modyfikację trwałej systemowej nazwy komputera"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
-msgid "System policy prevents sharing connections via a protected WiFi network"
-msgstr "Polityka systemu powstrzymuje współdzielenie połączeń przez chronioną sieć WiFi"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
-msgid "System policy prevents sharing connections via an open WiFi network"
-msgstr "Polityka systemu powstrzymuje współdzielenie połączeń przez otwartą sieć WiFi"
-
diff --git a/src/NetworkManager.conf b/src/NetworkManager.conf
index afaef21798..fbbeb935d0 100644
--- a/src/NetworkManager.conf
+++ b/src/NetworkManager.conf
@@ -57,6 +57,18 @@
<deny send_destination="org.freedesktop.NetworkManager"
send_interface="org.freedesktop.NetworkManager"
send_member="SetLogging"/>
+
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="Sleep"/>
+
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="sleep"/>
+
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="wake"/>
</policy>
<policy context="default">
<deny own="org.freedesktop.NetworkManager"/>
@@ -76,7 +88,19 @@
send_interface="org.freedesktop.NetworkManager"
send_member="SetLogging"/>
- <!-- The org.freedesktop.NetworkManager.Settings.Connection.Secrets
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="Sleep"/>
+
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="sleep"/>
+
+ <deny send_destination="org.freedesktop.NetworkManager"
+ send_interface="org.freedesktop.NetworkManager"
+ send_member="wake"/>
+
+ <!-- The org.freedesktop.NetworkManagerSettings.Connection.Secrets
interface is secured via PolicyKit.
-->
</policy>
diff --git a/src/backends/Makefile.am b/src/backends/Makefile.am
index b35fafd72a..036dc6de38 100644
--- a/src/backends/Makefile.am
+++ b/src/backends/Makefile.am
@@ -53,6 +53,10 @@ if TARGET_PARDUS
libnmbackend_la_SOURCES += NetworkManagerPardus.c
endif
+if TARGET_LINEXA
+libnmbackend_la_SOURCES += NetworkManagerLinexa.c
+endif
+
libnmbackend_la_LIBADD += \
$(top_builddir)/src/logging/libnm-logging.la \
$(DBUS_LIBS) \
diff --git a/src/backends/NetworkManagerLinexa.c b/src/backends/NetworkManagerLinexa.c
new file mode 100644
index 0000000000..015aa17c68
--- /dev/null
+++ b/src/backends/NetworkManagerLinexa.c
@@ -0,0 +1,66 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* NetworkManager -- Network link manager
+ *
+ * Matthew Garrett <mjg59@srcf.ucam.org>
+ *
+ * Heavily based on NetworkManagerRedhat.c by Dan Williams <dcbw@redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2004 Tom Parker
+ * (C) Copyright 2004 Matthew Garrett
+ * (C) Copyright 2004 Red Hat, Inc.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "NetworkManagerGeneric.h"
+#include "nm-system.h"
+#include "NetworkManagerUtils.h"
+#include "nm-logging.h"
+
+/*
+ * nm_system_enable_loopback
+ *
+ * Bring up the loopback interface
+ *
+ */
+void nm_system_enable_loopback (void)
+{
+ nm_generic_enable_loopback ();
+}
+
+/*
+ * nm_system_update_dns
+ *
+ * Invalidate the nscd host cache, if it exists, since
+ * we changed resolv.conf.
+ *
+ */
+void nm_system_update_dns (void)
+{
+ if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) {
+ nm_log_info (LOGD_DNS, "Clearing nscd hosts cache.");
+ nm_spawn_process ("/usr/sbin/nscd -i hosts");
+ }
+}
+
+
diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c
index 1d50d4221b..28b2c78fe2 100644
--- a/src/dhcp-manager/nm-dhcp-client.c
+++ b/src/dhcp-manager/nm-dhcp-client.c
@@ -17,6 +17,7 @@
*
*/
+#include <config.h>
#include <glib.h>
#include <string.h>
#include <sys/types.h>
diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c
index 2f25fca98b..091ae2f989 100644
--- a/src/dhcp-manager/nm-dhcp-dhclient.c
+++ b/src/dhcp-manager/nm-dhcp-dhclient.c
@@ -512,6 +512,8 @@ dhclient_start (NMDHCPClient *client,
uuid = nm_dhcp_client_get_uuid (client);
ipv6 = nm_dhcp_client_get_ipv6 (client);
+ log_domain = ipv6 ? LOGD_DHCP6 : LOGD_DHCP4;
+
#if defined(DHCLIENT_V3)
if (ipv6) {
nm_log_warn (log_domain, "(%s): ISC dhcp3 does not support IPv6", iface);
@@ -521,8 +523,6 @@ dhclient_start (NMDHCPClient *client,
g_return_val_if_fail (ip_opt != NULL, -1);
#endif
- log_domain = ipv6 ? LOGD_DHCP6 : LOGD_DHCP4;
-
priv->pid_file = g_strdup_printf (LOCALSTATEDIR "/run/dhclient%s-%s.pid",
ipv6 ? "6" : "",
iface);
diff --git a/src/dns-manager/nm-dns-bind.c b/src/dns-manager/nm-dns-bind.c
index 2e1ec67dec..9e3fc1739e 100644
--- a/src/dns-manager/nm-dns-bind.c
+++ b/src/dns-manager/nm-dns-bind.c
@@ -18,6 +18,7 @@
*
*/
+#include <config.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c
index 254e2ffbb6..41c8e2a642 100644
--- a/src/dns-manager/nm-dns-dnsmasq.c
+++ b/src/dns-manager/nm-dns-dnsmasq.c
@@ -18,6 +18,7 @@
*
*/
+#include <config.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
index 71adbc5263..7a6fbbc9d9 100644
--- a/src/dns-manager/nm-dns-manager.c
+++ b/src/dns-manager/nm-dns-manager.c
@@ -572,7 +572,7 @@ update_dns (NMDnsManager *self,
priv = NM_DNS_MANAGER_GET_PRIVATE (self);
- if (iface) {
+ if (iface && (iface != priv->last_iface)) {
g_free (priv->last_iface);
priv->last_iface = g_strdup (iface);
}
diff --git a/src/dns-manager/nm-dns-plugin.c b/src/dns-manager/nm-dns-plugin.c
index d47640b1c3..f7d65a529b 100644
--- a/src/dns-manager/nm-dns-plugin.c
+++ b/src/dns-manager/nm-dns-plugin.c
@@ -17,6 +17,7 @@
*
*/
+#include <config.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
@@ -106,7 +107,7 @@ kill_existing (const char *progname, const char *pidfile, const char *kill_match
goto out;
if (strstr (cmdline_contents, kill_match)) {
- if (kill (pid, 0)) {
+ if (kill (pid, 0) == 0) {
nm_log_dbg (LOGD_DNS, "Killing stale %s child process %ld", progname, pid);
kill (pid, SIGKILL);
}
diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.c b/src/dnsmasq-manager/nm-dnsmasq-manager.c
index e6c67a1e31..701c078268 100644
--- a/src/dnsmasq-manager/nm-dnsmasq-manager.c
+++ b/src/dnsmasq-manager/nm-dnsmasq-manager.c
@@ -18,6 +18,7 @@
* Copyright (C) 2008 - 2010 Red Hat, Inc.
*/
+#include <config.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
@@ -385,7 +386,7 @@ kill_existing_for_iface (const char *iface, const char *pidfile)
goto out;
if (strstr (cmdline_contents, "bin/dnsmasq")) {
- if (kill (pid, 0)) {
+ if (kill (pid, 0) == 0) {
nm_log_dbg (LOGD_SHARING, "Killing stale dnsmasq process %ld", pid);
kill (pid, SIGKILL);
}
diff --git a/src/nm-device-ethernet.c b/src/nm-device-ethernet.c
index 08bbc50112..13139542fa 100644
--- a/src/nm-device-ethernet.c
+++ b/src/nm-device-ethernet.c
@@ -78,30 +78,17 @@ typedef enum
#define NM_ETHERNET_ERROR (nm_ethernet_error_quark ())
#define NM_TYPE_ETHERNET_ERROR (nm_ethernet_error_get_type ())
-typedef struct SupplicantStateTask {
- NMDeviceEthernet *self;
- guint32 new_state;
- guint32 old_state;
- gboolean mgr_task;
- guint source_id;
-} SupplicantStateTask;
-
typedef struct Supplicant {
NMSupplicantManager *mgr;
NMSupplicantInterface *iface;
/* signal handler ids */
- guint mgr_state_id;
guint iface_error_id;
guint iface_state_id;
- guint iface_con_state_id;
/* Timeouts and idles */
guint iface_con_error_cb_id;
guint con_timeout_id;
-
- GSList *iface_tasks;
- GSList *mgr_tasks;
} Supplicant;
typedef struct {
@@ -997,30 +984,6 @@ remove_supplicant_timeouts (NMDeviceEthernet *self)
}
static void
-finish_supplicant_task (SupplicantStateTask *task, gboolean remove_source)
-{
- NMDeviceEthernet *self = task->self;
- NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self);
-
- /* idle/timeout handlers should pass FALSE for remove_source, since they
- * will tell glib to remove their source from the mainloop by returning
- * FALSE when they exit. When called from this NMDevice's dispose handler,
- * remove_source should be TRUE to cancel all outstanding idle/timeout
- * handlers asynchronously.
- */
- if (task->source_id && remove_source)
- g_source_remove (task->source_id);
-
- if (task->mgr_task)
- priv->supplicant.mgr_tasks = g_slist_remove (priv->supplicant.mgr_tasks, task);
- else
- priv->supplicant.iface_tasks = g_slist_remove (priv->supplicant.iface_tasks, task);
-
- memset (task, 0, sizeof (SupplicantStateTask));
- g_slice_free (SupplicantStateTask, task);
-}
-
-static void
remove_supplicant_interface_error_handler (NMDeviceEthernet *self)
{
NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self);
@@ -1044,28 +1007,14 @@ supplicant_interface_release (NMDeviceEthernet *self)
remove_supplicant_timeouts (self);
remove_supplicant_interface_error_handler (self);
- /* Clean up all pending supplicant interface state idle tasks */
- while (priv->supplicant.iface_tasks)
- finish_supplicant_task ((SupplicantStateTask *) priv->supplicant.iface_tasks->data, TRUE);
-
- if (priv->supplicant.iface_con_state_id) {
- g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_con_state_id);
- priv->supplicant.iface_con_state_id = 0;
- }
-
if (priv->supplicant.iface_state_id > 0) {
g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_state_id);
priv->supplicant.iface_state_id = 0;
}
- if (priv->supplicant.mgr_state_id) {
- g_signal_handler_disconnect (priv->supplicant.mgr, priv->supplicant.mgr_state_id);
- priv->supplicant.mgr_state_id = 0;
- }
-
if (priv->supplicant.iface) {
nm_supplicant_interface_disconnect (priv->supplicant.iface);
- nm_supplicant_manager_release_iface (priv->supplicant.mgr, priv->supplicant.iface);
+ nm_supplicant_manager_iface_release (priv->supplicant.mgr, priv->supplicant.iface);
priv->supplicant.iface = NULL;
}
}
@@ -1127,77 +1076,6 @@ time_out:
return FALSE;
}
-static gboolean
-schedule_state_handler (NMDeviceEthernet *self,
- GSourceFunc handler,
- guint32 new_state,
- guint32 old_state,
- gboolean mgr_task)
-{
- NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self);
- SupplicantStateTask *task;
-
- if (new_state == old_state)
- return TRUE;
-
- task = g_slice_new0 (SupplicantStateTask);
- if (!task) {
- nm_log_err (LOGD_DEVICE, "Not enough memory to process supplicant manager state change.");
- return FALSE;
- }
-
- task->self = self;
- task->new_state = new_state;
- task->old_state = old_state;
- task->mgr_task = mgr_task;
-
- task->source_id = g_idle_add (handler, task);
- if (mgr_task)
- priv->supplicant.mgr_tasks = g_slist_append (priv->supplicant.mgr_tasks, task);
- else
- priv->supplicant.iface_tasks = g_slist_append (priv->supplicant.iface_tasks, task);
- return TRUE;
-}
-
-static gboolean
-supplicant_mgr_state_cb_handler (gpointer user_data)
-{
- SupplicantStateTask *task = (SupplicantStateTask *) user_data;
- NMDevice *device = NM_DEVICE (task->self);
-
- /* If the supplicant went away, release the supplicant interface */
- if (task->new_state == NM_SUPPLICANT_MANAGER_STATE_DOWN) {
- supplicant_interface_release (task->self);
-
- if (nm_device_get_state (device) > NM_DEVICE_STATE_UNAVAILABLE) {
- nm_device_state_changed (device, NM_DEVICE_STATE_UNAVAILABLE,
- NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED);
- }
- }
-
- finish_supplicant_task (task, FALSE);
- return FALSE;
-}
-
-static void
-supplicant_mgr_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- gpointer user_data)
-{
- nm_log_info (LOGD_DEVICE | LOGD_ETHER,
- "(%s): supplicant manager state: %s -> %s",
- nm_device_get_iface (NM_DEVICE (user_data)),
- nm_supplicant_manager_state_to_string (old_state),
- nm_supplicant_manager_state_to_string (new_state));
-
- schedule_state_handler (NM_DEVICE_ETHERNET (user_data),
- supplicant_mgr_state_cb_handler,
- new_state,
- old_state,
- TRUE);
-}
-
static NMSupplicantConfig *
build_supplicant_config (NMDeviceEthernet *self)
{
@@ -1224,20 +1102,33 @@ build_supplicant_config (NMDeviceEthernet *self)
return config;
}
-static gboolean
-supplicant_iface_state_cb_handler (gpointer user_data)
+static void
+supplicant_iface_state_cb (NMSupplicantInterface *iface,
+ guint32 new_state,
+ guint32 old_state,
+ gpointer user_data)
{
- SupplicantStateTask *task = (SupplicantStateTask *) user_data;
- NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (task->self);
- NMDevice *device = NM_DEVICE (task->self);
+ NMDeviceEthernet *self = NM_DEVICE_ETHERNET (user_data);
+ NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self);
+ NMDevice *device = NM_DEVICE (self);
+ NMSupplicantConfig *config;
+ gboolean success = FALSE;
+ NMDeviceState devstate;
+
+ if (new_state == old_state)
+ return;
+
+ nm_log_info (LOGD_DEVICE | LOGD_ETHER,
+ "(%s): supplicant interface state: %s -> %s",
+ nm_device_get_iface (device),
+ nm_supplicant_interface_state_to_string (old_state),
+ nm_supplicant_interface_state_to_string (new_state));
- if (task->new_state == NM_SUPPLICANT_INTERFACE_STATE_READY) {
- NMSupplicantConfig *config;
- const char *iface;
- gboolean success = FALSE;
+ devstate = nm_device_get_state (device);
- iface = nm_device_get_iface (device);
- config = build_supplicant_config (task->self);
+ switch (new_state) {
+ case NM_SUPPLICANT_INTERFACE_STATE_READY:
+ config = build_supplicant_config (self);
if (config) {
success = nm_supplicant_interface_set_config (priv->supplicant.iface, config);
g_object_unref (config);
@@ -1246,99 +1137,54 @@ supplicant_iface_state_cb_handler (gpointer user_data)
nm_log_err (LOGD_DEVICE | LOGD_ETHER,
"Activation (%s/wired): couldn't send security "
"configuration to the supplicant.",
- iface);
+ nm_device_get_iface (device));
}
} else {
nm_log_warn (LOGD_DEVICE | LOGD_ETHER,
"Activation (%s/wired): couldn't build security configuration.",
- iface);
+ nm_device_get_iface (device));
}
- if (!success)
- nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED);
- } else if (task->new_state == NM_SUPPLICANT_INTERFACE_STATE_DOWN) {
- NMDeviceState state = nm_device_get_state (device);
-
- supplicant_interface_release (task->self);
-
- if (nm_device_is_activating (device) || state == NM_DEVICE_STATE_ACTIVATED)
- nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED);
- }
-
- finish_supplicant_task (task, FALSE);
- return FALSE;
-}
-
-static void
-supplicant_iface_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- gpointer user_data)
-{
-
- nm_log_info (LOGD_DEVICE | LOGD_ETHER,
- "(%s): supplicant interface state: %s -> %s",
- nm_device_get_iface (NM_DEVICE (user_data)),
- nm_supplicant_interface_state_to_string (old_state),
- nm_supplicant_interface_state_to_string (new_state));
-
- schedule_state_handler (NM_DEVICE_ETHERNET (user_data),
- supplicant_iface_state_cb_handler,
- new_state,
- old_state,
- FALSE);
-}
-
-static gboolean
-supplicant_iface_connection_state_cb_handler (gpointer user_data)
-{
- SupplicantStateTask *task = (SupplicantStateTask *) user_data;
- NMDevice *dev = NM_DEVICE (task->self);
-
- if (task->new_state == NM_SUPPLICANT_INTERFACE_CON_STATE_COMPLETED) {
- remove_supplicant_interface_error_handler (task->self);
- remove_supplicant_timeouts (task->self);
+ if (!success) {
+ nm_device_state_changed (device,
+ NM_DEVICE_STATE_FAILED,
+ NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED);
+ }
+ break;
+ case NM_SUPPLICANT_INTERFACE_STATE_COMPLETED:
+ remove_supplicant_interface_error_handler (self);
+ remove_supplicant_timeouts (self);
/* If this is the initial association during device activation,
* schedule the next activation stage.
*/
- if (nm_device_get_state (dev) == NM_DEVICE_STATE_CONFIG) {
+ if (devstate == NM_DEVICE_STATE_CONFIG) {
nm_log_info (LOGD_DEVICE | LOGD_ETHER,
"Activation (%s/wired) Stage 2 of 5 (Device Configure) successful.",
- nm_device_get_iface (dev));
- nm_device_activate_schedule_stage3_ip_config_start (dev);
+ nm_device_get_iface (device));
+ nm_device_activate_schedule_stage3_ip_config_start (device);
}
- } else if (task->new_state == NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED) {
- if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED || nm_device_is_activating (dev)) {
- NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (task->self);
-
+ break;
+ case NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED:
+ if ((devstate == NM_DEVICE_STATE_ACTIVATED) || nm_device_is_activating (device)) {
/* Start the link timeout so we allow some time for reauthentication */
if (!priv->supplicant_timeout_id)
- priv->supplicant_timeout_id = g_timeout_add_seconds (15, link_timeout_cb, dev);
+ priv->supplicant_timeout_id = g_timeout_add_seconds (15, link_timeout_cb, device);
}
- }
-
- finish_supplicant_task (task, FALSE);
- return FALSE;
-}
-
-static void
-supplicant_iface_connection_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- gpointer user_data)
-{
- nm_log_info (LOGD_DEVICE | LOGD_ETHER,
- "(%s) supplicant connection state: %s -> %s",
- nm_device_get_iface (NM_DEVICE (user_data)),
- nm_supplicant_interface_connection_state_to_string (old_state),
- nm_supplicant_interface_connection_state_to_string (new_state));
+ break;
+ case NM_SUPPLICANT_INTERFACE_STATE_DOWN:
+ supplicant_interface_release (self);
+ remove_supplicant_timeouts (self);
- schedule_state_handler (NM_DEVICE_ETHERNET (user_data),
- supplicant_iface_connection_state_cb_handler,
- new_state,
- old_state,
- FALSE);
+ if ((devstate == NM_DEVICE_STATE_ACTIVATED) || nm_device_is_activating (device)) {
+ nm_device_state_changed (device,
+ NM_DEVICE_STATE_FAILED,
+ NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED);
+ }
+ break;
+ default:
+ break;
+ }
}
static gboolean
@@ -1456,38 +1302,26 @@ supplicant_interface_init (NMDeviceEthernet *self)
iface = nm_device_get_iface (NM_DEVICE (self));
/* Create supplicant interface */
- priv->supplicant.iface = nm_supplicant_manager_get_iface (priv->supplicant.mgr, iface, FALSE);
+ priv->supplicant.iface = nm_supplicant_manager_iface_get (priv->supplicant.mgr, iface, FALSE);
if (!priv->supplicant.iface) {
nm_log_err (LOGD_DEVICE | LOGD_ETHER,
"Couldn't initialize supplicant interface for %s.",
iface);
supplicant_interface_release (self);
-
return FALSE;
}
/* Listen for it's state signals */
priv->supplicant.iface_state_id = g_signal_connect (priv->supplicant.iface,
- "state",
- G_CALLBACK (supplicant_iface_state_cb),
- self);
+ "state",
+ G_CALLBACK (supplicant_iface_state_cb),
+ self);
/* Hook up error signal handler to capture association errors */
priv->supplicant.iface_error_id = g_signal_connect (priv->supplicant.iface,
- "connection-error",
- G_CALLBACK (supplicant_iface_connection_error_cb),
- self);
-
- priv->supplicant.iface_con_state_id = g_signal_connect (priv->supplicant.iface,
- "connection-state",
- G_CALLBACK (supplicant_iface_connection_state_cb),
- self);
-
- /* Listen for supplicant manager state changes */
- priv->supplicant.mgr_state_id = g_signal_connect (priv->supplicant.mgr,
- "state",
- G_CALLBACK (supplicant_mgr_state_cb),
- self);
+ "connection-error",
+ G_CALLBACK (supplicant_iface_connection_error_cb),
+ self);
/* Set up a timeout on the connection attempt to fail it after 25 seconds */
priv->supplicant.con_timeout_id = g_timeout_add_seconds (25, supplicant_connection_timeout_cb, self);
@@ -2047,12 +1881,6 @@ dispose (GObject *object)
priv->disposed = TRUE;
- /* Clean up all pending supplicant tasks */
- while (priv->supplicant.iface_tasks)
- finish_supplicant_task ((SupplicantStateTask *) priv->supplicant.iface_tasks->data, TRUE);
- while (priv->supplicant.mgr_tasks)
- finish_supplicant_task ((SupplicantStateTask *) priv->supplicant.mgr_tasks->data, TRUE);
-
if (priv->link_connected_id) {
g_signal_handler_disconnect (priv->monitor, priv->link_connected_id);
priv->link_connected_id = 0;
diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
index b09d112547..49529708b2 100644
--- a/src/nm-device-wifi.c
+++ b/src/nm-device-wifi.c
@@ -113,34 +113,18 @@ typedef enum {
#define NM_WIFI_ERROR (nm_wifi_error_quark ())
#define NM_TYPE_WIFI_ERROR (nm_wifi_error_get_type ())
-typedef struct SupplicantStateTask {
- NMDeviceWifi *self;
- guint32 new_state;
- guint32 old_state;
- gboolean mgr_task;
- guint source_id;
-} SupplicantStateTask;
+#define SUP_SIG_ID_LEN 5
typedef struct Supplicant {
NMSupplicantManager *mgr;
NMSupplicantInterface *iface;
- /* signal handler ids */
- guint mgr_state_id;
+ guint sig_ids[SUP_SIG_ID_LEN];
guint iface_error_id;
- guint iface_state_id;
- guint iface_scanned_ap_id;
- guint iface_scan_request_result_id;
- guint iface_scan_results_id;
- guint iface_con_state_id;
- guint iface_notify_scanning_id;
/* Timeouts and idles */
guint iface_con_error_cb_id;
guint con_timeout_id;
-
- GSList *mgr_tasks;
- GSList *iface_tasks;
} Supplicant;
struct _NMDeviceWifiPrivate {
@@ -199,15 +183,10 @@ static void cleanup_association_attempt (NMDeviceWifi * self,
static void remove_supplicant_timeouts (NMDeviceWifi *self);
-static void supplicant_iface_state_cb (NMSupplicantInterface * iface,
+static void supplicant_iface_state_cb (NMSupplicantInterface *iface,
guint32 new_state,
guint32 old_state,
- NMDeviceWifi *self);
-
-static void supplicant_iface_connection_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- NMDeviceWifi *self);
+ gpointer user_data);
static void supplicant_iface_scanned_ap_cb (NMSupplicantInterface * iface,
GHashTable *properties,
@@ -221,11 +200,6 @@ static void supplicant_iface_scan_results_cb (NMSupplicantInterface * iface,
guint32 num_bssids,
NMDeviceWifi * self);
-static void supplicant_mgr_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- NMDeviceWifi *self);
-
static void supplicant_iface_notify_scanning_cb (NMSupplicantInterface * iface,
GParamSpec * pspec,
NMDeviceWifi * self);
@@ -625,10 +599,7 @@ constructor (GType type,
/* Connect to the supplicant manager */
priv->supplicant.mgr = nm_supplicant_manager_get ();
- priv->supplicant.mgr_state_id = g_signal_connect (priv->supplicant.mgr,
- "state",
- G_CALLBACK (supplicant_mgr_state_cb),
- self);
+ g_assert (priv->supplicant.mgr);
/* The ipw2x00 drivers don't integrate with the kernel rfkill subsystem until
* 2.6.33. Thus all our nice libgudev magic is useless. So we get to poll.
@@ -657,17 +628,13 @@ static gboolean
supplicant_interface_acquire (NMDeviceWifi *self)
{
NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
- guint id, mgr_state;
+ guint id, i = 0;
g_return_val_if_fail (self != NULL, FALSE);
- g_return_val_if_fail (priv->supplicant.mgr != NULL, FALSE);
/* interface already acquired? */
g_return_val_if_fail (priv->supplicant.iface == NULL, TRUE);
- mgr_state = nm_supplicant_manager_get_state (priv->supplicant.mgr);
- g_return_val_if_fail (mgr_state == NM_SUPPLICANT_MANAGER_STATE_IDLE, FALSE);
-
- priv->supplicant.iface = nm_supplicant_manager_get_iface (priv->supplicant.mgr,
+ priv->supplicant.iface = nm_supplicant_manager_iface_get (priv->supplicant.mgr,
nm_device_get_iface (NM_DEVICE (self)),
TRUE);
if (priv->supplicant.iface == NULL) {
@@ -676,70 +643,42 @@ supplicant_interface_acquire (NMDeviceWifi *self)
return FALSE;
}
+ memset (priv->supplicant.sig_ids, 0, sizeof (priv->supplicant.sig_ids));
+
id = g_signal_connect (priv->supplicant.iface,
"state",
G_CALLBACK (supplicant_iface_state_cb),
self);
- priv->supplicant.iface_state_id = id;
+ priv->supplicant.sig_ids[i++] = id;
id = g_signal_connect (priv->supplicant.iface,
"scanned-ap",
G_CALLBACK (supplicant_iface_scanned_ap_cb),
self);
- priv->supplicant.iface_scanned_ap_id = id;
+ priv->supplicant.sig_ids[i++] = id;
id = g_signal_connect (priv->supplicant.iface,
"scan-req-result",
G_CALLBACK (supplicant_iface_scan_request_result_cb),
self);
- priv->supplicant.iface_scan_request_result_id = id;
+ priv->supplicant.sig_ids[i++] = id;
id = g_signal_connect (priv->supplicant.iface,
"scan-results",
G_CALLBACK (supplicant_iface_scan_results_cb),
self);
- priv->supplicant.iface_scan_results_id = id;
-
- id = g_signal_connect (priv->supplicant.iface,
- "connection-state",
- G_CALLBACK (supplicant_iface_connection_state_cb),
- self);
- priv->supplicant.iface_con_state_id = id;
+ priv->supplicant.sig_ids[i++] = id;
id = g_signal_connect (priv->supplicant.iface,
"notify::scanning",
G_CALLBACK (supplicant_iface_notify_scanning_cb),
self);
- priv->supplicant.iface_notify_scanning_id = id;
+ priv->supplicant.sig_ids[i++] = id;
return TRUE;
}
static void
-finish_supplicant_task (SupplicantStateTask *task, gboolean remove_source)
-{
- NMDeviceWifi *self = task->self;
- NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
-
- /* idle/timeout handlers should pass FALSE for remove_source, since they
- * will tell glib to remove their source from the mainloop by returning
- * FALSE when they exit. When called from this NMDevice's dispose handler,
- * remove_source should be TRUE to cancel all outstanding idle/timeout
- * handlers asynchronously.
- */
- if (task->source_id && remove_source)
- g_source_remove (task->source_id);
-
- if (task->mgr_task)
- priv->supplicant.mgr_tasks = g_slist_remove (priv->supplicant.mgr_tasks, task);
- else
- priv->supplicant.iface_tasks = g_slist_remove (priv->supplicant.iface_tasks, task);
-
- memset (task, 0, sizeof (SupplicantStateTask));
- g_slice_free (SupplicantStateTask, task);
-}
-
-static void
remove_supplicant_interface_error_handler (NMDeviceWifi *self)
{
NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
@@ -762,6 +701,7 @@ static void
supplicant_interface_release (NMDeviceWifi *self)
{
NMDeviceWifiPrivate *priv;
+ guint i;
g_return_if_fail (self != NULL);
@@ -776,45 +716,18 @@ supplicant_interface_release (NMDeviceWifi *self)
remove_supplicant_interface_error_handler (self);
- /* Clean up all pending supplicant interface state idle tasks */
- while (priv->supplicant.iface_tasks)
- finish_supplicant_task ((SupplicantStateTask *) priv->supplicant.iface_tasks->data, TRUE);
-
- if (priv->supplicant.iface_state_id > 0) {
- g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_state_id);
- priv->supplicant.iface_state_id = 0;
- }
-
- if (priv->supplicant.iface_scanned_ap_id > 0) {
- g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_scanned_ap_id);
- priv->supplicant.iface_scanned_ap_id = 0;
- }
-
- if (priv->supplicant.iface_scan_request_result_id > 0) {
- g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_scan_request_result_id);
- priv->supplicant.iface_scan_request_result_id = 0;
- }
-
- if (priv->supplicant.iface_scan_results_id > 0) {
- g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_scan_results_id);
- priv->supplicant.iface_scan_results_id = 0;
- }
-
- if (priv->supplicant.iface_con_state_id > 0) {
- g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_con_state_id);
- priv->supplicant.iface_con_state_id = 0;
- }
-
- if (priv->supplicant.iface_notify_scanning_id > 0) {
- g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.iface_notify_scanning_id);
- priv->supplicant.iface_notify_scanning_id = 0;
+ /* Clear supplicant interface signal handlers */
+ for (i = 0; i < SUP_SIG_ID_LEN; i++) {
+ if (priv->supplicant.sig_ids[i] > 0)
+ g_signal_handler_disconnect (priv->supplicant.iface, priv->supplicant.sig_ids[i]);
}
+ memset (priv->supplicant.sig_ids, 0, sizeof (priv->supplicant.sig_ids));
if (priv->supplicant.iface) {
/* Tell the supplicant to disconnect from the current AP */
nm_supplicant_interface_disconnect (priv->supplicant.iface);
- nm_supplicant_manager_release_iface (priv->supplicant.mgr, priv->supplicant.iface);
+ nm_supplicant_manager_iface_release (priv->supplicant.mgr, priv->supplicant.iface);
priv->supplicant.iface = NULL;
}
}
@@ -1837,11 +1750,11 @@ scanning_allowed (NMDeviceWifi *self)
}
/* Don't scan if the supplicant is busy */
- sup_state = nm_supplicant_interface_get_connection_state (priv->supplicant.iface);
- if ( sup_state == NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATING
- || sup_state == NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATED
- || sup_state == NM_SUPPLICANT_INTERFACE_CON_STATE_4WAY_HANDSHAKE
- || sup_state == NM_SUPPLICANT_INTERFACE_CON_STATE_GROUP_HANDSHAKE
+ sup_state = nm_supplicant_interface_get_state (priv->supplicant.iface);
+ if ( sup_state == NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATING
+ || sup_state == NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATED
+ || sup_state == NM_SUPPLICANT_INTERFACE_STATE_4WAY_HANDSHAKE
+ || sup_state == NM_SUPPLICANT_INTERFACE_STATE_GROUP_HANDSHAKE
|| nm_supplicant_interface_get_scanning (priv->supplicant.iface))
return FALSE;
@@ -2441,253 +2354,97 @@ time_out:
return FALSE;
}
-static gboolean
-schedule_state_handler (NMDeviceWifi *self,
- GSourceFunc handler,
- guint32 new_state,
- guint32 old_state,
- gboolean mgr_task)
+static void
+supplicant_iface_state_cb (NMSupplicantInterface *iface,
+ guint32 new_state,
+ guint32 old_state,
+ gpointer user_data)
{
- NMDeviceWifiPrivate *priv;
- SupplicantStateTask *task;
-
- g_return_val_if_fail (self != NULL, FALSE);
- g_return_val_if_fail (handler != NULL, FALSE);
+ NMDeviceWifi *self = NM_DEVICE_WIFI (user_data);
+ NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
+ NMDevice *device = NM_DEVICE (self);
+ NMDeviceState devstate;
+ gboolean scanning;
if (new_state == old_state)
- return TRUE;
-
- priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
-
- task = g_slice_new0 (SupplicantStateTask);
- if (!task) {
- nm_log_err (LOGD_WIFI, "Not enough memory to process supplicant manager state change.");
- return FALSE;
- }
-
- task->self = self;
- task->new_state = new_state;
- task->old_state = old_state;
- task->mgr_task = mgr_task;
-
- task->source_id = g_idle_add (handler, task);
- if (mgr_task)
- priv->supplicant.mgr_tasks = g_slist_append (priv->supplicant.mgr_tasks, task);
- else
- priv->supplicant.iface_tasks = g_slist_append (priv->supplicant.iface_tasks, task);
-
- return TRUE;
-}
-
-static gboolean
-supplicant_iface_state_cb_handler (gpointer user_data)
-{
- SupplicantStateTask *task = (SupplicantStateTask *) user_data;
- NMDeviceWifi *self;
- NMDeviceWifiPrivate *priv;
-
- g_return_val_if_fail (task != NULL, FALSE);
+ return;
- self = task->self;
- priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
+ nm_log_info (LOGD_DEVICE | LOGD_WIFI,
+ "(%s): supplicant interface state: %s -> %s",
+ nm_device_get_iface (device),
+ nm_supplicant_interface_state_to_string (old_state),
+ nm_supplicant_interface_state_to_string (new_state));
- nm_log_info (LOGD_WIFI, "(%s): supplicant interface state: %s -> %s",
- nm_device_get_iface (NM_DEVICE (self)),
- nm_supplicant_interface_state_to_string (task->old_state),
- nm_supplicant_interface_state_to_string (task->new_state));
+ devstate = nm_device_get_state (device);
+ scanning = nm_supplicant_interface_get_scanning (iface);
- if (task->new_state == NM_SUPPLICANT_INTERFACE_STATE_READY) {
+ switch (new_state) {
+ case NM_SUPPLICANT_INTERFACE_STATE_READY:
priv->scan_interval = SCAN_INTERVAL_MIN;
/* If the interface can now be activated because the supplicant is now
* available, transition to DISCONNECTED.
*/
- if ( (nm_device_get_state (NM_DEVICE (self)) == NM_DEVICE_STATE_UNAVAILABLE)
- && nm_device_is_available (NM_DEVICE (self))) {
- nm_device_state_changed (NM_DEVICE (self), NM_DEVICE_STATE_DISCONNECTED,
+ if ((devstate == NM_DEVICE_STATE_UNAVAILABLE) && nm_device_is_available (device)) {
+ nm_device_state_changed (device,
+ NM_DEVICE_STATE_DISCONNECTED,
NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE);
}
- nm_log_dbg (LOGD_WIFI_SCAN, "(%s): supplicant ready, requesting initial scan",
- nm_device_get_iface (NM_DEVICE (self)));
+ nm_log_dbg (LOGD_WIFI_SCAN,
+ "(%s): supplicant ready, requesting initial scan",
+ nm_device_get_iface (device));
/* Request a scan to get latest results */
cancel_pending_scan (self);
request_wireless_scan (self);
- } else if (task->new_state == NM_SUPPLICANT_INTERFACE_STATE_DOWN) {
- cleanup_association_attempt (self, FALSE);
- supplicant_interface_release (self);
- nm_device_state_changed (NM_DEVICE (self), NM_DEVICE_STATE_UNAVAILABLE,
- NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED);
- }
-
- finish_supplicant_task (task, FALSE);
- return FALSE;
-}
-
-
-static void
-supplicant_iface_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- NMDeviceWifi *self)
-{
- g_return_if_fail (self != NULL);
-
- schedule_state_handler (self,
- supplicant_iface_state_cb_handler,
- new_state,
- old_state,
- FALSE);
-}
-
-
-static gboolean
-supplicant_iface_connection_state_cb_handler (gpointer user_data)
-{
- SupplicantStateTask *task = (SupplicantStateTask *) user_data;
- NMDeviceWifi *self = task->self;
- NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
- NMDevice *dev = NM_DEVICE (self);
- gboolean scanning;
-
- if (!nm_device_get_act_request (dev)) {
- /* The device is not activating or already activated; do nothing. */
- goto out;
- }
-
- nm_log_info (LOGD_WIFI, "(%s): supplicant connection state: %s -> %s",
- nm_device_get_iface (dev),
- nm_supplicant_interface_connection_state_to_string (task->old_state),
- nm_supplicant_interface_connection_state_to_string (task->new_state));
-
- scanning = nm_supplicant_interface_get_scanning (priv->supplicant.iface);
-
- if (task->new_state == NM_SUPPLICANT_INTERFACE_CON_STATE_COMPLETED) {
+ break;
+ case NM_SUPPLICANT_INTERFACE_STATE_COMPLETED:
remove_supplicant_interface_error_handler (self);
remove_supplicant_timeouts (self);
/* If this is the initial association during device activation,
* schedule the next activation stage.
*/
- if (nm_device_get_state (dev) == NM_DEVICE_STATE_CONFIG) {
+ if (devstate == NM_DEVICE_STATE_CONFIG) {
NMAccessPoint *ap = nm_device_wifi_get_activation_ap (self);
- const GByteArray * ssid = nm_ap_get_ssid (ap);
+ const GByteArray *ssid = nm_ap_get_ssid (ap);
nm_log_info (LOGD_DEVICE | LOGD_WIFI,
"Activation (%s/wireless) Stage 2 of 5 (Device Configure) "
"successful. Connected to wireless network '%s'.",
- nm_device_get_iface (dev),
+ nm_device_get_iface (device),
ssid ? nm_utils_escape_ssid (ssid->data, ssid->len) : "(none)");
- nm_device_activate_schedule_stage3_ip_config_start (dev);
+ nm_device_activate_schedule_stage3_ip_config_start (device);
}
- } else if (task->new_state == NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED) {
- if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED || nm_device_is_activating (dev)) {
+ break;
+ case NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED:
+ if ((devstate == NM_DEVICE_STATE_ACTIVATED) || nm_device_is_activating (device)) {
/* Start the link timeout so we allow some time for reauthentication,
* use a longer timeout if we are scanning since some cards take a
* while to scan.
*/
if (!priv->link_timeout_id) {
priv->link_timeout_id = g_timeout_add_seconds (scanning ? 30 : 15,
- link_timeout_cb, self);
+ link_timeout_cb, self);
}
}
+ break;
+ case NM_SUPPLICANT_INTERFACE_STATE_DOWN:
+ cleanup_association_attempt (self, FALSE);
+ supplicant_interface_release (self);
+ nm_device_state_changed (device,
+ NM_DEVICE_STATE_UNAVAILABLE,
+ NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED);
+ break;
+ default:
+ break;
}
-out:
/* Signal scanning state changes */
- if ( task->new_state == NM_SUPPLICANT_INTERFACE_CON_STATE_SCANNING
- || task->old_state == NM_SUPPLICANT_INTERFACE_CON_STATE_SCANNING)
+ if ( new_state == NM_SUPPLICANT_INTERFACE_STATE_SCANNING
+ || old_state == NM_SUPPLICANT_INTERFACE_STATE_SCANNING)
g_object_notify (G_OBJECT (self), "scanning");
-
- finish_supplicant_task (task, FALSE);
- return FALSE;
-}
-
-
-static void
-supplicant_iface_connection_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- NMDeviceWifi *self)
-{
- g_return_if_fail (self != NULL);
-
- schedule_state_handler (self,
- supplicant_iface_connection_state_cb_handler,
- new_state,
- old_state,
- FALSE);
-}
-
-
-static gboolean
-supplicant_mgr_state_cb_handler (gpointer user_data)
-{
- SupplicantStateTask *task = (SupplicantStateTask *) user_data;
- NMDeviceWifi *self;
- NMDeviceWifiPrivate *priv;
- NMDevice *dev;
- NMDeviceState dev_state;
-
- g_return_val_if_fail (task != NULL, FALSE);
-
- self = task->self;
- priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
- dev = NM_DEVICE (self);
-
- nm_log_info (LOGD_WIFI, "(%s): supplicant manager state: %s -> %s",
- nm_device_get_iface (NM_DEVICE (self)),
- nm_supplicant_manager_state_to_string (task->old_state),
- nm_supplicant_manager_state_to_string (task->new_state));
-
- /* If the supplicant went away, release the supplicant interface */
- if (task->new_state == NM_SUPPLICANT_MANAGER_STATE_DOWN) {
- if (priv->supplicant.iface) {
- cleanup_association_attempt (self, FALSE);
- supplicant_interface_release (self);
- }
-
- if (nm_device_get_state (dev) > NM_DEVICE_STATE_UNAVAILABLE) {
- nm_device_state_changed (dev, NM_DEVICE_STATE_UNAVAILABLE,
- NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED);
- }
- } else if (task->new_state == NM_SUPPLICANT_MANAGER_STATE_IDLE) {
- dev_state = nm_device_get_state (dev);
- if ( priv->enabled
- && !priv->supplicant.iface
- && (dev_state >= NM_DEVICE_STATE_UNAVAILABLE)
- && (nm_device_get_firmware_missing (NM_DEVICE (self)) == FALSE)) {
- /* request a supplicant interface from the supplicant manager */
- supplicant_interface_acquire (self);
-
- /* if wireless is enabled and we have a supplicant interface,
- * we can transition to the DISCONNECTED state.
- */
- if (priv->supplicant.iface) {
- nm_device_state_changed (dev, NM_DEVICE_STATE_DISCONNECTED,
- NM_DEVICE_STATE_REASON_NONE);
- }
- }
- }
-
- finish_supplicant_task (task, FALSE);
- return FALSE;
-}
-
-static void
-supplicant_mgr_state_cb (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state,
- NMDeviceWifi *self)
-{
- g_return_if_fail (self != NULL);
-
- schedule_state_handler (self,
- supplicant_mgr_state_cb_handler,
- new_state,
- old_state,
- TRUE);
}
struct iface_con_error_cb_data {
@@ -3845,20 +3602,9 @@ dispose (GObject *object)
priv->periodic_source_id = 0;
}
- /* Clean up all pending supplicant tasks */
- while (priv->supplicant.iface_tasks)
- finish_supplicant_task ((SupplicantStateTask *) priv->supplicant.iface_tasks->data, TRUE);
- while (priv->supplicant.mgr_tasks)
- finish_supplicant_task ((SupplicantStateTask *) priv->supplicant.mgr_tasks->data, TRUE);
-
cleanup_association_attempt (self, TRUE);
supplicant_interface_release (self);
- if (priv->supplicant.mgr_state_id) {
- g_signal_handler_disconnect (priv->supplicant.mgr, priv->supplicant.mgr_state_id);
- priv->supplicant.mgr_state_id = 0;
- }
-
if (priv->supplicant.mgr) {
g_object_unref (priv->supplicant.mgr);
priv->supplicant.mgr = NULL;
diff --git a/src/nm-device.c b/src/nm-device.c
index 68d62bc19e..27604e523a 100644
--- a/src/nm-device.c
+++ b/src/nm-device.c
@@ -19,6 +19,7 @@
* Copyright (C) 2006 - 2008 Novell, Inc.
*/
+#include <config.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <dbus/dbus.h>
diff --git a/src/nm-manager.c b/src/nm-manager.c
index b674c4f85a..b98600d623 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -2472,6 +2472,7 @@ _internal_sleep (NMManager *self, gboolean do_sleep)
g_object_notify (G_OBJECT (self), NM_MANAGER_SLEEPING);
}
+#if 0
static void
sleep_auth_done_cb (NMAuthChain *chain,
GError *error,
@@ -2510,6 +2511,7 @@ sleep_auth_done_cb (NMAuthChain *chain,
nm_auth_chain_unref (chain);
}
+#endif
static void
impl_manager_sleep (NMManager *self,
@@ -2517,10 +2519,12 @@ impl_manager_sleep (NMManager *self,
DBusGMethodInvocation *context)
{
NMManagerPrivate *priv;
- NMAuthChain *chain;
GError *error = NULL;
+#if 0
+ NMAuthChain *chain;
gulong sender_uid = G_MAXULONG;
const char *error_desc = NULL;
+#endif
g_return_if_fail (NM_IS_MANAGER (self));
@@ -2535,6 +2539,19 @@ impl_manager_sleep (NMManager *self,
return;
}
+ /* Unconditionally allow the request. Previously it was polkit protected
+ * but unfortunately that doesn't work for short-lived processes like
+ * pm-utils. It uses dbus-send without --print-reply, which quits
+ * immediately after sending the request, and NM is unable to obtain the
+ * sender's UID as dbus-send has already dropped off the bus. Thus NM
+ * fails the request. Instead, don't validate the request, but rely on
+ * D-Bus permissions to restrict the call to root.
+ */
+ _internal_sleep (self, do_sleep);
+ dbus_g_method_return (context);
+ return;
+
+#if 0
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,
@@ -2560,6 +2577,7 @@ impl_manager_sleep (NMManager *self,
nm_auth_chain_set_data (chain, "sleep", GUINT_TO_POINTER (do_sleep), NULL);
nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_SLEEP_WAKE, TRUE);
+#endif
}
static void
diff --git a/src/nm-policy-hostname.c b/src/nm-policy-hostname.c
index 0a49f9e2ea..42a2e0f9a4 100644
--- a/src/nm-policy-hostname.c
+++ b/src/nm-policy-hostname.c
@@ -217,7 +217,7 @@ nm_policy_set_system_hostname (const char *new_hostname,
char old_hostname[HOST_NAME_MAX + 1];
int ret = 0;
const char *name;
- gboolean set_hostname = TRUE, changed = FALSE;
+ gboolean set_hostname = TRUE, changed = FALSE, old_valid = TRUE;
if (new_hostname)
g_warn_if_fail (strlen (new_hostname));
@@ -230,11 +230,15 @@ nm_policy_set_system_hostname (const char *new_hostname,
if (ret != 0) {
nm_log_warn (LOGD_DNS, "couldn't get the system hostname: (%d) %s",
errno, strerror (errno));
+ old_valid = FALSE;
} else {
/* Don't set the hostname if it isn't actually changing */
if ( (new_hostname && !strcmp (old_hostname, new_hostname))
|| (!new_hostname && !strcmp (old_hostname, FALLBACK_HOSTNAME4)))
set_hostname = FALSE;
+
+ if (old_hostname[0] == '\0')
+ old_valid = FALSE;
}
if (set_hostname) {
@@ -255,6 +259,7 @@ nm_policy_set_system_hostname (const char *new_hostname,
* /etc/hosts at all.
*/
if (!nm_policy_hosts_update_etc_hosts (name,
+ old_valid ? old_hostname : NULL,
FALLBACK_HOSTNAME4,
FALLBACK_HOSTNAME6,
ip4_addr,
diff --git a/src/nm-policy-hosts.c b/src/nm-policy-hosts.c
index 0403b03725..7f9cff8074 100644
--- a/src/nm-policy-hosts.c
+++ b/src/nm-policy-hosts.c
@@ -18,6 +18,7 @@
* Copyright (C) 2004 - 2010 Red Hat, Inc.
*/
+#include <config.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
@@ -28,6 +29,9 @@
#include "nm-policy-hosts.h"
#include "nm-logging.h"
+#define IP4_LH "127.0.0.1"
+#define IP6_LH "::1"
+
gboolean
nm_policy_hosts_find_token (const char *line, const char *token)
{
@@ -56,7 +60,7 @@ nm_policy_hosts_find_token (const char *line, const char *token)
static gboolean
is_local_mapping (const char *str, gboolean ip6, const char *hostname)
{
- const char *addr = ip6 ? "::1" : "127.0.0.1";
+ const char *addr = ip6 ? IP6_LH : IP4_LH;
const char *fallback = ip6 ? "localhost6" : "localhost";
return ( !strncmp (str, addr, strlen (addr))
@@ -64,6 +68,21 @@ is_local_mapping (const char *str, gboolean ip6, const char *hostname)
}
static gboolean
+is_ip4_addr (const char *str)
+{
+ struct in_addr found;
+ char buf[INET_ADDRSTRLEN + 2];
+ const char *p = str;
+ guint32 i = 0;
+
+ memset (buf, 0, sizeof (buf));
+ while (*p && !isblank (*p) && (i < sizeof (buf)))
+ buf[i++] = *p++;
+
+ return inet_pton (AF_INET, buf, &found) == 1 ? TRUE : FALSE;
+}
+
+static gboolean
ip4_addr_matches (const char *str, const char *ip4_addr)
{
struct in_addr found, given;
@@ -86,6 +105,21 @@ ip4_addr_matches (const char *str, const char *ip4_addr)
}
static gboolean
+is_ip6_addr (const char *str)
+{
+ struct in6_addr found;
+ char buf[INET6_ADDRSTRLEN + 2];
+ const char *p = str;
+ guint32 i = 0;
+
+ memset (buf, 0, sizeof (buf));
+ while (*p && !isblank (*p) && (i < sizeof (buf)))
+ buf[i++] = *p++;
+
+ return inet_pton (AF_INET6, buf, &found) == 1 ? TRUE : FALSE;
+}
+
+static gboolean
ip6_addr_matches (const char *str, const char *ip6_addr)
{
struct in6_addr found, given;
@@ -107,12 +141,77 @@ ip6_addr_matches (const char *str, const char *ip6_addr)
return memcmp (&found, &given, sizeof (found)) == 0;
}
+static char *
+get_custom_hostnames (const char *line,
+ const char *hostname,
+ const char *old_hostname,
+ const char *short_hostname,
+ const char *fallback_hostname)
+{
+ char **items = NULL, **iter;
+ guint start = 0;
+ GString *str = NULL;
+ char *custom = NULL;
+
+ g_return_val_if_fail (line != NULL, NULL);
+
+ if (!strncmp (line, IP4_LH, strlen (IP4_LH)))
+ start = strlen (IP4_LH);
+ else if (!strncmp (line, IP6_LH, strlen (IP6_LH)))
+ start = strlen (IP6_LH);
+
+ g_return_val_if_fail (start > 0, NULL);
+
+ /* Split the line into tokens */
+ items = g_strsplit_set (line + start, " \t", -1);
+ if (!items)
+ return NULL;
+
+ str = g_string_sized_new (50);
+ /* Ignore current & old hostnames, and localhost-anything */
+ for (iter = items; iter && *iter; iter++) {
+ if (*iter[0] == '\0')
+ continue;
+ if (hostname && !strcmp (*iter, hostname))
+ continue;
+ if (old_hostname && !strcmp (*iter, old_hostname))
+ continue;
+ if (short_hostname && !strcmp (*iter, short_hostname))
+ continue;
+ if (fallback_hostname && !strcmp (*iter, fallback_hostname))
+ continue;
+ if (!strcmp (*iter, "localhost"))
+ continue;
+ if (!strcmp (*iter, "localhost6"))
+ continue;
+ if (!strcmp (*iter, "localhost.localdomain"))
+ continue;
+ if (!strcmp (*iter, "localhost4.localdomain4"))
+ continue;
+ if (!strcmp (*iter, "localhost6.localdomain6"))
+ continue;
+
+ /* Found a custom hostname */
+ g_string_append_c (str, '\t');
+ g_string_append (str, *iter);
+ }
+
+ if (str->len)
+ custom = g_string_free (str, FALSE);
+ else
+ g_string_free (str, TRUE);
+
+ g_strfreev (items);
+ return custom;
+}
+
#define ADDED_TAG "# Added by NetworkManager"
GString *
nm_policy_get_etc_hosts (const char **lines,
gsize existing_len,
const char *hostname,
+ const char *old_hostname,
const char *fallback_hostname4,
const char *fallback_hostname6,
const char *ip4_addr,
@@ -133,7 +232,10 @@ nm_policy_get_etc_hosts (const char **lines,
gboolean hostname6_is_fallback;
gboolean host4_before = FALSE;
gboolean host6_before = FALSE;
+ gboolean no_stale = TRUE;
char *short_hostname = NULL;
+ char *custom4 = NULL;
+ char *custom6 = NULL;
g_return_val_if_fail (lines != NULL, FALSE);
g_return_val_if_fail (hostname != NULL, FALSE);
@@ -141,6 +243,24 @@ nm_policy_get_etc_hosts (const char **lines,
hostname4_is_fallback = !strcmp (hostname, fallback_hostname4);
hostname6_is_fallback = !strcmp (hostname, fallback_hostname6);
+ /* Find the short hostname, like 'foo' from 'foo.bar.baz'; we want to
+ * make sure that the entries we add for this host also include the short
+ * hostname too so that if the resolver does not answer queries for the
+ * machine's actual hostname/domain, that stuff like 'ping foo' still works.
+ */
+ if (!hostname4_is_fallback || !hostname6_is_fallback) {
+ char *dot;
+
+ short_hostname = g_strdup (hostname);
+ dot = strchr (short_hostname, '.');
+ if (dot && *(dot+1))
+ *dot = '\0';
+ else {
+ g_free (short_hostname);
+ short_hostname = NULL;
+ }
+ }
+
/* We need the following in /etc/hosts:
*
* 1) current hostname mapped to current IPv4 addresses if IPv4 is active
@@ -151,21 +271,20 @@ nm_policy_get_etc_hosts (const char **lines,
* If all these things exist we don't need to bother updating the file.
*/
- if (!ip4_addr) {
- found_host4 = TRUE;
+ if (!ip4_addr)
host4_before = TRUE;
- }
- if (!ip6_addr) {
- found_host6 = TRUE;
+ if (!ip6_addr)
host6_before = TRUE;
- }
/* Look for the four cases from above */
for (line = lines; lines && *line; line++) {
- if (!strlen (*line) || (*line[0] == '#'))
+ gboolean found_hostname = FALSE;
+
+ if ((*line[0] == '\0') || (*line[0] == '#'))
continue;
- if (nm_policy_hosts_find_token (*line, hostname)) {
+ found_hostname = nm_policy_hosts_find_token (*line, hostname);
+ if (found_hostname) {
/* Found the current hostname on this line */
if (ip4_addr && ip4_addr_matches (*line, ip4_addr)) {
found_host4 = TRUE;
@@ -176,7 +295,14 @@ nm_policy_get_etc_hosts (const char **lines,
found_user_host4 = TRUE;
host4_before = TRUE; /* Ignore if user added mapping manually */
}
+ } else if (!ip4_addr && strstr (*line, ADDED_TAG)) {
+ /* If this is a stale NM-added IPv4 entry we need to remove it,
+ * so make sure we update /etc/hosts.
+ */
+ if (is_ip4_addr (*line))
+ no_stale = FALSE;
}
+
if (ip6_addr && ip6_addr_matches (*line, ip6_addr)) {
found_host6 = TRUE;
if (strstr (*line, ADDED_TAG)) {
@@ -186,43 +312,59 @@ nm_policy_get_etc_hosts (const char **lines,
found_user_host6 = TRUE;
host6_before = TRUE; /* Ignore if user added mapping manually */
}
+ } else if (!ip6_addr && strstr (*line, ADDED_TAG)) {
+ /* If this is a stale NM-added IPv6 entry we need to remove it,
+ * so make sure we update /etc/hosts.
+ */
+ if (is_ip6_addr (*line))
+ no_stale = FALSE;
}
}
if (is_local_mapping (*line, FALSE, "localhost")) {
/* a 127.0.0.1 line containing 'localhost' */
found_localhost4 = TRUE;
+ custom4 = get_custom_hostnames (*line, hostname, old_hostname, short_hostname, fallback_hostname4);
+ if (!ip4_addr) {
+ /* If there's no IP-specific mapping for the current hostname
+ * but that hostname is present on in the local mapping line,
+ * we've found our IPv4 hostname mapping. If the hostname is
+ * the fallback *IPv6* hostname it's not going to show up in
+ * the IPv4 local mapping though, so fake it.
+ */
+ if (hostname6_is_fallback || found_hostname)
+ found_host4 = TRUE;
+ }
} else if (is_local_mapping (*line, TRUE, "localhost6")) {
/* a ::1 line containing 'localhost6' */
found_localhost6 = TRUE;
+ custom6 = get_custom_hostnames (*line, hostname, old_hostname, short_hostname, fallback_hostname6);
+ if (!ip6_addr) {
+ /* If there's no IP-specific mapping for the current hostname
+ * but that hostname is present on in the local mapping line,
+ * we've found our IPv6 hostname mapping. If the hostname is
+ * the fallback *IPv4* hostname it's not going to show up in
+ * the IPv6 local mapping though, so fake it.
+ */
+ if (hostname4_is_fallback || found_hostname)
+ found_host6 = TRUE;
+ }
}
- if (found_localhost4 && found_host4 && found_localhost6 && found_host6 && host4_before && host6_before)
- return NULL; /* No update required */
+ if ( found_localhost4
+ && found_host4
+ && found_localhost6
+ && found_host6
+ && host4_before
+ && host6_before
+ && no_stale)
+ goto out; /* No update required */
}
contents = g_string_sized_new (existing_len ? existing_len + 100 : 200);
if (!contents) {
g_set_error_literal (error, 0, 0, "not enough memory");
- return NULL;
- }
-
- /* Find the short hostname, like 'foo' from 'foo.bar.baz'; we want to
- * make sure that the entries we add for this host also include the short
- * hostname too so that if the resolver does not answer queries for the
- * machine's actual hostname/domain, that stuff like 'ping foo' still works.
- */
- if (!hostname4_is_fallback || !hostname6_is_fallback) {
- char *dot;
-
- short_hostname = g_strdup (hostname);
- dot = strchr (short_hostname, '.');
- if (dot && *(dot+1))
- *dot = '\0';
- else {
- g_free (short_hostname);
- short_hostname = NULL;
- }
+ goto out;
}
/* Construct the new hosts file; replace any 127.0.0.1/::1 entry that is
@@ -234,8 +376,6 @@ nm_policy_get_etc_hosts (const char **lines,
* 'localhost6'.
*/
for (line = lines, initial_comments = TRUE; lines && *line; line++) {
- gboolean add_line = TRUE;
-
/* This is the first line after the initial comments */
if (strlen (*line) && initial_comments && (*line[0] != '#')) {
initial_comments = FALSE;
@@ -268,7 +408,10 @@ nm_policy_get_etc_hosts (const char **lines,
if (short_hostname)
g_string_append_printf (contents, "\t%s", short_hostname);
}
- g_string_append_printf (contents, "\t%s\tlocalhost\n", fallback_hostname4);
+ g_string_append_printf (contents, "\t%s\tlocalhost", fallback_hostname4);
+ if (custom4)
+ g_string_append (contents, custom4);
+ g_string_append_c (contents, '\n');
/* IPv6 localhost line */
g_string_append (contents, "::1");
@@ -277,26 +420,23 @@ nm_policy_get_etc_hosts (const char **lines,
if (short_hostname)
g_string_append_printf (contents, "\t%s", short_hostname);
}
- g_string_append_printf (contents, "\t%s\tlocalhost6\n", fallback_hostname6);
+ g_string_append_printf (contents, "\t%s\tlocalhost6", fallback_hostname6);
+ if (custom6)
+ g_string_append (contents, custom6);
+ g_string_append_c (contents, '\n');
added = TRUE;
}
/* Don't add the original line if it is a localhost mapping */
- if (is_local_mapping (*line, FALSE, "localhost"))
- add_line = FALSE;
- else if (is_local_mapping (*line, FALSE, fallback_hostname4))
- add_line = FALSE;
- else if (is_local_mapping (*line, FALSE, hostname))
- add_line = FALSE;
- else if (is_local_mapping (*line, TRUE, "localhost6"))
- add_line = FALSE;
- else if (is_local_mapping (*line, TRUE, fallback_hostname6))
- add_line = FALSE;
- else if (is_local_mapping (*line, TRUE, hostname))
- add_line = FALSE;
-
- if (add_line && !strstr (*line, ADDED_TAG)) {
+ if ( !is_local_mapping (*line, FALSE, "localhost")
+ && !is_local_mapping (*line, FALSE, fallback_hostname4)
+ && !is_local_mapping (*line, FALSE, hostname)
+ && !is_local_mapping (*line, TRUE, "localhost6")
+ && !is_local_mapping (*line, TRUE, fallback_hostname6)
+ && !is_local_mapping (*line, TRUE, hostname)
+ && !strstr (*line, ADDED_TAG)) {
+
g_string_append (contents, *line);
/* Only append the new line if this isn't the last line in the file */
if (*(line+1))
@@ -327,12 +467,16 @@ nm_policy_get_etc_hosts (const char **lines,
g_string_append_printf (contents, "::1\t%s\tlocalhost6\n", fallback_hostname6);
}
+out:
+ g_free (custom4);
+ g_free (custom6);
g_free (short_hostname);
return contents;
}
gboolean
nm_policy_hosts_update_etc_hosts (const char *hostname,
+ const char *old_hostname,
const char *fallback_hostname4,
const char *fallback_hostname6,
const char *ip4_addr,
@@ -362,6 +506,7 @@ nm_policy_hosts_update_etc_hosts (const char *hostname,
new_contents = nm_policy_get_etc_hosts ((const char **) lines,
contents_len,
hostname,
+ old_hostname,
fallback_hostname4,
fallback_hostname6,
ip4_addr,
diff --git a/src/nm-policy-hosts.h b/src/nm-policy-hosts.h
index 76288bf56b..ebaaf0fd41 100644
--- a/src/nm-policy-hosts.h
+++ b/src/nm-policy-hosts.h
@@ -24,6 +24,7 @@
#include <glib.h>
gboolean nm_policy_hosts_update_etc_hosts (const char *hostname,
+ const char *old_hostname,
const char *fallback_hostname4,
const char *fallback_hostname6,
const char *ip4_addr,
@@ -36,6 +37,7 @@ gboolean nm_policy_hosts_find_token (const char *line, const char *token);
GString *nm_policy_get_etc_hosts (const char **lines,
gsize existing_len,
const char *hostname,
+ const char *old_hostname,
const char *fallback_hostname4,
const char *fallback_hostname6,
const char *ip4_addr,
diff --git a/src/nm-policy.c b/src/nm-policy.c
index 013c691a26..df7689b725 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -19,6 +19,7 @@
* Copyright (C) 2007 - 2008 Novell, Inc.
*/
+#include <config.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
@@ -1226,6 +1227,15 @@ nm_policy_destroy (NMPolicy *policy)
}
g_slist_free (policy->dev_signal_ids);
+ /* Rewrite /etc/hosts on exit to ensure we don't leave stale IP addresses
+ * lying around. FIXME: this will take out a valid IP address of an
+ * ethernet device we're leaving active (ie, a connection we can "assume"
+ * when NM starts again).
+ */
+ policy->default_device4 = NULL;
+ policy->default_device6 = NULL;
+ update_system_hostname (policy, NULL, NULL);
+
g_free (policy->orig_hostname);
g_free (policy->cur_hostname);
diff --git a/src/nm-system.c b/src/nm-system.c
index 0911b82182..7921fec654 100644
--- a/src/nm-system.c
+++ b/src/nm-system.c
@@ -1254,11 +1254,11 @@ dump_route (struct rtnl_route *route)
memset (buf4, 0, sizeof (buf4));
nl = rtnl_route_get_dst (route);
if (nl) {
- if (rtnl_route_get_family (route) == AF_INET) {
+ if (nl_addr_get_family (nl) == AF_INET) {
addr4 = nl_addr_get_binary_addr (nl);
if (addr4)
inet_ntop (AF_INET, addr4, &buf4[0], sizeof (buf4));
- } else if (rtnl_route_get_family (route) == AF_INET6) {
+ } else if (nl_addr_get_family (nl) == AF_INET6) {
addr6 = nl_addr_get_binary_addr (nl);
if (addr6)
inet_ntop (AF_INET6, addr6, &buf6[0], sizeof (buf6));
diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c
index 148ad2cf63..efa660b03f 100644
--- a/src/ppp-manager/nm-ppp-manager.c
+++ b/src/ppp-manager/nm-ppp-manager.c
@@ -19,6 +19,7 @@
* Copyright (C) 2008 - 2010 Red Hat, Inc.
*/
+#include <config.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
diff --git a/src/supplicant-manager/nm-supplicant-interface.c b/src/supplicant-manager/nm-supplicant-interface.c
index a65a458f5b..bad8f26634 100644
--- a/src/supplicant-manager/nm-supplicant-interface.c
+++ b/src/supplicant-manager/nm-supplicant-interface.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) 2006 - 2008 Red Hat, Inc.
+ * Copyright (C) 2006 - 2010 Red Hat, Inc.
* Copyright (C) 2006 - 2008 Novell, Inc.
*/
@@ -40,37 +40,22 @@
#define WPAS_ERROR_EXISTS_ERROR WPAS_DBUS_INTERFACE ".ExistsError"
-G_DEFINE_TYPE (NMSupplicantInterface, nm_supplicant_interface, G_TYPE_OBJECT)
+static void wpas_iface_handle_state_change (DBusGProxy *proxy,
+ const char *str_new_state,
+ const char *str_old_state,
+ gpointer user_data);
+
+static void wpas_iface_handle_scanning (DBusGProxy *proxy,
+ gboolean scanning,
+ gpointer user_data);
+G_DEFINE_TYPE (NMSupplicantInterface, nm_supplicant_interface, G_TYPE_OBJECT)
+
#define NM_SUPPLICANT_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
NM_TYPE_SUPPLICANT_INTERFACE, \
NMSupplicantInterfacePrivate))
-static void nm_supplicant_interface_set_property (GObject * object,
- guint prop_id,
- const GValue * value,
- GParamSpec * pspec);
-
-static void nm_supplicant_interface_get_property (GObject * object,
- guint prop_id,
- GValue * value,
- GParamSpec * pspec);
-
-static void nm_supplicant_interface_start (NMSupplicantInterface *self);
-
-static void nm_supplicant_interface_add_to_supplicant (NMSupplicantInterface *self,
- gboolean get_only);
-
-static void nm_supplicant_interface_smgr_state_changed (NMSupplicantManager *smgr,
- guint32 new_state,
- guint32 old_state,
- gpointer user_data);
-
-static void nm_supplicant_interface_set_state (NMSupplicantInterface *self,
- guint32 new_state);
-
-
/* Signals */
enum {
STATE, /* change in the interface's state */
@@ -78,29 +63,24 @@ enum {
SCANNED_AP, /* interface saw a new access point from a scan */
SCAN_REQ_RESULT, /* result of a wireless scan request */
SCAN_RESULTS, /* scan results returned from supplicant */
- CONNECTION_STATE, /* link state of the device's connection */
CONNECTION_ERROR, /* an error occurred during a connection request */
LAST_SIGNAL
};
-static guint nm_supplicant_interface_signals[LAST_SIGNAL] = { 0 };
+static guint signals[LAST_SIGNAL] = { 0 };
/* Properties */
enum {
PROP_0 = 0,
- PROP_SUPPLICANT_MANAGER,
- PROP_DEVICE,
PROP_STATE,
- PROP_CONNECTION_STATE,
PROP_SCANNING,
LAST_PROP
};
-typedef struct
-{
+typedef struct {
NMSupplicantManager * smgr;
- gulong smgr_state_sig_handler;
+ gulong smgr_avail_id;
NMDBusManager * dbus_mgr;
char * dev;
gboolean is_wireless;
@@ -110,9 +90,9 @@ typedef struct
NMCallStore * assoc_pcalls;
NMCallStore * other_pcalls;
- guint32 con_state;
gboolean scanning;
+ DBusGProxy * wpas_proxy;
DBusGProxy * iface_proxy;
DBusGProxy * net_proxy;
@@ -121,7 +101,7 @@ typedef struct
NMSupplicantConfig * cfg;
- gboolean dispose_has_run;
+ gboolean disposed;
} NMSupplicantInterfacePrivate;
static gboolean
@@ -203,294 +183,6 @@ nm_supplicant_info_destroy (gpointer user_data)
}
}
-
-NMSupplicantInterface *
-nm_supplicant_interface_new (NMSupplicantManager * smgr, const char *ifname, gboolean is_wireless)
-{
- NMSupplicantInterface * iface;
-
- g_return_val_if_fail (NM_IS_SUPPLICANT_MANAGER (smgr), NULL);
- g_return_val_if_fail (ifname != NULL, NULL);
-
- iface = g_object_new (NM_TYPE_SUPPLICANT_INTERFACE,
- "supplicant-manager", smgr,
- "device", ifname,
- NULL);
- if (iface) {
- NM_SUPPLICANT_INTERFACE_GET_PRIVATE (iface)->is_wireless = is_wireless;
- nm_supplicant_interface_start (iface);
- }
-
- return iface;
-}
-
-static void
-nm_supplicant_interface_init (NMSupplicantInterface * self)
-{
- NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
-
- priv->state = NM_SUPPLICANT_INTERFACE_STATE_INIT;
- priv->con_state = NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED;
- priv->assoc_pcalls = nm_call_store_new ();
- priv->other_pcalls = nm_call_store_new ();
-
- priv->dispose_has_run = FALSE;
-
- priv->dbus_mgr = nm_dbus_manager_get ();
-}
-
-
-static void
-nm_supplicant_interface_set_property (GObject * object,
- guint prop_id,
- const GValue * value,
- GParamSpec * pspec)
-{
- NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object);
- gulong id;
-
- switch (prop_id) {
- case PROP_SUPPLICANT_MANAGER:
- priv->smgr = NM_SUPPLICANT_MANAGER (g_value_get_object (value));
- g_object_ref (G_OBJECT (priv->smgr));
-
- id = g_signal_connect (priv->smgr,
- "state",
- G_CALLBACK (nm_supplicant_interface_smgr_state_changed),
- object);
- priv->smgr_state_sig_handler = id;
- break;
- case PROP_DEVICE:
- /* Construct-only */
- priv->dev = g_strdup (g_value_get_string (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-nm_supplicant_interface_get_property (GObject * object,
- guint prop_id,
- GValue * value,
- GParamSpec * pspec)
-{
- NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_SUPPLICANT_MANAGER:
- g_value_set_object (value, G_OBJECT (priv->smgr));
- break;
- case PROP_DEVICE:
- g_value_set_string (value, priv->dev);
- break;
- case PROP_STATE:
- g_value_set_uint (value, priv->state);
- break;
- case PROP_CONNECTION_STATE:
- g_value_set_uint (value, priv->con_state);
- break;
- case PROP_SCANNING:
- g_value_set_boolean (value, priv->scanning);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-try_remove_iface (DBusGConnection *g_connection,
- const char *path)
-{
- DBusGProxy *proxy;
-
- g_return_if_fail (g_connection != NULL);
- g_return_if_fail (path != NULL);
-
- proxy = dbus_g_proxy_new_for_name (g_connection,
- WPAS_DBUS_SERVICE,
- WPAS_DBUS_PATH,
- WPAS_DBUS_INTERFACE);
- if (!proxy)
- return;
-
- dbus_g_proxy_call_no_reply (proxy, "removeInterface",
- DBUS_TYPE_G_OBJECT_PATH, path,
- G_TYPE_INVALID);
- g_object_unref (proxy);
-}
-
-static void
-nm_supplicant_interface_dispose (GObject *object)
-{
- NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object);
- guint32 sm_state;
-
- if (priv->dispose_has_run) {
- G_OBJECT_CLASS (nm_supplicant_interface_parent_class)->dispose (object);
- return;
- }
-
- priv->dispose_has_run = TRUE;
-
- /* Ask wpa_supplicant to remove this interface */
- sm_state = nm_supplicant_manager_get_state (priv->smgr);
- if (sm_state == NM_SUPPLICANT_MANAGER_STATE_IDLE) {
- if (priv->object_path) {
- try_remove_iface (nm_dbus_manager_get_connection (priv->dbus_mgr),
- priv->object_path);
- }
- }
-
- if (priv->iface_proxy)
- g_object_unref (priv->iface_proxy);
-
- if (priv->net_proxy)
- g_object_unref (priv->net_proxy);
-
- if (priv->scan_results_timeout)
- g_source_remove (priv->scan_results_timeout);
-
- if (priv->smgr) {
- g_signal_handler_disconnect (priv->smgr,
- priv->smgr_state_sig_handler);
- g_object_unref (priv->smgr);
- }
-
- g_free (priv->dev);
-
- /* Cancel pending calls before unrefing the dbus manager */
- cancel_all_callbacks (priv->other_pcalls);
- nm_call_store_destroy (priv->other_pcalls);
-
- cancel_all_callbacks (priv->assoc_pcalls);
- nm_call_store_destroy (priv->assoc_pcalls);
-
- if (priv->dbus_mgr)
- g_object_unref (priv->dbus_mgr);
-
- if (priv->cfg)
- g_object_unref (priv->cfg);
-
- g_free (priv->object_path);
-
- /* Chain up to the parent class */
- G_OBJECT_CLASS (nm_supplicant_interface_parent_class)->dispose (object);
-}
-
-static void
-nm_supplicant_interface_class_init (NMSupplicantInterfaceClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (object_class, sizeof (NMSupplicantInterfacePrivate));
-
- object_class->dispose = nm_supplicant_interface_dispose;
- object_class->set_property = nm_supplicant_interface_set_property;
- object_class->get_property = nm_supplicant_interface_get_property;
-
- /* Properties */
- g_object_class_install_property (object_class,
- PROP_SUPPLICANT_MANAGER,
- g_param_spec_object ("supplicant-manager",
- "Supplicant Manager",
- "Supplicant manager to which this interface belongs",
- NM_TYPE_SUPPLICANT_MANAGER,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (object_class,
- PROP_DEVICE,
- g_param_spec_string ("device",
- "Device",
- "Device which this interface represents to the supplicant",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (object_class,
- PROP_STATE,
- g_param_spec_uint ("state",
- "State",
- "State of the supplicant interface; INIT, READY, or DOWN",
- NM_SUPPLICANT_INTERFACE_STATE_INIT,
- NM_SUPPLICANT_INTERFACE_STATE_LAST - 1,
- NM_SUPPLICANT_INTERFACE_STATE_INIT,
- G_PARAM_READABLE));
-
- g_object_class_install_property (object_class,
- PROP_SCANNING,
- g_param_spec_boolean ("scanning",
- "Scanning",
- "Scanning",
- FALSE,
- G_PARAM_READABLE));
-
- /* Signals */
- nm_supplicant_interface_signals[STATE] =
- g_signal_new ("state",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantInterfaceClass, state),
- NULL, NULL,
- _nm_marshal_VOID__UINT_UINT,
- G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
- nm_supplicant_interface_signals[REMOVED] =
- g_signal_new ("removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantInterfaceClass, removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- nm_supplicant_interface_signals[SCANNED_AP] =
- g_signal_new ("scanned-ap",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantInterfaceClass, scanned_ap),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
-
- nm_supplicant_interface_signals[SCAN_REQ_RESULT] =
- g_signal_new ("scan-req-result",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantInterfaceClass, scan_req_result),
- NULL, NULL,
- g_cclosure_marshal_VOID__BOOLEAN,
- G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-
- nm_supplicant_interface_signals[SCAN_RESULTS] =
- g_signal_new ("scan-results",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantInterfaceClass, scan_results),
- NULL, NULL,
- g_cclosure_marshal_VOID__UINT,
- G_TYPE_NONE, 1, G_TYPE_UINT);
-
- nm_supplicant_interface_signals[CONNECTION_STATE] =
- g_signal_new ("connection-state",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantInterfaceClass, connection_state),
- NULL, NULL,
- _nm_marshal_VOID__UINT_UINT,
- G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
-
- nm_supplicant_interface_signals[CONNECTION_ERROR] =
- g_signal_new ("connection-error",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantInterfaceClass, connection_error),
- NULL, NULL,
- _nm_marshal_VOID__STRING_STRING,
- G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
-}
-
static void
emit_error_helper (NMSupplicantInterface *self,
GError *err)
@@ -500,11 +192,7 @@ emit_error_helper (NMSupplicantInterface *self,
if (err->domain == DBUS_GERROR && err->code == DBUS_GERROR_REMOTE_EXCEPTION)
name = dbus_g_error_get_name (err);
- g_signal_emit (self,
- nm_supplicant_interface_signals[CONNECTION_ERROR],
- 0,
- name,
- err->message);
+ g_signal_emit (self, signals[CONNECTION_ERROR], 0, name, err->message);
}
static void
@@ -523,11 +211,7 @@ bssid_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_
}
g_error_free (err);
} else {
- g_signal_emit (info->interface,
- nm_supplicant_interface_signals[SCANNED_AP],
- 0,
- hash);
-
+ g_signal_emit (info->interface, signals[SCANNED_AP], 0, hash);
g_hash_table_destroy (hash);
}
}
@@ -571,10 +255,7 @@ scan_results_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
NMSupplicantInfo *info = (NMSupplicantInfo *) user_data;
/* Notify listeners of the result of the scan */
- g_signal_emit (info->interface,
- nm_supplicant_interface_signals[SCAN_RESULTS],
- 0,
- array->len);
+ g_signal_emit (info->interface, signals[SCAN_RESULTS], 0, array->len);
/* Fire off a "properties" call for each returned BSSID */
for (i = 0; i < array->len; i++) {
@@ -637,58 +318,102 @@ wpas_iface_query_scan_results (DBusGProxy *proxy, gpointer user_data)
}
}
-static guint32
-wpas_state_string_to_enum (const char * str_state)
+static int
+wpas_state_string_to_enum (const char *str_state)
{
- guint32 enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED;
-
if (!strcmp (str_state, "DISCONNECTED"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED;
+ return NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED;
else if (!strcmp (str_state, "INACTIVE"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_INACTIVE;
+ return NM_SUPPLICANT_INTERFACE_STATE_INACTIVE;
else if (!strcmp (str_state, "SCANNING"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_SCANNING;
+ return NM_SUPPLICANT_INTERFACE_STATE_SCANNING;
else if (!strcmp (str_state, "ASSOCIATING"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATING;
+ return NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATING;
else if (!strcmp (str_state, "ASSOCIATED"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATED;
+ return NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATED;
else if (!strcmp (str_state, "4WAY_HANDSHAKE"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_4WAY_HANDSHAKE;
+ return NM_SUPPLICANT_INTERFACE_STATE_4WAY_HANDSHAKE;
else if (!strcmp (str_state, "GROUP_HANDSHAKE"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_GROUP_HANDSHAKE;
+ return NM_SUPPLICANT_INTERFACE_STATE_GROUP_HANDSHAKE;
else if (!strcmp (str_state, "COMPLETED"))
- enum_state = NM_SUPPLICANT_INTERFACE_CON_STATE_COMPLETED;
+ return NM_SUPPLICANT_INTERFACE_STATE_COMPLETED;
- return enum_state;
+ return -1;
}
static void
+set_state (NMSupplicantInterface *self, guint32 new_state)
+{
+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
+ guint32 old_state = priv->state;
+
+ g_return_if_fail (new_state < NM_SUPPLICANT_INTERFACE_STATE_LAST);
+
+ if (new_state == priv->state)
+ return;
+
+ /* DOWN is a terminal state */
+ g_return_if_fail (priv->state != NM_SUPPLICANT_INTERFACE_STATE_DOWN);
+
+ /* Cannot regress to READY or INIT from higher states */
+ if (priv->state <= NM_SUPPLICANT_INTERFACE_STATE_READY)
+ g_return_if_fail (new_state > priv->state);
+
+ 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);
+
+ /* Disconnect supplicant manager state listeners since we're done */
+ if (priv->smgr_avail_id) {
+ g_signal_handler_disconnect (priv->smgr, priv->smgr_avail_id);
+ priv->smgr_avail_id = 0;
+ }
+
+ if (priv->iface_proxy) {
+ dbus_g_proxy_disconnect_signal (priv->iface_proxy,
+ "StateChange",
+ G_CALLBACK (wpas_iface_handle_state_change),
+ self);
+
+ dbus_g_proxy_disconnect_signal (priv->iface_proxy,
+ "ScanResultsAvailable",
+ G_CALLBACK (wpas_iface_query_scan_results),
+ self);
+
+ dbus_g_proxy_disconnect_signal (priv->iface_proxy,
+ "Scanning",
+ G_CALLBACK (wpas_iface_handle_scanning),
+ self);
+ }
+ }
+
+ priv->state = new_state;
+ g_signal_emit (self, signals[STATE], 0, priv->state, old_state);
+}
+
+/* Supplicant state signal handler */
+static void
wpas_iface_handle_state_change (DBusGProxy *proxy,
const char *str_new_state,
const char *str_old_state,
gpointer user_data)
{
- NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (user_data);
- guint32 old_state, enum_new_state;
-
- enum_new_state = wpas_state_string_to_enum (str_new_state);
- old_state = priv->con_state;
- priv->con_state = enum_new_state;
- if (priv->con_state != old_state) {
- g_signal_emit (user_data,
- nm_supplicant_interface_signals[CONNECTION_STATE],
- 0,
- priv->con_state,
- old_state);
- }
-}
+ int enum_state = wpas_state_string_to_enum (str_new_state);
+
+ g_return_if_fail (enum_state > 0);
+ set_state (NM_SUPPLICANT_INTERFACE (user_data), (guint32) enum_state);
+}
+/* Explicit state request reply handler */
static void
iface_state_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
{
+ NMSupplicantInfo *info = (NMSupplicantInfo *) user_data;
GError *err = NULL;
char *state_str = NULL;
+ int enum_state;
if (!dbus_g_proxy_end_call (proxy, call_id, &err,
G_TYPE_STRING, &state_str,
@@ -696,12 +421,12 @@ iface_state_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
nm_log_warn (LOGD_SUPPLICANT, "could not get interface state: %s.", err->message);
g_error_free (err);
} else {
- NMSupplicantInfo *info = (NMSupplicantInfo *) user_data;
- NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (info->interface);
+ enum_state = wpas_state_string_to_enum (state_str);
+ g_warn_if_fail (enum_state > 0);
- priv->con_state = wpas_state_string_to_enum (state_str);
+ if (enum_state > 0)
+ set_state (info->interface, (guint32) enum_state);
g_free (state_str);
- nm_supplicant_interface_set_state (info->interface, NM_SUPPLICANT_INTERFACE_STATE_READY);
}
}
@@ -778,229 +503,184 @@ nm_supplicant_interface_get_scanning (NMSupplicantInterface *self)
priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
if (priv->scanning)
return TRUE;
- if (priv->con_state == NM_SUPPLICANT_INTERFACE_CON_STATE_SCANNING)
+ if (priv->state == NM_SUPPLICANT_INTERFACE_STATE_SCANNING)
return TRUE;
return FALSE;
}
static void
-nm_supplicant_interface_add_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
+interface_add_done (NMSupplicantInterface *self, char *path)
+{
+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
+
+ nm_log_dbg (LOGD_SUPPLICANT, "(%s): interface added to supplicant", priv->dev);
+
+ priv->object_path = path;
+
+ priv->iface_proxy = dbus_g_proxy_new_for_name (nm_dbus_manager_get_connection (priv->dbus_mgr),
+ WPAS_DBUS_SERVICE,
+ path,
+ WPAS_DBUS_IFACE_INTERFACE);
+
+ dbus_g_object_register_marshaller (_nm_marshal_VOID__STRING_STRING,
+ G_TYPE_NONE,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_INVALID);
+ dbus_g_proxy_add_signal (priv->iface_proxy, "StateChange", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (priv->iface_proxy, "StateChange",
+ G_CALLBACK (wpas_iface_handle_state_change),
+ self,
+ NULL);
+
+ dbus_g_proxy_add_signal (priv->iface_proxy, "ScanResultsAvailable", G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (priv->iface_proxy, "ScanResultsAvailable",
+ G_CALLBACK (wpas_iface_query_scan_results),
+ self,
+ NULL);
+
+ dbus_g_proxy_add_signal (priv->iface_proxy, "Scanning", G_TYPE_BOOLEAN, G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (priv->iface_proxy, "Scanning",
+ G_CALLBACK (wpas_iface_handle_scanning),
+ self,
+ NULL);
+
+ /* Interface added to the supplicant; get its initial state. */
+ wpas_iface_get_state (self);
+ wpas_iface_get_scanning (self);
+
+ set_state (self, NM_SUPPLICANT_INTERFACE_STATE_READY);
+}
+
+static void
+interface_get_cb (DBusGProxy *proxy,
+ DBusGProxyCall *call_id,
+ gpointer user_data)
{
NMSupplicantInfo *info = (NMSupplicantInfo *) user_data;
NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (info->interface);
- GError *err = NULL;
+ GError *error = NULL;
char *path = NULL;
- if (!dbus_g_proxy_end_call (proxy, call_id, &err,
- DBUS_TYPE_G_OBJECT_PATH, &path,
- G_TYPE_INVALID)) {
-
- if (dbus_g_error_has_name (err, WPAS_ERROR_INVALID_IFACE)) {
- /* Interface not added, try to add it */
- nm_supplicant_interface_add_to_supplicant (info->interface, FALSE);
- } else if (dbus_g_error_has_name (err, WPAS_ERROR_EXISTS_ERROR)) {
- /* Interface already added, just try to get the interface */
- nm_supplicant_interface_add_to_supplicant (info->interface, TRUE);
- } else {
- nm_log_err (LOGD_SUPPLICANT, "(%s): error getting interface: %s",
- priv->dev, err->message);
- }
-
- g_error_free (err);
+ if (dbus_g_proxy_end_call (proxy, call_id, &error,
+ DBUS_TYPE_G_OBJECT_PATH, &path,
+ G_TYPE_INVALID)) {
+ interface_add_done (info->interface, path);
} else {
- nm_log_dbg (LOGD_SUPPLICANT, "(%s): interface added to supplicant", priv->dev);
-
- priv->object_path = path;
-
- priv->iface_proxy = dbus_g_proxy_new_for_name (nm_dbus_manager_get_connection (priv->dbus_mgr),
- WPAS_DBUS_SERVICE,
- path,
- WPAS_DBUS_IFACE_INTERFACE);
-
- dbus_g_proxy_add_signal (priv->iface_proxy, "ScanResultsAvailable", G_TYPE_INVALID);
-
- dbus_g_object_register_marshaller (_nm_marshal_VOID__STRING_STRING,
- G_TYPE_NONE,
- G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_INVALID);
-
- dbus_g_proxy_add_signal (priv->iface_proxy, "StateChange", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
-
- dbus_g_proxy_connect_signal (priv->iface_proxy, "ScanResultsAvailable",
- G_CALLBACK (wpas_iface_query_scan_results),
- info->interface,
- NULL);
-
- dbus_g_proxy_connect_signal (priv->iface_proxy, "StateChange",
- G_CALLBACK (wpas_iface_handle_state_change),
- info->interface,
- NULL);
-
- dbus_g_proxy_add_signal (priv->iface_proxy, "Scanning", G_TYPE_BOOLEAN, G_TYPE_INVALID);
-
- dbus_g_proxy_connect_signal (priv->iface_proxy, "Scanning",
- G_CALLBACK (wpas_iface_handle_scanning),
- info->interface,
- NULL);
-
- /* Interface added to the supplicant; get its initial state. */
- wpas_iface_get_state (info->interface);
- wpas_iface_get_scanning (info->interface);
+ nm_log_err (LOGD_SUPPLICANT, "(%s): error adding interface: %s",
+ priv->dev, error->message);
+ g_clear_error (&error);
}
}
static void
-nm_supplicant_interface_add_to_supplicant (NMSupplicantInterface * self,
- gboolean get_only)
+interface_get (NMSupplicantInterface *self)
{
NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
NMSupplicantInfo *info;
- DBusGProxy *proxy;
DBusGProxyCall *call;
- proxy = dbus_g_proxy_new_for_name (nm_dbus_manager_get_connection (priv->dbus_mgr),
- WPAS_DBUS_SERVICE,
- WPAS_DBUS_PATH,
- WPAS_DBUS_INTERFACE);
- info = nm_supplicant_info_new (self, proxy, priv->other_pcalls);
-
- if (get_only) {
- call = dbus_g_proxy_begin_call (proxy, "getInterface",
- nm_supplicant_interface_add_cb,
- info,
- nm_supplicant_info_destroy,
- G_TYPE_STRING, priv->dev,
- G_TYPE_INVALID);
- } else {
- GHashTable *hash = g_hash_table_new (g_str_hash, g_str_equal);
- GValue *driver;
-
- driver = g_new0 (GValue, 1);
- g_value_init (driver, G_TYPE_STRING);
- g_value_set_string (driver, priv->is_wireless ? "wext" : "wired");
- g_hash_table_insert (hash, "driver", driver);
+ info = nm_supplicant_info_new (self, priv->wpas_proxy, priv->other_pcalls);
+ call = dbus_g_proxy_begin_call (priv->wpas_proxy, "getInterface",
+ interface_get_cb,
+ info,
+ nm_supplicant_info_destroy,
+ G_TYPE_STRING, priv->dev,
+ G_TYPE_INVALID);
+ nm_supplicant_info_set_call (info, call);
+}
- call = dbus_g_proxy_begin_call (proxy, "addInterface",
- nm_supplicant_interface_add_cb,
- info,
- nm_supplicant_info_destroy,
- G_TYPE_STRING, priv->dev,
- DBUS_TYPE_G_MAP_OF_VARIANT, hash,
- G_TYPE_INVALID);
+static void
+interface_add_cb (DBusGProxy *proxy,
+ DBusGProxyCall *call_id,
+ gpointer user_data)
+{
+ NMSupplicantInfo *info = (NMSupplicantInfo *) user_data;
+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (info->interface);
+ GError *error = NULL;
+ char *path = NULL;
- g_value_unset (driver);
- g_free (driver);
- g_hash_table_destroy (hash);
+ if (dbus_g_proxy_end_call (proxy, call_id, &error,
+ DBUS_TYPE_G_OBJECT_PATH, &path,
+ G_TYPE_INVALID)) {
+ interface_add_done (info->interface, path);
+ } else {
+ if (dbus_g_error_has_name (error, WPAS_ERROR_EXISTS_ERROR)) {
+ /* Interface already added, just get its object path */
+ interface_get (info->interface);
+ } else {
+ nm_log_err (LOGD_SUPPLICANT, "(%s): error adding interface: %s",
+ priv->dev, error->message);
+ }
+ g_clear_error (&error);
}
-
- g_object_unref (proxy);
-
- nm_supplicant_info_set_call (info, call);
}
static void
-nm_supplicant_interface_start (NMSupplicantInterface * self)
+interface_add (NMSupplicantInterface *self, gboolean is_wireless)
{
NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
- guint32 state;
+ DBusGProxyCall *call;
+ NMSupplicantInfo *info;
+ GHashTable *hash;
+ GValue *driver;
/* Can only start the interface from INIT state */
g_return_if_fail (priv->state == NM_SUPPLICANT_INTERFACE_STATE_INIT);
nm_log_dbg (LOGD_SUPPLICANT, "(%s): adding interface to supplicant", priv->dev);
- state = nm_supplicant_manager_get_state (priv->smgr);
- if (state == NM_SUPPLICANT_MANAGER_STATE_IDLE) {
- nm_supplicant_interface_set_state (self, NM_SUPPLICANT_INTERFACE_STATE_STARTING);
- nm_supplicant_interface_add_to_supplicant (self, FALSE);
- } else if (state == NM_SUPPLICANT_MANAGER_STATE_DOWN) {
- /* Don't do anything; wait for signal from supplicant manager
- * that its state has changed.
- */
- } else
- nm_log_warn (LOGD_SUPPLICANT, "Unknown supplicant manager state!");
-}
+ /* Move to starting to prevent double-calls of interface_add() */
+ set_state (self, NM_SUPPLICANT_INTERFACE_STATE_STARTING);
-static void
-nm_supplicant_interface_handle_supplicant_manager_idle_state (NMSupplicantInterface * self)
-{
- switch (NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->state) {
- case NM_SUPPLICANT_INTERFACE_STATE_INIT:
- /* Move to STARTING state when supplicant is ready */
- nm_supplicant_interface_start (self);
- break;
- case NM_SUPPLICANT_INTERFACE_STATE_STARTING:
- /* Don't do anything here, though we should never hit this */
- break;
- case NM_SUPPLICANT_INTERFACE_STATE_READY:
- /* Don't do anything here, though we should never hit this */
- break;
- case NM_SUPPLICANT_INTERFACE_STATE_DOWN:
- /* Don't do anything here; interface can't get out of DOWN state */
- break;
- default:
- nm_log_warn (LOGD_SUPPLICANT, "Unknown supplicant interface state!");
- break;
- }
-}
+ /* Try to add the interface to the supplicant. If the supplicant isn't
+ * running, this will start it via D-Bus activation and return the response
+ * when the supplicant has started.
+ */
+ info = nm_supplicant_info_new (self, priv->wpas_proxy, priv->other_pcalls);
-static void
-nm_supplicant_interface_set_state (NMSupplicantInterface * self,
- guint32 new_state)
-{
- NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
- guint32 old_state;
+ driver = g_new0 (GValue, 1);
+ g_value_init (driver, G_TYPE_STRING);
+ g_value_set_string (driver, is_wireless ? "wext" : "wired");
- g_return_if_fail (new_state < NM_SUPPLICANT_INTERFACE_STATE_LAST);
+ hash = g_hash_table_new (g_str_hash, g_str_equal);
+ g_hash_table_insert (hash, "driver", driver);
- if (new_state == priv->state)
- return;
+ call = dbus_g_proxy_begin_call (priv->wpas_proxy, "addInterface",
+ interface_add_cb,
+ info,
+ nm_supplicant_info_destroy,
+ G_TYPE_STRING, priv->dev,
+ DBUS_TYPE_G_MAP_OF_VARIANT, hash,
+ G_TYPE_INVALID);
- old_state = priv->state;
- if (new_state == NM_SUPPLICANT_INTERFACE_STATE_DOWN) {
- /* If the interface is transitioning to DOWN and there's are
- * in-progress pending calls, cancel them.
- */
- cancel_all_callbacks (priv->other_pcalls);
- cancel_all_callbacks (priv->assoc_pcalls);
- }
+ g_hash_table_destroy (hash);
+ g_value_unset (driver);
+ g_free (driver);
- priv->state = new_state;
- g_signal_emit (self,
- nm_supplicant_interface_signals[STATE],
- 0,
- priv->state,
- old_state);
+ nm_supplicant_info_set_call (info, call);
}
static void
-nm_supplicant_interface_smgr_state_changed (NMSupplicantManager * smgr,
- guint32 new_state,
- guint32 old_state,
- gpointer user_data)
+smgr_avail_cb (NMSupplicantManager *smgr,
+ GParamSpec *pspec,
+ gpointer user_data)
{
- NMSupplicantInterface * self = NM_SUPPLICANT_INTERFACE (user_data);
-
- switch (new_state) {
- case NM_SUPPLICANT_MANAGER_STATE_DOWN:
- /* The supplicant went away, likely the connection to it is also
- * gone. Therefore, this interface must move to the DOWN state
- * and be disposed of.
- */
- nm_supplicant_interface_set_state (self, NM_SUPPLICANT_INTERFACE_STATE_DOWN);
- break;
- case NM_SUPPLICANT_MANAGER_STATE_IDLE:
- /* Handle the supplicant now being available. */
- nm_supplicant_interface_handle_supplicant_manager_idle_state (self);
- break;
- default:
- nm_log_warn (LOGD_SUPPLICANT, "Unknown supplicant manager state!");
- break;
+ NMSupplicantInterface *self = NM_SUPPLICANT_INTERFACE (user_data);
+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (user_data);
+
+ if (nm_supplicant_manager_available (smgr)) {
+ /* This can happen if the supplicant couldn't be activated but
+ * for some reason was started after the activation failure.
+ */
+ if (priv->state == NM_SUPPLICANT_INTERFACE_STATE_INIT)
+ interface_add (self, priv->is_wireless);
+ } else {
+ /* The supplicant stopped; so we must tear down the interface */
+ set_state (self, NM_SUPPLICANT_INTERFACE_STATE_DOWN);
}
}
-
static void
remove_network_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
{
@@ -1045,16 +725,13 @@ nm_supplicant_interface_disconnect (NMSupplicantInterface * self)
if (!priv->iface_proxy)
return;
- /* Don't try to disconnect if the supplicant interface is already
- * disconnected.
- */
- if (priv->con_state == NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED
- || priv->con_state == NM_SUPPLICANT_INTERFACE_CON_STATE_INACTIVE) {
+ /* Don't try to disconnect if the supplicant interface is already disconnected */
+ if ( priv->state == NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED
+ || priv->state == NM_SUPPLICANT_INTERFACE_STATE_INACTIVE) {
if (priv->net_proxy) {
g_object_unref (priv->net_proxy);
priv->net_proxy = NULL;
}
-
return;
}
@@ -1194,9 +871,7 @@ call_set_blobs (NMSupplicantInfo *info, GHashTable *orig_blobs)
const char *msg = "Not enough memory to create blob table.";
nm_log_warn (LOGD_SUPPLICANT, "%s", msg);
- g_signal_emit (info->interface,
- nm_supplicant_interface_signals[CONNECTION_ERROR],
- 0, "SendBlobError", msg);
+ g_signal_emit (info->interface, signals[CONNECTION_ERROR], 0, "SendBlobError", msg);
return;
}
@@ -1316,14 +991,6 @@ nm_supplicant_interface_set_config (NMSupplicantInterface * self,
return call != NULL;
}
-const char *
-nm_supplicant_interface_get_device (NMSupplicantInterface * self)
-{
- g_return_val_if_fail (NM_IS_SUPPLICANT_INTERFACE (self), NULL);
-
- return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->dev;
-}
-
static void
scan_request_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
{
@@ -1339,10 +1006,7 @@ scan_request_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
}
/* Notify listeners of the result of the scan */
- g_signal_emit (info->interface,
- nm_supplicant_interface_signals[SCAN_REQ_RESULT],
- 0,
- success ? TRUE : FALSE);
+ g_signal_emit (info->interface, signals[SCAN_REQ_RESULT], 0, !!success);
}
gboolean
@@ -1375,14 +1039,6 @@ nm_supplicant_interface_get_state (NMSupplicantInterface * self)
return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->state;
}
-guint32
-nm_supplicant_interface_get_connection_state (NMSupplicantInterface * self)
-{
- g_return_val_if_fail (NM_IS_SUPPLICANT_INTERFACE (self), NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED);
-
- return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->con_state;
-}
-
const char *
nm_supplicant_interface_state_to_string (guint32 state)
{
@@ -1393,6 +1049,22 @@ nm_supplicant_interface_state_to_string (guint32 state)
return "starting";
case NM_SUPPLICANT_INTERFACE_STATE_READY:
return "ready";
+ case NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED:
+ return "disconnected";
+ case NM_SUPPLICANT_INTERFACE_STATE_INACTIVE:
+ return "inactive";
+ case NM_SUPPLICANT_INTERFACE_STATE_SCANNING:
+ return "scanning";
+ case NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATING:
+ return "associating";
+ case NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATED:
+ return "associated";
+ case NM_SUPPLICANT_INTERFACE_STATE_4WAY_HANDSHAKE:
+ return "4-way handshake";
+ case NM_SUPPLICANT_INTERFACE_STATE_GROUP_HANDSHAKE:
+ return "group handshake";
+ case NM_SUPPLICANT_INTERFACE_STATE_COMPLETED:
+ return "completed";
case NM_SUPPLICANT_INTERFACE_STATE_DOWN:
return "down";
default:
@@ -1402,28 +1074,249 @@ nm_supplicant_interface_state_to_string (guint32 state)
}
const char *
-nm_supplicant_interface_connection_state_to_string (guint32 state)
+nm_supplicant_interface_get_device (NMSupplicantInterface * self)
{
- switch (state) {
- case NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED:
- return "disconnected";
- case NM_SUPPLICANT_INTERFACE_CON_STATE_INACTIVE:
- return "inactive";
- case NM_SUPPLICANT_INTERFACE_CON_STATE_SCANNING:
- return "scanning";
- case NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATING:
- return "associating";
- case NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATED:
- return "associated";
- case NM_SUPPLICANT_INTERFACE_CON_STATE_4WAY_HANDSHAKE:
- return "4-way handshake";
- case NM_SUPPLICANT_INTERFACE_CON_STATE_GROUP_HANDSHAKE:
- return "group handshake";
- case NM_SUPPLICANT_INTERFACE_CON_STATE_COMPLETED:
- return "completed";
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (NM_IS_SUPPLICANT_INTERFACE (self), NULL);
+
+ return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->dev;
+}
+
+const char *
+nm_supplicant_interface_get_object_path (NMSupplicantInterface *self)
+{
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (NM_IS_SUPPLICANT_INTERFACE (self), NULL);
+
+ return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->object_path;
+}
+
+const char *
+nm_supplicant_interface_get_ifname (NMSupplicantInterface *self)
+{
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (NM_IS_SUPPLICANT_INTERFACE (self), FALSE);
+
+ return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->dev;
+}
+
+/*******************************************************************/
+
+NMSupplicantInterface *
+nm_supplicant_interface_new (NMSupplicantManager *smgr,
+ const char *ifname,
+ gboolean is_wireless,
+ gboolean start_now)
+{
+ NMSupplicantInterface *self;
+ NMSupplicantInterfacePrivate *priv;
+ guint id;
+
+ g_return_val_if_fail (NM_IS_SUPPLICANT_MANAGER (smgr), NULL);
+ g_return_val_if_fail (ifname != NULL, NULL);
+
+ self = g_object_new (NM_TYPE_SUPPLICANT_INTERFACE, NULL);
+ if (self) {
+ priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
+
+ priv->smgr = g_object_ref (smgr);
+ id = g_signal_connect (priv->smgr,
+ "notify::" NM_SUPPLICANT_MANAGER_AVAILABLE,
+ G_CALLBACK (smgr_avail_cb),
+ self);
+ priv->smgr_avail_id = id;
+
+ priv->dev = g_strdup (ifname);
+ priv->is_wireless = is_wireless;
+
+ if (start_now)
+ interface_add (self, priv->is_wireless);
+ }
+
+ return self;
+}
+
+static void
+nm_supplicant_interface_init (NMSupplicantInterface * self)
+{
+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self);
+ DBusGConnection *bus;
+
+ priv->state = NM_SUPPLICANT_INTERFACE_STATE_INIT;
+ priv->assoc_pcalls = nm_call_store_new ();
+ priv->other_pcalls = nm_call_store_new ();
+ priv->dbus_mgr = nm_dbus_manager_get ();
+
+ bus = nm_dbus_manager_get_connection (priv->dbus_mgr);
+ priv->wpas_proxy = dbus_g_proxy_new_for_name (bus,
+ WPAS_DBUS_SERVICE,
+ WPAS_DBUS_PATH,
+ WPAS_DBUS_INTERFACE);
+}
+
+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;
}
- return "unknown";
+}
+
+static void
+get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_STATE:
+ g_value_set_uint (value, NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object)->state);
+ break;
+ case PROP_SCANNING:
+ g_value_set_boolean (value, NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object)->scanning);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+dispose (GObject *object)
+{
+ NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object);
+
+ if (priv->disposed) {
+ G_OBJECT_CLASS (nm_supplicant_interface_parent_class)->dispose (object);
+ return;
+ }
+ priv->disposed = TRUE;
+
+ /* Cancel pending calls before unrefing the dbus manager */
+ cancel_all_callbacks (priv->other_pcalls);
+ nm_call_store_destroy (priv->other_pcalls);
+
+ cancel_all_callbacks (priv->assoc_pcalls);
+ nm_call_store_destroy (priv->assoc_pcalls);
+
+ if (priv->iface_proxy)
+ g_object_unref (priv->iface_proxy);
+
+ if (priv->net_proxy)
+ g_object_unref (priv->net_proxy);
+
+ if (priv->wpas_proxy)
+ g_object_unref (priv->wpas_proxy);
+
+ if (priv->scan_results_timeout)
+ g_source_remove (priv->scan_results_timeout);
+
+ if (priv->smgr) {
+ if (priv->smgr_avail_id)
+ g_signal_handler_disconnect (priv->smgr, priv->smgr_avail_id);
+ g_object_unref (priv->smgr);
+ }
+
+ g_free (priv->dev);
+
+ if (priv->dbus_mgr)
+ g_object_unref (priv->dbus_mgr);
+
+ if (priv->cfg)
+ g_object_unref (priv->cfg);
+
+ g_free (priv->object_path);
+
+ /* Chain up to the parent class */
+ G_OBJECT_CLASS (nm_supplicant_interface_parent_class)->dispose (object);
+}
+
+static void
+nm_supplicant_interface_class_init (NMSupplicantInterfaceClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ g_type_class_add_private (object_class, sizeof (NMSupplicantInterfacePrivate));
+
+ object_class->dispose = dispose;
+ object_class->set_property = set_property;
+ object_class->get_property = get_property;
+
+ /* Properties */
+ g_object_class_install_property (object_class, PROP_STATE,
+ g_param_spec_uint ("state",
+ "State",
+ "State of the supplicant interface",
+ NM_SUPPLICANT_INTERFACE_STATE_INIT,
+ NM_SUPPLICANT_INTERFACE_STATE_LAST - 1,
+ NM_SUPPLICANT_INTERFACE_STATE_INIT,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, PROP_SCANNING,
+ g_param_spec_boolean ("scanning",
+ "Scanning",
+ "Scanning",
+ FALSE,
+ G_PARAM_READABLE));
+
+ /* Signals */
+ signals[STATE] =
+ g_signal_new ("state",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NMSupplicantInterfaceClass, state),
+ NULL, NULL,
+ _nm_marshal_VOID__UINT_UINT,
+ G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+
+ signals[REMOVED] =
+ g_signal_new ("removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NMSupplicantInterfaceClass, removed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ signals[SCANNED_AP] =
+ g_signal_new ("scanned-ap",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NMSupplicantInterfaceClass, scanned_ap),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+
+ signals[SCAN_REQ_RESULT] =
+ g_signal_new ("scan-req-result",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NMSupplicantInterfaceClass, scan_req_result),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+
+ signals[SCAN_RESULTS] =
+ g_signal_new ("scan-results",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NMSupplicantInterfaceClass, scan_results),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE, 1, G_TYPE_UINT);
+
+ signals[CONNECTION_ERROR] =
+ g_signal_new ("connection-error",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NMSupplicantInterfaceClass, connection_error),
+ NULL, NULL,
+ _nm_marshal_VOID__STRING_STRING,
+ G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
}
diff --git a/src/supplicant-manager/nm-supplicant-interface.h b/src/supplicant-manager/nm-supplicant-interface.h
index bee5436f5a..9471bd771b 100644
--- a/src/supplicant-manager/nm-supplicant-interface.h
+++ b/src/supplicant-manager/nm-supplicant-interface.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) 2006 - 2008 Red Hat, Inc.
+ * Copyright (C) 2006 - 2010 Red Hat, Inc.
* Copyright (C) 2007 - 2008 Novell, Inc.
*/
@@ -26,47 +26,26 @@
#include <dbus/dbus.h>
#include "nm-supplicant-types.h"
-G_BEGIN_DECLS
-
/*
* Supplicant interface states
- * The states are linear, ie INIT -> READY -> DOWN and state may only be
- * changed in one direction. If an interface reaches the DOWN state, it
- * cannot be re-initialized; it must be torn down and a new one created.
- *
- * INIT: interface has been created, but cannot be used yet; it is waiting
- * for pending requests of the supplicant to complete.
- * READY: interface is ready for use
- * DOWN: interface has been removed or has otherwise been made invalid; it
- * must be torn down.
- *
- * Note: LAST is an invalid state and only used for boundary checking.
+ * A mix of wpa_supplicant interface states and internal states.
*/
enum {
NM_SUPPLICANT_INTERFACE_STATE_INIT = 0,
NM_SUPPLICANT_INTERFACE_STATE_STARTING,
NM_SUPPLICANT_INTERFACE_STATE_READY,
+ NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED,
+ NM_SUPPLICANT_INTERFACE_STATE_INACTIVE,
+ NM_SUPPLICANT_INTERFACE_STATE_SCANNING,
+ NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATING,
+ NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATED,
+ NM_SUPPLICANT_INTERFACE_STATE_4WAY_HANDSHAKE,
+ NM_SUPPLICANT_INTERFACE_STATE_GROUP_HANDSHAKE,
+ NM_SUPPLICANT_INTERFACE_STATE_COMPLETED,
NM_SUPPLICANT_INTERFACE_STATE_DOWN,
NM_SUPPLICANT_INTERFACE_STATE_LAST
};
-
-/*
- * Supplicant interface connection states
- * The wpa_supplicant state for the connection.
- */
-enum {
- NM_SUPPLICANT_INTERFACE_CON_STATE_DISCONNECTED = 0,
- NM_SUPPLICANT_INTERFACE_CON_STATE_INACTIVE,
- NM_SUPPLICANT_INTERFACE_CON_STATE_SCANNING,
- NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATING,
- NM_SUPPLICANT_INTERFACE_CON_STATE_ASSOCIATED,
- NM_SUPPLICANT_INTERFACE_CON_STATE_4WAY_HANDSHAKE,
- NM_SUPPLICANT_INTERFACE_CON_STATE_GROUP_HANDSHAKE,
- NM_SUPPLICANT_INTERFACE_CON_STATE_COMPLETED,
- NM_SUPPLICANT_INTERFACE_CON_STATE_LAST
-};
-
#define NM_TYPE_SUPPLICANT_INTERFACE (nm_supplicant_interface_get_type ())
#define NM_SUPPLICANT_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SUPPLICANT_INTERFACE, NMSupplicantInterface))
#define NM_SUPPLICANT_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SUPPLICANT_INTERFACE, NMSupplicantInterfaceClass))
@@ -103,11 +82,6 @@ typedef struct {
void (*scan_results) (NMSupplicantInterface * iface,
guint num_bssids);
- /* link state of the device's connection */
- void (*connection_state) (NMSupplicantInterface * iface,
- guint32 new_state,
- guint32 old_state);
-
/* an error occurred during a connection request */
void (*connection_error) (NMSupplicantInterface * iface,
const char * name,
@@ -119,7 +93,8 @@ GType nm_supplicant_interface_get_type (void);
NMSupplicantInterface * nm_supplicant_interface_new (NMSupplicantManager * smgr,
const char *ifname,
- gboolean is_wireless);
+ gboolean is_wireless,
+ gboolean start_now);
gboolean nm_supplicant_interface_set_config (NMSupplicantInterface * iface,
NMSupplicantConfig * cfg);
@@ -128,18 +103,16 @@ void nm_supplicant_interface_disconnect (NMSupplicantInterface * iface);
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);
guint32 nm_supplicant_interface_get_state (NMSupplicantInterface * self);
-guint32 nm_supplicant_interface_get_connection_state (NMSupplicantInterface * self);
-
const char *nm_supplicant_interface_state_to_string (guint32 state);
-const char *nm_supplicant_interface_connection_state_to_string (guint32 state);
-
gboolean nm_supplicant_interface_get_scanning (NMSupplicantInterface *self);
-G_END_DECLS
+const char *nm_supplicant_interface_get_ifname (NMSupplicantInterface *self);
#endif /* NM_SUPPLICANT_INTERFACE_H */
diff --git a/src/supplicant-manager/nm-supplicant-manager.c b/src/supplicant-manager/nm-supplicant-manager.c
index a2cf58eb8f..35ef749cb6 100644
--- a/src/supplicant-manager/nm-supplicant-manager.c
+++ b/src/supplicant-manager/nm-supplicant-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) 2006 - 2008 Red Hat, Inc.
+ * Copyright (C) 2006 - 2010 Red Hat, Inc.
* Copyright (C) 2007 - 2008 Novell, Inc.
*/
@@ -26,19 +26,7 @@
#include "nm-supplicant-manager.h"
#include "nm-supplicant-interface.h"
#include "nm-dbus-manager.h"
-#include "nm-marshal.h"
#include "nm-logging.h"
-#include "nm-glib-compat.h"
-
-#define SUPPLICANT_POKE_INTERVAL 120
-
-typedef struct {
- NMDBusManager * dbus_mgr;
- guint32 state;
- GSList * ifaces;
- gboolean dispose_has_run;
- guint poke_id;
-} NMSupplicantManagerPrivate;
#define NM_SUPPLICANT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
NM_TYPE_SUPPLICANT_MANAGER, \
@@ -46,298 +34,283 @@ typedef struct {
G_DEFINE_TYPE (NMSupplicantManager, nm_supplicant_manager, G_TYPE_OBJECT)
+/* Properties */
+enum {
+ PROP_0 = 0,
+ PROP_AVAILABLE,
+ LAST_PROP
+};
-static void nm_supplicant_manager_name_owner_changed (NMDBusManager *dbus_mgr,
- const char *name,
- const char *old,
- const char *new,
- gpointer user_data);
+typedef struct {
+ NMDBusManager * dbus_mgr;
+ guint name_owner_id;
+ DBusGProxy * proxy;
+ gboolean running;
+ GHashTable * ifaces;
+ guint die_count_reset_id;
+ guint die_count;
+ gboolean disposed;
+} NMSupplicantManagerPrivate;
-static void nm_supplicant_manager_set_state (NMSupplicantManager * self,
- guint32 new_state);
+/********************************************************************/
-static gboolean nm_supplicant_manager_startup (NMSupplicantManager * self);
+static inline gboolean
+die_count_exceeded (guint32 count)
+{
+ return count > 2;
+}
+NMSupplicantInterface *
+nm_supplicant_manager_iface_get (NMSupplicantManager * self,
+ const char *ifname,
+ gboolean is_wireless)
+{
+ NMSupplicantManagerPrivate *priv;
+ NMSupplicantInterface *iface = NULL;
+ gboolean start_now;
-/* Signals */
-enum {
- STATE, /* change in the manager's state */
- LAST_SIGNAL
-};
-static guint nm_supplicant_manager_signals[LAST_SIGNAL] = { 0 };
+ g_return_val_if_fail (NM_IS_SUPPLICANT_MANAGER (self), NULL);
+ g_return_val_if_fail (ifname != NULL, NULL);
+ priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
-NMSupplicantManager *
-nm_supplicant_manager_get (void)
-{
- static NMSupplicantManager * singleton = NULL;
+ iface = g_hash_table_lookup (priv->ifaces, ifname);
+ if (!iface) {
+ /* If we're making the supplicant take a time out for a bit, don't
+ * let the supplicant interface start immediately, just let it hang
+ * around in INIT state until we're ready to talk to the supplicant
+ * again.
+ */
+ start_now = !die_count_exceeded (priv->die_count);
- if (!singleton) {
- singleton = NM_SUPPLICANT_MANAGER (g_object_new (NM_TYPE_SUPPLICANT_MANAGER, NULL));
+ nm_log_dbg (LOGD_SUPPLICANT, "(%s): creating new supplicant interface", ifname);
+ iface = nm_supplicant_interface_new (self, ifname, is_wireless, start_now);
+ if (iface)
+ g_hash_table_insert (priv->ifaces, g_strdup (ifname), iface);
} else {
- g_object_ref (singleton);
+ nm_log_dbg (LOGD_SUPPLICANT, "(%s): returning existing supplicant interface", ifname);
}
- g_assert (singleton);
- return singleton;
+ return iface;
}
-static gboolean
-poke_supplicant_cb (gpointer user_data)
+void
+nm_supplicant_manager_iface_release (NMSupplicantManager *self,
+ NMSupplicantInterface *iface)
{
- NMSupplicantManager *self = NM_SUPPLICANT_MANAGER (user_data);
- NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
- DBusGConnection *g_connection;
- DBusGProxy *proxy;
- const char *tmp = "ignoreme";
-
- g_connection = nm_dbus_manager_get_connection (priv->dbus_mgr);
- proxy = dbus_g_proxy_new_for_name (g_connection,
- WPAS_DBUS_SERVICE,
- WPAS_DBUS_PATH,
- WPAS_DBUS_INTERFACE);
- if (!proxy) {
- nm_log_warn (LOGD_SUPPLICANT, "Error: could not init wpa_supplicant proxy");
- goto out;
- }
+ NMSupplicantManagerPrivate *priv;
+ const char *ifname, *op;
- nm_log_info (LOGD_SUPPLICANT, "Trying to start the supplicant...");
- dbus_g_proxy_call_no_reply (proxy, "getInterface", G_TYPE_STRING, tmp, G_TYPE_INVALID);
- g_object_unref (proxy);
+ g_return_if_fail (NM_IS_SUPPLICANT_MANAGER (self));
+ g_return_if_fail (NM_IS_SUPPLICANT_INTERFACE (iface));
-out:
- /* Reschedule the poke */
- priv->poke_id = g_timeout_add_seconds (SUPPLICANT_POKE_INTERVAL,
- poke_supplicant_cb,
- (gpointer) self);
+ ifname = nm_supplicant_interface_get_ifname (iface);
+ g_assert (ifname);
- return FALSE;
-}
+ priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
-static void
-nm_supplicant_manager_init (NMSupplicantManager * self)
-{
- NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
- gboolean running;
+ g_return_if_fail (g_hash_table_lookup (priv->ifaces, ifname) == iface);
- priv->dispose_has_run = FALSE;
- priv->state = NM_SUPPLICANT_MANAGER_STATE_DOWN;
- priv->dbus_mgr = nm_dbus_manager_get ();
- priv->poke_id = 0;
+ /* Ask wpa_supplicant to remove this interface */
+ op = nm_supplicant_interface_get_object_path (iface);
+ if (priv->running && priv->proxy && op) {
+ dbus_g_proxy_call_no_reply (priv->proxy, "removeInterface",
+ DBUS_TYPE_G_OBJECT_PATH, op,
+ G_TYPE_INVALID);
+ }
- running = nm_supplicant_manager_startup (self);
+ g_hash_table_remove (priv->ifaces, ifname);
+}
- g_signal_connect (priv->dbus_mgr,
- "name-owner-changed",
- G_CALLBACK (nm_supplicant_manager_name_owner_changed),
- self);
+gboolean
+nm_supplicant_manager_available (NMSupplicantManager *self)
+{
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (NM_IS_SUPPLICANT_MANAGER (self), FALSE);
- if (!running) {
- /* Try to activate the supplicant */
- priv->poke_id = g_idle_add (poke_supplicant_cb, (gpointer) self);
- }
+ if (die_count_exceeded (NM_SUPPLICANT_MANAGER_GET_PRIVATE (self)->die_count))
+ return FALSE;
+ return NM_SUPPLICANT_MANAGER_GET_PRIVATE (self)->running;
}
static void
-nm_supplicant_manager_dispose (GObject *object)
+set_running (NMSupplicantManager *self, gboolean now_running)
{
- NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (object);
-
- if (priv->dispose_has_run) {
- G_OBJECT_CLASS (nm_supplicant_manager_parent_class)->dispose (object);
- return;
- }
-
- priv->dispose_has_run = TRUE;
-
- if (priv->poke_id) {
- g_source_remove (priv->poke_id);
- priv->poke_id = 0;
- }
-
- if (priv->dbus_mgr) {
- g_object_unref (G_OBJECT (priv->dbus_mgr));
- priv->dbus_mgr = NULL;
- }
+ NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
+ gboolean old_available = nm_supplicant_manager_available (self);
- /* Chain up to the parent class */
- G_OBJECT_CLASS (nm_supplicant_manager_parent_class)->dispose (object);
+ priv->running = now_running;
+ if (old_available != nm_supplicant_manager_available (self))
+ g_object_notify (G_OBJECT (self), NM_SUPPLICANT_MANAGER_AVAILABLE);
}
static void
-nm_supplicant_manager_class_init (NMSupplicantManagerClass *klass)
+set_die_count (NMSupplicantManager *self, guint new_die_count)
{
- GObjectClass * object_class = G_OBJECT_CLASS (klass);
+ NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
+ gboolean old_available = nm_supplicant_manager_available (self);
- g_type_class_add_private (object_class, sizeof (NMSupplicantManagerPrivate));
+ priv->die_count = new_die_count;
+ if (old_available != nm_supplicant_manager_available (self))
+ g_object_notify (G_OBJECT (self), NM_SUPPLICANT_MANAGER_AVAILABLE);
+}
- object_class->dispose = nm_supplicant_manager_dispose;
-
- /* Signals */
- nm_supplicant_manager_signals[STATE] =
- g_signal_new ("state",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSupplicantManagerClass, state),
- NULL, NULL,
- _nm_marshal_VOID__UINT_UINT,
- G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+static gboolean
+wpas_die_count_reset_cb (gpointer user_data)
+{
+ NMSupplicantManager *self = NM_SUPPLICANT_MANAGER (user_data);
+ NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
+
+ /* Reset the die count back to zero, which allows use of the supplicant again */
+ priv->die_count_reset_id = 0;
+ set_die_count (self, 0);
+ nm_log_info (LOGD_SUPPLICANT, "wpa_supplicant die count reset");
+ return FALSE;
}
static void
-nm_supplicant_manager_name_owner_changed (NMDBusManager *dbus_mgr,
- const char *name,
- const char *old_owner,
- const char *new_owner,
- gpointer user_data)
+name_owner_changed (NMDBusManager *dbus_mgr,
+ const char *name,
+ const char *old_owner,
+ const char *new_owner,
+ gpointer user_data)
{
- NMSupplicantManager * self = (NMSupplicantManager *) user_data;
+ NMSupplicantManager *self = NM_SUPPLICANT_MANAGER (user_data);
NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
gboolean old_owner_good = (old_owner && strlen (old_owner));
gboolean new_owner_good = (new_owner && strlen (new_owner));
- /* Can't handle the signal if its not from the supplicant service */
+ /* We only care about the supplicant here */
if (strcmp (WPAS_DBUS_SERVICE, name) != 0)
return;
if (!old_owner_good && new_owner_good) {
- gboolean running;
-
- running = nm_supplicant_manager_startup (self);
-
- if (running && priv->poke_id) {
- g_source_remove (priv->poke_id);
- priv->poke_id = 0;
- }
+ nm_log_info (LOGD_SUPPLICANT, "wpa_supplicant started");
+ set_running (self, TRUE);
} else if (old_owner_good && !new_owner_good) {
- nm_supplicant_manager_set_state (self, NM_SUPPLICANT_MANAGER_STATE_DOWN);
+ nm_log_info (LOGD_SUPPLICANT, "wpa_supplicant stopped");
- if (priv->poke_id)
- g_source_remove (priv->poke_id);
-
- /* Poke the supplicant so that it gets activated by dbus system bus
- * activation.
+ /* Reschedule the die count reset timeout. Every time the supplicant
+ * dies we wait 10 seconds before resetting the counter. If the
+ * supplicant died more than twice before the timer is reset, then
+ * we don't try to talk to the supplicant for a while.
*/
- priv->poke_id = g_idle_add (poke_supplicant_cb, (gpointer) self);
+ if (priv->die_count_reset_id)
+ g_source_remove (priv->die_count_reset_id);
+ priv->die_count_reset_id = g_timeout_add_seconds (10, wpas_die_count_reset_cb, self);
+ set_die_count (self, priv->die_count + 1);
+
+ if (die_count_exceeded (priv->die_count)) {
+ nm_log_info (LOGD_SUPPLICANT,
+ "wpa_supplicant die count %d; ignoring for 10 seconds",
+ priv->die_count);
+ }
+
+ set_running (self, FALSE);
}
}
+/*******************************************************************/
-guint32
-nm_supplicant_manager_get_state (NMSupplicantManager * self)
+NMSupplicantManager *
+nm_supplicant_manager_get (void)
{
- g_return_val_if_fail (NM_IS_SUPPLICANT_MANAGER (self), FALSE);
+ static NMSupplicantManager *singleton = NULL;
- return NM_SUPPLICANT_MANAGER_GET_PRIVATE (self)->state;
+ if (!singleton)
+ singleton = NM_SUPPLICANT_MANAGER (g_object_new (NM_TYPE_SUPPLICANT_MANAGER, NULL));
+ else
+ g_object_ref (singleton);
+
+ g_assert (singleton);
+ return singleton;
}
static void
-nm_supplicant_manager_set_state (NMSupplicantManager * self, guint32 new_state)
+nm_supplicant_manager_init (NMSupplicantManager * self)
{
NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
- guint32 old_state;
-
- if (new_state == priv->state)
- return;
+ DBusGConnection *bus;
- old_state = priv->state;
- priv->state = new_state;
- g_signal_emit (self,
- nm_supplicant_manager_signals[STATE],
- 0,
- priv->state,
- old_state);
+ priv->dbus_mgr = nm_dbus_manager_get ();
+ priv->name_owner_id = g_signal_connect (priv->dbus_mgr,
+ "name-owner-changed",
+ G_CALLBACK (name_owner_changed),
+ self);
+ priv->running = nm_dbus_manager_name_has_owner (priv->dbus_mgr, WPAS_DBUS_SERVICE);
+
+ bus = nm_dbus_manager_get_connection (priv->dbus_mgr);
+ priv->proxy = dbus_g_proxy_new_for_name (bus,
+ WPAS_DBUS_SERVICE,
+ WPAS_DBUS_PATH,
+ WPAS_DBUS_INTERFACE);
+
+ priv->ifaces = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
}
-static gboolean
-nm_supplicant_manager_startup (NMSupplicantManager * self)
+static void
+set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
- gboolean running;
-
- /* FIXME: convert to pending call */
- running = nm_dbus_manager_name_has_owner (NM_SUPPLICANT_MANAGER_GET_PRIVATE (self)->dbus_mgr,
- WPAS_DBUS_SERVICE);
- if (running)
- nm_supplicant_manager_set_state (self, NM_SUPPLICANT_MANAGER_STATE_IDLE);
-
- return running;
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
-NMSupplicantInterface *
-nm_supplicant_manager_get_iface (NMSupplicantManager * self,
- const char *ifname,
- gboolean is_wireless)
+static void
+get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
- NMSupplicantManagerPrivate *priv;
- NMSupplicantInterface * iface = NULL;
- GSList * elt;
+ switch (prop_id) {
+ case PROP_AVAILABLE:
+ g_value_set_boolean (value, nm_supplicant_manager_available (NM_SUPPLICANT_MANAGER (object)));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
- g_return_val_if_fail (NM_IS_SUPPLICANT_MANAGER (self), NULL);
- g_return_val_if_fail (ifname != NULL, NULL);
+static void
+dispose (GObject *object)
+{
+ NMSupplicantManagerPrivate *priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (object);
- priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
+ if (priv->disposed)
+ goto out;
+ priv->disposed = TRUE;
- /* Ensure we don't already have this interface */
- for (elt = priv->ifaces; elt; elt = g_slist_next (elt)) {
- NMSupplicantInterface * if_tmp = (NMSupplicantInterface *) elt->data;
+ if (priv->die_count_reset_id)
+ g_source_remove (priv->die_count_reset_id);
- if (!strcmp (ifname, nm_supplicant_interface_get_device (if_tmp))) {
- iface = if_tmp;
- break;
- }
+ if (priv->dbus_mgr) {
+ if (priv->name_owner_id)
+ g_signal_handler_disconnect (priv->dbus_mgr, priv->name_owner_id);
+ g_object_unref (G_OBJECT (priv->dbus_mgr));
}
- if (!iface) {
- nm_log_dbg (LOGD_SUPPLICANT, "(%s): creating new supplicant interface", ifname);
- iface = nm_supplicant_interface_new (self, ifname, is_wireless);
- if (iface)
- priv->ifaces = g_slist_append (priv->ifaces, iface);
- } else {
- nm_log_dbg (LOGD_SUPPLICANT, "(%s): returning existing supplicant interface", ifname);
- }
+ g_hash_table_destroy (priv->ifaces);
- return iface;
+ if (priv->proxy)
+ g_object_unref (priv->proxy);
+
+out:
+ /* Chain up to the parent class */
+ G_OBJECT_CLASS (nm_supplicant_manager_parent_class)->dispose (object);
}
-void
-nm_supplicant_manager_release_iface (NMSupplicantManager * self,
- NMSupplicantInterface * iface)
+static void
+nm_supplicant_manager_class_init (NMSupplicantManagerClass *klass)
{
- NMSupplicantManagerPrivate *priv;
- GSList * elt;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_return_if_fail (NM_IS_SUPPLICANT_MANAGER (self));
- g_return_if_fail (NM_IS_SUPPLICANT_INTERFACE (iface));
-
- priv = NM_SUPPLICANT_MANAGER_GET_PRIVATE (self);
+ g_type_class_add_private (object_class, sizeof (NMSupplicantManagerPrivate));
- for (elt = priv->ifaces; elt; elt = g_slist_next (elt)) {
- NMSupplicantInterface * if_tmp = (NMSupplicantInterface *) elt->data;
-
- if (if_tmp == iface) {
- /* Remove the iface from the supplicant manager's list and
- * dereference to match additional reference in get_iface.
- */
- priv->ifaces = g_slist_remove_link (priv->ifaces, elt);
- g_slist_free_1 (elt);
- g_object_unref (iface);
- break;
- }
- }
-}
+ object_class->get_property = get_property;
+ object_class->set_property = set_property;
+ object_class->dispose = dispose;
-const char *
-nm_supplicant_manager_state_to_string (guint32 state)
-{
- switch (state) {
- case NM_SUPPLICANT_MANAGER_STATE_DOWN:
- return "down";
- case NM_SUPPLICANT_MANAGER_STATE_IDLE:
- return "idle";
- default:
- break;
- }
- return "unknown";
+ g_object_class_install_property (object_class, PROP_AVAILABLE,
+ g_param_spec_boolean (NM_SUPPLICANT_MANAGER_AVAILABLE,
+ "Available",
+ "Available",
+ FALSE,
+ G_PARAM_READABLE));
}
-
diff --git a/src/supplicant-manager/nm-supplicant-manager.h b/src/supplicant-manager/nm-supplicant-manager.h
index fef2a77444..e9c31a997b 100644
--- a/src/supplicant-manager/nm-supplicant-manager.h
+++ b/src/supplicant-manager/nm-supplicant-manager.h
@@ -33,23 +33,6 @@
G_BEGIN_DECLS
-/*
- * Supplicant manager states
- * Either state may transition to the other state at any time.
- *
- * DOWN: supplicant manager has been created, but cannot be used; the supplicant
- * is either not running or has not yet been fully initialized.
- * IDLE: supplicant manager is ready for use
- *
- * Note: LAST is an invalid state and only used for boundary checking.
- */
-enum {
- NM_SUPPLICANT_MANAGER_STATE_DOWN = 0,
- NM_SUPPLICANT_MANAGER_STATE_IDLE,
- NM_SUPPLICANT_MANAGER_STATE_LAST
-};
-
-
#define NM_TYPE_SUPPLICANT_MANAGER (nm_supplicant_manager_get_type ())
#define NM_SUPPLICANT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManager))
#define NM_SUPPLICANT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManagerClass))
@@ -57,6 +40,8 @@ enum {
#define NM_IS_SUPPLICANT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_SUPPLICANT_MANAGER))
#define NM_SUPPLICANT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManagerClass))
+#define NM_SUPPLICANT_MANAGER_AVAILABLE "available"
+
struct _NMSupplicantManager
{
GObject parent;
@@ -65,24 +50,19 @@ struct _NMSupplicantManager
typedef struct
{
GObjectClass parent;
-
- /* class members */
- void (* state) (NMSupplicantManager * mgr, guint32 new_state, guint32 old_state);
} NMSupplicantManagerClass;
GType nm_supplicant_manager_get_type (void);
-NMSupplicantManager * nm_supplicant_manager_get (void);
-
-guint32 nm_supplicant_manager_get_state (NMSupplicantManager * mgr);
+NMSupplicantManager *nm_supplicant_manager_get (void);
-NMSupplicantInterface * nm_supplicant_manager_get_iface (NMSupplicantManager * mgr,
- const char *ifname,
- gboolean is_wireless);
+NMSupplicantInterface *nm_supplicant_manager_iface_get (NMSupplicantManager *mgr,
+ const char *ifname,
+ gboolean is_wireless);
-void nm_supplicant_manager_release_iface (NMSupplicantManager * mgr,
- NMSupplicantInterface * iface);
+void nm_supplicant_manager_iface_release (NMSupplicantManager *mgr,
+ NMSupplicantInterface *iface);
-const char *nm_supplicant_manager_state_to_string (guint32 state);
+gboolean nm_supplicant_manager_available (NMSupplicantManager *mgr);
#endif /* NM_SUPPLICANT_MANAGER_H */
diff --git a/src/supplicant-manager/nm-supplicant-settings-verify.c b/src/supplicant-manager/nm-supplicant-settings-verify.c
index 283346559b..c65af4dee5 100644
--- a/src/supplicant-manager/nm-supplicant-settings-verify.c
+++ b/src/supplicant-manager/nm-supplicant-settings-verify.c
@@ -123,6 +123,7 @@ static const struct Opt opt_table[] = {
{ "engine_id", TYPE_BYTES, 0, 0, FALSE, NULL },
{ "key_id", TYPE_BYTES, 0, 0, FALSE, NULL },
{ "fragment_size", TYPE_INT, 1, 2000, FALSE, NULL },
+ { "proactive_key_caching", TYPE_INT, 0, 1, FALSE, NULL },
};
diff --git a/src/system-settings/nm-default-wired-connection.c b/src/system-settings/nm-default-wired-connection.c
index 3655892599..b2c22baf3c 100644
--- a/src/system-settings/nm-default-wired-connection.c
+++ b/src/system-settings/nm-default-wired-connection.c
@@ -149,6 +149,7 @@ constructor (GType type,
NM_SETTING_CONNECTION_AUTOCONNECT, TRUE,
NM_SETTING_CONNECTION_UUID, uuid,
NM_SETTING_CONNECTION_READ_ONLY, priv->read_only,
+ NM_SETTING_CONNECTION_TIMESTAMP, time (NULL),
NULL);
g_free (id);
diff --git a/src/tests/test-policy-hosts.c b/src/tests/test-policy-hosts.c
index e6775f35e8..8865c4264e 100644
--- a/src/tests/test-policy-hosts.c
+++ b/src/tests/test-policy-hosts.c
@@ -26,6 +26,8 @@
#define FALLBACK_HOSTNAME4 "localhost.localdomain"
#define FALLBACK_HOSTNAME6 "localhost6.localdomain6"
+#define DEBUG 0
+
static void
test_generic (const char *before,
const char *after,
@@ -43,6 +45,7 @@ test_generic (const char *before,
newc = nm_policy_get_etc_hosts ((const char **) lines,
strlen (before),
hostname,
+ NULL,
FALLBACK_HOSTNAME4,
FALLBACK_HOSTNAME6,
ip4_addr,
@@ -56,11 +59,11 @@ test_generic (const char *before,
g_clear_error (&error);
} else if (after == NULL) {
/* No change to /etc/hosts required */
-#if 0
+#if DEBUG
if (newc != NULL) {
g_message ("\n- NEW ---------------------------------\n"
"%s"
- "- EXPECTED NONE -------------------------\n",
+ "+ EXPECTED NONE +++++++++++++++++++++++++\n",
newc->str);
}
#endif
@@ -70,10 +73,10 @@ test_generic (const char *before,
g_assert (newc != NULL);
g_assert (error == NULL);
-#if 0
+#if DEBUG
g_message ("\n- NEW ---------------------------------\n"
"%s"
- "- EXPECTED ------------------------------\n"
+ "+ EXPECTED ++++++++++++++++++++++++++++++\n"
"%s"
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
newc->str, after);
@@ -167,10 +170,17 @@ static const char *named_generic_before = \
"::1 localhost6.localdomain6 localhost6\n"
"127.0.0.1 lcmd.us.intellitxt.com\n";
+static const char *named_generic_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 playboy localhost.localdomain localhost\n"
+ "::1 playboy localhost6.localdomain6 localhost6\n"
+ "127.0.0.1 lcmd.us.intellitxt.com\n";
+
static void
test_hosts_named_generic (void)
{
- test_generic (named_generic_before, NULL, "playboy", NULL, NULL, FALSE);
+ test_generic (named_generic_before, named_generic_after, "playboy", NULL, NULL, FALSE);
}
/*******************************************/
@@ -609,24 +619,178 @@ static const char *long_before = \
"127.0.0.1 ad.doubleclick.net\n"
"127.0.0.1 oascentral.movietickets.com\n"
"127.0.0.1 view.atdmt.com\n"
- "127.0.0.1 ads.chumcity.com\n"
- "127.0.0.1 ads.as4x.tmcs.net\n"
- "127.0.0.1 n4403ad.doubleclick.net\n"
- "127.0.0.1 www.assoc-amazon.com\n"
- "127.0.0.1 s25.sitemeter.com\n"
- "127.0.0.1 adlog.com.com\n"
- "127.0.0.1 ahs.laptopmag.com\n"
- "127.0.0.1 altfarm.mediaplex.com\n"
- "127.0.0.1 ads.addynamix.com\n"
- "127.0.0.1 srx.main.ebayrtm.com\n"
- "127.0.0.1 cdn5.tribalfusion.com\n"
- "127.0.0.1 a.tribalfusion.com\n";
+ "127.0.0.1 ads.chumcity.com\n";
+static const char *long_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost\n"
+ "::1 comet localhost6.localdomain6 localhost6\n"
+ "\n"
+ "127.0.0.1 lcmd.us.intellitxt.com\n"
+ "127.0.0.1 adserver.adtech.de\n"
+ "127.0.0.1 a.as-us.falkag.net\n"
+ "127.0.0.1 a.as-eu.falkag.net\n"
+ "127.0.0.1 ads.doubleclick.com\n"
+ "\n"
+ "# random comment\n"
+ "127.0.0.1 m1.2mdn.net\n"
+ "127.0.0.1 ds.serving-sys.com\n"
+ "127.0.0.1 pagead2.googlesyndication.com\n"
+ "127.0.0.1 ad.doubleclick.com\n"
+ "127.0.0.1 ad.doubleclick.net\n"
+ "127.0.0.1 oascentral.movietickets.com\n"
+ "127.0.0.1 view.atdmt.com\n"
+ "127.0.0.1 ads.chumcity.com\n";
static void
test_hosts_long (void)
{
- test_generic (long_before, NULL, "comet", NULL, NULL, FALSE);
+ test_generic (long_before, long_after, "comet", NULL, NULL, FALSE);
+}
+
+/*******************************************/
+
+static const char *custom4_before = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 localhost.localdomain localhost pintglass\n"
+ "::1 localhost6.localdomain6 localhost6\n";
+
+static const char *custom4_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost pintglass\n"
+ "::1 comet localhost6.localdomain6 localhost6\n";
+
+static void
+test_hosts_custom4 (void)
+{
+ test_generic (custom4_before, custom4_after, "comet", NULL, NULL, FALSE);
+}
+
+/*******************************************/
+
+static const char *custom6_before = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 localhost.localdomain localhost\n"
+ "::1 localhost6.localdomain6 localhost6 pintglass\n";
+
+static const char *custom6_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost\n"
+ "::1 comet localhost6.localdomain6 localhost6 pintglass\n";
+
+static void
+test_hosts_custom6 (void)
+{
+ test_generic (custom6_before, custom6_after, "comet", NULL, NULL, FALSE);
+}
+
+/*******************************************/
+
+static const char *custom46_before = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 localhost.localdomain localhost shotglass\n"
+ "::1 localhost6.localdomain6 localhost6 pintglass\n";
+
+static const char *custom46_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost shotglass\n"
+ "::1 comet localhost6.localdomain6 localhost6 pintglass\n";
+
+static void
+test_hosts_custom46 (void)
+{
+ test_generic (custom46_before, custom46_after, "comet", NULL, NULL, FALSE);
+}
+
+/*******************************************/
+
+static const char *custom46_mixed_before = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 localhost.localdomain localhost shotglass\n"
+ "::1 localhost6.localdomain6 localhost6 pintglass\n";
+
+static const char *custom46_mixed_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost shotglass\n"
+ "::1 comet localhost6.localdomain6 localhost6 pintglass\n";
+
+static void
+test_hosts_custom46_mixed (void)
+{
+ test_generic (custom46_mixed_before, custom46_mixed_after, "comet", NULL, NULL, FALSE);
+}
+
+/*******************************************/
+
+static const char *stale4_removed_before = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "1.2.3.4 comet # Added by NetworkManager\n"
+ "127.0.0.1 localhost.localdomain localhost\n"
+ "::1 comet localhost6.localdomain6 localhost6\n";
+
+static const char *stale4_removed_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost\n"
+ "::1 comet localhost6.localdomain6 localhost6\n";
+
+static void
+test_hosts_stale4_removed (void)
+{
+ test_generic (stale4_removed_before, stale4_removed_after, "comet", NULL, NULL, FALSE);
+}
+
+/*******************************************/
+
+static const char *stale6_removed_before = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "3001:abba::3234 comet # Added by NetworkManager\n"
+ "127.0.0.1 comet localhost.localdomain localhost\n"
+ "::1 localhost6.localdomain6 localhost6\n";
+
+static const char *stale6_removed_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost\n"
+ "::1 comet localhost6.localdomain6 localhost6\n";
+
+static void
+test_hosts_stale6_removed (void)
+{
+ test_generic (stale6_removed_before, stale6_removed_after, "comet", NULL, NULL, FALSE);
+}
+
+/*******************************************/
+
+static const char *stale46_removed_before = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "1.2.3.4 comet # Added by NetworkManager\n"
+ "3001:abba::3234 comet # Added by NetworkManager\n"
+ "127.0.0.1 localhost.localdomain localhost\n"
+ "::1 localhost6.localdomain6 localhost6\n";
+
+static const char *stale46_removed_after = \
+ "# Do not remove the following line, or various programs\n"
+ "# that require network functionality will fail.\n"
+ "127.0.0.1 comet localhost.localdomain localhost\n"
+ "::1 comet localhost6.localdomain6 localhost6\n";
+
+static void
+test_hosts_stale46_removed (void)
+{
+ test_generic (stale46_removed_before, stale46_removed_after, "comet", NULL, NULL, FALSE);
}
/*******************************************/
@@ -712,6 +876,13 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_hosts_no_host4, NULL));
g_test_suite_add (suite, TESTCASE (test_hosts_no_host6, NULL));
g_test_suite_add (suite, TESTCASE (test_hosts_long, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_custom4, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_custom6, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_custom46, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_custom46_mixed, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_stale4_removed, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_stale6_removed, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_stale46_removed, NULL));
return g_test_run ();
}
diff --git a/src/vpn-manager/nm-vpn-service.c b/src/vpn-manager/nm-vpn-service.c
index 37bd75d4eb..3d44d9004b 100644
--- a/src/vpn-manager/nm-vpn-service.c
+++ b/src/vpn-manager/nm-vpn-service.c
@@ -19,6 +19,7 @@
* Copyright (C) 2005 - 2008 Novell, Inc.
*/
+#include <config.h>
#include <glib.h>
#include <string.h>
#include <dbus/dbus.h>
diff --git a/system-settings/plugins/ifcfg-rh/reader.c b/system-settings/plugins/ifcfg-rh/reader.c
index 9aefa9c5e5..f25acc892d 100644
--- a/system-settings/plugins/ifcfg-rh/reader.c
+++ b/system-settings/plugins/ifcfg-rh/reader.c
@@ -18,6 +18,7 @@
* Copyright (C) 2008 - 2010 Red Hat, Inc.
*/
+#include <config.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
diff --git a/system-settings/plugins/ifcfg-rh/writer.c b/system-settings/plugins/ifcfg-rh/writer.c
index 75fbca69e8..cf1e2663a5 100644
--- a/system-settings/plugins/ifcfg-rh/writer.c
+++ b/system-settings/plugins/ifcfg-rh/writer.c
@@ -1021,6 +1021,7 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
guint32 i, num;
GString *searches;
gboolean success = FALSE;
+ gboolean fake_ip4 = FALSE;
const char *method = NULL;
s_ip4 = (NMSettingIP4Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG);
@@ -1058,15 +1059,19 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
return TRUE;
}
- value = nm_setting_ip4_config_get_method (s_ip4);
- g_assert (value);
- if (!strcmp (value, NM_SETTING_IP4_CONFIG_METHOD_AUTO))
+ /* Temporarily create fake IP4 setting if missing; method set to DHCP above */
+ if (!s_ip4) {
+ s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
+ fake_ip4 = TRUE;
+ }
+
+ if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_AUTO))
svSetValue (ifcfg, "BOOTPROTO", "dhcp", FALSE);
- else if (!strcmp (value, NM_SETTING_IP4_CONFIG_METHOD_MANUAL))
+ else if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_MANUAL))
svSetValue (ifcfg, "BOOTPROTO", "none", FALSE);
- else if (!strcmp (value, NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL))
+ else if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL))
svSetValue (ifcfg, "BOOTPROTO", "autoip", FALSE);
- else if (!strcmp (value, NM_SETTING_IP4_CONFIG_METHOD_SHARED))
+ else if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_SHARED))
svSetValue (ifcfg, "BOOTPROTO", "shared", FALSE);
num = nm_setting_ip4_config_get_num_addresses (s_ip4);
@@ -1156,7 +1161,7 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
svSetValue (ifcfg, "PEERROUTES", NULL, FALSE);
svSetValue (ifcfg, "DHCP_HOSTNAME", NULL, FALSE);
svSetValue (ifcfg, "DHCP_CLIENT_ID", NULL, FALSE);
- if (!strcmp (value, NM_SETTING_IP4_CONFIG_METHOD_AUTO)) {
+ if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_AUTO)) {
svSetValue (ifcfg, "PEERDNS",
nm_setting_ip4_config_get_ignore_auto_dns (s_ip4) ? "no" : "yes",
FALSE);
@@ -1264,6 +1269,9 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
success = TRUE;
out:
+ if (fake_ip4)
+ g_object_unref (s_ip4);
+
return success;
}
diff --git a/system-settings/plugins/ifnet/net_utils.c b/system-settings/plugins/ifnet/net_utils.c
index 8f1b81b0b3..8a541979d8 100644
--- a/system-settings/plugins/ifnet/net_utils.c
+++ b/system-settings/plugins/ifnet/net_utils.c
@@ -19,6 +19,7 @@
* Copyright (C) 1999-2010 Gentoo Foundation, Inc.
*/
+#include <config.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>