diff options
author | Dan Williams <dcbw@redhat.com> | 2010-10-18 19:02:27 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-10-18 19:02:27 -0500 |
commit | 8f7aedc7e05f105eb70d5163d8a9963a3e30d30f (patch) | |
tree | 1c3b16cd1c7d5641c8ec45080b0cff32e2449c01 | |
parent | fee318abdb0950fc2b58ff02948ceba3a1a56a39 (diff) | |
parent | b368b8fea327caa972dc258933fd0e7d0f9e3381 (diff) |
Merge remote branch 'origin/master' into rm-userset
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> @@ -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" @@ -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»." @@ -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" - @@ -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> |