From fa9afe846d32775a98d0ee5592c551d65bec5bc0 Mon Sep 17 00:00:00 2001 From: Marcin Banasiak Date: Mon, 4 Feb 2008 17:12:09 +0000 Subject: [PATCH] - updated Changed files: NetworkManager-branch.diff -> 1.2 --- NetworkManager-branch.diff | 14048 +++++++++++++++++++++++++++++++++-- 1 file changed, 13336 insertions(+), 712 deletions(-) diff --git a/NetworkManager-branch.diff b/NetworkManager-branch.diff index aaee77d..322775f 100644 --- a/NetworkManager-branch.diff +++ b/NetworkManager-branch.diff @@ -1,7 +1,240 @@ -diff -urN NetworkManager/ChangeLog NetworkManager-SVN/ChangeLog ---- NetworkManager/ChangeLog 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/ChangeLog 2007-09-08 00:07:08.000000000 +0200 -@@ -1,3 +1,104 @@ +diff -urN NetworkManager-0.6.5/ChangeLog NetworkManager-SVNr3284/ChangeLog +--- NetworkManager-0.6.5/ChangeLog 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/ChangeLog 2008-02-04 16:01:02.000000000 +0100 +@@ -1,3 +1,337 @@ ++2008-01-30 Tambet Ingo ++ ++ * src/named-manager/nm-named-manager.c (rewrite_resolv_conf): Add some ++ information on what produced the content (process name and pid). ++ ++2008-01-30 Dan Williams ++ ++ * src/nm-device-802-3-ethernet.c ++ - (real_update_link): factor common link checking code out into ++ poll_link_state() ++ - (real_deactivate_quickly): schedule link state change in an idle ++ handler rather than doing it immediately to prevent deadlocks ++ ++2008-01-30 Tambet Ingo ++ ++ Implement 802.1x wired authentication. ++ ++2008-01-30 Dan Williams ++ ++ * src/nm-device-802-11-wireless.c ++ - (set_inactive_scan_timeout): be sure to clear the source since the ++ timeout doesn't always get rescheduled ++ ++2008-01-29 Tambet Ingo ++ ++ * src/vpn-manager/nm-dbus-vpn.c (nm_dbus_vpn_connections_update_cb): Don't ++ try to merge the VPN connections, just add everything. ++ (nm_dbus_vpn_connections_update_from_nmi): Remove the existing VPN connections ++ when a new instance of NMI service appears. ++ ++ * src/vpn-manager/nm-vpn-manager.c (nm_vpn_manager_vpn_connection_list_copy): ++ Remove. ++ (nm_vpn_manager_clear_connections): Implement. ++ ++2008-01-29 Tambet Ingo ++ ++ * src/backends/NetworkManagerSuSE.c (nm_system_device_get_system_config): ++ Fix the issue where NM doesn't honor YaST static IP settings. ++ (bugzilla.novell.com #271757). ++ ++2008-01-23 Dan Williams ++ ++ * libnm-glib/libnm_glib.c ++ - (libnm_glib_init): make thread joinable ++ - (libnm_glib_ctx_free): join thread on exit to clean up memory ++ ++2008-01-23 Dan Williams ++ ++ * test/libnm_glib_test.c ++ - (signal_handler, setup_signals): trap SIGINT and SIGTERM ++ - (main): set up signal handlers; call libnm_glib_shutdown ++ ++2008-01-23 Dan Williams ++ ++ Fix gnome.org #511323 ++ ++ * src/NetworkManagerAPList.c ++ - (nm_ap_list_merge_scanned_ap): if the AP being merged is hiding its ++ SSID, but there's an AP in the device's list with the same BSSID ++ that is not hidden, only update the strength and last-seen ++ attributes of the devlist AP and keep the existing SSID. ++ ++2008-01-23 Dan Williams ++ ++ Fix up the scan algorithm to help gnome.org #498887. ++ ++ * src/nm-device-802-11-wireless.c ++ src/nm-device-802-11-wireless.h ++ - (nm_device_802_11_wireless_set_scan_interval): make static, and ++ only change a specific device's scan interval. If the scan interval ++ is now ACTIVE, schedule a scan at the earliest possible opportunity ++ as long as the last scan was at least 20 seconds ago ++ - (real_init, real_deactivate, ++ - (real_start): use schedule_scan() instead of rolling the scan ++ scheduling code manually ++ - (set_scan_interval_cb -> set_inactive_scan_interval_cb): call ++ nm_device_802_11_wireless_ui_activated() instead of ++ nm_device_802_11_wireless_set_scan_interval() because the change is ++ really global to all wireless devices ++ - (set_inactive_scan_timeout): new function; reset the INVACTIVE scan ++ interval timeout ++ - (nm_device_802_11_wireless_ui_activated): reset the scan interval ++ for all wireless devices ++ - (request_and_convert_scan_results): don't set last_scan here ++ - (scan_results_timeout): set last_scan here instead, and after the ++ first successful scan, set the scan interval from INIT -> ACTIVE ++ - (nm_device_802_11_wireless_scan): cleanups ++ - (schedule_scan): take a new argument so that callers can specify the ++ scan interval if they desire ++ ++ * src/NetworkManagerDbus.c ++ - (nm_dbus_signal_filter): call nm_device_802_11_wireless_ui_activated() ++ instead of nm_device_802_11_wireless_set_scan_interval() ++ ++2008-01-16 Dan Williams ++ ++ * src/nm-device-802-11-wireless.c ++ - (real_act_stage4_ip_config_timeout): clean up the supplicant to ensure ++ that the connection attempt starts fresh. Otherwise, when the key ++ comes back, NM pukes and fails the new attempt because the ++ supplicant can't terminate and start up again quickly enough ++ ++2008-01-16 Tambet Ingo ++ ++ Shuffle the code a bit in preparation for wired 802.1X authentication. ++ ++ * src/nm-device-802-11-wireless.c: Remove the supplicant driving code and use ++ NMSuppicant instead. ++ ++ * src/nm-supplicant.[ch]: New files. The wpa_supplicant driving code is moved ++ here from nm-device-802-11-wireless.c and refactored a bit so it can be shared ++ by wired cards as well. ++ ++2008-01-10 Dan Williams ++ ++ Fix gnome.org #464215. Requires the kernel patch titled ++ "Introduce WEXT scan capabilities" but will handle the patch not being ++ present, you'll just continue to have problems with hidden SSIDs when ++ using mac80211-based drivers. ++ ++ * src/nm-device-802-11-wireless.c ++ - (real_init): check whether or not the driver supports SSID scans ++ - (supplicant_send_network_config): if the driver supports SSID scans, ++ and the AP is hidden, use ap_scan=1 instead of ap_scan=2 ++ ++2008-01-10 Dan Williams ++ ++ * src/NetworkManager.c ++ - (nm_killswitch_getpower_reply_cb): ensure DBusErrors are initialized ++ before using them ++ ++2008-01-09 Dan Williams ++ ++ * src/NetworkManager.c ++ - (nm_killswitch_getpower_reply_cb): handle different HAL versions ++ better by matching the variable type with the D-Bus argument type ++ ++2008-01-09 Dan Williams ++ ++ * src/nm-ap-security-wpa-eap.c ++ - (real_write_supplicant_config): send the 'fragment_size' option (but ++ don't fail if it's not supported) ++ ++2008-01-06 Dan Williams ++ ++ * src/dhcp-manager/nm-dhcp-manager.c ++ - (nm_dhcp_manager_get_ip4_config): handle DHCP-provided MTU ++ (gnome.org #332953) ++ ++2008-01-06 Dan Williams ++ ++ Fixes gnome.org #466954 ++ ++ * src/nm-device-802-11-wireless.c ++ - (find_supported_frequency): new function; find the first frequency the ++ card appears to support from a given list ++ - (supplicant_send_network_config): explicitly send a frequency the ++ Ad-Hoc config should use, some cards require it. If the version ++ of wpa_supplicant being used does not support the 'frequency' option, ++ NetworkManager will ignore the error and proceed. ++ ++2008-01-04 Dan Williams ++ ++ * src/named-manager/nm-named-manager.c ++ - (rewrite_resolv_conf, add_ip4_config_to_named): use primary IP4Config's ++ nameservers if the secondary config doesn't have any ++ (gnome.org #346833) ++ ++2008-01-04 Dan Williams ++ ++ * configure.in ++ - Bump libnl requirement to 1.0-pre8 ++ ++ * src/NetworkManagerSystem.c ++ - (new_nl_handle, destroy_nl_handle): port to libnl-1.0-pre8 ++ - (iface_to_rtnl_index, iface_to_rtnl_link, ++ nm_system_get_rtnl_index_from_iface, ++ nm_system_get_iface_from_rtnl_index, ++ nm_system_device_set_from_ip4_config, ++ nm_system_vpn_device_set_from_ip4_config, ++ nm_system_device_set_up_down_with_iface, ++ nm_system_set_mtu): update for libnl-1.0-pre8 ++ ++ * src/nm-netlink-monitor.c ++ - (nm_netlink_monitor_open_connection, ++ nm_netlink_monitor_request_status): don't use netlink pids that ++ conflict with libnl ++ ++2007-12-14 Dan Williams ++ ++ * src/vpn-properties/nm-vpn-properties.c ++ - (init_app): hook up a double-click handler; select first item in the ++ list if there is one (gnome.org #334883) ++ ++2007-12-09 Dan Williams ++ ++ * src/NetworkManager.c ++ - (nm_killswitch_getpower_reply_cb): don't repeat errors too often ++ (rh #246106) ++ ++2007-12-07 Dan Williams ++ ++ * src/NetworkManagerSystem.c ++ - (new_nl_handle): ensure that the same netlink pid is never chosen ++ twice (gnome.org #491047) ++ ++2007-12-07 Dan Williams ++ ++ * src/nm-device-802-11-wireless.c ++ - (nm_device_802_11_wireless_set_essid): don't lock the SSID in the ++ driver when setting a NULL ESSID (gnome.org #499565) ++ ++2007-12-07 Dan Williams ++ ++ * src/nm-device-802-11-wireless.c ++ - Wrap #include of linux/mii.h to fix redefined structures due to ++ incorrect kernel headers (gnome.org #350061) ++ ++2007-12-02 Dan Williams ++ ++ * src/NetworkManager.c ++ - (nm_data_free): clean up dbus connection on exit ++ ++2007-12-02 Dan Williams ++ ++ * src/nm-device-802-11-wireless.c ++ - (nm_device_802_11_wireless_get_mode): backport fix from trunk/r3015 ++ for getting mode ++ ++2007-10-28 Priit Laes ++ ++ * configure.in: Added "et" (Estonian) to ALL_LINGUAS. ++ +2007-08-30 Dan Williams + + * libnm-util/sha1.c @@ -106,812 +339,13203 @@ diff -urN NetworkManager/ChangeLog NetworkManager-SVN/ChangeLog 2007-04-18 Tambet Ingo * src/nm-dbus-nmi.c (nm_dbus_get_user_key_for_network_cb): Update the security -diff -urN NetworkManager/libnm-util/sha1.c NetworkManager-SVN/libnm-util/sha1.c ---- NetworkManager/libnm-util/sha1.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/libnm-util/sha1.c 2007-09-08 00:07:00.000000000 +0200 -@@ -12,6 +12,10 @@ - * See README and COPYING for more details. - */ +diff -urN NetworkManager-0.6.5/configure.in NetworkManager-SVNr3284/configure.in +--- NetworkManager-0.6.5/configure.in 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/configure.in 2008-02-04 16:01:02.000000000 +0100 +@@ -46,7 +46,7 @@ + GETTEXT_PACKAGE=NetworkManager + AC_SUBST(GETTEXT_PACKAGE) + AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) +-ALL_LINGUAS="ar be@latin bg bs ca cs da de dz el en_CA en_GB es fi fr gl gu hr hu it ja ka ko lt pl mk nb ne nl pa pt_BR rw sk sq sr@Latn sr sv uk vi wa zh_CN zh_TW" ++ALL_LINGUAS="ar be@latin bg bs ca cs da de dz el en_CA en_GB es et fi fr gl gu hr hu it ja ka ko lt pl mk nb ne nl pa pt_BR rw sk sq sr@Latn sr sv uk vi wa zh_CN zh_TW" + AC_PROG_INTLTOOL([0.27.2]) + AM_GLIB_GNU_GETTEXT -+#ifdef HAVE_CONFIG_H -+#include -+#endif +@@ -154,7 +154,7 @@ + PKG_CHECK_MODULES(GNOME_KEYRING, gnome-keyring-1) + fi + +-PKG_CHECK_MODULES(LIBNL, libnl-1) ++PKG_CHECK_MODULES(LIBNL, libnl-1 >= 1.0-pre8) + + AC_ARG_WITH(gcrypt, AC_HELP_STRING([--with-gcrypt], [Use gcrypt library]), ac_gcrypt=$withval, ac_gcrypt=auto) + if test x"$ac_gcrypt" != xno; then +@@ -341,8 +341,8 @@ + initscript/Arch/networkmanager + initscript/Arch/networkmanager-dispatcher + man/Makefile +-man/NetworkManager.1 +-man/NetworkManagerDispatcher.1 ++man/NetworkManager.8 ++man/NetworkManagerDispatcher.8 + man/nm-tool.1 + po/Makefile.in + NetworkManager.pc +diff -urN NetworkManager-0.6.5/gnome/libnm_glib/libnm_glib.c NetworkManager-SVNr3284/gnome/libnm_glib/libnm_glib.c +--- NetworkManager-0.6.5/gnome/libnm_glib/libnm_glib.c 2007-04-18 20:13:08.000000000 +0200 ++++ NetworkManager-SVNr3284/gnome/libnm_glib/libnm_glib.c 2008-02-04 16:00:46.000000000 +0100 +@@ -40,8 +40,10 @@ + DBusConnection * dbus_con; + guint dbus_watcher; + guint dbus_watch_interval; + - #include - #include + gboolean thread_done; + gboolean thread_inited; ++ GThread * thread; -diff -urN NetworkManager/src/NetworkManager.c NetworkManager-SVN/src/NetworkManager.c ---- NetworkManager/src/NetworkManager.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/NetworkManager.c 2007-09-08 00:06:44.000000000 +0200 -@@ -67,6 +67,7 @@ + GSList * callbacks; + GMutex * callbacks_lock; +@@ -458,6 +460,9 @@ + g_slist_foreach (ctx->callbacks, (GFunc)g_free, NULL); + g_slist_free (ctx->callbacks); - static gboolean sigterm_pipe_handler (GIOChannel *src, GIOCondition condition, gpointer data); - static void nm_data_free (NMData *data); -+static gboolean nm_poll_killswitches(gpointer user_data); ++ if (ctx->thread) ++ g_thread_join (ctx->thread); ++ + memset (ctx, 0, sizeof (libnm_glib_ctx)); + memset (&(ctx->check), 0xDD, sizeof (ctx->check)); + g_free (ctx); +@@ -488,7 +493,6 @@ + libnm_glib_ctx * + libnm_glib_init (void) + { +- GError *error = NULL; + libnm_glib_ctx *ctx = NULL; - /* - * nm_get_device_interface_from_hal -@@ -274,6 +275,183 @@ - } + g_type_init (); +@@ -496,15 +500,12 @@ + g_thread_init (NULL); + dbus_g_thread_init (); +- if (!(ctx = libnm_glib_ctx_new())) ++ if (!(ctx = libnm_glib_ctx_new ())) + return NULL; -+static void handle_killswitch_pcall_done (NMData *data, DBusPendingCall * pcall) +- if (!g_thread_create (libnm_glib_dbus_worker, ctx, FALSE, &error)) +- { +- if (error) +- g_error_free (error); ++ ctx->thread = g_thread_create (libnm_glib_dbus_worker, ctx, TRUE, NULL); ++ if (!ctx->thread) + goto error; +- } + + /* Wait until initialization of the thread */ + while (!ctx->thread_inited) +diff -urN NetworkManager-0.6.5/gnome/vpn-properties/Makefile.am NetworkManager-SVNr3284/gnome/vpn-properties/Makefile.am +--- NetworkManager-0.6.5/gnome/vpn-properties/Makefile.am 2007-04-18 20:13:08.000000000 +0200 ++++ NetworkManager-SVNr3284/gnome/vpn-properties/Makefile.am 2008-02-04 16:00:45.000000000 +0100 +@@ -26,8 +26,7 @@ + -DGLADEDIR=\""$(gladedir)"\" \ + -DG_DISABLE_DEPRECATED \ + -DGDK_DISABLE_DEPRECATED \ +- -DGNOME_DISABLE_DEPRECATED \ +- -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ ++ -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ + -DVERSION=\"$(VERSION)\" \ + $(NULL) + +diff -urN NetworkManager-0.6.5/gnome/vpn-properties/nm-vpn-properties.c NetworkManager-SVNr3284/gnome/vpn-properties/nm-vpn-properties.c +--- NetworkManager-0.6.5/gnome/vpn-properties/nm-vpn-properties.c 2007-04-18 20:13:08.000000000 +0200 ++++ NetworkManager-SVNr3284/gnome/vpn-properties/nm-vpn-properties.c 2008-02-04 16:00:45.000000000 +0100 +@@ -1,5 +1,5 @@ + /*************************************************************************** +- * CVSID: $Id$ ++ * CVSID: $Id$ + * + * nm-vpn-properties.c : GNOME UI dialogs for manipulating VPN connections + * +@@ -868,6 +868,15 @@ + update_edit_del_sensitivity (); + } + ++static void ++vpn_list_row_activated_cb (GtkTreeView *treeview, ++ GtkTreePath *path, ++ GtkTreeViewColumn *column, ++ gpointer user_data) +{ -+ GSource * source; -+ gboolean now_enabled = FALSE; -+ gboolean now_disabled = FALSE; ++ edit_cb (NULL, NULL); ++} + -+ data->ks_pcall_list = g_slist_remove (data->ks_pcall_list, pcall); -+ if (g_slist_length (data->ks_pcall_list) > 0) -+ return; /* not done with all killswitches yet */ + /* TODO: remove these once we get the GModule thing going */ + //extern NetworkManagerVpnUI* vpn_ui_factory_vpnc (void); + extern NetworkManagerVpnUI* vpn_ui_factory_dummy (void); +@@ -942,6 +951,7 @@ + GtkHBox *vpn_type_hbox1; + GtkWidget *toplevel; + GDir *dir; ++ GtkTreeIter tree_iter; + + if (!vpn_get_clipboard ()) + return FALSE; +@@ -1005,13 +1015,13 @@ + vpn_type_details = GTK_VBOX (glade_xml_get_widget (xml, "vpn-connection-druid-details-box")); + + w = glade_xml_get_widget (xml, "add"); +- gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (add_cb), NULL); ++ g_signal_connect (G_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (add_cb), NULL); + vpn_edit = glade_xml_get_widget (xml, "edit"); +- gtk_signal_connect (GTK_OBJECT (vpn_edit), "clicked", GTK_SIGNAL_FUNC (edit_cb), NULL); ++ g_signal_connect (G_OBJECT (vpn_edit), "clicked", GTK_SIGNAL_FUNC (edit_cb), NULL); + vpn_export = glade_xml_get_widget (xml, "export"); +- gtk_signal_connect (GTK_OBJECT (vpn_export), "clicked", GTK_SIGNAL_FUNC (export_cb), NULL); ++ g_signal_connect (G_OBJECT (vpn_export), "clicked", GTK_SIGNAL_FUNC (export_cb), NULL); + vpn_delete = glade_xml_get_widget (xml, "delete"); +- gtk_signal_connect (GTK_OBJECT (vpn_delete), "clicked", GTK_SIGNAL_FUNC (delete_cb), NULL); ++ g_signal_connect (G_OBJECT (vpn_delete), "clicked", GTK_SIGNAL_FUNC (delete_cb), NULL); + g_signal_connect (dialog, "response", + G_CALLBACK (response_cb), NULL); + g_signal_connect (dialog, "delete_event", +@@ -1029,9 +1039,12 @@ + VPNCONN_NAME_COLUMN, + GTK_SORT_ASCENDING); + +- gtk_signal_connect_after (GTK_OBJECT (vpn_conn_view), "cursor-changed", ++ g_signal_connect_after (G_OBJECT (vpn_conn_view), "cursor-changed", + GTK_SIGNAL_FUNC (vpn_list_cursor_changed_cb), NULL); + ++ g_signal_connect (G_OBJECT (vpn_conn_view), "row-activated", ++ GTK_SIGNAL_FUNC (vpn_list_row_activated_cb), NULL); + -+ if (data->hw_rf_enabled != data->tmp_hw_rf_enabled) { -+ nm_info ("Wireless now %s by radio killswitch", -+ data->tmp_hw_rf_enabled ? "enabled" : "disabled"); -+ if (data->tmp_hw_rf_enabled) -+ now_enabled = TRUE; -+ else -+ now_disabled = TRUE; + get_all_vpn_connections (); + + column = gtk_tree_view_column_new (); +@@ -1045,6 +1058,12 @@ + gtk_tree_view_set_model (vpn_conn_view, GTK_TREE_MODEL (vpn_conn_list)); + gtk_tree_view_expand_all (vpn_conn_view); + ++ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (vpn_conn_list), &tree_iter)) { ++ GtkTreeSelection *selection = gtk_tree_view_get_selection (vpn_conn_view); + -+ data->hw_rf_enabled = data->tmp_hw_rf_enabled; ++ gtk_tree_selection_select_iter (selection, &tree_iter); + } + -+ if (data->hw_rf_enabled == data->wireless_enabled) -+ goto out; -+ -+ /* Only re-enabled wireless if killswitch just changed, otherwise -+ * ignore hardware rf enabled state. -+ */ -+ if (now_enabled && !data->wireless_enabled) { -+ data->wireless_enabled = TRUE; -+ nm_policy_schedule_device_change_check (data); -+ nm_dbus_signal_wireless_enabled (data); -+ } else if (!data->hw_rf_enabled && data->wireless_enabled) { -+ GSList * elt; -+ -+ /* Deactivate all wireless devices and force them down so they -+ * turn off their radios. -+ */ -+ nm_lock_mutex (data->dev_list_mutex, __FUNCTION__); -+ for (elt = data->dev_list; elt; elt = g_slist_next (elt)) { -+ NMDevice * dev = (NMDevice *) elt->data; -+ if (nm_device_is_802_11_wireless (dev)) { -+ nm_device_deactivate (dev); -+ nm_device_bring_down (dev); -+ } -+ } -+ nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__); + gtk_widget_show_all (dialog); + + /* fill in possibly choices in the druid when adding a connection */ +@@ -1059,20 +1078,20 @@ + + /* Druid */ + druid = GNOME_DRUID (glade_xml_get_widget (xml, "vpn-create-connection-druid")); +- gtk_signal_connect (GTK_OBJECT (druid), "cancel", GTK_SIGNAL_FUNC (vpn_druid_cancel), NULL); ++ g_signal_connect (GTK_OBJECT (druid), "cancel", GTK_SIGNAL_FUNC (vpn_druid_cancel), NULL); + druid_confirm_page = GNOME_DRUID_PAGE_EDGE (glade_xml_get_widget (xml, "vpn-druid-vpn-confirm-page")); + /* use connect_after, otherwise gnome_druid_set_buttons_sensitive() won't work in prepare handlers */ + w = glade_xml_get_widget (xml, "vpn-druid-vpn-type-page"); +- gtk_signal_connect_after (GTK_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_type_page_next), NULL); ++ g_signal_connect_after (G_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_type_page_next), NULL); + w = glade_xml_get_widget (xml, "vpn-druid-vpn-details-page"); +- gtk_signal_connect_after (GTK_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_prepare), NULL); +- gtk_signal_connect_after (GTK_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_next), NULL); ++ g_signal_connect_after (G_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_prepare), NULL); ++ g_signal_connect_after (G_OBJECT (w), "next", GTK_SIGNAL_FUNC (vpn_druid_vpn_details_page_next), NULL); + w = glade_xml_get_widget (xml, "vpn-druid-vpn-confirm-page"); +- gtk_signal_connect_after (GTK_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_prepare), NULL); +- gtk_signal_connect_after (GTK_OBJECT (w), "finish", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_finish), NULL); ++ g_signal_connect_after (G_OBJECT (w), "prepare", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_prepare), NULL); ++ g_signal_connect_after (G_OBJECT (w), "finish", GTK_SIGNAL_FUNC (vpn_druid_vpn_confirm_page_finish), NULL); + + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (druid)); +- gtk_signal_connect (GTK_OBJECT (toplevel), "delete_event", GTK_SIGNAL_FUNC (vpn_window_close), NULL); ++ g_signal_connect (G_OBJECT (toplevel), "delete_event", GTK_SIGNAL_FUNC (vpn_window_close), NULL); + + druid_window = GTK_WINDOW (glade_xml_get_widget (xml, "vpn-create-connection")); + +diff -urN NetworkManager-0.6.5/include/NetworkManager.h NetworkManager-SVNr3284/include/NetworkManager.h +--- NetworkManager-0.6.5/include/NetworkManager.h 2007-04-18 20:13:03.000000000 +0200 ++++ NetworkManager-SVNr3284/include/NetworkManager.h 2008-02-04 15:59:52.000000000 +0100 +@@ -173,7 +173,8 @@ + NETWORK_TYPE_UNKNOWN = 0, + NETWORK_TYPE_ALLOWED, + NETWORK_TYPE_INVALID, +- NETWORK_TYPE_DEVICE ++ NETWORK_TYPE_DEVICE, ++ NETWORK_TYPE_WIRED + } NMNetworkType; + + +diff -urN NetworkManager-0.6.5/libnm-util/dbus-helpers.h NetworkManager-SVNr3284/libnm-util/dbus-helpers.h +--- NetworkManager-0.6.5/libnm-util/dbus-helpers.h 2007-04-18 20:13:09.000000000 +0200 ++++ NetworkManager-SVNr3284/libnm-util/dbus-helpers.h 2008-02-04 16:00:48.000000000 +0100 +@@ -100,6 +100,7 @@ + char **client_cert_file, + char **ca_cert_file, + int *wpa_version); + -+ data->wireless_enabled = FALSE; -+ nm_policy_schedule_device_change_check (data); -+ nm_dbus_signal_wireless_enabled (data); -+ } + dbus_bool_t nmu_security_serialize_leap (DBusMessageIter *iter, + const char *username, + const char *passwd, +diff -urN NetworkManager-0.6.5/libnm-util/sha1.c NetworkManager-SVNr3284/libnm-util/sha1.c +--- NetworkManager-0.6.5/libnm-util/sha1.c 2007-04-18 20:13:09.000000000 +0200 ++++ NetworkManager-SVNr3284/libnm-util/sha1.c 2008-02-04 16:00:48.000000000 +0100 +@@ -12,6 +12,10 @@ + * See README and COPYING for more details. + */ + ++#ifdef HAVE_CONFIG_H ++#include ++#endif + -+out: -+ /* Schedule another killswitch poll */ -+ source = g_timeout_source_new (6000); -+ g_source_set_callback (source, nm_poll_killswitches, data, NULL); -+ g_source_attach (source, data->main_context); -+ g_source_unref (source); -+} + #include + #include + +diff -urN NetworkManager-0.6.5/man/Makefile.am NetworkManager-SVNr3284/man/Makefile.am +--- NetworkManager-0.6.5/man/Makefile.am 2007-04-18 20:13:08.000000000 +0200 ++++ NetworkManager-SVNr3284/man/Makefile.am 2008-02-04 16:00:46.000000000 +0100 +@@ -1,10 +1,10 @@ + man_MANS = \ +- NetworkManager.1 \ +- NetworkManagerDispatcher.1 \ ++ NetworkManager.8 \ ++ NetworkManagerDispatcher.8 \ + nm-tool.1 + + EXTRA_DIST = \ + $(man_MANS) \ +- NetworkManager.1.in \ +- NetworkManagerDispatcher.1.in \ ++ NetworkManager.8.in \ ++ NetworkManagerDispatcher.8.in \ + nm-tool.1.in +diff -urN NetworkManager-0.6.5/man/NetworkManager.1 NetworkManager-SVNr3284/man/NetworkManager.1 +--- NetworkManager-0.6.5/man/NetworkManager.1 2007-04-18 22:28:16.000000000 +0200 ++++ NetworkManager-SVNr3284/man/NetworkManager.1 1970-01-01 01:00:00.000000000 +0100 +@@ -1,27 +0,0 @@ +-.\" NetworkManager(1) manual page +-.\" +-.\" Copyright (C) 2005 Robert Love +-.\" +-.TH NETWORKMANAGER "1" +-.SH NAME +-NetworkManager \- network management daemon +-.SH SYNOPSIS +-.B NetworkManager [\-\-no-daemon] [\-\-enable-test-devices] +-.SH DESCRIPTION +-The \fINetworkManager\fP daemon attempts to keep an active network connection +-available at all times. The point of NetworkManager is to make networking +-configuration and setup as painless and automatic as possible. If using DHCP, +-NetworkManager is intended to replace default routes, obtain IP addresses from +-a DHCP server, and change nameservers whenever it sees fit, with the aim of +-making networking Just Work. +-.SH OPTIONS +-The following options are supported: +-.TP +-.I "--no-daemon" +-Do not daemonize. This is useful for debugging. +-.TP +-.I "--enable-test-devices" +-Enable support for virtual test devices. These are useful for debugging. +-.SH SEE ALSO +-.BR NetworkManagerDispatcher (1), +-.BR nm-tool (1) +diff -urN NetworkManager-0.6.5/man/NetworkManager.1.in NetworkManager-SVNr3284/man/NetworkManager.1.in +--- NetworkManager-0.6.5/man/NetworkManager.1.in 2007-04-18 20:13:08.000000000 +0200 ++++ NetworkManager-SVNr3284/man/NetworkManager.1.in 1970-01-01 01:00:00.000000000 +0100 +@@ -1,27 +0,0 @@ +-.\" NetworkManager(1) manual page +-.\" +-.\" Copyright (C) 2005 Robert Love +-.\" +-.TH NETWORKMANAGER "1" +-.SH NAME +-NetworkManager \- network management daemon +-.SH SYNOPSIS +-.B NetworkManager [\-\-no-daemon] [\-\-enable-test-devices] +-.SH DESCRIPTION +-The \fINetworkManager\fP daemon attempts to keep an active network connection +-available at all times. The point of NetworkManager is to make networking +-configuration and setup as painless and automatic as possible. If using DHCP, +-NetworkManager is intended to replace default routes, obtain IP addresses from +-a DHCP server, and change nameservers whenever it sees fit, with the aim of +-making networking Just Work. +-.SH OPTIONS +-The following options are supported: +-.TP +-.I "--no-daemon" +-Do not daemonize. This is useful for debugging. +-.TP +-.I "--enable-test-devices" +-Enable support for virtual test devices. These are useful for debugging. +-.SH SEE ALSO +-.BR NetworkManagerDispatcher (1), +-.BR nm-tool (1) +diff -urN NetworkManager-0.6.5/man/NetworkManager.8.in NetworkManager-SVNr3284/man/NetworkManager.8.in +--- NetworkManager-0.6.5/man/NetworkManager.8.in 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/man/NetworkManager.8.in 2008-02-04 16:00:46.000000000 +0100 +@@ -0,0 +1,27 @@ ++.\" NetworkManager(8) manual page ++.\" ++.\" Copyright (C) 2005 Robert Love ++.\" ++.TH NETWORKMANAGER "8" ++.SH NAME ++NetworkManager \- network management daemon ++.SH SYNOPSIS ++.B NetworkManager [\-\-no-daemon] [\-\-enable-test-devices] ++.SH DESCRIPTION ++The \fINetworkManager\fP daemon attempts to keep an active network connection ++available at all times. The point of NetworkManager is to make networking ++configuration and setup as painless and automatic as possible. If using DHCP, ++NetworkManager is intended to replace default routes, obtain IP addresses from ++a DHCP server, and change nameservers whenever it sees fit, with the aim of ++making networking Just Work. ++.SH OPTIONS ++The following options are supported: ++.TP ++.I "--no-daemon" ++Do not daemonize. This is useful for debugging. ++.TP ++.I "--enable-test-devices" ++Enable support for virtual test devices. These are useful for debugging. ++.SH SEE ALSO ++.BR NetworkManagerDispatcher (8), ++.BR nm-tool (1) +diff -urN NetworkManager-0.6.5/man/NetworkManagerDispatcher.1 NetworkManager-SVNr3284/man/NetworkManagerDispatcher.1 +--- NetworkManager-0.6.5/man/NetworkManagerDispatcher.1 2007-04-18 22:28:16.000000000 +0200 ++++ NetworkManager-SVNr3284/man/NetworkManagerDispatcher.1 1970-01-01 01:00:00.000000000 +0100 +@@ -1,29 +0,0 @@ +-.\" NetworkManager(1) manual page +-.\" +-.\" Copyright (C) 2005 Robert Love +-.\" +-.TH NETWORKMANAGERDISPATCHER "1" +-.SH NAME +-NetworkManagerDispatcher \- daemon that runs commands in response to off/online +-.SH SYNOPSIS +-.B NetworkManagerDispatcher [\-\-no-daemon] +-.SH DESCRIPTION +-The \fINetworkManagerDispatcher\fP daemon runs commands in the +-.I ${prefix}/etc/NetworkManager/dispatcher.d +-directory in response to interfaces coming up and down. The scripts are run +-alphabetically. The first parameter is the network interface name. The second +-parameter is +-.I up +-if the interface is now up and +-.I down +-if the interface is now down. +-.SH OPTIONS +-The following options are supported: +-.TP +-.I "--no-daemon" +-Do not daemonize. This is useful for debugging. +-.SH FILES +-${prefix}/etc/NetworkManager/dispatcher.d +-.SH SEE ALSO +-.BR NetworkManager (1), +-.BR nm-tool (1) +diff -urN NetworkManager-0.6.5/man/NetworkManagerDispatcher.1.in NetworkManager-SVNr3284/man/NetworkManagerDispatcher.1.in +--- NetworkManager-0.6.5/man/NetworkManagerDispatcher.1.in 2007-04-18 20:13:08.000000000 +0200 ++++ NetworkManager-SVNr3284/man/NetworkManagerDispatcher.1.in 1970-01-01 01:00:00.000000000 +0100 +@@ -1,29 +0,0 @@ +-.\" NetworkManager(1) manual page +-.\" +-.\" Copyright (C) 2005 Robert Love +-.\" +-.TH NETWORKMANAGERDISPATCHER "1" +-.SH NAME +-NetworkManagerDispatcher \- daemon that runs commands in response to off/online +-.SH SYNOPSIS +-.B NetworkManagerDispatcher [\-\-no-daemon] +-.SH DESCRIPTION +-The \fINetworkManagerDispatcher\fP daemon runs commands in the +-.I @sysconfdir@/NetworkManager/dispatcher.d +-directory in response to interfaces coming up and down. The scripts are run +-alphabetically. The first parameter is the network interface name. The second +-parameter is +-.I up +-if the interface is now up and +-.I down +-if the interface is now down. +-.SH OPTIONS +-The following options are supported: +-.TP +-.I "--no-daemon" +-Do not daemonize. This is useful for debugging. +-.SH FILES +-@sysconfdir@/NetworkManager/dispatcher.d +-.SH SEE ALSO +-.BR NetworkManager (1), +-.BR nm-tool (1) +diff -urN NetworkManager-0.6.5/man/NetworkManagerDispatcher.8.in NetworkManager-SVNr3284/man/NetworkManagerDispatcher.8.in +--- NetworkManager-0.6.5/man/NetworkManagerDispatcher.8.in 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/man/NetworkManagerDispatcher.8.in 2008-02-04 16:00:46.000000000 +0100 +@@ -0,0 +1,29 @@ ++.\" NetworkManager(8) manual page ++.\" ++.\" Copyright (C) 2005 Robert Love ++.\" ++.TH NETWORKMANAGERDISPATCHER "8" ++.SH NAME ++NetworkManagerDispatcher \- daemon that runs commands in response to off/online ++.SH SYNOPSIS ++.B NetworkManagerDispatcher [\-\-no-daemon] ++.SH DESCRIPTION ++The \fINetworkManagerDispatcher\fP daemon runs commands in the ++.I @sysconfdir@/NetworkManager/dispatcher.d ++directory in response to interfaces coming up and down. The scripts are run ++alphabetically. The first parameter is the network interface name. The second ++parameter is ++.I up ++if the interface is now up and ++.I down ++if the interface is now down. ++.SH OPTIONS ++The following options are supported: ++.TP ++.I "--no-daemon" ++Do not daemonize. This is useful for debugging. ++.SH FILES ++@sysconfdir@/NetworkManager/dispatcher.d ++.SH SEE ALSO ++.BR NetworkManager (8), ++.BR nm-tool (1) +diff -urN NetworkManager-0.6.5/man/nm-tool.1 NetworkManager-SVNr3284/man/nm-tool.1 +--- NetworkManager-0.6.5/man/nm-tool.1 2007-04-18 22:28:16.000000000 +0200 ++++ NetworkManager-SVNr3284/man/nm-tool.1 1970-01-01 01:00:00.000000000 +0100 +@@ -1,14 +0,0 @@ +-.\" nm-tool(1) manual page +-.\" +-.\" Copyright (C) 2005 Robert Love +-.\" +-.TH NM-TOOL "1" +-nm-tool \- utility to report NetworkManager state +-.SH SYNOPSIS +-.B nm-tool +-.SH DESCRIPTION +-The \fInm-tool\fP utility provides information about NetworkManager, device, +-and wireless networks. +-.SH SEE ALSO +-.BR NetworkManager (1), +-.BR NetworkManagerDispatcher (1) +diff -urN NetworkManager-0.6.5/man/nm-tool.1.in NetworkManager-SVNr3284/man/nm-tool.1.in +--- NetworkManager-0.6.5/man/nm-tool.1.in 2007-04-18 20:13:08.000000000 +0200 ++++ NetworkManager-SVNr3284/man/nm-tool.1.in 2008-02-04 16:00:46.000000000 +0100 +@@ -3,6 +3,7 @@ + .\" Copyright (C) 2005 Robert Love + .\" + .TH NM-TOOL "1" ++.SH NAME + nm-tool \- utility to report NetworkManager state + .SH SYNOPSIS + .B nm-tool +@@ -10,5 +11,5 @@ + The \fInm-tool\fP utility provides information about NetworkManager, device, + and wireless networks. + .SH SEE ALSO +-.BR NetworkManager (1), +-.BR NetworkManagerDispatcher (1) ++.BR NetworkManager (8), ++.BR NetworkManagerDispatcher (8) +diff -urN NetworkManager-0.6.5/po/ChangeLog NetworkManager-SVNr3284/po/ChangeLog +--- NetworkManager-0.6.5/po/ChangeLog 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/po/ChangeLog 2008-02-04 16:01:02.000000000 +0100 +@@ -1,3 +1,44 @@ ++2007-11-02 Priit Laes + -+static void nm_killswitch_getpower_reply_cb (DBusPendingCall *pcall, NMData * data) -+{ -+ DBusError err; -+ DBusMessage * reply = NULL; -+ guint32 status; ++ * et.po: Translation updated by Mattias Põldaru. + -+ g_return_if_fail (pcall != NULL); -+ g_return_if_fail (data != NULL); ++2007-10-28 Priit Laes + -+ if (!dbus_pending_call_get_completed (pcall)) -+ goto out; ++ * et.po: Translation updated by Priit Laes. + -+ if (!(reply = dbus_pending_call_steal_reply (pcall))) -+ goto out; ++2007-10-28 Priit Laes + -+ if (message_is_error (reply)) { -+ dbus_error_init (&err); -+ dbus_set_error_from_message (&err, reply); -+ nm_info ("Error getting killswitch power: %s - %s", err.name, err.message); -+ dbus_error_free (&err); -+ goto out; -+ } ++ * et.po: Translation updated by Mattias Põldaru. ++ * Forgot to add file :( + -+ if (!dbus_message_get_args (reply, &err, DBUS_TYPE_UINT32, &status, DBUS_TYPE_INVALID)) { -+ nm_info ("Error getting killswitch power arguments: %s - %s", err.name, err.message); -+ dbus_error_free (&err); -+ goto out; -+ } ++2007-09-14 Clytie Siddall + -+ if (status == 0) -+ data->tmp_hw_rf_enabled = FALSE; ++ * vi.po: Updated Vietnamese translation. + -+out: -+ if (reply) -+ dbus_message_unref (reply); ++2007-08-26 Satoru SATOH + -+ handle_killswitch_pcall_done (data, pcall); -+ dbus_pending_call_unref (pcall); -+} ++ * ja.po: Updated Japanese translation. + ++2007-08-22 Jorge Gonzalez + -+static gboolean nm_poll_killswitches (gpointer user_data) -+{ -+ NMData * data = (NMData *) user_data; -+ DBusConnection * connection = data->dbus_connection; -+ GSList * elt; ++ * es.po: Updated Spanish translation. + -+ g_return_val_if_fail (data != NULL, FALSE); ++2007-08-16 Ilkka Tuohela + -+ data->tmp_hw_rf_enabled = TRUE; ++ * fi.po: Updated Finnish translation. + -+ for (elt = data->killswitch_list; elt; elt = g_slist_next (elt)) -+ { -+ DBusPendingCall * pcall; -+ DBusMessage * message; ++2007-07-03 Takeshi AIHANA + -+ message = dbus_message_new_method_call ("org.freedesktop.Hal", -+ elt->data, -+ "org.freedesktop.Hal.Device.KillSwitch", -+ "GetPower"); -+ if (!dbus_connection_send_with_reply (connection, message, &pcall, 5000)) { -+ nm_warning ("%s(): could not send dbus message", __func__); -+ } else if (!pcall) { -+ nm_warning ("%s(): could not send dbus message; pcall was NULL", __func__); -+ } else { -+ dbus_pending_call_set_notify (pcall, -+ (DBusPendingCallNotifyFunction) nm_killswitch_getpower_reply_cb, -+ data, -+ NULL); -+ data->ks_pcall_list = g_slist_append (data->ks_pcall_list, pcall); -+ } -+ dbus_message_unref (message); -+ } -+ return FALSE; -+} ++ * ja.po: Fixed #Bug 453314. + ++2007-06-04 Kjartan Maraas + -+/* -+ * nm_add_killswitch_device -+ * -+ * Adds a killswitch device to the list -+ * -+ */ -+static void nm_add_killswitch_device (NMData * data, const char * udi) -+{ -+ char * type; -+ GSList * elt; ++ * nb.po: Update Norwegian bokmÃ¥l translation. + -+ type = libhal_device_get_property_string (data->hal_ctx, udi, "killswitch.type", NULL); -+ if (!type) -+ return; ++2007-04-23 Luca Ferretti + -+ if (strcmp (type, "wlan") != 0) -+ goto out; ++ * it.po: Updated Italian translation by Francesco Marletta. + -+ /* see if it's already in the list */ -+ for (elt = data->killswitch_list; elt; elt = g_slist_next (elt)) { -+ const char * list_udi = (const char *) elt->data; -+ if (strcmp (list_udi, udi) == 0) -+ goto out; -+ } -+ -+ /* Start polling switches if this is the first switch we've found */ -+ if (g_slist_length (data->killswitch_list) == 0) { -+ GSource * source = g_idle_source_new (); -+ g_source_set_callback (source, nm_poll_killswitches, data, NULL); -+ g_source_attach (source, data->main_context); -+ g_source_unref (source); -+ } -+ -+ data->killswitch_list = g_slist_append (data->killswitch_list, g_strdup (udi)); -+ nm_info ("Found radio killswitch %s", udi); -+ -+out: -+ libhal_free_string (type); -+} -+ - /* - * nm_hal_device_new_capability - * -@@ -283,10 +461,9 @@ - NMData *data = (NMData *)libhal_ctx_get_user_data (ctx); + 2007-04-16 Ihar Hrachyshka - g_return_if_fail (data != NULL); -+ g_return_if_fail (capability != NULL); + * be@latin.po: Added Belarusian Latin translation. +diff -urN NetworkManager-0.6.5/po/es.po NetworkManager-SVNr3284/po/es.po +--- NetworkManager-0.6.5/po/es.po 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/po/es.po 2008-02-04 16:01:02.000000000 +0100 +@@ -2,735 +2,30 @@ + # 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. ++# + # Antonio Ognio , 2004. + # Francisco Javier F. Serrador , 2004, 2005. + # Lucas Vieites Fariña , 2005, 2006. +-# ++# Jorge González , 2007. + msgid "" + msgstr "" +-"Project-Id-Version: NetworkManager.HEAD\n" ++"Project-Id-Version: NetworkManager.NETWORKMANAGER_0_6_0_RELEASE.es\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2006-05-29 18:33+0200\n" +-"PO-Revision-Date: 2006-05-16 13:58\n" +-"Last-Translator: Novell Language \n" +-"Language-Team: Novell Language \n" ++"POT-Creation-Date: 2007-03-03 03:27+0000\n" ++"PO-Revision-Date: 2007-08-22 14:57+0200\n" ++"Last-Translator: Jorge González \n" ++"Language-Team: Spanish \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.11\n" ++"X-Generator: KBabel 1.11.4\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" -- /*nm_debug ("nm_hal_device_new_capability() called with udi = %s, capability = %s", udi, capability );*/ +-#: ../gnome/applet/applet-compat.c:171 ../gnome/applet/applet-dbus-info.c:919 +-#, c-format +-msgid "Passphrase for wireless network %s" +-msgstr "Frase de paso para la red inalámbrica %s" - -- if (capability && ((strcmp (capability, "net.80203") == 0) || (strcmp (capability, "net.80211") == 0))) -+ if (((strcmp (capability, "net.80203") == 0) || (strcmp (capability, "net.80211") == 0))) - { - char *iface; +-#: ../gnome/applet/applet-dbus.c:265 +-#, c-format +-msgid "Connection to the wireless network '%s' failed." +-msgstr "La conexión a la red inalámbrica «%s» ha fallado." +- +-#: ../gnome/applet/applet-dbus.c:270 +-msgid "Connection to the wired network failed." +-msgstr "La conexión a la red cableada ha fallado." +- +-#: ../gnome/applet/applet.c:184 +-msgid "Error displaying connection information:" +-msgstr "Ha ocurrido un error al mostrar información de conexión:" +- +-#: ../gnome/applet/applet.c:202 +-msgid "Could not find some required resources (the glade file)!" +-msgstr "" +-"No se han podido encontrar algunos recursos necesarios (el archivo glade)." +- +-#: ../gnome/applet/applet.c:213 +-msgid "No active connections!" +-msgstr "No hay conexiones activas." +- +-#: ../gnome/applet/applet.c:234 +-#, c-format +-msgid "Wired Ethernet (%s)" +-msgstr "Red Ethernet cableada (%s)" +- +-#: ../gnome/applet/applet.c:236 +-#, c-format +-msgid "Wireless Ethernet (%s)" +-msgstr "Red Ethernet inalámbrica (%s)" +- +-#: ../gnome/applet/applet.c:337 ../gnome/applet/applet.c:362 +-msgid "NetworkManager Applet" +-msgstr "Miniaplicación NetworkManager" +- +-#: ../gnome/applet/applet.c:339 ../gnome/applet/applet.c:364 +-msgid "Copyright © 2004-2005 Red Hat, Inc." +-msgstr "Copyright © 2004-2005 Red Hat, Inc." +- +-#: ../gnome/applet/applet.c:340 ../gnome/applet/applet.c:365 +-msgid "" +-"Notification area applet for managing your network devices and connections." +-msgstr "" +-"Miniaplicación del área de notificación para administrar sus dispositivos de " +-"red y conexiones." +- +-#: ../gnome/applet/applet.c:343 ../gnome/applet/applet.c:370 +-msgid "translator-credits" +-msgstr "Lucas Vieites , 2005" +- +-#: ../gnome/applet/applet.c:426 +-msgid "VPN Login Failure" +-msgstr "Error de acceso de VPN" +- +-#: ../gnome/applet/applet.c:427 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a login failure." +-msgstr "No se pudo iniciar la conexión VPN «%s» debido a un error de acceso." +- +-#: ../gnome/applet/applet.c:431 +-msgid "VPN Start Failure" +-msgstr "Error de inicio de VPN" +- +-#: ../gnome/applet/applet.c:432 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' due to a failure launching the VPN " +-"program." +-msgstr "" +-"No se pudo iniciar la conexión VPN «%s» debido a un error al iniciar el " +-"programa VPN." +- +-#: ../gnome/applet/applet.c:436 ../gnome/applet/applet.c:446 +-msgid "VPN Connect Failure" +-msgstr "Error de conexión VPN" +- +-#: ../gnome/applet/applet.c:437 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a connection error." +-msgstr "" +-"No se puede iniciar la conexión VPN «%s» debido a un error de conexión." +- +-#: ../gnome/applet/applet.c:441 +-msgid "VPN Configuration Error" +-msgstr "Error de configuración VPN" +- +-#: ../gnome/applet/applet.c:442 +-#, c-format +-msgid "The VPN connection '%s' was not correctly configured." +-msgstr "La conexión VPN «%s» no estaba configurada correctamente." +- +-#: ../gnome/applet/applet.c:447 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' because the VPN server did not " +-"return an adequate network configuration." +-msgstr "" +-"No se pudo iniciar la conexión VPN «%s» porque el servidor VPN no ha " +-"devuelto una configuración de red adecuada." +- +-#: ../gnome/applet/applet.c:517 +-msgid "VPN Login Message" +-msgstr "Mensaje de acceso VPN" +- +-#: ../gnome/applet/applet.c:741 ../gnome/applet/applet.c:2508 +-#: ../gnome/applet/other-network-dialog.c:453 +-#: ../gnome/applet/passphrase-dialog.c:228 +-msgid "" +-"The NetworkManager Applet could not find some required resources (the glade " +-"file was not found)." +-msgstr "" +-"La miniaplicación NetworkManager no pudo encontrar algunos archivos de " +-"recursos (No se encontró el archivo de glade)." +- +-#: ../gnome/applet/applet.c:753 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support wireless scanning." +-msgstr "" +-"El dispositivo de red «%s (%s)» no puede inspeccionar redes inalámbricas." +- +-#: ../gnome/applet/applet.c:761 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support link detection." +-msgstr "" +-"El dispositivo de red \"%s (%s)\" no puede realizar detección de enlaces." +- +-#: ../gnome/applet/applet.c:908 +-#, c-format +-msgid "Preparing device %s for the wired network..." +-msgstr "Preparando el dispositivo %s para la red cableada..." +- +-#: ../gnome/applet/applet.c:910 +-#, c-format +-msgid "Preparing device %s for the wireless network '%s'..." +-msgstr "Preparando el dispositivo %s para la red inalámbrica «%s»..." +- +-#: ../gnome/applet/applet.c:918 +-#, c-format +-msgid "Configuring device %s for the wired network..." +-msgstr "Configurando el dispositivo %s para la red cableada..." +- +-#: ../gnome/applet/applet.c:920 +-#, c-format +-msgid "Attempting to join the wireless network '%s'..." +-msgstr "Intentando conectar con la red inalámbrica «%s»..." +- +-#: ../gnome/applet/applet.c:928 +-#, c-format +-msgid "Waiting for Network Key for the wireless network '%s'..." +-msgstr "Esperando la contraseña de red para la red inalámbrica «%s»..." +- +-#: ../gnome/applet/applet.c:936 ../gnome/applet/applet.c:946 +-msgid "Requesting a network address from the wired network..." +-msgstr "Solicitando una dirección de red a la red cableada..." +- +-#: ../gnome/applet/applet.c:938 ../gnome/applet/applet.c:948 +-#, c-format +-msgid "Requesting a network address from the wireless network '%s'..." +-msgstr "Solicitando una dirección de red a la red inalámbrica «%s»..." +- +-#: ../gnome/applet/applet.c:956 +-msgid "Finishing connection to the wired network..." +-msgstr "Deteniendo la conexión a la red cableada..." +- +-#: ../gnome/applet/applet.c:958 +-#, c-format +-msgid "Finishing connection to the wireless network '%s'..." +-msgstr "Deteniendo la conexión a la red inalámbrica «%s»..." +- +-#: ../gnome/applet/applet.c:1075 +-msgid "NetworkManager is not running" +-msgstr "NetworkManager no se está ejecutando" +- +-#: ../gnome/applet/applet.c:1083 ../gnome/applet/applet.c:1828 +-msgid "Networking disabled" +-msgstr "Red desactivada" +- +-#: ../gnome/applet/applet.c:1088 +-msgid "No network connection" +-msgstr "Sin conexión de red" +- +-#: ../gnome/applet/applet.c:1093 +-msgid "Wired network connection" +-msgstr "Conexión de red cableada" +- +-#: ../gnome/applet/applet.c:1097 +-msgid "Connected to an Ad-Hoc wireless network" +-msgstr "Conectado con una red inalámbrica Ad-Hoc" +- +-#: ../gnome/applet/applet.c:1099 +-#, c-format +-msgid "Wireless network connection to '%s' (%d%%)" +-msgstr "Conexión de red inalámbrica a «%s» (%d%%)" +- +-#: ../gnome/applet/applet.c:1120 +-#, c-format +-msgid "VPN connection to '%s'" +-msgstr "Conexión VPN a «%s»" +- +-#: ../gnome/applet/applet.c:1128 +-#, c-format +-msgid "VPN connecting to '%s'" +-msgstr "VPN conectando a «%s»" +- +-#: ../gnome/applet/applet.c:1541 +-msgid "_Connect to Other Wireless Network..." +-msgstr "_Conectar a otra red inalámbrica..." +- +-#: ../gnome/applet/applet.c:1562 +-msgid "Create _New Wireless Network..." +-msgstr "Crear una red inalámbrica _nueva..." +- +-#: ../gnome/applet/applet.c:1685 +-msgid "_VPN Connections" +-msgstr "Conexiones _VPN" +- +-#: ../gnome/applet/applet.c:1730 +-msgid "_Configure VPN..." +-msgstr "_Configurar VPN..." +- +-#: ../gnome/applet/applet.c:1734 +-msgid "_Disconnect VPN..." +-msgstr "_Desconectar VPN..." +- +-#: ../gnome/applet/applet.c:1756 +-msgid "_Dial Up Connections" +-msgstr "Conexiones de _marcado" +- +-#. FIXME: We should save and then check the state of the devices and show Connect _or_ Disconnect for each item +-#: ../gnome/applet/applet.c:1767 +-#, c-format +-msgid "Connect to %s..." +-msgstr "Conectar a %s..." +- +-#: ../gnome/applet/applet.c:1773 +-#, c-format +-msgid "Disconnect from %s..." +-msgstr "Desconectar de %s..." +- +-#: ../gnome/applet/applet.c:1822 +-msgid "No network devices have been found" +-msgstr "No se ha encontrado ningún dispositivo de red" +- +-#: ../gnome/applet/applet.c:2014 +-msgid "NetworkManager is not running..." +-msgstr "NetworkManager no se está ejecutando..." +- +-#. 'Enable Networking' item +-#: ../gnome/applet/applet.c:2170 +-msgid "Enable _Networking" +-msgstr "Activar _red" +- +-#. 'Enable Wireless' item +-#: ../gnome/applet/applet.c:2176 +-msgid "Enable _Wireless" +-msgstr "Activar _inalámbrico" +- +-#. 'Connection Information' item +-#: ../gnome/applet/applet.c:2182 +-msgid "Connection _Information" +-msgstr "_Información de la conexión" +- +-#. Help item +-#: ../gnome/applet/applet.c:2193 +-msgid "_Help" +-msgstr "A_yuda" +- +-#. About item +-#: ../gnome/applet/applet.c:2202 +-msgid "_About" +-msgstr "A_cerca de" +- +-#: ../gnome/applet/applet.c:2667 +-msgid "" +-"The NetworkManager applet could not find some required resources. It cannot " +-"continue.\n" +-msgstr "" +-"La miniaplicación NetworkManager no pudo encontrar algunos recursos " +-"necesarios. No se puede continuar.\n" +- +-#: ../gnome/applet/wireless-security-option.c:157 +-msgid "Open System" +-msgstr "Sistema abierto" +- +-#: ../gnome/applet/wireless-security-option.c:160 +-msgid "Shared Key" +-msgstr "Clave compartida" +- +-#: ../gnome/applet/wireless-security-option.c:208 +-msgid "Automatic (Default)" +-msgstr "Automático (Predeterminado)" +- +-#: ../gnome/applet/wireless-security-option.c:215 +-msgid "AES-CCMP" +-msgstr "AES-CCMP" +- +-#: ../gnome/applet/wireless-security-option.c:223 +-msgid "TKIP" +-msgstr "TKIP" +- +-#: ../gnome/applet/wireless-security-option.c:231 +-msgid "Dynamic WEP" +-msgstr "WEP dinámico" +- +-#: ../gnome/applet/wso-none.c:53 +-msgid "None" +-msgstr "Ninguno" +- +-#: ../gnome/applet/wso-wep-ascii.c:138 +-msgid "WEP 64/128-bit ASCII" +-msgstr "ASCII WEP de 64/128 bits" +- +-#: ../gnome/applet/wso-wep-hex.c:135 +-msgid "WEP 64/128-bit Hex" +-msgstr "Hexadecimal WEP de 64/128 bits" +- +-#: ../gnome/applet/wso-wep-passphrase.c:135 +-msgid "WEP 128-bit Passphrase" +-msgstr "Frase de contraseña WEP de 128 bits" +- +-#: ../gnome/applet/wso-wpa-eap.c:237 +-msgid "PEAP" +-msgstr "PEAP" +- +-#: ../gnome/applet/wso-wpa-eap.c:238 +-msgid "TLS" +-msgstr "TLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:239 +-msgid "TTLS" +-msgstr "TTLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:247 ../src/nm-ap-security-wpa-eap.c:92 +-#: ../src/nm-ap-security-wpa-eap.c:116 +-msgid "WPA2 Enterprise" +-msgstr "WPA2 empresarial" +- +-#: ../gnome/applet/wso-wpa-eap.c:249 ../src/nm-ap-security-wpa-eap.c:94 +-#: ../src/nm-ap-security-wpa-eap.c:121 +-msgid "WPA Enterprise" +-msgstr "WPA empresarial" +- +-#: ../gnome/applet/wso-wpa-psk.c:178 +-msgid "WPA2 Personal" +-msgstr "WPA2 Personal" +- +-#: ../gnome/applet/wso-wpa-psk.c:180 +-msgid "WPA Personal" +-msgstr "WPA Personal" +- +-#: ../gnome/applet/eggtrayicon.c:134 +-msgid "Orientation" +-msgstr "Orientación" +- +-#: ../gnome/applet/eggtrayicon.c:135 +-msgid "The orientation of the tray." +-msgstr "La orientación del área de notificación." +- +-#: ../gnome/applet/menu-items.c:88 +-#, c-format +-msgid "Wired Network (%s)" +-msgstr "Red cableada (%s)" +- +-#: ../gnome/applet/menu-items.c:91 +-msgid "_Wired Network" +-msgstr "Red _cableada" +- +-#: ../gnome/applet/menu-items.c:162 +-#, c-format +-msgid "Wireless Network (%s)" +-msgid_plural "Wireless Networks (%s)" +-msgstr[0] "Red inalámbrica (%s)" +-msgstr[1] "Redes inalámbricas (%s)" +- +-#: ../gnome/applet/menu-items.c:164 +-msgid "Wireless Network" +-msgid_plural "Wireless Networks" +-msgstr[0] "Red inalámbrica" +-msgstr[1] "Redes inalámbricas" +- +-#: ../gnome/applet/menu-items.c:343 +-msgid " (invalid Unicode)" +-msgstr " (Unicode inválido)" +- +-#: ../gnome/applet/other-network-dialog.c:352 +-#, c-format +-msgid "" +-"By default, the wireless network's name is set to your computer's name, %s, " +-"with no encryption enabled" +-msgstr "" +-"Por omisión, el nombre de la red inalámbrica se establece al nombre de su " +-"equipo, %s, sin ninguna encriptación activada" +- +-#: ../gnome/applet/other-network-dialog.c:358 +-msgid "Create new wireless network" +-msgstr "Crea una red inalámbricas nueva" +- +-#: ../gnome/applet/other-network-dialog.c:359 +-msgid "" +-"Enter the name and security settings of the wireless network you wish to " +-"create." +-msgstr "" +-"Introduzca el nombre y las opciones de seguridad de la red inalámbrica que " +-"quiere crear." +- +-#: ../gnome/applet/other-network-dialog.c:363 +-msgid "Create New Wireless Network" +-msgstr "Crear una red inalámbrica nueva" +- +-#: ../gnome/applet/other-network-dialog.c:368 +-msgid "Existing wireless network" +-msgstr "Red inalámbrica existente" +- +-#: ../gnome/applet/other-network-dialog.c:369 +-msgid "Enter the name of the wireless network to which you wish to connect." +-msgstr "" +-"Introduzca el nombre de la red inalámbrica con la que quiere conectarse." +- +-#: ../gnome/applet/other-network-dialog.c:371 +-msgid "Connect to Other Wireless Network" +-msgstr "Conectar a otra red inalámbrica" +- +-#: ../gnome/applet/passphrase-dialog.c:215 +-msgid "Error connecting to wireless network" +-msgstr "Error al conectar a la red inalámbrica" +- +-#: ../gnome/applet/passphrase-dialog.c:216 +-msgid "" +-"The requested wireless network requires security capabilities unsupported by " +-"your hardware." +-msgstr "" +-"La red inalámbrica solicitada requiere capacidades de seguridad que su " +-"hardware no proporciona." +- +-#: ../gnome/applet/vpn-password-dialog.c:151 +-#: ../gnome/applet/vpn-password-dialog.c:188 +-#, c-format +-msgid "Cannot start VPN connection '%s'" +-msgstr "No se puede iniciar la conexión VPN «%s»" +- +-#: ../gnome/applet/vpn-password-dialog.c:154 +-#, c-format +-msgid "" +-"Could not find the authentication dialog for VPN connection type '%s'. " +-"Contact your system administrator." +-msgstr "" +-"No se ha podido encontrar el diálogo de autenticación para el tipo de " +-"conexión VPN «%s». Póngase en contacto con su administrador de sistemas." +- +-#: ../gnome/applet/vpn-password-dialog.c:191 +-#, c-format +-msgid "" +-"There was a problem launching the authentication dialog for VPN connection " +-"type '%s'. Contact your system administrator." +-msgstr "" +-"Ha habido un problema al iniciar el diálogo de autenticación para el tipo de " +-"conexión VPN «%s». Póngase en contacto con su administrador de sistemas." +- +-#: ../gnome/applet/applet.glade.h:1 +-msgid " " +-msgstr " " +- +-#: ../gnome/applet/applet.glade.h:2 +-msgid "" +-"Active Connection Information" +-msgstr "" +-"Información de la conexión activa" +- +-#: ../gnome/applet/applet.glade.h:4 +-#, no-c-format +-msgid "" +-"Passphrase Required by Wireless " +-"Network\n" +-"\n" +-"A passphrase or encryption key is required to access the wireless network '%" +-"s'." +-msgstr "" +-"Contraseña requerida por red " +-"inalámbrica\n" +-"\n" +-"Se requiere una frase de paso o clave de encriptación para acceder a la red " +-"inalámbrica «%s»." +- +-#: ../gnome/applet/applet.glade.h:8 +-#, no-c-format +-msgid "" +-"Reduced Network Functionality\n" +-"\n" +-"%s It will not be completely functional." +-msgstr "" +-"Funcionalidad de red reducida\n" +-"\n" +-"%s No será completamente funcional." +- +-#: ../gnome/applet/applet.glade.h:12 +-#, no-c-format +-msgid "" +-"Wireless Network Login Confirmation\n" +-"\n" +-"You have chosen to log in to the wireless network '%s'. If you are sure " +-"that this wireless network is secure, click the checkbox below and " +-"NetworkManager will not require confirmation on subsequent log ins." +-msgstr "" +-"Confirmación de entrada a la red " +-"inalámbrica\n" +-"\n" +-"Ha escogido entrar en la red inalámbrica «%s». Si está seguro de que esta " +-"red es segura, marque la casilla de abajo y NetworkManager no le volverá a " +-"solicitar confirmación en los siguientes accesos." +- +-#: ../gnome/applet/applet.glade.h:15 +-msgid "Anonymous Identity:" +-msgstr "Identidad anónima:" +- +-#: ../gnome/applet/applet.glade.h:16 +-msgid "Authentication:" +-msgstr "Autenticación:" +- +-#: ../gnome/applet/applet.glade.h:17 +-msgid "Broadcast Address:" +-msgstr "Dirección de difusión:" +- +-#: ../gnome/applet/applet.glade.h:18 +-msgid "CA Certificate File:" +-msgstr "Archivo de certificado de CA:" +- +-#: ../gnome/applet/applet.glade.h:19 +-msgid "C_onnect" +-msgstr "_Conectar" +- +-#: ../gnome/applet/applet.glade.h:20 +-msgid "Client Certificate File:" +-msgstr "Archivo de certificado de cliente:" +- +-#: ../gnome/applet/applet.glade.h:21 +-msgid "Connection Information" +-msgstr "Información de la conexión" +- +-#: ../gnome/applet/applet.glade.h:22 +-msgid "Default Route:" +-msgstr "Ruta predeterminada:" +- +-#: ../gnome/applet/applet.glade.h:23 +-msgid "Destination Address:" +-msgstr "Dirección de destino:" +- +-#: ../gnome/applet/applet.glade.h:24 +-msgid "Driver:" +-msgstr "Controlador:" +- +-#: ../gnome/applet/applet.glade.h:25 +-msgid "EAP Method:" +-msgstr "Método EAP:" +- +-#: ../gnome/applet/applet.glade.h:26 +-msgid "Hardware Address:" +-msgstr "Dirección hardware:" +- +-#: ../gnome/applet/applet.glade.h:27 +-msgid "IP Address:" +-msgstr "Dirección IP:" +- +-#: ../gnome/applet/applet.glade.h:28 +-msgid "Identity:" +-msgstr "Identidad:" +- +-#: ../gnome/applet/applet.glade.h:29 +-msgid "Interface:" +-msgstr "Interfaz:" +- +-#: ../gnome/applet/applet.glade.h:30 +-msgid "Key Type:" +-msgstr "Tipo de clave:" +- +-#: ../gnome/applet/applet.glade.h:31 +-msgid "Key:" +-msgstr "Clave:" +- +-#: ../gnome/applet/applet.glade.h:32 +-msgid "" +-"None\n" +-"WEP 128-bit Passphrase\n" +-"WEP 64/128-bit Hex\n" +-"WEP 64/128-bit ASCII\n" +-msgstr "" +-"Ninguna\n" +-"Frase de contraseña WEP de 128 bits\n" +-"Hexadecimal WEP de 64/128 bits\n" +-"ASCII WEP de 64/128 bits\n" +- +-#: ../gnome/applet/applet.glade.h:37 +-msgid "" +-"Open System\n" +-"Shared Key" +-msgstr "" +-"Sistema abierto\n" +-"Clave compartida" +- +-#: ../gnome/applet/applet.glade.h:39 +-msgid "Other Wireless Network..." +-msgstr "Otras redes inalámbricas..." +- +-#: ../gnome/applet/applet.glade.h:40 +-msgid "Passphrase:" +-msgstr "Contraseña:" +- +-#: ../gnome/applet/applet.glade.h:41 +-msgid "Password:" +-msgstr "Contraseña:" +- +-#: ../gnome/applet/applet.glade.h:42 +-msgid "Primary DNS:" +-msgstr "DNS primario:" +- +-#: ../gnome/applet/applet.glade.h:43 +-msgid "Private Key File:" +-msgstr "Archivo de clave privada:" +- +-#: ../gnome/applet/applet.glade.h:44 +-msgid "Private Key Password:" +-msgstr "Contraseña de clave privada:" +- +-#: ../gnome/applet/applet.glade.h:45 +-msgid "Secondary DNS:" +-msgstr "DNS secundario:" +- +-#: ../gnome/applet/applet.glade.h:46 +-msgid "Select the CA Certificate File" +-msgstr "Seleccione el archivo de certificado de CA" +- +-#: ../gnome/applet/applet.glade.h:47 +-msgid "Select the Client Certificate File" +-msgstr "Seleccione el archivo de certificado de cliente" +- +-#: ../gnome/applet/applet.glade.h:48 +-msgid "Select the Private Key File" +-msgstr "Seleccione el archivo de clave privada" +- +-#: ../gnome/applet/applet.glade.h:49 +-msgid "Show key" +-msgstr "Mostrar clave" +- +-#: ../gnome/applet/applet.glade.h:50 +-msgid "Show passphrase" +-msgstr "Mostrar frase de contraseña" +- +-#: ../gnome/applet/applet.glade.h:51 +-msgid "Show password" +-msgstr "Mostrar contraseña" +- +-#: ../gnome/applet/applet.glade.h:52 +-msgid "Show passwords" +-msgstr "Mostrar contraseñas" +- +-#: ../gnome/applet/applet.glade.h:53 +-msgid "Speed:" +-msgstr "Velocidad:" +- +-#: ../gnome/applet/applet.glade.h:54 +-msgid "Subnet Mask:" +-msgstr "Máscara de subred:" +- +-#: ../gnome/applet/applet.glade.h:55 +-msgid "Type:" +-msgstr "Tipo:" +- +-#: ../gnome/applet/applet.glade.h:56 +-msgid "User Name:" +-msgstr "Nombre de usuario:" +- +-#: ../gnome/applet/applet.glade.h:57 +-msgid "Wireless Network Key Required" +-msgstr "Clave requerida para la red inalámbrica" +- +-#: ../gnome/applet/applet.glade.h:58 +-msgid "Wireless _adapter:" +-msgstr "_Adaptador inalámbrico:" +- +-#: ../gnome/applet/applet.glade.h:59 +-msgid "_Always Trust this Wireless Network" +-msgstr "_Siempre confiar en esta red inalámbrica" +- +-#: ../gnome/applet/applet.glade.h:60 +-msgid "_Don't remind me again" +-msgstr "_No volver a recordar" +- +-#: ../gnome/applet/applet.glade.h:61 +-msgid "_Login to Network" +-msgstr "_Entrar en la red" +- +-#: ../gnome/applet/applet.glade.h:62 +-msgid "_Network Name:" +-msgstr "Nombre de _red:" +- +-#: ../gnome/applet/applet.glade.h:63 +-msgid "_Wireless Security:" +-msgstr "_Seguridad inalámbrica:" +- +-#: ../gnome/vpn-properties/nm-vpn-properties.c:383 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:405 + msgid "Cannot add VPN connection" + msgstr "No se puede añadir una conexión VPN" -@@ -296,6 +473,10 @@ - g_free (iface); - } - } -+ else if (strcmp (capability, "killswitch") == 0) -+ { -+ nm_add_killswitch_device (data, udi); -+ } - } +-#: ../gnome/vpn-properties/nm-vpn-properties.c:385 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:407 + msgid "" + "No suitable VPN software was found on your system. Contact your system " + "administrator." +@@ -738,11 +33,11 @@ + "No se ha encontrado software VPN adecuado en su sistema. Póngase en contacto " + "con su administrador de sistemas." +-#: ../gnome/vpn-properties/nm-vpn-properties.c:437 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:457 + msgid "Cannot import VPN connection" + msgstr "No se puede importar la conexión VPN" -@@ -340,6 +521,30 @@ - libhal_free_string_array (net_devices); - } +-#: ../gnome/vpn-properties/nm-vpn-properties.c:439 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:459 + #, c-format + msgid "" + "Cannot find suitable software for VPN connection type '%s' to import the " +@@ -752,12 +47,12 @@ + "s» para importar el archivo «%s». Póngase en contacto con su administrador " + "de sistemas." -+void nm_add_initial_killswitch_devices (NMData * data) -+{ -+ char ** udis; -+ int num_udis, i; -+ DBusError error; -+ -+ g_return_if_fail (data != NULL); -+ -+ dbus_error_init (&error); -+ udis = libhal_find_device_by_capability (data->hal_ctx, "killswitch", &num_udis, &error); -+ if (!udis) -+ return; -+ -+ if (dbus_error_is_set (&error)) { -+ nm_warning("Could not find killswitch devices: %s", error.message); -+ dbus_error_free (&error); -+ return; -+ } -+ -+ for (i = 0; i < num_udis; i++) -+ nm_add_killswitch_device (data, udis[i]); -+ libhal_free_string_array (udis); -+} -+ +-#: ../gnome/vpn-properties/nm-vpn-properties.c:579 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:596 + #, c-format + msgid "Error retrieving VPN connection '%s'" + msgstr "Ha ocurrido un error al recuperar la conexión VPN «%s»" - /* - * nm_state_change_signal_broadcast -@@ -616,28 +821,39 @@ - g_return_if_fail (data != NULL); +-#: ../gnome/vpn-properties/nm-vpn-properties.c:582 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:599 + #, c-format + msgid "" + "Could not find the UI files for VPN connection type '%s'. Contact your " +@@ -766,12 +61,12 @@ + "No se han encontrado los archivos de la IU para la conexión VPN de tipo «%" + "s». Póngase en contacto con su administrador de sistemas." - if ((data->hal_ctx = nm_get_hal_ctx (data))) -+ { -+ nm_add_initial_killswitch_devices (data); - nm_add_initial_devices (data); -+ } -+ -+ /* If there weren't any killswitches, mark hardware RF to on */ -+ if (g_slist_length (data->killswitch_list) == 0) -+ data->hw_rf_enabled = TRUE; - } +-#: ../gnome/vpn-properties/nm-vpn-properties.c:739 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:746 + #, c-format + msgid "Delete VPN connection \"%s\"?" + msgstr "¿Desea eliminar la conexión VPN «%s»?" +-#: ../gnome/vpn-properties/nm-vpn-properties.c:742 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:749 + #, c-format + msgid "" + "All information about the VPN connection \"%s\" will be lost and you may " +@@ -781,16 +76,16 @@ + "Se perderá toda la información de la conexión VPN «%s» y necesitará que su " + "administrador de sistemas le proporcione información para crear una conexión." - void nm_hal_deinit (NMData *data) - { -+ DBusError error; -+ - g_return_if_fail (data != NULL); +-#: ../gnome/vpn-properties/nm-vpn-properties.c:959 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:963 + msgid "Unable to load" + msgstr "No se puede cargar" -- if (data->hal_ctx) -- { -- DBusError error; -+ if (!data->hal_ctx) -+ return; +-#: ../gnome/vpn-properties/nm-vpn-properties.c:961 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:965 + msgid "Cannot find some needed resources (the glade file)!" + msgstr "No se pueden encontrar algunos recursos necesarios (el archivo glade)." -- dbus_error_init (&error); -- libhal_ctx_shutdown (data->hal_ctx, &error); -- if (dbus_error_is_set (&error)) -- { -- nm_warning ("libhal shutdown failed - %s", error.message); -- dbus_error_free (&error); -- } -- libhal_ctx_free (data->hal_ctx); -- data->hal_ctx = NULL; -+ g_slist_foreach (data->killswitch_list, (GFunc) g_free, NULL); -+ g_slist_free (data->killswitch_list); -+ data->killswitch_list = NULL; -+ -+ dbus_error_init (&error); -+ libhal_ctx_shutdown (data->hal_ctx, &error); -+ if (dbus_error_is_set (&error)) -+ { -+ nm_warning ("libhal shutdown failed - %s", error.message); -+ dbus_error_free (&error); - } -+ libhal_ctx_free (data->hal_ctx); -+ data->hal_ctx = NULL; - } + #. Edit dialog +-#: ../gnome/vpn-properties/nm-vpn-properties.c:1071 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:1084 + msgid "Edit VPN Connection" + msgstr "Editar conexión VPN" +@@ -896,105 +191,53 @@ + msgid "WPA2 Automatic" + msgstr "WPA2 automática" -diff -urN NetworkManager/src/NetworkManagerDbus.c NetworkManager-SVN/src/NetworkManagerDbus.c ---- NetworkManager/src/NetworkManagerDbus.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/NetworkManagerDbus.c 2007-09-08 00:06:44.000000000 +0200 -@@ -434,6 +434,29 @@ - } +-#: ../src/nm-ap-security.c:320 ++#: ../src/nm-ap-security.c:338 + msgid "none" + msgstr "ninguna" +-#: ../src/nm-netlink-monitor.c:154 ++#: ../src/nm-netlink-monitor.c:170 + #, c-format +-msgid "" +-"unable to create netlink socket for monitoring wired ethernet devices - %s" ++msgid "unable to create netlink socket for monitoring wired ethernet devices - %s" + msgstr "" + "no puede crear un socket netlink para monitorizar dispositivos ethernet con " + "cable - %s" -+void nm_dbus_signal_wireless_enabled (NMData * data) -+{ -+ DBusMessage * message; -+ -+ g_return_if_fail (data != NULL); -+ g_return_if_fail (data->dbus_connection != NULL); -+ -+ if (!(message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, "WirelessEnabled"))) -+ { -+ nm_warning ("%s(): Not enough memory for new dbus message!", __func__); -+ return; -+ } -+ -+ dbus_message_append_args (message, -+ DBUS_TYPE_BOOLEAN, &data->wireless_enabled, -+ DBUS_TYPE_BOOLEAN, &data->hw_rf_enabled, -+ DBUS_TYPE_INVALID); -+ if (!dbus_connection_send (data->dbus_connection, message, NULL)) -+ nm_warning ("%s(): Could not emit the WirelessEnabled signal!", __func__); -+ -+ dbus_message_unref (message); -+} -+ - /* - * nm_dbus_signal_filter - * -diff -urN NetworkManager/src/NetworkManagerDbus.h NetworkManager-SVN/src/NetworkManagerDbus.h ---- NetworkManager/src/NetworkManagerDbus.h 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/NetworkManagerDbus.h 2007-09-08 00:06:44.000000000 +0200 -@@ -68,6 +68,7 @@ - - void nm_dbus_signal_wireless_network_change (DBusConnection *connection, NMDevice80211Wireless *dev, NMAccessPoint *ap, NMNetworkStatus status, gint strength); - void nm_dbus_signal_device_strength_change (DBusConnection *connection, NMDevice80211Wireless *dev, gint strength); -+void nm_dbus_signal_wireless_enabled (NMData * data); - - NMDevice * nm_dbus_get_device_from_escaped_object_path (NMData *data, const char *path); - -diff -urN NetworkManager/src/NetworkManagerMain.h NetworkManager-SVN/src/NetworkManagerMain.h ---- NetworkManager/src/NetworkManagerMain.h 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/NetworkManagerMain.h 2007-09-08 00:06:44.000000000 +0200 -@@ -82,6 +82,7 @@ - GSList * dev_list; - GMutex * dev_list_mutex; - -+ gboolean hw_rf_enabled; - gboolean wireless_enabled; - gboolean modem_active; - gboolean asleep; -@@ -90,6 +91,10 @@ - GSList * dialup_list; - GMutex * dialup_list_mutex; +-#: ../src/nm-netlink-monitor.c:172 ++#: ../src/nm-netlink-monitor.c:188 + #, c-format +-msgid "" +-"unable to bind to netlink socket for monitoring wired ethernet devices - %s" ++msgid "unable to bind to netlink socket for monitoring wired ethernet devices - %s" + msgstr "" + "no se puede asociar al socket netlink para monitorizar dispositivos ethernet " + "con cable - %s" -+ GSList * killswitch_list; -+ GSList * ks_pcall_list; /* track killswitch D-Bus pending calls */ -+ gboolean tmp_hw_rf_enabled; -+ - struct NMAccessPointList *allowed_ap_list; - struct NMAccessPointList *invalid_ap_list; - } NMData; -diff -urN NetworkManager/src/NetworkManagerPolicy.c NetworkManager-SVN/src/NetworkManagerPolicy.c ---- NetworkManager/src/NetworkManagerPolicy.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/NetworkManagerPolicy.c 2007-09-08 00:06:44.000000000 +0200 -@@ -52,6 +52,7 @@ - NMDevice *dev = NULL; - NMData *data = NULL; - NMAccessPoint * ap = NULL; -+ NMActRequest * dev_req; +-#: ../src/nm-netlink-monitor.c:405 ++#: ../src/nm-netlink-monitor.c:426 + msgid "operation took too long" + msgstr "la operación duró demasiado" - g_return_val_if_fail (req != NULL, FALSE); +-#: ../src/nm-netlink-monitor.c:502 ++#: ../src/nm-netlink-monitor.c:523 + msgid "received data from wrong type of sender" + msgstr "se han recibido datos con un tipo de emisor incorrecto" -@@ -61,6 +62,13 @@ - dev = nm_act_request_get_dev (req); - g_assert (dev); +-#: ../src/nm-netlink-monitor.c:515 ++#: ../src/nm-netlink-monitor.c:536 + msgid "received data from unexpected sender" + msgstr "se han recibido datos de un emisor inesperado" -+ /* Ensure that inactive devices don't get the activated signal -+ * sent due to race conditions. -+ */ -+ dev_req = nm_device_get_act_request (dev); -+ if (!dev_req || (dev_req != req)) -+ return FALSE; -+ - if (nm_device_is_802_11_wireless (dev)) - ap = nm_act_request_get_ap (req); +-#: ../src/nm-netlink-monitor.c:646 ++#: ../src/nm-netlink-monitor.c:665 + msgid "too much data was sent over socket and some of it was lost" +-msgstr "" +-"se han enviado demasiados datos a través del socket y algunos de perdieron" ++msgstr "se han enviado demasiados datos a través del socket y algunos de perdieron" -@@ -265,14 +273,16 @@ - } +-#: ../src/nm-netlink-monitor.c:735 ++#: ../src/nm-netlink-monitor.c:775 + msgid "error occurred while waiting for data on socket" + msgstr "ha ocurrido un error mientras esperaban datos en un socket" - #if 0 -- nm_info ("AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (best_wired_dev) : "(null)", -- best_wireless_dev ? nm_device_get_iface (best_wireless_dev) : "(null)", (best_wireless_dev && *ap) ? nm_ap_get_essid (*ap) : "null" ); -+ nm_info ("AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (NM_DEVICE (best_wired_dev)) : "(null)", -+ best_wireless_dev ? nm_device_get_iface (NM_DEVICE (best_wireless_dev)) : "(null)", (best_wireless_dev && *ap) ? nm_ap_get_essid (*ap) : "null" ); - #endif +-#: ../gnome/applet/applet-dbus-devices.c:898 +-#, c-format +-msgid "You are now connected to the Ad-Hoc wireless network '%s'." +-msgstr "Ahora está conectado a la red inalámbrica Ad Hoc %s." +- +-#: ../gnome/applet/applet-dbus-devices.c:903 +-#, c-format +-msgid "You are now connected to the wireless network '%s'." +-msgstr "Ahora está conectado a la red inalámbrica %s." +- +-#: ../gnome/applet/applet-dbus-devices.c:910 +-msgid "You are now connected to the wired network." +-msgstr "Ahora está conectado a la red fija." +- +-#: ../gnome/applet/applet-dbus-devices.c:916 +-msgid "Connection Established" +-msgstr "Conexión establecida" +- +-#: ../gnome/applet/applet-dbus-devices.c:959 +-msgid "Disconnected" +-msgstr "Desconectado" +- +-#: ../gnome/applet/applet-dbus-devices.c:960 +-msgid "The network connection has been disconnected." +-msgstr "La conexión de red se ha desconectado." +- +-#~ msgid "Stop automatically running the networking applet?" +-#~ msgstr "¿Desea detener la ejecución automática del applet de red?" +- +-#~ msgid "" +-#~ "The networking applet will now terminate, but will automatically launch " +-#~ "the next time you login. Would you like to stop automatically running " +-#~ "the networking applet on login?" +-#~ msgstr "" +-#~ "El applet de red se cerrará ahora, pero se iniciará automáticamente la " +-#~ "próxima vez que inicie sesión. ¿Desea detener la ejecución automática del " +-#~ "applet de red al inicio de sesión?" +- +-#~ msgid "_Remove" +-#~ msgstr "_Eliminar" +- +-#~ msgid "VPN Error" +-#~ msgstr "Error de VPN" +- +-#~ msgid "The VPN service said: \"%s\"" +-#~ msgstr "El servicio VPN ha devuelto el mensaje:«%s»" +- +-#~ msgid "VPN connection '%s' said:" +-#~ msgstr "La conexión VPN «%s» ha devuelto el siguiente mensaje:" +- +-#~ msgid "leap_subwindow" +-#~ msgstr "leap_subwindow" ++#: ../src/nm-ap-security-wpa-eap.c:96 ../src/nm-ap-security-wpa-eap.c:120 ++msgid "WPA2 Enterprise" ++msgstr "WPA2 empresarial" - return highest_priority_dev; - } +-#~ msgid "wep_key_subwindow" +-#~ msgstr "wep_key_subwindow" ++#: ../src/nm-ap-security-wpa-eap.c:98 ../src/nm-ap-security-wpa-eap.c:125 ++msgid "WPA Enterprise" ++msgstr "WPA empresarial" +-#~ msgid "wep_passphrase_subwindow" +-#~ msgstr "wep_passphrase_subwindow" ++#: ../src/nm-ap-security-leap.c:66 ../src/nm-ap-security-leap.c:82 ++msgid "LEAP" ++msgstr "LEAP" -+static GStaticMutex dcc_mutex = G_STATIC_MUTEX_INIT; +-#~ msgid "wpa_psk_subwindow" +-#~ msgstr "wpa_psk_subwindow" +diff -urN NetworkManager-0.6.5/po/et.po NetworkManager-SVNr3284/po/et.po +--- NetworkManager-0.6.5/po/et.po 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/po/et.po 2008-02-04 16:01:02.000000000 +0100 +@@ -0,0 +1,215 @@ ++# GNOME NetworkManager ++# Copyright (C) 2007 The GNOME Project. ++# This file is distributed under the same license as the NetworkManager package. ++# Priit Laes , 2007. ++# Mattias Põldaru , 2007. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: NetworkManager 0.6\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-10-28 16:09+0000\n" ++"PO-Revision-Date: 2007-10-31 23:13+0300\n" ++"Last-Translator: Mattias Põldaru \n" ++"Language-Team: Estonian \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=utf-8\n" ++"Content-Transfer-Encoding: 8bit\n" + - /* - * nm_policy_device_change_check - * -@@ -294,7 +304,9 @@ - - g_return_val_if_fail (data != NULL, FALSE); - -+ g_static_mutex_lock (&dcc_mutex); - data->dev_change_check_idle_id = 0; -+ g_static_mutex_unlock (&dcc_mutex); - - old_dev = nm_get_active_device (data); - -@@ -303,11 +315,19 @@ - - if (old_dev) - { -+ gboolean has_link = TRUE; - guint32 caps = nm_device_get_capabilities (old_dev); - -+ /* Ensure ethernet devices have a link before starting activation, -+ * partially works around Fedora #194124. -+ */ -+ if (nm_device_is_802_3_ethernet (old_dev)) -+ has_link = nm_device_has_active_link (old_dev); ++#: ../gnome/vpn-properties/nm-vpn-properties.c:405 ++msgid "Cannot add VPN connection" ++msgstr "VPN ühendust ei saa lisada" + - /* Don't interrupt a currently activating device. */ - if ( nm_device_is_activating (old_dev) -- && !nm_device_can_interrupt_activation (old_dev)) -+ && !nm_device_can_interrupt_activation (old_dev) -+ && has_link) - { - nm_info ("Old device '%s' activating, won't change.", nm_device_get_iface (old_dev)); - goto out; -@@ -425,12 +445,35 @@ - if (do_switch && (nm_device_is_802_3_ethernet (new_dev) || (nm_device_is_802_11_wireless (new_dev) && ap))) - { - NMActRequest * act_req = NULL; -+ gboolean has_link = TRUE; ++#: ../gnome/vpn-properties/nm-vpn-properties.c:407 ++msgid "No suitable VPN software was found on your system. Contact your system administrator." ++msgstr "Arvutist ei leitud sobilikku VPN tarkvara. Võta ühendus oma süsteemi administraatoriga." + -+ /* Ensure ethernet devices have a link before starting activation, -+ * partially works around Fedora #194124. -+ */ -+ if (nm_device_is_802_3_ethernet (new_dev)) -+ has_link = nm_device_has_active_link (new_dev); - -- if ((act_req = nm_act_request_new (data, new_dev, ap, FALSE))) -+ if (has_link) -+ { -+ if ((act_req = nm_act_request_new (data, new_dev, ap, FALSE))) -+ { -+ nm_info ("Will activate connection '%s%s%s'.", -+ nm_device_get_iface (new_dev), -+ ap ? "/" : "", -+ ap ? nm_ap_get_essid (ap) : ""); -+ nm_policy_schedule_device_activation (act_req); -+ nm_act_request_unref (act_req); -+ } -+ else -+ { -+ nm_info ("Error creating activation request for %s", -+ nm_device_get_iface (new_dev)); -+ } -+ } -+ else - { -- nm_info ("Will activate connection '%s%s%s'.", nm_device_get_iface (new_dev), ap ? "/" : "", ap ? nm_ap_get_essid (ap) : ""); -- nm_policy_schedule_device_activation (act_req); -- nm_act_request_unref (act_req); -+ nm_info ("Won't activate %s because it no longer has a link.", -+ nm_device_get_iface (new_dev)); - } - } ++#: ../gnome/vpn-properties/nm-vpn-properties.c:457 ++msgid "Cannot import VPN connection" ++msgstr "VPN ühendust ei saa importida" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.c:459 ++#, c-format ++msgid "Cannot find suitable software for VPN connection type '%s' to import the file '%s'. Contact your system administrator." ++msgstr "'%s' tüüpi VPN ühenduse tarkvara ei leitud, et importida faili '%s'. Võta ühendust oma süsteemi administraatoriga." ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.c:596 ++#, c-format ++msgid "Error retrieving VPN connection '%s'" ++msgstr "Viga VPN ühenduse '%s' otsimisel" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.c:599 ++#, c-format ++msgid "Could not find the UI files for VPN connection type '%s'. Contact your system administrator." ++msgstr "'%s' tüüpi VPN ühenduse jaoks ei leitud kasutajaliidese faile. Võta ühendust oma süsteemi administraatoriga." ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.c:746 ++#, c-format ++msgid "Delete VPN connection \"%s\"?" ++msgstr "Kas kustutada VPN ühendus \"%s\"?" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.c:749 ++#, c-format ++msgid "All information about the VPN connection \"%s\" will be lost and you may need your system administrator to provide information to create a new connection." ++msgstr "Kõik VPN ühendusega \"%s\" seotud info läheb kaotsi ja sul võib vaja minna süsteemi administraatori abi uue ühenduse loomisel." ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.c:963 ++msgid "Unable to load" ++msgstr "Ei saa laadida" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.c:965 ++msgid "Cannot find some needed resources (the glade file)!" ++msgstr "Ei leia vajalikke allikaid (glade fail)!" ++ ++#. Edit dialog ++#: ../gnome/vpn-properties/nm-vpn-properties.c:1084 ++msgid "Edit VPN Connection" ++msgstr "Muuda VPN ühendust" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:1 ++msgid "Add a new VPN connection" ++msgstr "Lisa uus VPN ühendus" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:2 ++msgid "Choose which type of VPN connection you wish to create." ++msgstr "Vali mis tüüpi VPN ühendust sa tahad luua." ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:3 ++msgid "Connect to:" ++msgstr "Ühendu kuhu:" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:4 ++msgid "Create VPN Connection" ++msgstr "VPN ühenduse loomine" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:5 ++msgid "Create VPN Connection - 1 of 2" ++msgstr "VPN ühenduse loomine - 1 / 2" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:6 ++msgid "Create VPN Connection - 2 of 2" ++msgstr "VPN ühenduse loomine - 2 / 2" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:7 ++msgid "Delete the selected VPN connection" ++msgstr "Kustuta valitud VPN ühendus" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:8 ++msgid "E_xport" ++msgstr "E_kspordi" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:9 ++msgid "Edit the selected VPN connection" ++msgstr "Muuda valitud VPN ühendust" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:10 ++msgid "Export the VPN settings to a file" ++msgstr "VPN-i seadete eksportimine faili" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:11 ++msgid "Export the selected VPN connection to a file" ++msgstr "Valitud VPN-i eksportimine faili" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:12 ++msgid "Finish Creating VPN Connection" ++msgstr "Lõpeta VPN ühenduse loomine" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:13 ++msgid "Manage Virtual Private Network Connections" ++msgstr "Virtuaalsete eravõrkude ühenduste haldamine" ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:14 ++msgid "" ++"This assistant will guide you through the creation of a connection to a Virtual Private Network (VPN).\n" ++"\n" ++"It will require some information, such as IP addresses and secrets. Please see your system administrator to obtain this information." ++msgstr "" ++"See assistent juhatab sind Virtuaalse eravõrgu loomisel.\n" ++"\n" ++"See vajab infot nagu IP aadressid ja salasõnad. Selle info hankimiseks võta ühendust oma süsteemi administraatoriga." ++ ++#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:17 ++msgid "VPN Connections" ++msgstr "VPN ühendused" ++ ++#: ../src/nm-ap-security-wep.c:52 ++msgid "40-bit WEP" ++msgstr "40 bitine WEP" ++ ++#: ../src/nm-ap-security-wep.c:54 ++msgid "104-bit WEP" ++msgstr "104 bitine WEP" ++ ++#: ../src/nm-ap-security-wpa-psk.c:50 ++msgid "WPA TKIP" ++msgstr "WPA TKIP" ++ ++#: ../src/nm-ap-security-wpa-psk.c:52 ++msgid "WPA CCMP" ++msgstr "WPA CCMP" ++ ++#: ../src/nm-ap-security-wpa-psk.c:54 ++msgid "WPA Automatic" ++msgstr "Automaatne WPA" ++ ++#: ../src/nm-ap-security-wpa-psk.c:59 ++msgid "WPA2 TKIP" ++msgstr "WPA2 TKIP" ++ ++#: ../src/nm-ap-security-wpa-psk.c:61 ++msgid "WPA2 CCMP" ++msgstr "WPA2 CCMP" ++ ++#: ../src/nm-ap-security-wpa-psk.c:63 ++msgid "WPA2 Automatic" ++msgstr "Automaatne WPA2" ++ ++#: ../src/nm-ap-security.c:338 ++msgid "none" ++msgstr "ei ükski" ++ ++#: ../src/nm-netlink-monitor.c:170 ++#, c-format ++msgid "unable to create netlink socket for monitoring wired ethernet devices - %s" ++msgstr "ei suudeta luua netlink soklit juhtmega võrguühenduse monitoorimiseks - %s" ++ ++#: ../src/nm-netlink-monitor.c:188 ++#, c-format ++msgid "unable to bind to netlink socket for monitoring wired ethernet devices - %s" ++msgstr "ei suudeta luua netlink soklit juhtmega võrguühenduse sidumiseks - %s" ++ ++#: ../src/nm-netlink-monitor.c:426 ++msgid "operation took too long" ++msgstr "operatsiooniks kulus liiga palju aega" ++ ++#: ../src/nm-netlink-monitor.c:523 ++msgid "received data from wrong type of sender" ++msgstr "vastuvõetud andmed on valet tüüpi saatjalt" ++ ++#: ../src/nm-netlink-monitor.c:536 ++msgid "received data from unexpected sender" ++msgstr "vastuvõetud andmed on ootamatult saatjalt" ++ ++#: ../src/nm-netlink-monitor.c:665 ++msgid "too much data was sent over socket and some of it was lost" ++msgstr "sokli kaudu saadeti liiga palju andmeid ning osa sellest läks kaotsi" ++ ++#: ../src/nm-netlink-monitor.c:775 ++msgid "error occurred while waiting for data on socket" ++msgstr "soklist andmete ootamisel tekkis viga" ++ ++#: ../src/nm-ap-security-wpa-eap.c:95 ++#: ../src/nm-ap-security-wpa-eap.c:119 ++msgid "WPA2 Enterprise" ++msgstr "Enterprise WPA2" ++ ++#: ../src/nm-ap-security-wpa-eap.c:97 ++#: ../src/nm-ap-security-wpa-eap.c:124 ++msgid "WPA Enterprise" ++msgstr "Enterprise WPA" ++ ++#: ../src/nm-ap-security-leap.c:66 ++#: ../src/nm-ap-security-leap.c:82 ++msgid "LEAP" ++msgstr "LEAP" ++ +diff -urN NetworkManager-0.6.5/po/fi.po NetworkManager-SVNr3284/po/fi.po +--- NetworkManager-0.6.5/po/fi.po 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/po/fi.po 2008-02-04 16:01:02.000000000 +0100 +@@ -8,7 +8,7 @@ + msgstr "" + "Project-Id-Version: NetworkManager\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2006-05-29 18:33+0200\n" ++"POT-Creation-Date: 2007-08-16 17:52+0300\n" + "PO-Revision-Date: 2006-02-28 22:15+0200\n" + "Last-Translator: Ilkka Tuohela \n" + "Language-Team: Finnish \n" +@@ -17,709 +17,11 @@ + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" -@@ -452,11 +495,9 @@ - */ - void nm_policy_schedule_device_change_check (NMData *data) - { -- static GStaticMutex mutex = G_STATIC_MUTEX_INIT; +-#: ../gnome/applet/applet-compat.c:171 ../gnome/applet/applet-dbus-info.c:919 +-#, c-format +-msgid "Passphrase for wireless network %s" +-msgstr "Langattoman verkon %s tunnuslause" - - g_return_if_fail (data != NULL); - -- g_static_mutex_lock (&mutex); -+ g_static_mutex_lock (&dcc_mutex); - - if (data->dev_change_check_idle_id == 0) - { -@@ -466,8 +507,7 @@ - data->dev_change_check_idle_id = g_source_attach (source, data->main_context); - g_source_unref (source); - } +-#: ../gnome/applet/applet-dbus.c:265 +-#, c-format +-msgid "Connection to the wireless network '%s' failed." +-msgstr "Yhteys langattomaan verkkoon \"%s\" epäonnistui." - -- g_static_mutex_unlock (&mutex); -+ g_static_mutex_unlock (&dcc_mutex); - } - - -diff -urN NetworkManager/src/NetworkManagerSystem.c NetworkManager-SVN/src/NetworkManagerSystem.c ---- NetworkManager/src/NetworkManagerSystem.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/NetworkManagerSystem.c 2007-09-08 00:06:44.000000000 +0200 -@@ -64,6 +64,7 @@ - struct sockaddr_in *p; - const char * iface; - int err; -+ NMIP4Config * config = NULL; - - iface = nm_device_get_iface (dev); - -@@ -75,6 +76,15 @@ - if (ip4_gateway == 0) - return TRUE; - -+ /* -+ * Do not add the route if the destination is on the same subnet. -+ */ -+ config = nm_device_get_ip4_config(dev); -+ if (config && -+ ((guint32)ip4_dest & nm_ip4_config_get_netmask(config)) == -+ (nm_ip4_config_get_address(config) & nm_ip4_config_get_netmask(config))) -+ return TRUE; -+ - if ((sk = nm_dev_sock_open (dev, NETWORK_CONTROL, __FUNCTION__, NULL)) == NULL) - return FALSE; - -diff -urN NetworkManager/src/nm-ap-security-wpa-eap.c NetworkManager-SVN/src/nm-ap-security-wpa-eap.c ---- NetworkManager/src/nm-ap-security-wpa-eap.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/nm-ap-security-wpa-eap.c 2007-09-08 00:06:44.000000000 +0200 -@@ -57,7 +57,6 @@ - NMAPSecurityWPA_EAP * security = NULL; - int eap_method; - int key_type; -- int phase2_type; - int wpa_version; - char * identity = NULL; - char * passwd = NULL; -diff -urN NetworkManager/src/nm-dbus-nm.c NetworkManager-SVN/src/nm-dbus-nm.c ---- NetworkManager/src/nm-dbus-nm.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/nm-dbus-nm.c 2007-09-08 00:06:44.000000000 +0200 -@@ -483,52 +483,83 @@ - return (reply); - } - --static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data) -+static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *cb_data) - { - gboolean enabled = FALSE; - DBusError err; -- NMData *app_data; -+ NMData * data; -+ DBusMessage * ret = NULL; +-#: ../gnome/applet/applet-dbus.c:270 +-msgid "Connection to the wired network failed." +-msgstr "Yhteys kiinteään verkkoon epäonnistui." +- +-#: ../gnome/applet/applet.c:184 +-msgid "Error displaying connection information:" +-msgstr "Virhe näytettäessä yhteyden tietoja:" +- +-#: ../gnome/applet/applet.c:202 +-msgid "Could not find some required resources (the glade file)!" +-msgstr "Joitain vaadittuja osia ei löytynyt (glade-tiedostoa)!" +- +-#: ../gnome/applet/applet.c:213 +-msgid "No active connections!" +-msgstr "Ei aktiivisia yhteyksiä!" +- +-#: ../gnome/applet/applet.c:234 +-#, c-format +-msgid "Wired Ethernet (%s)" +-msgstr "Kiinteä Ethernet-yhteys (%s)" +- +-#: ../gnome/applet/applet.c:236 +-#, c-format +-msgid "Wireless Ethernet (%s)" +-msgstr "Langaton Ethernet (%s)" +- +-#: ../gnome/applet/applet.c:337 ../gnome/applet/applet.c:362 +-msgid "NetworkManager Applet" +-msgstr "NetworkManager-sovelma" +- +-#: ../gnome/applet/applet.c:339 ../gnome/applet/applet.c:364 +-msgid "Copyright © 2004-2005 Red Hat, Inc." +-msgstr "Copyright © 2004-2005 Red Hat, Inc." +- +-#: ../gnome/applet/applet.c:340 ../gnome/applet/applet.c:365 +-msgid "" +-"Notification area applet for managing your network devices and connections." +-msgstr "Ilmoitusalueen sovelma verkkolaitteiden ja yhteyksien hallintaan." +- +-#: ../gnome/applet/applet.c:343 ../gnome/applet/applet.c:370 +-msgid "translator-credits" +-msgstr "" +-"Ilkka Tuohela, 2005.\n" +-"\n" +-"http://www.gnome.fi/" +- +-#: ../gnome/applet/applet.c:426 +-msgid "VPN Login Failure" +-msgstr "Virhe kirjauduttaessa VPN:ään" +- +-#: ../gnome/applet/applet.c:427 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a login failure." +-msgstr "VPN-yhteyttä \"%s\" ei voitu käynnistää kirjautumisvirheen takia." +- +-#: ../gnome/applet/applet.c:431 +-msgid "VPN Start Failure" +-msgstr "VPN-yhteyden käynnistysvirhe" +- +-#: ../gnome/applet/applet.c:432 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' due to a failure launching the VPN " +-"program." +-msgstr "" +-"VPN-yhteyttä \"%s\" ei voitu käynnistää, koska VPN-ohjelman suorittaminen " +-"epäonnistui." +- +-#: ../gnome/applet/applet.c:436 ../gnome/applet/applet.c:446 +-msgid "VPN Connect Failure" +-msgstr "VPN-yhteyden yhteydenottovirhe" +- +-#: ../gnome/applet/applet.c:437 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a connection error." +-msgstr "VPN-yhteyttä \"%s\" ei voitu käynnistää, koska tapahtui yhteysvirhe." +- +-#: ../gnome/applet/applet.c:441 +-msgid "VPN Configuration Error" +-msgstr "VPN-yhteyden asetusvirhe" +- +-#: ../gnome/applet/applet.c:442 +-#, c-format +-msgid "The VPN connection '%s' was not correctly configured." +-msgstr "VPN-yhteyden \"%s\" asetukset ovat virheelliset." +- +-#: ../gnome/applet/applet.c:447 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' because the VPN server did not " +-"return an adequate network configuration." +-msgstr "" +-"VPN-yhteyttä \"%s\" ei voitu käynnistää, koska VPN-palvelin ei palauttanut " +-"kelvollista verkkomäärittelyä." +- +-#: ../gnome/applet/applet.c:517 +-msgid "VPN Login Message" +-msgstr "VPN-yhteyden kirjautumisviesti" +- +-#: ../gnome/applet/applet.c:741 ../gnome/applet/applet.c:2508 +-#: ../gnome/applet/other-network-dialog.c:453 +-#: ../gnome/applet/passphrase-dialog.c:228 +-msgid "" +-"The NetworkManager Applet could not find some required resources (the glade " +-"file was not found)." +-msgstr "" +-"NetworkManager-sovelma ei voinut ladata jotain vaadituista resursseista " +-"(glade-tiedostoa ei löytynyt)." +- +-#: ../gnome/applet/applet.c:753 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support wireless scanning." +-msgstr "Verkkolaite \"%s (%s)\" ei tue langattomien verkkojen etsimistä." +- +-#: ../gnome/applet/applet.c:761 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support link detection." +-msgstr "Verkkolaite \"%s (%s)\" ei tue verkkoyhteyden havaitsemista." +- +-#: ../gnome/applet/applet.c:908 +-#, c-format +-msgid "Preparing device %s for the wired network..." +-msgstr "Valmistellaan laitetta %s kiinteälle verkkoyhteydelle..." +- +-#: ../gnome/applet/applet.c:910 +-#, c-format +-msgid "Preparing device %s for the wireless network '%s'..." +-msgstr "Valmistellaan laitetta %s langattomalle verkolle \"%s\"..." +- +-#: ../gnome/applet/applet.c:918 +-#, c-format +-msgid "Configuring device %s for the wired network..." +-msgstr "Määritellään laitetta %s kiinteälle verkkoyhteydelle..." +- +-#: ../gnome/applet/applet.c:920 +-#, c-format +-msgid "Attempting to join the wireless network '%s'..." +-msgstr "Yritetään liittyä langattomaan verkkoon \"%s\"..." +- +-#: ../gnome/applet/applet.c:928 +-#, c-format +-msgid "Waiting for Network Key for the wireless network '%s'..." +-msgstr "Odotetaan verkon avainta langattomalle verkolle \"%s\"" +- +-#: ../gnome/applet/applet.c:936 ../gnome/applet/applet.c:946 +-msgid "Requesting a network address from the wired network..." +-msgstr "Pyydetään verkko-osoitetta kiinteästä verkosta..." +- +-#: ../gnome/applet/applet.c:938 ../gnome/applet/applet.c:948 +-#, c-format +-msgid "Requesting a network address from the wireless network '%s'..." +-msgstr "Pyydetään verkko-osoitettta langattomasta verkosta \"%s\"..." +- +-#: ../gnome/applet/applet.c:956 +-msgid "Finishing connection to the wired network..." +-msgstr "Viimeistellään yhteyttä kiinteään verkkoon..." +- +-#: ../gnome/applet/applet.c:958 +-#, c-format +-msgid "Finishing connection to the wireless network '%s'..." +-msgstr "Viimeistellään yhteyttä langattomaan verkkoon \"%s\"..." +- +-#: ../gnome/applet/applet.c:1075 +-msgid "NetworkManager is not running" +-msgstr "NetworkManager ei ole käytössä" +- +-#: ../gnome/applet/applet.c:1083 ../gnome/applet/applet.c:1828 +-msgid "Networking disabled" +-msgstr "Verkko ei ole käytössä" +- +-#: ../gnome/applet/applet.c:1088 +-msgid "No network connection" +-msgstr "Ei verkkoyhteyttä" +- +-#: ../gnome/applet/applet.c:1093 +-msgid "Wired network connection" +-msgstr "Kiinteä verkkoyhteys" +- +-#: ../gnome/applet/applet.c:1097 +-msgid "Connected to an Ad-Hoc wireless network" +-msgstr "Yhteys langattomaan Ad-Hoc-verkkoon" +- +-#: ../gnome/applet/applet.c:1099 +-#, c-format +-msgid "Wireless network connection to '%s' (%d%%)" +-msgstr "Langaton verkkoyhteys \"%s\" (%d%%)" +- +-#: ../gnome/applet/applet.c:1120 +-#, c-format +-msgid "VPN connection to '%s'" +-msgstr "VPN-yhteys \"%s\"" +- +-#: ../gnome/applet/applet.c:1128 +-#, c-format +-msgid "VPN connecting to '%s'" +-msgstr "VPN-yhteyttä \"%s\" avataan" +- +-#: ../gnome/applet/applet.c:1541 +-msgid "_Connect to Other Wireless Network..." +-msgstr "_Yhdistä muihin langattomiin verkkoihin..." +- +-#: ../gnome/applet/applet.c:1562 +-msgid "Create _New Wireless Network..." +-msgstr "Luo _uusi langaton verkko..." +- +-#: ../gnome/applet/applet.c:1685 +-msgid "_VPN Connections" +-msgstr "_VPN-yhteydet" +- +-#: ../gnome/applet/applet.c:1730 +-msgid "_Configure VPN..." +-msgstr "_Määrittele VPN-yhteys..." +- +-#: ../gnome/applet/applet.c:1734 +-msgid "_Disconnect VPN..." +-msgstr "_Katkaise VPN-yhteys..." +- +-#: ../gnome/applet/applet.c:1756 +-msgid "_Dial Up Connections" +-msgstr "_Modeemiyhteydet" +- +-#. FIXME: We should save and then check the state of the devices and show Connect _or_ Disconnect for each item +-#: ../gnome/applet/applet.c:1767 +-#, c-format +-msgid "Connect to %s..." +-msgstr "Ota yhteyttä kohteeseen %s..." +- +-#: ../gnome/applet/applet.c:1773 +-#, c-format +-msgid "Disconnect from %s..." +-msgstr "Katkaise yhteys kohteeseen %s..." +- +-#: ../gnome/applet/applet.c:1822 +-msgid "No network devices have been found" +-msgstr "Verkkolaitteita ei löytynyt" +- +-#: ../gnome/applet/applet.c:2014 +-msgid "NetworkManager is not running..." +-msgstr "NetworkManager ei ole käytössä..." +- +-#. 'Enable Networking' item +-#: ../gnome/applet/applet.c:2170 +-msgid "Enable _Networking" +-msgstr "Ota _verkko käyttöön" +- +-#. 'Enable Wireless' item +-#: ../gnome/applet/applet.c:2176 +-msgid "Enable _Wireless" +-msgstr "Ota _langaton käyttöön" +- +-#. 'Connection Information' item +-#: ../gnome/applet/applet.c:2182 +-msgid "Connection _Information" +-msgstr "Tietoja _yhteydestä" +- +-#. Help item +-#: ../gnome/applet/applet.c:2193 +-msgid "_Help" +-msgstr "O_hje" +- +-#. About item +-#: ../gnome/applet/applet.c:2202 +-msgid "_About" +-msgstr "_Tietoja" +- +-#: ../gnome/applet/applet.c:2667 +-msgid "" +-"The NetworkManager applet could not find some required resources. It cannot " +-"continue.\n" +-msgstr "" +-"NetworkManager-sovelma ei löytänyt joitain vaadituista resursseista eikä " +-"pysty jatkamaan.\n" +- +-#: ../gnome/applet/wireless-security-option.c:157 +-msgid "Open System" +-msgstr "Avoin järjestelmä" +- +-#: ../gnome/applet/wireless-security-option.c:160 +-msgid "Shared Key" +-msgstr "Jaettu avain" +- +-#: ../gnome/applet/wireless-security-option.c:208 +-msgid "Automatic (Default)" +-msgstr "Automaattinen (oletus)" +- +-#: ../gnome/applet/wireless-security-option.c:215 +-msgid "AES-CCMP" +-msgstr "AES-CCMP" +- +-#: ../gnome/applet/wireless-security-option.c:223 +-msgid "TKIP" +-msgstr "TKIP" +- +-#: ../gnome/applet/wireless-security-option.c:231 +-msgid "Dynamic WEP" +-msgstr "Dynaaminen WEP" +- +-#: ../gnome/applet/wso-none.c:53 +-msgid "None" +-msgstr "Ei mitään" +- +-#: ../gnome/applet/wso-wep-ascii.c:138 +-msgid "WEP 64/128-bit ASCII" +-msgstr "WEP 64/128-bittinen ASCII" +- +-#: ../gnome/applet/wso-wep-hex.c:135 +-msgid "WEP 64/128-bit Hex" +-msgstr "WEP 64/128-bittinen heksadesimaali" +- +-#: ../gnome/applet/wso-wep-passphrase.c:135 +-msgid "WEP 128-bit Passphrase" +-msgstr "WEP 128-bittinen tunnuslause" +- +-#: ../gnome/applet/wso-wpa-eap.c:237 +-msgid "PEAP" +-msgstr "PEAP" +- +-#: ../gnome/applet/wso-wpa-eap.c:238 +-msgid "TLS" +-msgstr "TLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:239 +-msgid "TTLS" +-msgstr "TTLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:247 ../src/nm-ap-security-wpa-eap.c:92 +-#: ../src/nm-ap-security-wpa-eap.c:116 +-msgid "WPA2 Enterprise" +-msgstr "WPA2 Enterprise" +- +-#: ../gnome/applet/wso-wpa-eap.c:249 ../src/nm-ap-security-wpa-eap.c:94 +-#: ../src/nm-ap-security-wpa-eap.c:121 +-msgid "WPA Enterprise" +-msgstr "WPA Enterprise" +- +-#: ../gnome/applet/wso-wpa-psk.c:178 +-msgid "WPA2 Personal" +-msgstr "WPA2 (henkilökohtainen)" +- +-#: ../gnome/applet/wso-wpa-psk.c:180 +-msgid "WPA Personal" +-msgstr "WPA (henkilökohtainen)" +- +-#: ../gnome/applet/eggtrayicon.c:134 +-msgid "Orientation" +-msgstr "Suunta" +- +-#: ../gnome/applet/eggtrayicon.c:135 +-msgid "The orientation of the tray." +-msgstr "Ilmoitusalueen suunta." +- +-#: ../gnome/applet/menu-items.c:88 +-#, c-format +-msgid "Wired Network (%s)" +-msgstr "Kiinteä verkkoyhteys (%s)" +- +-#: ../gnome/applet/menu-items.c:91 +-msgid "_Wired Network" +-msgstr "_Kiinteä verkkoyhteys" +- +-#: ../gnome/applet/menu-items.c:162 +-#, c-format +-msgid "Wireless Network (%s)" +-msgid_plural "Wireless Networks (%s)" +-msgstr[0] "Langaton verkko (%s)" +-msgstr[1] "Langattomat verkot (%s)" +- +-#: ../gnome/applet/menu-items.c:164 +-msgid "Wireless Network" +-msgid_plural "Wireless Networks" +-msgstr[0] "Langaton verkko" +-msgstr[1] "Langattomat verkot" +- +-#: ../gnome/applet/menu-items.c:343 +-msgid " (invalid Unicode)" +-msgstr " (virheellistä Unicodea)" +- +-#: ../gnome/applet/other-network-dialog.c:352 +-#, c-format +-msgid "" +-"By default, the wireless network's name is set to your computer's name, %s, " +-"with no encryption enabled" +-msgstr "" +-"Oletuksena langattoman verkon nimi asetetaan samaksi kuin tietokoneesi nimi " +-"\"%s\" ja salaus on poissa käytöstä" +- +-#: ../gnome/applet/other-network-dialog.c:358 +-msgid "Create new wireless network" +-msgstr "Luo uusi langaton verkko" +- +-#: ../gnome/applet/other-network-dialog.c:359 +-msgid "" +-"Enter the name and security settings of the wireless network you wish to " +-"create." +-msgstr "Syötä luotavan langattoman verkon nimi ja turva-asetukset." +- +-#: ../gnome/applet/other-network-dialog.c:363 +-msgid "Create New Wireless Network" +-msgstr "Luo uusi langaton verkko" +- +-#: ../gnome/applet/other-network-dialog.c:368 +-msgid "Existing wireless network" +-msgstr "Olemassaoleva langaton verkko" +- +-#: ../gnome/applet/other-network-dialog.c:369 +-msgid "Enter the name of the wireless network to which you wish to connect." +-msgstr "Syötä sen langattoman verkon nimi, johon haluat ottaa yhteyttä." +- +-#: ../gnome/applet/other-network-dialog.c:371 +-msgid "Connect to Other Wireless Network" +-msgstr "Ota yhteyttä muuhun langattomaan verkkoon" +- +-#: ../gnome/applet/passphrase-dialog.c:215 +-msgid "Error connecting to wireless network" +-msgstr "Virhe yhdistettäessä langattomaan verkkoon" +- +-#: ../gnome/applet/passphrase-dialog.c:216 +-msgid "" +-"The requested wireless network requires security capabilities unsupported by " +-"your hardware." +-msgstr "" +-"Pyydetty langaton verkko vaatii tietoturvakykyjä, joita laitteistosi ei tue." +- +-#: ../gnome/applet/vpn-password-dialog.c:151 +-#: ../gnome/applet/vpn-password-dialog.c:188 +-#, c-format +-msgid "Cannot start VPN connection '%s'" +-msgstr "VPN-yhteyttä \"%s\" ei voida käynnistää" +- +-#: ../gnome/applet/vpn-password-dialog.c:154 +-#, c-format +-msgid "" +-"Could not find the authentication dialog for VPN connection type '%s'. " +-"Contact your system administrator." +-msgstr "" +-"Kirjautumisikkunaa VPN-yhteyden tyypille \"%s\" ei löydy. Ota yhteyttä " +-"järjestelmäsi ylläpitäjään." +- +-#: ../gnome/applet/vpn-password-dialog.c:191 +-#, c-format +-msgid "" +-"There was a problem launching the authentication dialog for VPN connection " +-"type '%s'. Contact your system administrator." +-msgstr "" +-"Virhe käynnistettäessä kirjatumisikkunaa VPN-yhteyden tyypille \"%s\". Ota " +-"yhteyttä järjestelmäsi ylläpitäjään." +- +-#: ../gnome/applet/applet.glade.h:1 +-msgid " " +-msgstr " " +- +-#: ../gnome/applet/applet.glade.h:2 +-msgid "" +-"Active Connection Information" +-msgstr "" +-"Tietoja aktiivisesta yhteydestä" +- +-#: ../gnome/applet/applet.glade.h:4 +-#, no-c-format +-msgid "" +-"Passphrase Required by Wireless " +-"Network\n" +-"\n" +-"A passphrase or encryption key is required to access the wireless network '%" +-"s'." +-msgstr "" +-"Langaton verkko vaatii tunnuslausetta\n" +-"\n" +-"Tunnuslause tai salausavain vaaditaan, jotta voit ottaa yhteyttä " +-"langattomaan verkkoon %s." +- +-#: ../gnome/applet/applet.glade.h:8 +-#, no-c-format +-msgid "" +-"Reduced Network Functionality\n" +-"\n" +-"%s It will not be completely functional." +-msgstr "" +-"Rajattu verkon toiminnallisuus\n" +-"\n" +-"%s Verkkoyhteys ei ole täysin toimiva." +- +-#: ../gnome/applet/applet.glade.h:12 +-#, no-c-format +-msgid "" +-"Wireless Network Login Confirmation\n" +-"\n" +-"You have chosen to log in to the wireless network '%s'. If you are sure " +-"that this wireless network is secure, click the checkbox below and " +-"NetworkManager will not require confirmation on subsequent log ins." +-msgstr "" +-"Langattoman yhteyden kirjatumisen " +-"vahvistus\n" +-"\n" +-"Olet ottamassa yhteyttä langattomaan verkkoon \"%s\". Jos olet varma, että " +-"tämä langaton verkko on turvallinen, napsauta alla olevaa ruutua ja " +-"NetworkManager ei kysy tätä vahvistusikkunaa enää uudestaan." +- +-#: ../gnome/applet/applet.glade.h:15 +-msgid "Anonymous Identity:" +-msgstr "Anonyymi tunniste:" +- +-#: ../gnome/applet/applet.glade.h:16 +-msgid "Authentication:" +-msgstr "Tunnistautuminen:" +- +-#: ../gnome/applet/applet.glade.h:17 +-msgid "Broadcast Address:" +-msgstr "Broadcast-osoite:" +- +-#: ../gnome/applet/applet.glade.h:18 +-msgid "CA Certificate File:" +-msgstr "CA-varmenteen tiedosto:" +- +-#: ../gnome/applet/applet.glade.h:19 +-msgid "C_onnect" +-msgstr "_Yhdistä" +- +-#: ../gnome/applet/applet.glade.h:20 +-msgid "Client Certificate File:" +-msgstr "Asiakasvarmenteen tiedosto:" +- +-#: ../gnome/applet/applet.glade.h:21 +-msgid "Connection Information" +-msgstr "Tietoja yhteydestä" +- +-#: ../gnome/applet/applet.glade.h:22 +-msgid "Default Route:" +-msgstr "Oletusyhdyskäytävä:" +- +-#: ../gnome/applet/applet.glade.h:23 +-msgid "Destination Address:" +-msgstr "Kohdeosoite:" +- +-#: ../gnome/applet/applet.glade.h:24 +-msgid "Driver:" +-msgstr "Ajuri:" +- +-#: ../gnome/applet/applet.glade.h:25 +-msgid "EAP Method:" +-msgstr "EPA-menetelmä:" +- +-#: ../gnome/applet/applet.glade.h:26 +-msgid "Hardware Address:" +-msgstr "Laiteosoite:" +- +-#: ../gnome/applet/applet.glade.h:27 +-msgid "IP Address:" +-msgstr "IP-osoite:" +- +-#: ../gnome/applet/applet.glade.h:28 +-msgid "Identity:" +-msgstr "Tunniste:" +- +-#: ../gnome/applet/applet.glade.h:29 +-msgid "Interface:" +-msgstr "Verkkolaite:" +- +-#: ../gnome/applet/applet.glade.h:30 +-msgid "Key Type:" +-msgstr "Avaimen tyyppi:" +- +-#: ../gnome/applet/applet.glade.h:31 +-msgid "Key:" +-msgstr "Avain:" +- +-#: ../gnome/applet/applet.glade.h:32 +-msgid "" +-"None\n" +-"WEP 128-bit Passphrase\n" +-"WEP 64/128-bit Hex\n" +-"WEP 64/128-bit ASCII\n" +-msgstr "" +-"Ei mitään\n" +-"WEP 128-bittinen tunnuslause\n" +-"WEP 64/128-bittinen heksadesimaali\n" +-"WEP 64/128-bittinen ASCII\n" +- +-#: ../gnome/applet/applet.glade.h:37 +-msgid "" +-"Open System\n" +-"Shared Key" +-msgstr "" +-"Avoin järjestelmä\n" +-"Jaettu avain" +- +-#: ../gnome/applet/applet.glade.h:39 +-msgid "Other Wireless Network..." +-msgstr "Muu langaton verkko..." +- +-#: ../gnome/applet/applet.glade.h:40 +-msgid "Passphrase:" +-msgstr "Tunnuslause:" +- +-#: ../gnome/applet/applet.glade.h:41 +-msgid "Password:" +-msgstr "Salasana:" +- +-#: ../gnome/applet/applet.glade.h:42 +-msgid "Primary DNS:" +-msgstr "Ensisijainen DNS:" +- +-#: ../gnome/applet/applet.glade.h:43 +-msgid "Private Key File:" +-msgstr "Salausavaimen tiedosto" +- +-#: ../gnome/applet/applet.glade.h:44 +-msgid "Private Key Password:" +-msgstr "Salausavaimen salasana:" +- +-#: ../gnome/applet/applet.glade.h:45 +-msgid "Secondary DNS:" +-msgstr "Toissijainen DNS:" +- +-#: ../gnome/applet/applet.glade.h:46 +-msgid "Select the CA Certificate File" +-msgstr "Valise CA-varmenteen tiedosto" +- +-#: ../gnome/applet/applet.glade.h:47 +-msgid "Select the Client Certificate File" +-msgstr "Valitse asiakasvarmenteen tiedosto" +- +-#: ../gnome/applet/applet.glade.h:48 +-msgid "Select the Private Key File" +-msgstr "Valitse salaisen avaimen tiedosto" +- +-#: ../gnome/applet/applet.glade.h:49 +-msgid "Show key" +-msgstr "Näytä avain" +- +-#: ../gnome/applet/applet.glade.h:50 +-msgid "Show passphrase" +-msgstr "Näytä tunnuslause:" +- +-#: ../gnome/applet/applet.glade.h:51 +-msgid "Show password" +-msgstr "Näytä salasana" +- +-#: ../gnome/applet/applet.glade.h:52 +-msgid "Show passwords" +-msgstr "Näytä salasanat" +- +-#: ../gnome/applet/applet.glade.h:53 +-msgid "Speed:" +-msgstr "Nopeus:" +- +-#: ../gnome/applet/applet.glade.h:54 +-msgid "Subnet Mask:" +-msgstr "Aliverkkopeite:" +- +-#: ../gnome/applet/applet.glade.h:55 +-msgid "Type:" +-msgstr "Tyyppi:" +- +-#: ../gnome/applet/applet.glade.h:56 +-msgid "User Name:" +-msgstr "Käyttäjätunnus:" +- +-#: ../gnome/applet/applet.glade.h:57 +-msgid "Wireless Network Key Required" +-msgstr "Langattoman verkon salausavain vaaditaan" +- +-#: ../gnome/applet/applet.glade.h:58 +-msgid "Wireless _adapter:" +-msgstr "Langaton _verkkolaite:" +- +-#: ../gnome/applet/applet.glade.h:59 +-msgid "_Always Trust this Wireless Network" +-msgstr "_Luota aina tähän langattomaan verkkoon" +- +-#: ../gnome/applet/applet.glade.h:60 +-msgid "_Don't remind me again" +-msgstr "_Älä huomauta uudestaan" +- +-#: ../gnome/applet/applet.glade.h:61 +-msgid "_Login to Network" +-msgstr "_Kirjaudu verkkoon" +- +-#: ../gnome/applet/applet.glade.h:62 +-msgid "_Network Name:" +-msgstr "_Verkon nimi:" +- +-#: ../gnome/applet/applet.glade.h:63 +-msgid "_Wireless Security:" +-msgstr "_Langaton tietoturva:" +- +-#: ../gnome/vpn-properties/nm-vpn-properties.c:383 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:405 + msgid "Cannot add VPN connection" + msgstr "VPN-yhteyttä ei voitu lisätä" -- g_return_val_if_fail (data && data->data && connection && message, NULL); -+ g_return_val_if_fail (cb_data && cb_data->data && connection && message, NULL); +-#: ../gnome/vpn-properties/nm-vpn-properties.c:385 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:407 + msgid "" + "No suitable VPN software was found on your system. Contact your system " + "administrator." +@@ -727,11 +29,11 @@ + "Sopivaa VPN-ohjelmistoa ei löytynyt järjestelmästäsi. Ota yhteyttä " + "järjestelmäsi ylläpitäjään." - dbus_error_init (&err); - if (!dbus_message_get_args (message, &err, DBUS_TYPE_BOOLEAN, &enabled, DBUS_TYPE_INVALID)) -- return NULL; -+ goto out; +-#: ../gnome/vpn-properties/nm-vpn-properties.c:437 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:457 + msgid "Cannot import VPN connection" + msgstr "VPN-yhteyttä ei voida tuoda" -- app_data = data->data; -- app_data->wireless_enabled = enabled; -+ data = cb_data->data; -+ if (enabled == data->wireless_enabled) -+ goto out; -+ -+ /* Hardware rfkill overrides whatever user wants */ -+ if (!data->hw_rf_enabled) { -+ nm_info ("User request to %s wireless overridden by radio killswitch.", -+ enabled ? "enable" : "disable"); +-#: ../gnome/vpn-properties/nm-vpn-properties.c:439 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:459 + #, c-format + msgid "" + "Cannot find suitable software for VPN connection type '%s' to import the " +@@ -740,12 +42,12 @@ + "Sopivaa VPN-ohjelmistoa VPN-yhteyden tyypille \"%s\" ei löydy tuotaessa " + "asetustiedostoa \"%s\". Ota yhteyttä järjestelmäsi ylläpitäjään." -- if (!enabled) -- { -- GSList *elt; -+ /* Return error if user tries to re-enable wireless, or just ignore -+ * a disable wireless request when wireless is already disabled. -+ */ -+ if (enabled) { -+ ret = nm_dbus_create_error_message (message, -+ NM_DBUS_INTERFACE, -+ "DisabledBySystem", -+ "Wireless disabled by hardware switch."); -+ } -+ goto out; -+ } +-#: ../gnome/vpn-properties/nm-vpn-properties.c:579 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:596 + #, c-format + msgid "Error retrieving VPN connection '%s'" + msgstr "Virhe haettaessa VPN-yhteyttä \"%s\"" -- /* Physically down all wireless devices */ -- nm_lock_mutex (app_data->dev_list_mutex, __FUNCTION__); -- for (elt = app_data->dev_list; elt; elt = g_slist_next (elt)) -- { -- NMDevice *dev = (NMDevice *)(elt->data); -- if (nm_device_is_802_11_wireless (dev)) -- { -+ nm_info ("User request to %s wireless.", enabled ? "enable" : "disable"); -+ -+ data->wireless_enabled = enabled; -+ if (!data->wireless_enabled) { -+ GSList * elt; -+ -+ /* Deactivate all wireless devices and force them down so they -+ * turn off their radios. -+ */ -+ nm_lock_mutex (data->dev_list_mutex, __FUNCTION__); -+ for (elt = data->dev_list; elt; elt = g_slist_next (elt)) { -+ NMDevice * dev = (NMDevice *) elt->data; -+ if (nm_device_is_802_11_wireless (dev)) { - nm_device_deactivate (dev); - nm_device_bring_down (dev); - } - } -- nm_unlock_mutex (app_data->dev_list_mutex, __FUNCTION__); -+ nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__); - } +-#: ../gnome/vpn-properties/nm-vpn-properties.c:582 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:599 + #, c-format + msgid "" + "Could not find the UI files for VPN connection type '%s'. Contact your " +@@ -754,12 +56,12 @@ + "VPN-yhteyden tyypille \"%s\" ei löydy käyttöliittymää. Ota yhteyttä " + "järjestelmäsi ylläpitäjään." -- nm_policy_schedule_device_change_check (data->data); -+ nm_policy_schedule_device_change_check (data); -+ nm_dbus_signal_wireless_enabled (data); +-#: ../gnome/vpn-properties/nm-vpn-properties.c:739 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:746 + #, c-format + msgid "Delete VPN connection \"%s\"?" + msgstr "Poistetaanko VPN-yhteys \"%s\"?" -- return NULL; -+out: -+ return ret; - } +-#: ../gnome/vpn-properties/nm-vpn-properties.c:742 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:749 + #, c-format + msgid "" + "All information about the VPN connection \"%s\" will be lost and you may " +@@ -770,16 +72,16 @@ + "yhteyttä järjestelmäsiylläpitäjään, jotta saat uuden yhteyden luomiseen " + "tarvittavat tiedot." --static DBusMessage *nm_dbus_nm_get_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data) -+static DBusMessage *nm_dbus_nm_get_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *cb_data) - { -+ NMData * data; - DBusMessage *reply = NULL; +-#: ../gnome/vpn-properties/nm-vpn-properties.c:959 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:963 + msgid "Unable to load" + msgstr "Ei voitu ladata" -- g_return_val_if_fail (data && data->data && connection && message, NULL); -+ g_return_val_if_fail (cb_data && connection && message, NULL); +-#: ../gnome/vpn-properties/nm-vpn-properties.c:961 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:965 + msgid "Cannot find some needed resources (the glade file)!" + msgstr "Jotain tarvittavista resursseista ei löydy (glade-tiedosto)!" -- if ((reply = dbus_message_new_method_return (message))) -- dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &data->data->wireless_enabled, DBUS_TYPE_INVALID); -+ data = cb_data->data; -+ g_return_val_if_fail (data != NULL, NULL); -+ -+ if ((reply = dbus_message_new_method_return (message))) { -+ dbus_message_append_args (reply, -+ DBUS_TYPE_BOOLEAN, &data->wireless_enabled, -+ DBUS_TYPE_BOOLEAN, &data->hw_rf_enabled, -+ DBUS_TYPE_INVALID); -+ } + #. Edit dialog +-#: ../gnome/vpn-properties/nm-vpn-properties.c:1071 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:1084 + msgid "Edit VPN Connection" + msgstr "Muokkaa VPN-yhteyttä" - return reply; - } -diff -urN NetworkManager/src/nm-device-802-11-wireless.c NetworkManager-SVN/src/nm-device-802-11-wireless.c ---- NetworkManager/src/nm-device-802-11-wireless.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/nm-device-802-11-wireless.c 2007-09-08 00:06:44.000000000 +0200 -@@ -617,7 +617,10 @@ - /* Start the scanning timeout for devices that can do scanning */ - if (nm_device_get_capabilities (dev) & NM_DEVICE_CAP_WIRELESS_SCAN) - { -- self->priv->pending_scan = g_idle_source_new (); -+ /* Stupid orinoco has problems scanning immediately after being up, -+ * so wait a bit before triggering a scan. -+ */ -+ self->priv->pending_scan = g_timeout_source_new (600); - g_source_set_callback (self->priv->pending_scan, - nm_device_802_11_wireless_scan, - self, -@@ -2981,6 +2984,9 @@ - return NM_ACT_STAGE_RETURN_POSTPONE; - } +@@ -884,11 +186,11 @@ + msgid "WPA2 Automatic" + msgstr "WPA2 (automaattinen)" + +-#: ../src/nm-ap-security.c:320 ++#: ../src/nm-ap-security.c:338 + msgid "none" + msgstr "ei mitään" + +-#: ../src/nm-netlink-monitor.c:154 ++#: ../src/nm-netlink-monitor.c:170 + #, c-format + msgid "" + "unable to create netlink socket for monitoring wired ethernet devices - %s" +@@ -896,7 +198,7 @@ + "Netlink-pistoketta kiinteiden verkkoyhteyksien tarkkailuun ei voida luoda - %" + "s" + +-#: ../src/nm-netlink-monitor.c:172 ++#: ../src/nm-netlink-monitor.c:188 + #, c-format + msgid "" + "unable to bind to netlink socket for monitoring wired ethernet devices - %s" +@@ -904,51 +206,569 @@ + "Netlink-pistoketta ei voida sitoa kiinteiden verkkoyhteyksien tarkkailua " + "varten - %s" + +-#: ../src/nm-netlink-monitor.c:405 ++#: ../src/nm-netlink-monitor.c:426 ++#, c-format + msgid "operation took too long" + msgstr "toimenpide kesti liian pitkään" + +-#: ../src/nm-netlink-monitor.c:502 ++#: ../src/nm-netlink-monitor.c:523 ++#, c-format + msgid "received data from wrong type of sender" + msgstr "vastaanotettiin tietoa väärän tyyppiseltä lähettäjältä" + +-#: ../src/nm-netlink-monitor.c:515 ++#: ../src/nm-netlink-monitor.c:536 ++#, c-format + msgid "received data from unexpected sender" + msgstr "vastaanotettiin tietoja odottamattomalta lähettäjältä" + +-#: ../src/nm-netlink-monitor.c:646 ++#: ../src/nm-netlink-monitor.c:665 ++#, c-format + msgid "too much data was sent over socket and some of it was lost" + msgstr "lähetettiin liian paljon tietoja pistekkeeseen ja osaa siitä hukkui" + +-#: ../src/nm-netlink-monitor.c:735 ++#: ../src/nm-netlink-monitor.c:775 ++#, c-format + msgid "error occurred while waiting for data on socket" + msgstr "virhe odotettaessa tietoja pistokkeesta" + +-#: ../gnome/applet/applet-dbus-devices.c:898 +-#, c-format +-msgid "You are now connected to the Ad-Hoc wireless network '%s'." +-msgstr "Yhteys langattomaan Ad-Hoc-verkkoon \"%s\" on nyt muodostettu." ++#: ../src/nm-ap-security-wpa-eap.c:95 ../src/nm-ap-security-wpa-eap.c:119 ++msgid "WPA2 Enterprise" ++msgstr "WPA2 Enterprise" + +-#: ../gnome/applet/applet-dbus-devices.c:903 +-#, c-format +-msgid "You are now connected to the wireless network '%s'." +-msgstr "Yhteys langattomaan verkkoon \"%s\" on nyt muodostettu." ++#: ../src/nm-ap-security-wpa-eap.c:97 ../src/nm-ap-security-wpa-eap.c:124 ++msgid "WPA Enterprise" ++msgstr "WPA Enterprise" ++ ++#: ../src/nm-ap-security-leap.c:66 ../src/nm-ap-security-leap.c:82 ++msgid "LEAP" ++msgstr "LEAP" ++ ++#~ msgid "Passphrase for wireless network %s" ++#~ msgstr "Langattoman verkon %s tunnuslause" ++ ++#~ msgid "Connection to the wireless network '%s' failed." ++#~ msgstr "Yhteys langattomaan verkkoon \"%s\" epäonnistui." ++ ++#~ msgid "Connection to the wired network failed." ++#~ msgstr "Yhteys kiinteään verkkoon epäonnistui." ++ ++#~ msgid "Error displaying connection information:" ++#~ msgstr "Virhe näytettäessä yhteyden tietoja:" ++ ++#~ msgid "Could not find some required resources (the glade file)!" ++#~ msgstr "Joitain vaadittuja osia ei löytynyt (glade-tiedostoa)!" ++ ++#~ msgid "No active connections!" ++#~ msgstr "Ei aktiivisia yhteyksiä!" ++ ++#~ msgid "Wired Ethernet (%s)" ++#~ msgstr "Kiinteä Ethernet-yhteys (%s)" ++ ++#~ msgid "Wireless Ethernet (%s)" ++#~ msgstr "Langaton Ethernet (%s)" ++ ++#~ msgid "NetworkManager Applet" ++#~ msgstr "NetworkManager-sovelma" ++ ++#~ msgid "Copyright © 2004-2005 Red Hat, Inc." ++#~ msgstr "Copyright © 2004-2005 Red Hat, Inc." ++ ++#~ msgid "" ++#~ "Notification area applet for managing your network devices and " ++#~ "connections." ++#~ msgstr "Ilmoitusalueen sovelma verkkolaitteiden ja yhteyksien hallintaan." ++ ++#~ msgid "translator-credits" ++#~ msgstr "" ++#~ "Ilkka Tuohela, 2005.\n" ++#~ "\n" ++#~ "http://www.gnome.fi/" ++ ++#~ msgid "VPN Login Failure" ++#~ msgstr "Virhe kirjauduttaessa VPN:ään" ++ ++#~ msgid "Could not start the VPN connection '%s' due to a login failure." ++#~ msgstr "VPN-yhteyttä \"%s\" ei voitu käynnistää kirjautumisvirheen takia." ++ ++#~ msgid "VPN Start Failure" ++#~ msgstr "VPN-yhteyden käynnistysvirhe" ++ ++#~ msgid "" ++#~ "Could not start the VPN connection '%s' due to a failure launching the " ++#~ "VPN program." ++#~ msgstr "" ++#~ "VPN-yhteyttä \"%s\" ei voitu käynnistää, koska VPN-ohjelman suorittaminen " ++#~ "epäonnistui." ++ ++#~ msgid "VPN Connect Failure" ++#~ msgstr "VPN-yhteyden yhteydenottovirhe" ++ ++#~ msgid "Could not start the VPN connection '%s' due to a connection error." ++#~ msgstr "" ++#~ "VPN-yhteyttä \"%s\" ei voitu käynnistää, koska tapahtui yhteysvirhe." ++ ++#~ msgid "VPN Configuration Error" ++#~ msgstr "VPN-yhteyden asetusvirhe" ++ ++#~ msgid "The VPN connection '%s' was not correctly configured." ++#~ msgstr "VPN-yhteyden \"%s\" asetukset ovat virheelliset." ++ ++#~ msgid "" ++#~ "Could not start the VPN connection '%s' because the VPN server did not " ++#~ "return an adequate network configuration." ++#~ msgstr "" ++#~ "VPN-yhteyttä \"%s\" ei voitu käynnistää, koska VPN-palvelin ei " ++#~ "palauttanut kelvollista verkkomäärittelyä." ++ ++#~ msgid "VPN Login Message" ++#~ msgstr "VPN-yhteyden kirjautumisviesti" ++ ++#~ msgid "" ++#~ "The NetworkManager Applet could not find some required resources (the " ++#~ "glade file was not found)." ++#~ msgstr "" ++#~ "NetworkManager-sovelma ei voinut ladata jotain vaadituista resursseista " ++#~ "(glade-tiedostoa ei löytynyt)." ++ ++#~ msgid "The network device \"%s (%s)\" does not support wireless scanning." ++#~ msgstr "Verkkolaite \"%s (%s)\" ei tue langattomien verkkojen etsimistä." ++ ++#~ msgid "The network device \"%s (%s)\" does not support link detection." ++#~ msgstr "Verkkolaite \"%s (%s)\" ei tue verkkoyhteyden havaitsemista." ++ ++#~ msgid "Preparing device %s for the wired network..." ++#~ msgstr "Valmistellaan laitetta %s kiinteälle verkkoyhteydelle..." ++ ++#~ msgid "Preparing device %s for the wireless network '%s'..." ++#~ msgstr "Valmistellaan laitetta %s langattomalle verkolle \"%s\"..." ++ ++#~ msgid "Configuring device %s for the wired network..." ++#~ msgstr "Määritellään laitetta %s kiinteälle verkkoyhteydelle..." ++ ++#~ msgid "Attempting to join the wireless network '%s'..." ++#~ msgstr "Yritetään liittyä langattomaan verkkoon \"%s\"..." ++ ++#~ msgid "Waiting for Network Key for the wireless network '%s'..." ++#~ msgstr "Odotetaan verkon avainta langattomalle verkolle \"%s\"" ++ ++#~ msgid "Requesting a network address from the wired network..." ++#~ msgstr "Pyydetään verkko-osoitetta kiinteästä verkosta..." ++ ++#~ msgid "Requesting a network address from the wireless network '%s'..." ++#~ msgstr "Pyydetään verkko-osoitettta langattomasta verkosta \"%s\"..." ++ ++#~ msgid "Finishing connection to the wired network..." ++#~ msgstr "Viimeistellään yhteyttä kiinteään verkkoon..." ++ ++#~ msgid "Finishing connection to the wireless network '%s'..." ++#~ msgstr "Viimeistellään yhteyttä langattomaan verkkoon \"%s\"..." ++ ++#~ msgid "NetworkManager is not running" ++#~ msgstr "NetworkManager ei ole käytössä" ++ ++#~ msgid "Networking disabled" ++#~ msgstr "Verkko ei ole käytössä" ++ ++#~ msgid "No network connection" ++#~ msgstr "Ei verkkoyhteyttä" ++ ++#~ msgid "Wired network connection" ++#~ msgstr "Kiinteä verkkoyhteys" ++ ++#~ msgid "Connected to an Ad-Hoc wireless network" ++#~ msgstr "Yhteys langattomaan Ad-Hoc-verkkoon" ++ ++#~ msgid "Wireless network connection to '%s' (%d%%)" ++#~ msgstr "Langaton verkkoyhteys \"%s\" (%d%%)" ++ ++#~ msgid "VPN connection to '%s'" ++#~ msgstr "VPN-yhteys \"%s\"" ++ ++#~ msgid "VPN connecting to '%s'" ++#~ msgstr "VPN-yhteyttä \"%s\" avataan" ++ ++#~ msgid "_Connect to Other Wireless Network..." ++#~ msgstr "_Yhdistä muihin langattomiin verkkoihin..." ++ ++#~ msgid "Create _New Wireless Network..." ++#~ msgstr "Luo _uusi langaton verkko..." ++ ++#~ msgid "_VPN Connections" ++#~ msgstr "_VPN-yhteydet" ++ ++#~ msgid "_Configure VPN..." ++#~ msgstr "_Määrittele VPN-yhteys..." ++ ++#~ msgid "_Disconnect VPN..." ++#~ msgstr "_Katkaise VPN-yhteys..." ++ ++#~ msgid "_Dial Up Connections" ++#~ msgstr "_Modeemiyhteydet" ++ ++#~ msgid "Connect to %s..." ++#~ msgstr "Ota yhteyttä kohteeseen %s..." ++ ++#~ msgid "Disconnect from %s..." ++#~ msgstr "Katkaise yhteys kohteeseen %s..." ++ ++#~ msgid "No network devices have been found" ++#~ msgstr "Verkkolaitteita ei löytynyt" ++ ++#~ msgid "NetworkManager is not running..." ++#~ msgstr "NetworkManager ei ole käytössä..." ++ ++#~ msgid "Enable _Networking" ++#~ msgstr "Ota _verkko käyttöön" ++ ++#~ msgid "Enable _Wireless" ++#~ msgstr "Ota _langaton käyttöön" ++ ++#~ msgid "Connection _Information" ++#~ msgstr "Tietoja _yhteydestä" ++ ++#~ msgid "_Help" ++#~ msgstr "O_hje" ++ ++#~ msgid "_About" ++#~ msgstr "_Tietoja" ++ ++#~ msgid "" ++#~ "The NetworkManager applet could not find some required resources. It " ++#~ "cannot continue.\n" ++#~ msgstr "" ++#~ "NetworkManager-sovelma ei löytänyt joitain vaadituista resursseista eikä " ++#~ "pysty jatkamaan.\n" ++ ++#~ msgid "Open System" ++#~ msgstr "Avoin järjestelmä" ++ ++#~ msgid "Shared Key" ++#~ msgstr "Jaettu avain" ++ ++#~ msgid "Automatic (Default)" ++#~ msgstr "Automaattinen (oletus)" ++ ++#~ msgid "AES-CCMP" ++#~ msgstr "AES-CCMP" ++ ++#~ msgid "TKIP" ++#~ msgstr "TKIP" ++ ++#~ msgid "Dynamic WEP" ++#~ msgstr "Dynaaminen WEP" ++ ++#~ msgid "None" ++#~ msgstr "Ei mitään" ++ ++#~ msgid "WEP 64/128-bit ASCII" ++#~ msgstr "WEP 64/128-bittinen ASCII" ++ ++#~ msgid "WEP 64/128-bit Hex" ++#~ msgstr "WEP 64/128-bittinen heksadesimaali" ++ ++#~ msgid "WEP 128-bit Passphrase" ++#~ msgstr "WEP 128-bittinen tunnuslause" ++ ++#~ msgid "TLS" ++#~ msgstr "TLS" ++ ++#~ msgid "TTLS" ++#~ msgstr "TTLS" ++ ++#~ msgid "WPA2 Personal" ++#~ msgstr "WPA2 (henkilökohtainen)" ++ ++#~ msgid "WPA Personal" ++#~ msgstr "WPA (henkilökohtainen)" ++ ++#~ msgid "Orientation" ++#~ msgstr "Suunta" ++ ++#~ msgid "The orientation of the tray." ++#~ msgstr "Ilmoitusalueen suunta." ++ ++#~ msgid "Wired Network (%s)" ++#~ msgstr "Kiinteä verkkoyhteys (%s)" ++ ++#~ msgid "_Wired Network" ++#~ msgstr "_Kiinteä verkkoyhteys" ++ ++#~ msgid "Wireless Network (%s)" ++#~ msgid_plural "Wireless Networks (%s)" ++#~ msgstr[0] "Langaton verkko (%s)" ++#~ msgstr[1] "Langattomat verkot (%s)" ++ ++#~ msgid "Wireless Network" ++#~ msgid_plural "Wireless Networks" ++#~ msgstr[0] "Langaton verkko" ++#~ msgstr[1] "Langattomat verkot" ++ ++#~ msgid " (invalid Unicode)" ++#~ msgstr " (virheellistä Unicodea)" ++ ++#~ msgid "" ++#~ "By default, the wireless network's name is set to your computer's name, %" ++#~ "s, with no encryption enabled" ++#~ msgstr "" ++#~ "Oletuksena langattoman verkon nimi asetetaan samaksi kuin tietokoneesi " ++#~ "nimi \"%s\" ja salaus on poissa käytöstä" ++ ++#~ msgid "Create new wireless network" ++#~ msgstr "Luo uusi langaton verkko" ++ ++#~ msgid "" ++#~ "Enter the name and security settings of the wireless network you wish to " ++#~ "create." ++#~ msgstr "Syötä luotavan langattoman verkon nimi ja turva-asetukset." ++ ++#~ msgid "Create New Wireless Network" ++#~ msgstr "Luo uusi langaton verkko" ++ ++#~ msgid "Existing wireless network" ++#~ msgstr "Olemassaoleva langaton verkko" ++ ++#~ msgid "Enter the name of the wireless network to which you wish to connect." ++#~ msgstr "Syötä sen langattoman verkon nimi, johon haluat ottaa yhteyttä." ++ ++#~ msgid "Connect to Other Wireless Network" ++#~ msgstr "Ota yhteyttä muuhun langattomaan verkkoon" ++ ++#~ msgid "Error connecting to wireless network" ++#~ msgstr "Virhe yhdistettäessä langattomaan verkkoon" ++ ++#~ msgid "" ++#~ "The requested wireless network requires security capabilities unsupported " ++#~ "by your hardware." ++#~ msgstr "" ++#~ "Pyydetty langaton verkko vaatii tietoturvakykyjä, joita laitteistosi ei " ++#~ "tue." ++ ++#~ msgid "Cannot start VPN connection '%s'" ++#~ msgstr "VPN-yhteyttä \"%s\" ei voida käynnistää" ++ ++#~ msgid "" ++#~ "Could not find the authentication dialog for VPN connection type '%s'. " ++#~ "Contact your system administrator." ++#~ msgstr "" ++#~ "Kirjautumisikkunaa VPN-yhteyden tyypille \"%s\" ei löydy. Ota yhteyttä " ++#~ "järjestelmäsi ylläpitäjään." ++ ++#~ msgid "" ++#~ "There was a problem launching the authentication dialog for VPN " ++#~ "connection type '%s'. Contact your system administrator." ++#~ msgstr "" ++#~ "Virhe käynnistettäessä kirjatumisikkunaa VPN-yhteyden tyypille \"%s\". " ++#~ "Ota yhteyttä järjestelmäsi ylläpitäjään." ++ ++#~ msgid " " ++#~ msgstr " " ++ ++#~ msgid "" ++#~ "Active Connection Information" ++#~ msgstr "" ++#~ "Tietoja aktiivisesta yhteydestä" ++ ++#~ msgid "" ++#~ "Passphrase Required by Wireless " ++#~ "Network\n" ++#~ "\n" ++#~ "A passphrase or encryption key is required to access the wireless network " ++#~ "'%s'." ++#~ msgstr "" ++#~ "Langaton verkko vaatii " ++#~ "tunnuslausetta\n" ++#~ "\n" ++#~ "Tunnuslause tai salausavain vaaditaan, jotta voit ottaa yhteyttä " ++#~ "langattomaan verkkoon %s." ++ ++#~ msgid "" ++#~ "Reduced Network Functionality\n" ++#~ "\n" ++#~ "%s It will not be completely functional." ++#~ msgstr "" ++#~ "Rajattu verkon toiminnallisuus\n" ++#~ "\n" ++#~ "%s Verkkoyhteys ei ole täysin toimiva." ++ ++#~ msgid "" ++#~ "Wireless Network Login " ++#~ "Confirmation\n" ++#~ "\n" ++#~ "You have chosen to log in to the wireless network '%s'. If you are sure " ++#~ "that this wireless network is secure, click the checkbox below and " ++#~ "NetworkManager will not require confirmation on subsequent log ins." ++#~ msgstr "" ++#~ "Langattoman yhteyden kirjatumisen " ++#~ "vahvistus\n" ++#~ "\n" ++#~ "Olet ottamassa yhteyttä langattomaan verkkoon \"%s\". Jos olet varma, " ++#~ "että tämä langaton verkko on turvallinen, napsauta alla olevaa ruutua ja " ++#~ "NetworkManager ei kysy tätä vahvistusikkunaa enää uudestaan." ++ ++#~ msgid "Anonymous Identity:" ++#~ msgstr "Anonyymi tunniste:" ++ ++#~ msgid "Authentication:" ++#~ msgstr "Tunnistautuminen:" ++ ++#~ msgid "Broadcast Address:" ++#~ msgstr "Broadcast-osoite:" ++ ++#~ msgid "CA Certificate File:" ++#~ msgstr "CA-varmenteen tiedosto:" ++ ++#~ msgid "C_onnect" ++#~ msgstr "_Yhdistä" ++ ++#~ msgid "Client Certificate File:" ++#~ msgstr "Asiakasvarmenteen tiedosto:" ++ ++#~ msgid "Connection Information" ++#~ msgstr "Tietoja yhteydestä" ++ ++#~ msgid "Default Route:" ++#~ msgstr "Oletusyhdyskäytävä:" ++ ++#~ msgid "Destination Address:" ++#~ msgstr "Kohdeosoite:" ++ ++#~ msgid "Driver:" ++#~ msgstr "Ajuri:" ++ ++#~ msgid "EAP Method:" ++#~ msgstr "EPA-menetelmä:" ++ ++#~ msgid "Hardware Address:" ++#~ msgstr "Laiteosoite:" ++ ++#~ msgid "IP Address:" ++#~ msgstr "IP-osoite:" ++ ++#~ msgid "Identity:" ++#~ msgstr "Tunniste:" ++ ++#~ msgid "Interface:" ++#~ msgstr "Verkkolaite:" ++ ++#~ msgid "Key Type:" ++#~ msgstr "Avaimen tyyppi:" ++ ++#~ msgid "Key:" ++#~ msgstr "Avain:" ++ ++#~ msgid "" ++#~ "None\n" ++#~ "WEP 128-bit Passphrase\n" ++#~ "WEP 64/128-bit Hex\n" ++#~ "WEP 64/128-bit ASCII\n" ++#~ msgstr "" ++#~ "Ei mitään\n" ++#~ "WEP 128-bittinen tunnuslause\n" ++#~ "WEP 64/128-bittinen heksadesimaali\n" ++#~ "WEP 64/128-bittinen ASCII\n" ++ ++#~ msgid "" ++#~ "Open System\n" ++#~ "Shared Key" ++#~ msgstr "" ++#~ "Avoin järjestelmä\n" ++#~ "Jaettu avain" ++ ++#~ msgid "Other Wireless Network..." ++#~ msgstr "Muu langaton verkko..." ++ ++#~ msgid "Passphrase:" ++#~ msgstr "Tunnuslause:" ++ ++#~ msgid "Password:" ++#~ msgstr "Salasana:" ++ ++#~ msgid "Primary DNS:" ++#~ msgstr "Ensisijainen DNS:" ++ ++#~ msgid "Private Key File:" ++#~ msgstr "Salausavaimen tiedosto" ++ ++#~ msgid "Private Key Password:" ++#~ msgstr "Salausavaimen salasana:" ++ ++#~ msgid "Secondary DNS:" ++#~ msgstr "Toissijainen DNS:" ++ ++#~ msgid "Select the CA Certificate File" ++#~ msgstr "Valise CA-varmenteen tiedosto" ++ ++#~ msgid "Select the Client Certificate File" ++#~ msgstr "Valitse asiakasvarmenteen tiedosto" ++ ++#~ msgid "Select the Private Key File" ++#~ msgstr "Valitse salaisen avaimen tiedosto" ++ ++#~ msgid "Show key" ++#~ msgstr "Näytä avain" ++ ++#~ msgid "Show passphrase" ++#~ msgstr "Näytä tunnuslause:" ++ ++#~ msgid "Show password" ++#~ msgstr "Näytä salasana" ++ ++#~ msgid "Show passwords" ++#~ msgstr "Näytä salasanat" ++ ++#~ msgid "Speed:" ++#~ msgstr "Nopeus:" ++ ++#~ msgid "Subnet Mask:" ++#~ msgstr "Aliverkkopeite:" ++ ++#~ msgid "Type:" ++#~ msgstr "Tyyppi:" ++ ++#~ msgid "User Name:" ++#~ msgstr "Käyttäjätunnus:" ++ ++#~ msgid "Wireless Network Key Required" ++#~ msgstr "Langattoman verkon salausavain vaaditaan" ++ ++#~ msgid "Wireless _adapter:" ++#~ msgstr "Langaton _verkkolaite:" ++ ++#~ msgid "_Always Trust this Wireless Network" ++#~ msgstr "_Luota aina tähän langattomaan verkkoon" ++ ++#~ msgid "_Don't remind me again" ++#~ msgstr "_Älä huomauta uudestaan" ++ ++#~ msgid "_Login to Network" ++#~ msgstr "_Kirjaudu verkkoon" ++ ++#~ msgid "_Network Name:" ++#~ msgstr "_Verkon nimi:" ++ ++#~ msgid "_Wireless Security:" ++#~ msgstr "_Langaton tietoturva:" ++ ++#~ msgid "You are now connected to the Ad-Hoc wireless network '%s'." ++#~ msgstr "Yhteys langattomaan Ad-Hoc-verkkoon \"%s\" on nyt muodostettu." ++ ++#~ msgid "You are now connected to the wireless network '%s'." ++#~ msgstr "Yhteys langattomaan verkkoon \"%s\" on nyt muodostettu." ++ ++#~ msgid "You are now connected to the wired network." ++#~ msgstr "Yhteys kiinteään verkkoon on nyt muodostettu." ++ ++#~ msgid "Connection Established" ++#~ msgstr "Yhteys muodostettu" ++ ++#~ msgid "Disconnected" ++#~ msgstr "Yhteys katkaistu" + +-#: ../gnome/applet/applet-dbus-devices.c:910 +-msgid "You are now connected to the wired network." +-msgstr "Yhteys kiinteään verkkoon on nyt muodostettu." +- +-#: ../gnome/applet/applet-dbus-devices.c:916 +-msgid "Connection Established" +-msgstr "Yhteys muodostettu" +- +-#: ../gnome/applet/applet-dbus-devices.c:959 +-msgid "Disconnected" +-msgstr "Yhteys katkaistu" +- +-#: ../gnome/applet/applet-dbus-devices.c:960 +-msgid "The network connection has been disconnected." +-msgstr "Yhteys verkkoon on katkaistu." ++#~ msgid "The network connection has been disconnected." ++#~ msgstr "Yhteys verkkoon on katkaistu." + + #~ msgid "WEP 40/128-bit ASCII" + #~ msgstr "WEP 40/128-bittinen ASCII" +diff -urN NetworkManager-0.6.5/po/it.po NetworkManager-SVNr3284/po/it.po +--- NetworkManager-0.6.5/po/it.po 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/po/it.po 2008-02-04 16:01:02.000000000 +0100 +@@ -1,14 +1,14 @@ + # Italian translation for NetworkManager + # Copyright (C) 2004-2005 THE NetworkManager CopyRight Holder + # This file is distributed under the same license as the NetworkManager package. +-# Francesco Marletta , 2004-2005. ++# Francesco Marletta , 2004-2007. + # + msgid "" + msgstr "" +-"Project-Id-Version: NetworkManager 0.1\n" ++"Project-Id-Version: NetworkManager 0.6\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2006-05-29 18:33+0200\n" +-"PO-Revision-Date: 2006-06-09 09:52\n" ++"POT-Creation-Date: 2007-04-23 16:32+0200\n" ++"PO-Revision-Date: 2007-03-11 21:54+0100\n" + "Last-Translator: Novell Language \n" + "Language-Team: Novell Language \n" + "MIME-Version: 1.0\n" +@@ -16,726 +16,11 @@ + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + +-# [NdT] è il titolo della finestra +-#: ../gnome/applet/applet-compat.c:171 ../gnome/applet/applet-dbus-info.c:919 +-#, c-format +-msgid "Passphrase for wireless network %s" +-msgstr "Frase di accesso per la rete wireless %s" +- +-#: ../gnome/applet/applet-dbus.c:265 +-#, c-format +-msgid "Connection to the wireless network '%s' failed." +-msgstr "Connessione alla rete wireless \"%s\" fallita." +- +-#: ../gnome/applet/applet-dbus.c:270 +-msgid "Connection to the wired network failed." +-msgstr "Connessione alla rete cablata fallita." +- +-#: ../gnome/applet/applet.c:184 +-msgid "Error displaying connection information:" +-msgstr "Errore nel visualizzare le informazioni di connessione:" +- +-#: ../gnome/applet/applet.c:202 +-msgid "Could not find some required resources (the glade file)!" +-msgstr "Impossibile trovare alcune risorse richieste (il file glade)!" +- +-#: ../gnome/applet/applet.c:213 +-msgid "No active connections!" +-msgstr "Nessuna connessione attiva!" +- +-#: ../gnome/applet/applet.c:234 +-#, c-format +-msgid "Wired Ethernet (%s)" +-msgstr "Ethernet cablata (%s)" +- +-#: ../gnome/applet/applet.c:236 +-#, c-format +-msgid "Wireless Ethernet (%s)" +-msgstr "Ethernet wireless (%s)" +- +-#: ../gnome/applet/applet.c:337 ../gnome/applet/applet.c:362 +-msgid "NetworkManager Applet" +-msgstr "Applet NetworkManager" +- +-#: ../gnome/applet/applet.c:339 ../gnome/applet/applet.c:364 +-msgid "Copyright © 2004-2005 Red Hat, Inc." +-msgstr "Copyright © 2004-2005 Red Hat, Inc." +- +-#: ../gnome/applet/applet.c:340 ../gnome/applet/applet.c:365 +-msgid "" +-"Notification area applet for managing your network devices and connections." +-msgstr "" +-"Un'applet per l'aerea di notifica per la gestione delle interfacce e delle " +-"connessioni di rete" +- +-#: ../gnome/applet/applet.c:343 ../gnome/applet/applet.c:370 +-msgid "translator-credits" +-msgstr "Francesco Marletta " +- +-#: ../gnome/applet/applet.c:426 +-msgid "VPN Login Failure" +-msgstr "Accesso VPN fallito" +- +-#: ../gnome/applet/applet.c:427 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a login failure." +-msgstr "" +-"Impossibile avviare la connessione VPN “%s” a causa di un fallimento " +-"nell'accesso." +- +-#: ../gnome/applet/applet.c:431 +-msgid "VPN Start Failure" +-msgstr "Avvio VPN fallito" +- +-#: ../gnome/applet/applet.c:432 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' due to a failure launching the VPN " +-"program." +-msgstr "" +-"Impossibile avviare la connessione VPN “%s” a causa di un fallimento " +-"nell'avvio del programma VPN." +- +-#: ../gnome/applet/applet.c:436 ../gnome/applet/applet.c:446 +-msgid "VPN Connect Failure" +-msgstr "Connessione VPN fallita" +- +-#: ../gnome/applet/applet.c:437 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a connection error." +-msgstr "" +-"Impossibile avviare la connessione VPN “%s” a causa di un errore nella " +-"connessione." +- +-#: ../gnome/applet/applet.c:441 +-msgid "VPN Configuration Error" +-msgstr "Errore di configurazione VPN" +- +-#: ../gnome/applet/applet.c:442 +-#, c-format +-msgid "The VPN connection '%s' was not correctly configured." +-msgstr "La connessione VPN “%s” non è stata configurata correttamente." +- +-#: ../gnome/applet/applet.c:447 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' because the VPN server did not " +-"return an adequate network configuration." +-msgstr "" +-"Impossibile avviare la connessione “%s” perché il server VPN non ha " +-"restituito una configurazione di rete adeguata." +- +-#: ../gnome/applet/applet.c:517 +-msgid "VPN Login Message" +-msgstr "Messaggio di accesso VPN" +- +-#: ../gnome/applet/applet.c:741 ../gnome/applet/applet.c:2508 +-#: ../gnome/applet/other-network-dialog.c:453 +-#: ../gnome/applet/passphrase-dialog.c:228 +-msgid "" +-"The NetworkManager Applet could not find some required resources (the glade " +-"file was not found)." +-msgstr "" +-"L'applet NetworkManager non è riuscita a trovare alcune risorse richieste " +-"(il file glade non è stato trovato)." +- +-#: ../gnome/applet/applet.c:753 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support wireless scanning." +-msgstr "Il dispositivo di rete “%s (%s)” non supporta la scansione wireless." +- +-#: ../gnome/applet/applet.c:761 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support link detection." +-msgstr "" +-"Il dispositivo di rete “%s (%s)” non supporta il riconoscimento del " +-"collegamento." +- +-#: ../gnome/applet/applet.c:908 +-#, c-format +-msgid "Preparing device %s for the wired network..." +-msgstr "Preparazione del dispositivo %s per la rete cablata in corso..." +- +-#: ../gnome/applet/applet.c:910 +-#, c-format +-msgid "Preparing device %s for the wireless network '%s'..." +-msgstr "" +-"Preparazione del dispositivo %s per la rete wireless \"%s\" in corso..." +- +-#: ../gnome/applet/applet.c:918 +-#, c-format +-msgid "Configuring device %s for the wired network..." +-msgstr "Configurazione del dispositivo %s per la rete cablata in corso..." +- +-#: ../gnome/applet/applet.c:920 +-#, c-format +-msgid "Attempting to join the wireless network '%s'..." +-msgstr "Tentativo di unirsi alla rete wireless \"%s\" in corso..." +- +-#: ../gnome/applet/applet.c:928 +-#, c-format +-msgid "Waiting for Network Key for the wireless network '%s'..." +-msgstr "In attesa della chiave di rete per la rete wireless \"%s\"..." +- +-#: ../gnome/applet/applet.c:936 ../gnome/applet/applet.c:946 +-msgid "Requesting a network address from the wired network..." +-msgstr "Richiesta di un indirizzo di rete dalla rete cablata in corso..." +- +-#: ../gnome/applet/applet.c:938 ../gnome/applet/applet.c:948 +-#, c-format +-msgid "Requesting a network address from the wireless network '%s'..." +-msgstr "" +-"Richiesta di un indirizzo di rete dalla rete wireless \"%s\" in corso..." +- +-#: ../gnome/applet/applet.c:956 +-msgid "Finishing connection to the wired network..." +-msgstr "Chiusura della connessione alla rete cablata in corso..." +- +-#: ../gnome/applet/applet.c:958 +-#, c-format +-msgid "Finishing connection to the wireless network '%s'..." +-msgstr "Chiusura della connessione alla rete wireless \"%s\" in corso..." +- +-#: ../gnome/applet/applet.c:1075 +-msgid "NetworkManager is not running" +-msgstr "NetworkManager non è in esecuzione" +- +-#: ../gnome/applet/applet.c:1083 ../gnome/applet/applet.c:1828 +-msgid "Networking disabled" +-msgstr "Funzionalità di rete disabilitate" +- +-#: ../gnome/applet/applet.c:1088 +-msgid "No network connection" +-msgstr "Nessuna connessione di rete" +- +-#: ../gnome/applet/applet.c:1093 +-msgid "Wired network connection" +-msgstr "Connessione di rete cablata" +- +-#: ../gnome/applet/applet.c:1097 +-msgid "Connected to an Ad-Hoc wireless network" +-msgstr "Connesso ad una rete wireless ad-hoc" +- +-#: ../gnome/applet/applet.c:1099 +-#, c-format +-msgid "Wireless network connection to '%s' (%d%%)" +-msgstr "Connessione di rete wireless a \"%s\" (%d%%)" +- +-#: ../gnome/applet/applet.c:1120 +-#, c-format +-msgid "VPN connection to '%s'" +-msgstr "Connessione VPN a “%s”" +- +-#: ../gnome/applet/applet.c:1128 +-#, c-format +-msgid "VPN connecting to '%s'" +-msgstr "Connessione VPN a “%s” in corso" +- +-#: ../gnome/applet/applet.c:1541 +-msgid "_Connect to Other Wireless Network..." +-msgstr "_Connetti ad altre reti wireless..." +- +-#: ../gnome/applet/applet.c:1562 +-msgid "Create _New Wireless Network..." +-msgstr "Crea _nuova rete wireless..." +- +-#: ../gnome/applet/applet.c:1685 +-msgid "_VPN Connections" +-msgstr "Connessioni _VPN" +- +-#: ../gnome/applet/applet.c:1730 +-msgid "_Configure VPN..." +-msgstr "_Configura VPN..." +- +-#: ../gnome/applet/applet.c:1734 +-msgid "_Disconnect VPN..." +-msgstr "_Disconnetti VPN..." +- +-#: ../gnome/applet/applet.c:1756 +-msgid "_Dial Up Connections" +-msgstr "Connessioni mo_dem" +- +-#. FIXME: We should save and then check the state of the devices and show Connect _or_ Disconnect for each item +-#: ../gnome/applet/applet.c:1767 +-#, c-format +-msgid "Connect to %s..." +-msgstr "Connetti a %s..." +- +-#: ../gnome/applet/applet.c:1773 +-#, c-format +-msgid "Disconnect from %s..." +-msgstr "Disconnetti da %s..." +- +-#: ../gnome/applet/applet.c:1822 +-msgid "No network devices have been found" +-msgstr "Non è stata trovata alcuna interfaccia di rete" +- +-#: ../gnome/applet/applet.c:2014 +-msgid "NetworkManager is not running..." +-msgstr "NetworkManager non è in esecuzione..." +- +-#. 'Enable Networking' item +-#: ../gnome/applet/applet.c:2170 +-msgid "Enable _Networking" +-msgstr "Abilita _rete" +- +-#. 'Enable Wireless' item +-#: ../gnome/applet/applet.c:2176 +-msgid "Enable _Wireless" +-msgstr "Abilita _wireless" +- +-#. 'Connection Information' item +-#: ../gnome/applet/applet.c:2182 +-msgid "Connection _Information" +-msgstr "_Informazioni connessione" +- +-#. Help item +-#: ../gnome/applet/applet.c:2193 +-msgid "_Help" +-msgstr "A_iuto" +- +-#. About item +-#: ../gnome/applet/applet.c:2202 +-msgid "_About" +-msgstr "I_nformazioni" +- +-#: ../gnome/applet/applet.c:2667 +-msgid "" +-"The NetworkManager applet could not find some required resources. It cannot " +-"continue.\n" +-msgstr "" +-"L'applet NetworkManager non è riuscita a trovare alcune risorse richieste. " +-"Non può continuare l'esecuzione.\n" +- +-#: ../gnome/applet/wireless-security-option.c:157 +-msgid "Open System" +-msgstr "Sistema aperto" +- +-#: ../gnome/applet/wireless-security-option.c:160 +-msgid "Shared Key" +-msgstr "Chiave condivisa" +- +-# o Automatica? +-#: ../gnome/applet/wireless-security-option.c:208 +-msgid "Automatic (Default)" +-msgstr "Automatica (predefinito)" +- +-#: ../gnome/applet/wireless-security-option.c:215 +-msgid "AES-CCMP" +-msgstr "AES-CCMP" +- +-#: ../gnome/applet/wireless-security-option.c:223 +-msgid "TKIP" +-msgstr "TKIP" +- +-#: ../gnome/applet/wireless-security-option.c:231 +-msgid "Dynamic WEP" +-msgstr "WEP dinamico" +- +-# Dovrebbe riferirsi a "sicurezza" +-#: ../gnome/applet/wso-none.c:53 +-msgid "None" +-msgstr "Nessuna" +- +-#: ../gnome/applet/wso-wep-ascii.c:138 +-msgid "WEP 64/128-bit ASCII" +-msgstr "ASCII 128 bit/WEP 40" +- +-#: ../gnome/applet/wso-wep-hex.c:135 +-msgid "WEP 64/128-bit Hex" +-msgstr "Esadecimale 128 bit/WEP 40" +- +-#: ../gnome/applet/wso-wep-passphrase.c:135 +-msgid "WEP 128-bit Passphrase" +-msgstr "Frase di accesso WEP 128 bit" +- +-#: ../gnome/applet/wso-wpa-eap.c:237 +-msgid "PEAP" +-msgstr "PEAP" +- +-#: ../gnome/applet/wso-wpa-eap.c:238 +-msgid "TLS" +-msgstr "TLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:239 +-msgid "TTLS" +-msgstr "TTLS" +- +-# [NdT] va tradotto? +-#: ../gnome/applet/wso-wpa-eap.c:247 ../src/nm-ap-security-wpa-eap.c:92 +-#: ../src/nm-ap-security-wpa-eap.c:116 +-msgid "WPA2 Enterprise" +-msgstr "WPA2 Enterprise" +- +-# [NdT] va tradotto? +-#: ../gnome/applet/wso-wpa-eap.c:249 ../src/nm-ap-security-wpa-eap.c:94 +-#: ../src/nm-ap-security-wpa-eap.c:121 +-msgid "WPA Enterprise" +-msgstr "WPA Enterprise" +- +-#: ../gnome/applet/wso-wpa-psk.c:178 +-msgid "WPA2 Personal" +-msgstr "WPA2 personale" +- +-#: ../gnome/applet/wso-wpa-psk.c:180 +-msgid "WPA Personal" +-msgstr "WPA personale" +- +-#: ../gnome/applet/eggtrayicon.c:134 +-msgid "Orientation" +-msgstr "Orientamento" +- +-#: ../gnome/applet/eggtrayicon.c:135 +-msgid "The orientation of the tray." +-msgstr "L'orientamento del vassoio." +- +-#: ../gnome/applet/menu-items.c:88 +-#, c-format +-msgid "Wired Network (%s)" +-msgstr "Rete cablata (%s)" +- +-#: ../gnome/applet/menu-items.c:91 +-msgid "_Wired Network" +-msgstr "Rete _cablata" +- +-#: ../gnome/applet/menu-items.c:162 +-#, c-format +-msgid "Wireless Network (%s)" +-msgid_plural "Wireless Networks (%s)" +-msgstr[0] "Rete wireless (%s)" +-msgstr[1] "Reti wireless (%s)" +- +-#: ../gnome/applet/menu-items.c:164 +-msgid "Wireless Network" +-msgid_plural "Wireless Networks" +-msgstr[0] "Rete wireless" +-msgstr[1] "Reti wireless" +- +-#: ../gnome/applet/menu-items.c:343 +-msgid " (invalid Unicode)" +-msgstr " (Unicode non valido)" +- +-#: ../gnome/applet/other-network-dialog.c:352 +-#, c-format +-msgid "" +-"By default, the wireless network's name is set to your computer's name, %s, " +-"with no encryption enabled" +-msgstr "" +-"Come impostazione predefinita, il nome della rete wireless è impostata con " +-"il nome del computer, %s, senza cifratura abilitata" +- +-# [NdT] è il titolo della finestra +-#: ../gnome/applet/other-network-dialog.c:358 +-msgid "Create new wireless network" +-msgstr "Creazione nuova rete wireless" +- +-#: ../gnome/applet/other-network-dialog.c:359 +-msgid "" +-"Enter the name and security settings of the wireless network you wish to " +-"create." +-msgstr "" +-"Inserire il nome e le impostazioni di sicurezza della rete wireless che si " +-"desidera creare." +- +-#: ../gnome/applet/other-network-dialog.c:363 +-msgid "Create New Wireless Network" +-msgstr "Crea nuova rete wireless" +- +-#: ../gnome/applet/other-network-dialog.c:368 +-msgid "Existing wireless network" +-msgstr "Rete wireless esistente" +- +-#: ../gnome/applet/other-network-dialog.c:369 +-msgid "Enter the name of the wireless network to which you wish to connect." +-msgstr "Inserire il nome delle rete wireless a cui ci si vuole connettere." +- +-#: ../gnome/applet/other-network-dialog.c:371 +-msgid "Connect to Other Wireless Network" +-msgstr "Connetti ad altre reti wireless" +- +-#: ../gnome/applet/passphrase-dialog.c:215 +-msgid "Error connecting to wireless network" +-msgstr "Errore nella connessione alla rete wireless" +- +-#: ../gnome/applet/passphrase-dialog.c:216 +-msgid "" +-"The requested wireless network requires security capabilities unsupported by " +-"your hardware." +-msgstr "" +-"La rete wireless richiesta richiede funzionalità di sicurezza non supportate " +-"dall'hardware presente." +- +-#: ../gnome/applet/vpn-password-dialog.c:151 +-#: ../gnome/applet/vpn-password-dialog.c:188 +-#, c-format +-msgid "Cannot start VPN connection '%s'" +-msgstr "Impossibile avviare la connessione VPN \"%s\"" +- +-#: ../gnome/applet/vpn-password-dialog.c:154 +-#, c-format +-msgid "" +-"Could not find the authentication dialog for VPN connection type '%s'. " +-"Contact your system administrator." +-msgstr "" +-"Impossibile trovare la finestra di dialogo per la connessione VPN di tipo \"%" +-"s\". Contattare l'amministratore di sistema." +- +-#: ../gnome/applet/vpn-password-dialog.c:191 +-#, c-format +-msgid "" +-"There was a problem launching the authentication dialog for VPN connection " +-"type '%s'. Contact your system administrator." +-msgstr "" +-"Si è verificato un problema avviando la finestra di dialogo di " +-"autenticazione per la connessione VPN di tipo \"%s\". Contattare " +-"l'amministratore di sistema." +- +-#: ../gnome/applet/applet.glade.h:1 +-msgid " " +-msgstr " " +- +-#: ../gnome/applet/applet.glade.h:2 +-msgid "" +-"Active Connection Information" +-msgstr "" +-"Informazioni connessione attiva" +- +-#: ../gnome/applet/applet.glade.h:4 +-#, no-c-format +-msgid "" +-"Passphrase Required by Wireless " +-"Network\n" +-"\n" +-"A passphrase or encryption key is required to access the wireless network '%" +-"s'." +-msgstr "" +-"Frase chiave richiesta dalla rete " +-"wireless\n" +-"\n" +-"È richiesta una frase chiave o una chiave di cifratura per accedere alla " +-"rete wireless \"%s\"." +- +-#: ../gnome/applet/applet.glade.h:8 +-#, no-c-format +-msgid "" +-"Reduced Network Functionality\n" +-"\n" +-"%s It will not be completely functional." +-msgstr "" +-"Funzionalità di rete ridotta\n" +-"\n" +-"%s Non sarà del funzionale." +- +-#: ../gnome/applet/applet.glade.h:12 +-#, no-c-format +-msgid "" +-"Wireless Network Login Confirmation\n" +-"\n" +-"You have chosen to log in to the wireless network '%s'. If you are sure " +-"that this wireless network is secure, click the checkbox below and " +-"NetworkManager will not require confirmation on subsequent log ins." +-msgstr "" +-"Conferma accesso a rete wireless\n" +-"\n" +-"Si è scelto di accedere alla rete wireless \"%s\". Se si ha la certezza che " +-"questa rete wireless è sicura, selezionare la casella di spunta sottostante " +-"e NetworkManager non chiederà la conferma ai successivi accessi." +- +-#: ../gnome/applet/applet.glade.h:15 +-msgid "Anonymous Identity:" +-msgstr "Identità anonima:" +- +-#: ../gnome/applet/applet.glade.h:16 +-msgid "Authentication:" +-msgstr "Autenticazione:" +- +-#: ../gnome/applet/applet.glade.h:17 +-msgid "Broadcast Address:" +-msgstr "Indirizzo broadcast:" +- +-#: ../gnome/applet/applet.glade.h:18 +-msgid "CA Certificate File:" +-msgstr "File del certificato della CA:" +- +-#: ../gnome/applet/applet.glade.h:19 +-msgid "C_onnect" +-msgstr "C_onnetti" +- +-#: ../gnome/applet/applet.glade.h:20 +-msgid "Client Certificate File:" +-msgstr "File del certificato del client:" +- +-#: ../gnome/applet/applet.glade.h:21 +-msgid "Connection Information" +-msgstr "Informazioni connessione" +- +-#: ../gnome/applet/applet.glade.h:22 +-msgid "Default Route:" +-msgstr "Rotta predefinita:" +- +-#: ../gnome/applet/applet.glade.h:23 +-msgid "Destination Address:" +-msgstr "Indirizzo destinazione:" +- +-#: ../gnome/applet/applet.glade.h:24 +-msgid "Driver:" +-msgstr "Driver:" +- +-#: ../gnome/applet/applet.glade.h:25 +-msgid "EAP Method:" +-msgstr "Metodo EAP:" +- +-#: ../gnome/applet/applet.glade.h:26 +-msgid "Hardware Address:" +-msgstr "Indirizzo hardware:" +- +-#: ../gnome/applet/applet.glade.h:27 +-msgid "IP Address:" +-msgstr "Indirizzo IP:" +- +-#: ../gnome/applet/applet.glade.h:28 +-msgid "Identity:" +-msgstr "Identità:" +- +-#: ../gnome/applet/applet.glade.h:29 +-msgid "Interface:" +-msgstr "Interfaccia:" +- +-#: ../gnome/applet/applet.glade.h:30 +-msgid "Key Type:" +-msgstr "Tipo di chiave:" +- +-#: ../gnome/applet/applet.glade.h:31 +-msgid "Key:" +-msgstr "Chiave:" +- +-#: ../gnome/applet/applet.glade.h:32 +-msgid "" +-"None\n" +-"WEP 128-bit Passphrase\n" +-"WEP 64/128-bit Hex\n" +-"WEP 64/128-bit ASCII\n" +-msgstr "" +-"Nessuna\n" +-"Frase di accesso WEP 128 bit\n" +-"WEP 64/128 bit esadecimale\n" +-"WEP 64/128 bit ASCII\n" +- +-#: ../gnome/applet/applet.glade.h:37 +-msgid "" +-"Open System\n" +-"Shared Key" +-msgstr "" +-"Sistema aperto\n" +-"Chiave condivisa" +- +-#: ../gnome/applet/applet.glade.h:39 +-msgid "Other Wireless Network..." +-msgstr "Altra rete wireless..." +- +-#: ../gnome/applet/applet.glade.h:40 +-msgid "Passphrase:" +-msgstr "Frase chiave:" +- +-#: ../gnome/applet/applet.glade.h:41 +-msgid "Password:" +-msgstr "Password:" +- +-#: ../gnome/applet/applet.glade.h:42 +-msgid "Primary DNS:" +-msgstr "DNS primario:" +- +-#: ../gnome/applet/applet.glade.h:43 +-msgid "Private Key File:" +-msgstr "File della chiave privata:" +- +-#: ../gnome/applet/applet.glade.h:44 +-msgid "Private Key Password:" +-msgstr "Password della chiave privata:" +- +-#: ../gnome/applet/applet.glade.h:45 +-msgid "Secondary DNS:" +-msgstr "DNS secondario:" +- +-#: ../gnome/applet/applet.glade.h:46 +-msgid "Select the CA Certificate File" +-msgstr "Selezionare il file con il certificato della CA" +- +-#: ../gnome/applet/applet.glade.h:47 +-msgid "Select the Client Certificate File" +-msgstr "Selezionare il file con il certificato del client" +- +-#: ../gnome/applet/applet.glade.h:48 +-msgid "Select the Private Key File" +-msgstr "Selezionare il file con la chiave privata" +- +-#: ../gnome/applet/applet.glade.h:49 +-msgid "Show key" +-msgstr "Mostra chiave" +- +-#: ../gnome/applet/applet.glade.h:50 +-msgid "Show passphrase" +-msgstr "Mostra frase chiave" +- +-#: ../gnome/applet/applet.glade.h:51 +-msgid "Show password" +-msgstr "Mostra password" +- +-#: ../gnome/applet/applet.glade.h:52 +-msgid "Show passwords" +-msgstr "Mostra le password" +- +-#: ../gnome/applet/applet.glade.h:53 +-msgid "Speed:" +-msgstr "Velocità:" +- +-#: ../gnome/applet/applet.glade.h:54 +-msgid "Subnet Mask:" +-msgstr "Maschera di rete:" +- +-#: ../gnome/applet/applet.glade.h:55 +-msgid "Type:" +-msgstr "Tipo:" +- +-#: ../gnome/applet/applet.glade.h:56 +-msgid "User Name:" +-msgstr "Nome utente:" +- +-#: ../gnome/applet/applet.glade.h:57 +-msgid "Wireless Network Key Required" +-msgstr "Richiesta chiave per rete wireless" +- +-#: ../gnome/applet/applet.glade.h:58 +-msgid "Wireless _adapter:" +-msgstr "_Adattatore wireless:" +- +-#: ../gnome/applet/applet.glade.h:59 +-msgid "_Always Trust this Wireless Network" +-msgstr "Dare _sempre fiducia a questa rete wireless" +- +-#: ../gnome/applet/applet.glade.h:60 +-msgid "_Don't remind me again" +-msgstr "_Non ricordarlo più" +- +-#: ../gnome/applet/applet.glade.h:61 +-msgid "_Login to Network" +-msgstr "_Login alla rete" +- +-#: ../gnome/applet/applet.glade.h:62 +-msgid "_Network Name:" +-msgstr "_Nome rete:" +- +-#: ../gnome/applet/applet.glade.h:63 +-msgid "_Wireless Security:" +-msgstr "Sicurezza _wireless:" +- +-#: ../gnome/vpn-properties/nm-vpn-properties.c:383 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:405 + msgid "Cannot add VPN connection" + msgstr "Impossibile aggiungere una connessione VPN" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:385 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:407 + msgid "" + "No suitable VPN software was found on your system. Contact your system " + "administrator." +@@ -743,59 +28,59 @@ + "Non è stato trovato un software VPN adatto nel sistema. Contattare " + "l'amministratore di sistema." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:437 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:457 + msgid "Cannot import VPN connection" + msgstr "Impossibile importare la connessione VPN" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:439 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:459 + #, c-format + msgid "" + "Cannot find suitable software for VPN connection type '%s' to import the " + "file '%s'. Contact your system administrator." + msgstr "" +-"Impossibile trovare un software adatto ad importare il file \"%2$s\" per la " +-"connessione VPN di tipo \"%1$s\". Contattare l'amministratore di sistema." ++"Impossibile trovare un software adatto ad importare il file “%2$s” per la " ++"connessione VPN di tipo “%1$s”. Contattare l'amministratore di sistema." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:579 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:596 + #, c-format + msgid "Error retrieving VPN connection '%s'" +-msgstr "Errore nel recuperare la connessione VPN \"%s\"" ++msgstr "Errore nel recuperare la connessione VPN “%s”" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:582 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:599 + #, c-format + msgid "" + "Could not find the UI files for VPN connection type '%s'. Contact your " + "system administrator." + msgstr "" +-"Impossibile trovare il file di interfaccia per la connessione VPN di tipo \"%" +-"s\". Contattare l'amministratore di sistema." ++"Impossibile trovare il file di interfaccia per la connessione VPN di tipo “%" ++"s”. Contattare l'amministratore di sistema." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:739 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:746 + #, c-format + msgid "Delete VPN connection \"%s\"?" +-msgstr "Eliminare la connessione VPN \"%s\"?" ++msgstr "Eliminare la connessione VPN “%s”?" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:742 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:749 + #, c-format + msgid "" + "All information about the VPN connection \"%s\" will be lost and you may " + "need your system administrator to provide information to create a new " + "connection." + msgstr "" +-"Tutte le informazioni sulla connessione VPN \"%s\" verranno perse e sarà " ++"Tutte le informazioni sulla connessione VPN “%s” verranno perse e sarà " + "necessario chiedere informazioni all'amministratore di sistema per creare " + "una nuova connessione." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:959 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:963 + msgid "Unable to load" + msgstr "Impossibile caricare" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:961 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:965 + msgid "Cannot find some needed resources (the glade file)!" + msgstr "Impossibile trovare alcune risorse richieste (il file glade)!" + + #. Edit dialog +-#: ../gnome/vpn-properties/nm-vpn-properties.c:1071 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:1084 + msgid "Edit VPN Connection" + msgstr "Modifica connessione VPN" + +@@ -849,7 +134,7 @@ + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:13 + msgid "Manage Virtual Private Network Connections" +-msgstr "Gestione delle connessioni alle reti private virtuali (VPN)" ++msgstr "Gestione connessioni Reti Private Virtuali (VPN)" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:14 + msgid "" +@@ -859,8 +144,8 @@ + "It will require some information, such as IP addresses and secrets. Please " + "see your system administrator to obtain this information." + msgstr "" +-"Questo assistente vi guiderà nella creazione di una connessione ad una rete " +-"privata virtuale (VPN).\n" ++"Questo assistente vi guiderà nella creazione di una connessione ad una Rete " ++"Privata Virtuale (VPN).\n" + "\n" + "Richiederà alcune informazioni, come indirizzi IP e dati segreti. Contattare " + "l'amministratore di sistema per ottenere queste informazioni." +@@ -901,11 +186,11 @@ + msgid "WPA2 Automatic" + msgstr "WPA2 automatica" + +-#: ../src/nm-ap-security.c:320 ++#: ../src/nm-ap-security.c:338 + msgid "none" + msgstr "nessuna" + +-#: ../src/nm-netlink-monitor.c:154 ++#: ../src/nm-netlink-monitor.c:170 + #, c-format + msgid "" + "unable to create netlink socket for monitoring wired ethernet devices - %s" +@@ -913,7 +198,7 @@ + "impossibile creare un socket netlink per monitorare i dispositivi di rete " + "cablata ethernet - %s" + +-#: ../src/nm-netlink-monitor.c:172 ++#: ../src/nm-netlink-monitor.c:188 + #, c-format + msgid "" + "unable to bind to netlink socket for monitoring wired ethernet devices - %s" +@@ -921,166 +206,35 @@ + "impossibile effettuare il bind al socket netlink per monitorare i " + "dispositivi di rete cablata ethernet - %s" + +-#: ../src/nm-netlink-monitor.c:405 ++#: ../src/nm-netlink-monitor.c:426 + msgid "operation took too long" + msgstr "l'operazione ha impiegato troppo tempo" + +-#: ../src/nm-netlink-monitor.c:502 ++#: ../src/nm-netlink-monitor.c:523 + msgid "received data from wrong type of sender" + msgstr "dati ricevuti dal tipo di mittente errato" + +-#: ../src/nm-netlink-monitor.c:515 ++#: ../src/nm-netlink-monitor.c:536 + msgid "received data from unexpected sender" + msgstr "dati ricevuti da un mittente inatteso" + +-#: ../src/nm-netlink-monitor.c:646 ++#: ../src/nm-netlink-monitor.c:665 + msgid "too much data was sent over socket and some of it was lost" + msgstr "" + "sono stati inviati troppi dati sul socket e una loro parte è stata persa" + +-#: ../src/nm-netlink-monitor.c:735 ++#: ../src/nm-netlink-monitor.c:775 + msgid "error occurred while waiting for data on socket" + msgstr "si è verificato un errore durante l'attesa dei dati sul socket" + +-#: ../gnome/applet/applet-dbus-devices.c:898 +-#, c-format +-msgid "You are now connected to the Ad-Hoc wireless network '%s'." +-msgstr "Adesso si è connessi alla rete wireless ad-hoc \"%s\"." +- +-#: ../gnome/applet/applet-dbus-devices.c:903 +-#, c-format +-msgid "You are now connected to the wireless network '%s'." +-msgstr "Adesso si è connessi alla rete wireless \"%s\"." +- +-#: ../gnome/applet/applet-dbus-devices.c:910 +-msgid "You are now connected to the wired network." +-msgstr "Adesso si è connessi alla rete cablata." +- +-#: ../gnome/applet/applet-dbus-devices.c:916 +-msgid "Connection Established" +-msgstr "Connessione stabilita" +- +-#: ../gnome/applet/applet-dbus-devices.c:959 +-msgid "Disconnected" +-msgstr "Disconnesso" +- +-# [NdT] certo che l'originare era proprio brutto +-#: ../gnome/applet/applet-dbus-devices.c:960 +-msgid "The network connection has been disconnected." +-msgstr "La connessione di rete è stata interrotta." +- +-#~ msgid "Modify Wireless Networks" +-#~ msgstr "Modifica le reti wireless" +- +-#~ msgid "*" +-#~ msgstr "*" +- +-#~ msgid "" +-#~ "128-bit Passphrase (WEP)\n" +-#~ "Ascii Key (WEP)\n" +-#~ "Hex Key (WEP)" +-#~ msgstr "" +-#~ "Frase chiave a 128-bit (WEP)\n" +-#~ "Chiave Ascii (WEP)\n" +-#~ "Chiave Esadecimale (WEP)" +- +-#~ msgid "Ascii Key:" +-#~ msgstr "Chiave ascii:" +- +-#~ msgid "You must log in to access the private network %s" +-#~ msgstr "È necessario effettuare il login per accedere alla rete privata %s" +- +-#~ msgid "Scanning for wireless networks..." +-#~ msgstr "Scansione di reti wireless..." +- +-#~ msgid "Pause Wireless Scanning" +-#~ msgstr "Sospendere la scansione wireless" +- +-#~ msgid "Resume Wireless Scanning" +-#~ msgstr "Riprendere la scansione wireless" +- +-#~ msgid "Stop All Wireless Devices" +-#~ msgstr "Ferma tutti i dispositivi wireless" +- +-#~ msgid "Start All Wireless Devices" +-#~ msgstr "Avvia tutti i dispositivi wireless" +- +-#~ msgid "" +-#~ "128-bit passphrase (WEP)\n" +-#~ "Ascii key (WEP)\n" +-#~ "Hex key (WEP)" +-#~ msgstr "" +-#~ "Frase chiave a 128-bit (WEP)\n" +-#~ "Chiave ASCII (WEP)\n" +-#~ "Chiave esadecimale (WEP)" +- +-#~ msgid "Key type:" +-#~ msgstr "Tipo di chiave:" +- +-#~ msgid "Wireless _network:" +-#~ msgstr "_Rete wireless:" +- +-#~ msgid "Stop automatically running the networking applet?" +-#~ msgstr "Fermare l'avvio automatico dell'applet di rete?" +- +-#~ msgid "" +-#~ "The networking applet will now terminate, but will automatically launch " +-#~ "the next time you login. Would you like to stop automatically running " +-#~ "the networking applet on login?" +-#~ msgstr "" +-#~ "L'applet di rete terminerà adesso, ma verrà avviata automaticamente al " +-#~ "prossimo accesso al sistema. Si vuole fermare l'avvio automatico " +-#~ "dell'applet di rete all'accesso?" +- +-#~ msgid "_Remove" +-#~ msgstr "_Rimuovi" +- +-#~ msgid "Wireless Networks:" +-#~ msgstr "Reti wireless:" +- +-#~ msgid "Hex Key:" +-#~ msgstr "Chiave esadecimale:" +- +-#~ msgid "Copyright (C) 2004-2005 Red Hat, Inc." +-#~ msgstr "Copyright © 2004-2005 Red Hat, Inc." +- +-#~ msgid "Connecting to a wired network..." +-#~ msgstr "Connessione ad una rete cablata in corso..." +- +-#~ msgid "Wireless network connection" +-#~ msgstr "Connessione di rete wireless" +- +-#~ msgid "Connecting to wireless network '%s'..." +-#~ msgstr "Connessione alla rete wireless \"%s\" in corso..." +- +-#~ msgid "Other Wireless Networks..." +-#~ msgstr "Altre reti wireless..." +- +-#~ msgid "Create new Wireless Network..." +-#~ msgstr "Crea nuova rete wireless..." +- +-#~ msgid "Help" +-#~ msgstr "Aiuto" +- +-#~ msgid "About" +-#~ msgstr "Informazioni" +- +-#~ msgid "" +-#~ "Enter the ESSID and security settings of the wireless network you wish to " +-#~ "create." +-#~ msgstr "" +-#~ "Inserire l'ESSID e le impostazioni di sicurezza della rete wireless che " +-#~ "si desidera creare." +- +-#~ msgid "Custom wireless network" +-#~ msgstr "Rete wireless personalizzata" +- +-#~ msgid "" +-#~ "Enter the ESSID of the wireless network to which you wish to connect." +-#~ msgstr "Inserire l'ESSID della rete wireless a cui ci si vuole connettere." ++#: ../src/nm-ap-security-wpa-eap.c:96 ../src/nm-ap-security-wpa-eap.c:120 ++msgid "WPA2 Enterprise" ++msgstr "WPA2 aziendale" + +-#~ msgid "Connect with encryption enabled" +-#~ msgstr "Connessione con cifratura attiva" ++#: ../src/nm-ap-security-wpa-eap.c:98 ../src/nm-ap-security-wpa-eap.c:125 ++msgid "WPA Enterprise" ++msgstr "WPA aziendale" + +-#~ msgid "Wired Network" +-#~ msgstr "Rete cablata" ++#: ../src/nm-ap-security-leap.c:66 ../src/nm-ap-security-leap.c:82 ++msgid "LEAP" ++msgstr "LEAP" +diff -urN NetworkManager-0.6.5/po/ja.po NetworkManager-SVNr3284/po/ja.po +--- NetworkManager-0.6.5/po/ja.po 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/po/ja.po 2008-02-04 16:01:02.000000000 +0100 +@@ -1,793 +1,95 @@ + # Japanese translation for NetworkManager + # Copyright (C) 2005 Dan Williams + # This file is distributed under the same license as the NetworkManager package. +-# Satoru SATOH , 2005. ++# Satoru SATOH , 2005 - 2007. + # + msgid "" + msgstr "" +-"Project-Id-Version: NetworkManager 0.3.1\n" ++"Project-Id-Version: NetworkManager NETWORKMANAGER_0_6_0_RELEASE\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2006-05-29 18:33+0200\n" +-"PO-Revision-Date: 2006-06-16 14:06\n" +-"Last-Translator: Novell Language \n" +-"Language-Team: Novell Language \n" ++"POT-Creation-Date: 2007-08-27 00:21+0900\n" ++"PO-Revision-Date: 2007-08-26 23:34+0900\n" ++"Last-Translator: Satoru SATOH \n" ++"Language-Team: Japanese \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=1; plural=0;\n" + +-#: ../gnome/applet/applet-compat.c:171 ../gnome/applet/applet-dbus-info.c:919 +-#, c-format +-msgid "Passphrase for wireless network %s" +-msgstr "ワイヤレスネットワーク %s のパスフレーズ" +- +-#: ../gnome/applet/applet-dbus.c:265 +-#, c-format +-msgid "Connection to the wireless network '%s' failed." +-msgstr "ワイヤレスネットワーク「%s」への接続に失敗しました。 " +- +-#: ../gnome/applet/applet-dbus.c:270 +-msgid "Connection to the wired network failed." +-msgstr "有線ネットワークへの接続に失敗しました。" +- +-#: ../gnome/applet/applet.c:184 +-msgid "Error displaying connection information:" +-msgstr "接続情報の表示エラー:" +- +-#: ../gnome/applet/applet.c:202 +-msgid "Could not find some required resources (the glade file)!" +-msgstr "必要なリソース(グレードファイル)を見つけることができませんでした。" +- +-#: ../gnome/applet/applet.c:213 +-msgid "No active connections!" +-msgstr "有効な接続がありません。" +- +-#: ../gnome/applet/applet.c:234 +-#, c-format +-msgid "Wired Ethernet (%s)" +-msgstr "有線イーサネット(%s)" +- +-#: ../gnome/applet/applet.c:236 +-#, c-format +-msgid "Wireless Ethernet (%s)" +-msgstr "ワイヤレスイーサネット(%s)" +- +-#: ../gnome/applet/applet.c:337 ../gnome/applet/applet.c:362 +-msgid "NetworkManager Applet" +-msgstr "NetworkManagerアプレット" +- +-#: ../gnome/applet/applet.c:339 ../gnome/applet/applet.c:364 +-msgid "Copyright © 2004-2005 Red Hat, Inc." +-msgstr "Copyright © 2004-2005 Red Hat, Inc." +- +-#: ../gnome/applet/applet.c:340 ../gnome/applet/applet.c:365 +-msgid "" +-"Notification area applet for managing your network devices and connections." +-msgstr "ネットワークデバイスと接続を管理する通知領域アプレット。" +- +-#: ../gnome/applet/applet.c:343 ../gnome/applet/applet.c:370 +-msgid "translator-credits" +-msgstr "" +-"相花 毅 \n" +-"Akira TAGOH \n" +-"Yukihiro Nakai \n" +-"Takuo KITAME \n" +-"日本GNOMEユーザー会 http://www.gnome.gr.jp" +- +-#: ../gnome/applet/applet.c:426 +-msgid "VPN Login Failure" +-msgstr "VPNログインの失敗" +- +-#: ../gnome/applet/applet.c:427 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a login failure." +-msgstr "ログインの失敗により、VPN接続「%s」を起動できませんでした。" +- +-#: ../gnome/applet/applet.c:431 +-msgid "VPN Start Failure" +-msgstr "VPNの起動の失敗" +- +-#: ../gnome/applet/applet.c:432 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' due to a failure launching the VPN " +-"program." +-msgstr "" +-"VPNプログラムの起動の失敗により、VPN接続「%s」を起動できませんでした。 " +- +-#: ../gnome/applet/applet.c:436 ../gnome/applet/applet.c:446 +-msgid "VPN Connect Failure" +-msgstr "VPN接続の失敗" +- +-#: ../gnome/applet/applet.c:437 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a connection error." +-msgstr "接続エラーにより、VPN接続「%s」を起動できませんでした。" +- +-#: ../gnome/applet/applet.c:441 +-msgid "VPN Configuration Error" +-msgstr "VPN設定エラー" +- +-#: ../gnome/applet/applet.c:442 +-#, c-format +-msgid "The VPN connection '%s' was not correctly configured." +-msgstr "VPN接続「%s」は正しく設定されていません。" +- +-#: ../gnome/applet/applet.c:447 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' because the VPN server did not " +-"return an adequate network configuration." +-msgstr "" +-"VPNサーバーが適切なネットワーク設定を返さなかったため、VPN接続「%s」を起動で" +-"きませんでした。" +- +-#: ../gnome/applet/applet.c:517 +-msgid "VPN Login Message" +-msgstr "VPNログインメッセージ " +- +-#: ../gnome/applet/applet.c:741 ../gnome/applet/applet.c:2508 +-#: ../gnome/applet/other-network-dialog.c:453 +-#: ../gnome/applet/passphrase-dialog.c:228 +-msgid "" +-"The NetworkManager Applet could not find some required resources (the glade " +-"file was not found)." +-msgstr "" +-"NetworkManager アプレットはいくつかの必要なリソースglade ファイル)をみつける" +-"ことができませんでした" +- +-#: ../gnome/applet/applet.c:753 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support wireless scanning." +-msgstr "" +-"ネットワークデバイス「%s (%s)」はワイヤレススキャニングをサポートしません。 " +- +-#: ../gnome/applet/applet.c:761 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support link detection." +-msgstr "ネットワークデバイス「%s (%s)」はリンク検索をサポートしません。" +- +-#: ../gnome/applet/applet.c:908 +-#, c-format +-msgid "Preparing device %s for the wired network..." +-msgstr "有線ネットワークのデバイス %s を準備中..." +- +-#: ../gnome/applet/applet.c:910 +-#, c-format +-msgid "Preparing device %s for the wireless network '%s'..." +-msgstr "ワイヤレスネットワーク「%s」のデバイス %s を準備中..." +- +-#: ../gnome/applet/applet.c:918 +-#, c-format +-msgid "Configuring device %s for the wired network..." +-msgstr "有線ネットワークにデバイス %s を設定中..." +- +-#: ../gnome/applet/applet.c:920 +-#, c-format +-msgid "Attempting to join the wireless network '%s'..." +-msgstr "ワイヤレスネットワーク「%s」に接続中..." +- +-#: ../gnome/applet/applet.c:928 +-#, c-format +-msgid "Waiting for Network Key for the wireless network '%s'..." +-msgstr "ワイヤレスネットワーク「%s」のネットワークキーを待機中...." +- +-#: ../gnome/applet/applet.c:936 ../gnome/applet/applet.c:946 +-msgid "Requesting a network address from the wired network..." +-msgstr "有線ネットワークからネットワークアドレスをリクエスト中..." +- +-#: ../gnome/applet/applet.c:938 ../gnome/applet/applet.c:948 +-#, c-format +-msgid "Requesting a network address from the wireless network '%s'..." +-msgstr "ワイヤレスネットワーク「%s」からネットワークアドレスをリクエスト中..." +- +-#: ../gnome/applet/applet.c:956 +-msgid "Finishing connection to the wired network..." +-msgstr "有線ネットワークへの接続完了..." +- +-#: ../gnome/applet/applet.c:958 +-#, c-format +-msgid "Finishing connection to the wireless network '%s'..." +-msgstr "ワイヤレスネットワーク「%s」への接続完了..." +- +-#: ../gnome/applet/applet.c:1075 +-msgid "NetworkManager is not running" +-msgstr "NetworkManager は実行されていません" +- +-#: ../gnome/applet/applet.c:1083 ../gnome/applet/applet.c:1828 +-msgid "Networking disabled" +-msgstr "ネットワークが無効です" +- +-#: ../gnome/applet/applet.c:1088 +-msgid "No network connection" +-msgstr "ネットワーク接続なし" +- +-#: ../gnome/applet/applet.c:1093 +-msgid "Wired network connection" +-msgstr "無線ネットワーク接続" +- +-#: ../gnome/applet/applet.c:1097 +-msgid "Connected to an Ad-Hoc wireless network" +-msgstr "Ad-Hoc 無線ネットワークに接続しました" +- +-#: ../gnome/applet/applet.c:1099 +-#, c-format +-msgid "Wireless network connection to '%s' (%d%%)" +-msgstr "「%s」(%d%%)へのワイヤレスネットワーク接続" +- +-#: ../gnome/applet/applet.c:1120 +-#, c-format +-msgid "VPN connection to '%s'" +-msgstr "「%s」へのVPN接続" +- +-#: ../gnome/applet/applet.c:1128 +-#, c-format +-msgid "VPN connecting to '%s'" +-msgstr "「%s」へのVPN接続" +- +-#: ../gnome/applet/applet.c:1541 +-msgid "_Connect to Other Wireless Network..." +-msgstr "他のワイヤレスネットワークへの接続(_C)..." +- +-#: ../gnome/applet/applet.c:1562 +-msgid "Create _New Wireless Network..." +-msgstr "新しいワイヤレスネットワークを作成(_N)..." +- +-#: ../gnome/applet/applet.c:1685 +-msgid "_VPN Connections" +-msgstr "VPN接続(_V)" +- +-#: ../gnome/applet/applet.c:1730 +-msgid "_Configure VPN..." +-msgstr "VPNの設定(_C)..." +- +-#: ../gnome/applet/applet.c:1734 +-msgid "_Disconnect VPN..." +-msgstr "VPNの切断(_D)..." +- +-#: ../gnome/applet/applet.c:1756 +-msgid "_Dial Up Connections" +-msgstr "ダイヤルアップ接続(_D)" +- +-#. FIXME: We should save and then check the state of the devices and show Connect _or_ Disconnect for each item +-#: ../gnome/applet/applet.c:1767 +-#, c-format +-msgid "Connect to %s..." +-msgstr "%s に接続します..." +- +-#: ../gnome/applet/applet.c:1773 +-#, c-format +-msgid "Disconnect from %s..." +-msgstr "%s から接続解除します..." +- +-#: ../gnome/applet/applet.c:1822 +-msgid "No network devices have been found" +-msgstr "ネットワークデバイスがみつかりませんでした" +- +-#: ../gnome/applet/applet.c:2014 +-msgid "NetworkManager is not running..." +-msgstr "NetworkManager は実行されていません..." +- +-#. 'Enable Networking' item +-#: ../gnome/applet/applet.c:2170 +-msgid "Enable _Networking" +-msgstr "ネットワークの有効化(_N)" +- +-#. 'Enable Wireless' item +-#: ../gnome/applet/applet.c:2176 +-msgid "Enable _Wireless" +-msgstr "ワイヤレスの有効化(_W)" +- +-#. 'Connection Information' item +-#: ../gnome/applet/applet.c:2182 +-msgid "Connection _Information" +-msgstr "接続情報(_I)" +- +-#. Help item +-#: ../gnome/applet/applet.c:2193 +-msgid "_Help" +-msgstr "ヘルプ(_H)" +- +-#. About item +-#: ../gnome/applet/applet.c:2202 +-msgid "_About" +-msgstr "情報(_A)" +- +-#: ../gnome/applet/applet.c:2667 +-msgid "" +-"The NetworkManager applet could not find some required resources. It cannot " +-"continue.\n" +-msgstr "" +-"NetworkManagerアプレットは必要なリソースを見つけることができませんでした。続" +-"行できません。\n" +- +-#: ../gnome/applet/wireless-security-option.c:157 +-msgid "Open System" +-msgstr "オープンシステム" +- +-#: ../gnome/applet/wireless-security-option.c:160 +-msgid "Shared Key" +-msgstr "共有キー" +- +-#: ../gnome/applet/wireless-security-option.c:208 +-msgid "Automatic (Default)" +-msgstr "自動(デフォルト)" +- +-#: ../gnome/applet/wireless-security-option.c:215 +-msgid "AES-CCMP" +-msgstr "AES-CCMP" +- +-#: ../gnome/applet/wireless-security-option.c:223 +-msgid "TKIP" +-msgstr "TKIP" +- +-#: ../gnome/applet/wireless-security-option.c:231 +-msgid "Dynamic WEP" +-msgstr "動的WEP" +- +-#: ../gnome/applet/wso-none.c:53 +-msgid "None" +-msgstr "なし" +- +-#: ../gnome/applet/wso-wep-ascii.c:138 +-msgid "WEP 64/128-bit ASCII" +-msgstr "WEP 64/128ビットASCII" +- +-#: ../gnome/applet/wso-wep-hex.c:135 +-msgid "WEP 64/128-bit Hex" +-msgstr "WEP 64/128ビット16進数" +- +-#: ../gnome/applet/wso-wep-passphrase.c:135 +-msgid "WEP 128-bit Passphrase" +-msgstr "WEP 128-ビットパラフレーズ" +- +-#: ../gnome/applet/wso-wpa-eap.c:237 +-msgid "PEAP" +-msgstr "PEAP" +- +-#: ../gnome/applet/wso-wpa-eap.c:238 +-msgid "TLS" +-msgstr "TLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:239 +-msgid "TTLS" +-msgstr "TTLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:247 ../src/nm-ap-security-wpa-eap.c:92 +-#: ../src/nm-ap-security-wpa-eap.c:116 +-msgid "WPA2 Enterprise" +-msgstr "WPA Enterprise" +- +-#: ../gnome/applet/wso-wpa-eap.c:249 ../src/nm-ap-security-wpa-eap.c:94 +-#: ../src/nm-ap-security-wpa-eap.c:121 +-msgid "WPA Enterprise" +-msgstr "WPA Enterprise" +- +-#: ../gnome/applet/wso-wpa-psk.c:178 +-msgid "WPA2 Personal" +-msgstr "WPA Personal" +- +-#: ../gnome/applet/wso-wpa-psk.c:180 +-msgid "WPA Personal" +-msgstr "WPA Personal" +- +-#: ../gnome/applet/eggtrayicon.c:134 +-msgid "Orientation" +-msgstr "向き" +- +-#: ../gnome/applet/eggtrayicon.c:135 +-msgid "The orientation of the tray." +-msgstr "トレイの向き" +- +-#: ../gnome/applet/menu-items.c:88 +-#, c-format +-msgid "Wired Network (%s)" +-msgstr "無線ネットワーク (%s)" +- +-#: ../gnome/applet/menu-items.c:91 +-msgid "_Wired Network" +-msgstr "有線ネットワーク(_W)" +- +-#: ../gnome/applet/menu-items.c:162 +-#, c-format +-msgid "Wireless Network (%s)" +-msgid_plural "Wireless Networks (%s)" +-msgstr[0] "無線ネットワーク (%s)" +-msgstr[1] "無線ネットワーク (%s)" +- +-#: ../gnome/applet/menu-items.c:164 +-msgid "Wireless Network" +-msgid_plural "Wireless Networks" +-msgstr[0] "無線ネットワーク" +-msgstr[1] "無線ネットワーク" +- +-#: ../gnome/applet/menu-items.c:343 +-msgid " (invalid Unicode)" +-msgstr " (不正な Unicode)" +- +-#: ../gnome/applet/other-network-dialog.c:352 +-#, c-format +-msgid "" +-"By default, the wireless network's name is set to your computer's name, %s, " +-"with no encryption enabled" +-msgstr "" +-"デフォルトでは、暗号化が無効の状態で、ワイヤレスネットワーク名がコンピュータ" +-"名 %s に設定されます。" +- +-#: ../gnome/applet/other-network-dialog.c:358 +-msgid "Create new wireless network" +-msgstr "新しい無線ネットワークを作成" +- +-#: ../gnome/applet/other-network-dialog.c:359 +-msgid "" +-"Enter the name and security settings of the wireless network you wish to " +-"create." +-msgstr "作成するワイヤレスネットワークの名前とセキュリティ設定を入力します。" +- +-#: ../gnome/applet/other-network-dialog.c:363 +-msgid "Create New Wireless Network" +-msgstr "新しい無線ネットワークを作成" +- +-#: ../gnome/applet/other-network-dialog.c:368 +-msgid "Existing wireless network" +-msgstr "既存のワイヤレスネットワーク" +- +-#: ../gnome/applet/other-network-dialog.c:369 +-msgid "Enter the name of the wireless network to which you wish to connect." +-msgstr "接続するワイヤレスネットワークの名前を入力します。" +- +-#: ../gnome/applet/other-network-dialog.c:371 +-msgid "Connect to Other Wireless Network" +-msgstr "他のワイヤレスネットワークへの接続" +- +-#: ../gnome/applet/passphrase-dialog.c:215 +-msgid "Error connecting to wireless network" +-msgstr "ワイヤレスネットワークへの接続エラー" +- +-#: ../gnome/applet/passphrase-dialog.c:216 +-msgid "" +-"The requested wireless network requires security capabilities unsupported by " +-"your hardware." +-msgstr "" +-"リクエストされたワイヤレスネットワークには、ハードウェアでサポートされていな" +-"いセキュリティ機能が必要です。" +- +-#: ../gnome/applet/vpn-password-dialog.c:151 +-#: ../gnome/applet/vpn-password-dialog.c:188 +-#, c-format +-msgid "Cannot start VPN connection '%s'" +-msgstr "VPN接続「%s」を起動できません" +- +-#: ../gnome/applet/vpn-password-dialog.c:154 +-#, c-format +-msgid "" +-"Could not find the authentication dialog for VPN connection type '%s'. " +-"Contact your system administrator." +-msgstr "" +-"VPN接続タイプ「%s」の認証ダイアログを見つけることができませんでした。システム" +-"管理者にご連絡ください。 " +- +-#: ../gnome/applet/vpn-password-dialog.c:191 +-#, c-format +-msgid "" +-"There was a problem launching the authentication dialog for VPN connection " +-"type '%s'. Contact your system administrator." +-msgstr "" +-"VPN接続タイプ「%s」の認証ダイアログを起動する際に問題が発生しました。システム" +-"管理者にご連絡ください。 " +- +-#: ../gnome/applet/applet.glade.h:1 +-msgid " " +-msgstr " " +- +-#: ../gnome/applet/applet.glade.h:2 +-msgid "" +-"Active Connection Information" +-msgstr "有効な接続情報" +- +-#: ../gnome/applet/applet.glade.h:4 +-#, no-c-format +-msgid "" +-"Passphrase Required by Wireless " +-"Network\n" +-"\n" +-"A passphrase or encryption key is required to access the wireless network '%" +-"s'." +-msgstr "" +-"無線ネットワークにはパスフレーズが必要" +-"です\n" +-"\n" +-"無線ネットワーク '%s' にアクセスするにはパスフレーズか暗号化鍵が必要です" +- +-#: ../gnome/applet/applet.glade.h:8 +-#, no-c-format +-msgid "" +-"Reduced Network Functionality\n" +-"\n" +-"%s It will not be completely functional." +-msgstr "" +-"縮小されたネットワーク機能\n" +-"\n" +-"%s 完全には機能しません。" +- +-#: ../gnome/applet/applet.glade.h:12 +-#, no-c-format +-msgid "" +-"Wireless Network Login Confirmation\n" +-"\n" +-"You have chosen to log in to the wireless network '%s'. If you are sure " +-"that this wireless network is secure, click the checkbox below and " +-"NetworkManager will not require confirmation on subsequent log ins." +-msgstr "" +-"Wireless Network Login 確認\n" +-"\n" +-"ワイヤレスネットワーク「%s」にログインするように選択しました。このワイヤレス" +-"ネットワークがセキュアである場合、次のチェックボックスを有効にすると、" +-"NetworkManagerは次回以降のログインで確認を要求しません。" +- +-#: ../gnome/applet/applet.glade.h:15 +-msgid "Anonymous Identity:" +-msgstr "匿名識別情報:" +- +-#: ../gnome/applet/applet.glade.h:16 +-msgid "Authentication:" +-msgstr "認証:" +- +-#: ../gnome/applet/applet.glade.h:17 +-msgid "Broadcast Address:" +-msgstr "ブロードキャストアドレス:" +- +-#: ../gnome/applet/applet.glade.h:18 +-msgid "CA Certificate File:" +-msgstr "CA認定ファイル:" +- +-#: ../gnome/applet/applet.glade.h:19 +-msgid "C_onnect" +-msgstr "接続(_O)" +- +-#: ../gnome/applet/applet.glade.h:20 +-msgid "Client Certificate File:" +-msgstr "クライアント認定ファイル:" +- +-#: ../gnome/applet/applet.glade.h:21 +-msgid "Connection Information" +-msgstr "接続情報" +- +-#: ../gnome/applet/applet.glade.h:22 +-msgid "Default Route:" +-msgstr "デフォルトルート:" +- +-#: ../gnome/applet/applet.glade.h:23 +-msgid "Destination Address:" +-msgstr "送信先アドレス:" +- +-#: ../gnome/applet/applet.glade.h:24 +-msgid "Driver:" +-msgstr "ドライバ:" +- +-#: ../gnome/applet/applet.glade.h:25 +-msgid "EAP Method:" +-msgstr "EAPメソッド:" +- +-#: ../gnome/applet/applet.glade.h:26 +-msgid "Hardware Address:" +-msgstr "ハードウェアアドレス:" +- +-#: ../gnome/applet/applet.glade.h:27 +-msgid "IP Address:" +-msgstr "IPアドレス:" +- +-#: ../gnome/applet/applet.glade.h:28 +-msgid "Identity:" +-msgstr "識別情報:" +- +-#: ../gnome/applet/applet.glade.h:29 +-msgid "Interface:" +-msgstr "インタフェース:" +- +-#: ../gnome/applet/applet.glade.h:30 +-msgid "Key Type:" +-msgstr "鍵の種別" +- +-#: ../gnome/applet/applet.glade.h:31 +-msgid "Key:" +-msgstr "キー:" +- +-#: ../gnome/applet/applet.glade.h:32 +-msgid "" +-"None\n" +-"WEP 128-bit Passphrase\n" +-"WEP 64/128-bit Hex\n" +-"WEP 64/128-bit ASCII\n" +-msgstr "" +-"なし\n" +-"WEP 128-ビットパスフレーズ\n" +-"WEP 64/128-16ビット\n" +-"WEP 64/128-ビット ASCII\n" +- +-#: ../gnome/applet/applet.glade.h:37 +-msgid "" +-"Open System\n" +-"Shared Key" +-msgstr "" +-"システム\n" +-"共有キーを開く" +- +-#: ../gnome/applet/applet.glade.h:39 +-msgid "Other Wireless Network..." +-msgstr "他のワイヤレスネットワーク..." +- +-#: ../gnome/applet/applet.glade.h:40 +-msgid "Passphrase:" +-msgstr "パスフレーズ:" +- +-#: ../gnome/applet/applet.glade.h:41 +-msgid "Password:" +-msgstr "パスワード:" +- +-#: ../gnome/applet/applet.glade.h:42 +-msgid "Primary DNS:" +-msgstr "プライマリDNS:" +- +-#: ../gnome/applet/applet.glade.h:43 +-msgid "Private Key File:" +-msgstr "プライベートキーファイル:" +- +-#: ../gnome/applet/applet.glade.h:44 +-msgid "Private Key Password:" +-msgstr "プライベートキーパスワード:" +- +-#: ../gnome/applet/applet.glade.h:45 +-msgid "Secondary DNS:" +-msgstr "セカンダリDNS:" +- +-#: ../gnome/applet/applet.glade.h:46 +-msgid "Select the CA Certificate File" +-msgstr "Ca証明書ファイルを選択する" +- +-#: ../gnome/applet/applet.glade.h:47 +-msgid "Select the Client Certificate File" +-msgstr "クライアント証明書ファイルを選択する" +- +-#: ../gnome/applet/applet.glade.h:48 +-msgid "Select the Private Key File" +-msgstr "プライベートキーファイルを選択する" +- +-#: ../gnome/applet/applet.glade.h:49 +-msgid "Show key" +-msgstr "キーを表示する" +- +-#: ../gnome/applet/applet.glade.h:50 +-msgid "Show passphrase" +-msgstr "パスフレーズを表示する" +- +-#: ../gnome/applet/applet.glade.h:51 +-msgid "Show password" +-msgstr "パスワードを表示する" +- +-#: ../gnome/applet/applet.glade.h:52 +-msgid "Show passwords" +-msgstr "パスワードを表示する" +- +-#: ../gnome/applet/applet.glade.h:53 +-msgid "Speed:" +-msgstr "速度:" +- +-#: ../gnome/applet/applet.glade.h:54 +-msgid "Subnet Mask:" +-msgstr "サブネットマスク:" +- +-#: ../gnome/applet/applet.glade.h:55 +-msgid "Type:" +-msgstr "種別:" +- +-#: ../gnome/applet/applet.glade.h:56 +-msgid "User Name:" +-msgstr "ユーザ名:" +- +-#: ../gnome/applet/applet.glade.h:57 +-msgid "Wireless Network Key Required" +-msgstr "無線ネットワーク鍵が必要です" +- +-#: ../gnome/applet/applet.glade.h:58 +-msgid "Wireless _adapter:" +-msgstr "無線アダプタ(_A):" +- +-#: ../gnome/applet/applet.glade.h:59 +-msgid "_Always Trust this Wireless Network" +-msgstr "このワイヤレスネットワークを常に信頼する(_A)" +- +-#: ../gnome/applet/applet.glade.h:60 +-msgid "_Don't remind me again" +-msgstr "このダイアログを再表示しない(_D)" +- +-#: ../gnome/applet/applet.glade.h:61 +-msgid "_Login to Network" +-msgstr "ネットワークにログイン(_L)" +- +-#: ../gnome/applet/applet.glade.h:62 +-msgid "_Network Name:" +-msgstr "ネットワーク名(_N):" +- +-#: ../gnome/applet/applet.glade.h:63 +-msgid "_Wireless Security:" +-msgstr "ワイヤレスセキュリティ(_W):" +- +-#: ../gnome/vpn-properties/nm-vpn-properties.c:383 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:405 + msgid "Cannot add VPN connection" +-msgstr "VPN接続を追加できません" ++msgstr "VPN 接続を追加できません" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:385 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:407 + msgid "" + "No suitable VPN software was found on your system. Contact your system " + "administrator." + msgstr "" +-"システムに適切なVPNソフトウェアが見つかりませんでした。システム管理者にご連絡" +-"ください。" ++"システムに適切な VPN ソフトウェアがみつかりませんでした。システム管理者にご連" ++"絡ください。" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:437 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:457 + msgid "Cannot import VPN connection" +-msgstr "VPN接続をインポートできません" ++msgstr "VPN 接続をインポートできません" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:439 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:459 + #, c-format + msgid "" + "Cannot find suitable software for VPN connection type '%s' to import the " + "file '%s'. Contact your system administrator." + msgstr "" +-"VPN接続タイプ「%s」がファイル「%s」をインポートするために適切なソフトウェアが" +-"見つかりません。システム管理者にご連絡ください。" ++"VPN 接続タイプ「%s」がファイル「%s」をインポートするために適切なソフトウェア" ++"が見つかりません。システム管理者にご連絡ください。" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:579 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:596 + #, c-format + msgid "Error retrieving VPN connection '%s'" +-msgstr "VPN接続「%s」の取得エラー" ++msgstr "VPN 接続「%s」の取得エラー" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:582 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:599 + #, c-format + msgid "" + "Could not find the UI files for VPN connection type '%s'. Contact your " + "system administrator." + msgstr "" +-"VPN接続タイプ「%s」のUIファイルが見つかりませんでした。システム管理者にご連絡" +-"ください。" ++"VPN 接続タイプ「%s」の UI ファイルがみつかりませんでした。システム管理者にご" ++"連絡ください。" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:739 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:746 + #, c-format + msgid "Delete VPN connection \"%s\"?" +-msgstr "VPN接続「%s」を削除しますか?" ++msgstr "VPN 接続「%s」を削除しますか?" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:742 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:749 + #, c-format + msgid "" + "All information about the VPN connection \"%s\" will be lost and you may " + "need your system administrator to provide information to create a new " + "connection." + msgstr "" +-"VPN接続「%s」に関する情報はすべて失われます。システム管理者が新しい接続を作成" +-"するための情報を提供する必要があります。" ++"VPN 接続「%s」に関する情報はすべて失われます。システム管理者が新しい接続を作" ++"成するための情報を提供する必要があります。" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:959 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:963 + msgid "Unable to load" + msgstr "ロードできません" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:961 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:965 + msgid "Cannot find some needed resources (the glade file)!" + msgstr "必要なリソースが見つかりません(グレードファイル)。" + + #. Edit dialog +-#: ../gnome/vpn-properties/nm-vpn-properties.c:1071 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:1084 + msgid "Edit VPN Connection" +-msgstr "VPN接続を編集します" ++msgstr "VPN 接続を編集します" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:1 + msgid "Add a new VPN connection" +-msgstr "新しいVPN接続を追加します" ++msgstr "新しい VPN 接続を追加します" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:2 + msgid "Choose which type of VPN connection you wish to create." +-msgstr "作成するVPN接続のタイプを選択します。" ++msgstr "作成する VPN 接続のタイプを選択します。" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:3 + msgid "Connect to:" +@@ -795,19 +97,19 @@ + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:4 + msgid "Create VPN Connection" +-msgstr "VPN接続を作成する" ++msgstr "VPN 接続を作成する" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:5 + msgid "Create VPN Connection - 1 of 2" +-msgstr "VPN接続を作成します - 1/2" ++msgstr "VPN 接続を作成します - 1/2" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:6 + msgid "Create VPN Connection - 2 of 2" +-msgstr "VPN接続を作成します - 2/2" ++msgstr "VPN 接続を作成します - 2/2" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:7 + msgid "Delete the selected VPN connection" +-msgstr "選択したVPN接続を削除します " ++msgstr "選択した VPN 接続を削除します " + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:8 + msgid "E_xport" +@@ -815,19 +117,19 @@ + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:9 + msgid "Edit the selected VPN connection" +-msgstr "選択したVPN接続を編集する" ++msgstr "選択した VPN 接続を編集する" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:10 + msgid "Export the VPN settings to a file" +-msgstr "VPN設定をファイルにエクスポートする" ++msgstr "VPN 設定をファイルにエクスポートする" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:11 + msgid "Export the selected VPN connection to a file" +-msgstr "選択したVPN接続をファイルにエクスポートする" ++msgstr "選択した VPN 接続をファイルにエクスポートする" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:12 + msgid "Finish Creating VPN Connection" +-msgstr "VPN接続の作成を完了する" ++msgstr "VPN 接続の作成を完了する" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:13 + msgid "Manage Virtual Private Network Connections" +@@ -841,22 +143,22 @@ + "It will require some information, such as IP addresses and secrets. Please " + "see your system administrator to obtain this information." + msgstr "" +-"このアシスタントに従って、仮想プライベートネットワーク(VPN)への接続を作成でき" +-"ます。\n" ++"このアシスタントに従って、仮想プライベートネットワーク (VPN) への接続を作成で" ++"きます。\n" + "\n" +-"IPアドレスなどの情報が必要です。" ++"IP アドレスなどの情報が必要です。" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:17 + msgid "VPN Connections" +-msgstr "VPN接続" ++msgstr "VPN 接続" + + #: ../src/nm-ap-security-wep.c:52 + msgid "40-bit WEP" +-msgstr "40-ビットWEP" ++msgstr "40-ビット WEP" + + #: ../src/nm-ap-security-wep.c:54 + msgid "104-bit WEP" +-msgstr "104-ビットWEP" ++msgstr "104-ビット WEP" + + #: ../src/nm-ap-security-wpa-psk.c:50 + msgid "WPA TKIP" +@@ -868,7 +170,7 @@ + + #: ../src/nm-ap-security-wpa-psk.c:54 + msgid "WPA Automatic" +-msgstr "WPA自動" ++msgstr "WPA 自動" + + #: ../src/nm-ap-security-wpa-psk.c:59 + msgid "WPA2 TKIP" +@@ -880,13 +182,13 @@ + + #: ../src/nm-ap-security-wpa-psk.c:63 + msgid "WPA2 Automatic" +-msgstr "WPA2自動" ++msgstr "WPA2 自動" + +-#: ../src/nm-ap-security.c:320 ++#: ../src/nm-ap-security.c:338 + msgid "none" + msgstr "なし" + +-#: ../src/nm-netlink-monitor.c:154 ++#: ../src/nm-netlink-monitor.c:170 + #, c-format + msgid "" + "unable to create netlink socket for monitoring wired ethernet devices - %s" +@@ -894,7 +196,7 @@ + "有線イーサネットデバイスをモニターするネットリンクソケットを作成できません - " + "%s" + +-#: ../src/nm-netlink-monitor.c:172 ++#: ../src/nm-netlink-monitor.c:188 + #, c-format + msgid "" + "unable to bind to netlink socket for monitoring wired ethernet devices - %s" +@@ -902,84 +204,39 @@ + "有線イーサネットデバイスをモニターするネットリンクソケットをバインドできませ" + "ん - %s " + +-#: ../src/nm-netlink-monitor.c:405 ++#: ../src/nm-netlink-monitor.c:426 ++#, c-format + msgid "operation took too long" + msgstr "操作に時間がかかり過ぎました" + +-#: ../src/nm-netlink-monitor.c:502 ++#: ../src/nm-netlink-monitor.c:523 ++#, c-format + msgid "received data from wrong type of sender" + msgstr "不正な送信者からデータを受信しました" + +-#: ../src/nm-netlink-monitor.c:515 ++#: ../src/nm-netlink-monitor.c:536 ++#, c-format + msgid "received data from unexpected sender" + msgstr "予期せぬ送信者からデータを受信しました" + +-#: ../src/nm-netlink-monitor.c:646 ++#: ../src/nm-netlink-monitor.c:665 ++#, c-format + msgid "too much data was sent over socket and some of it was lost" + msgstr "ソケット上に送信されたデータが多過ぎ、その一部は失われました" + +-#: ../src/nm-netlink-monitor.c:735 ++#: ../src/nm-netlink-monitor.c:775 ++#, c-format + msgid "error occurred while waiting for data on socket" + msgstr "ソケット上でデータを待機中にエラーが発生しました" + +-#: ../gnome/applet/applet-dbus-devices.c:898 +-#, c-format +-msgid "You are now connected to the Ad-Hoc wireless network '%s'." +-msgstr "Ad-Hocワイヤレスネットワーク「%s」に現在接続されています。" ++#: ../src/nm-ap-security-wpa-eap.c:95 ../src/nm-ap-security-wpa-eap.c:119 ++msgid "WPA2 Enterprise" ++msgstr "WPA Enterprise" + +-#: ../gnome/applet/applet-dbus-devices.c:903 +-#, c-format +-msgid "You are now connected to the wireless network '%s'." +-msgstr "ワイヤレスネットワーク「%s」に現在接続されています。" +- +-#: ../gnome/applet/applet-dbus-devices.c:910 +-msgid "You are now connected to the wired network." +-msgstr "有線ネットワークに現在接続されています。" +- +-#: ../gnome/applet/applet-dbus-devices.c:916 +-msgid "Connection Established" +-msgstr "接続が確立されました" +- +-#: ../gnome/applet/applet-dbus-devices.c:959 +-msgid "Disconnected" +-msgstr "切断しました" +- +-#: ../gnome/applet/applet-dbus-devices.c:960 +-msgid "The network connection has been disconnected." +-msgstr "ネットワーク接続が解除されました。" +- +-#~ msgid "Modify Wireless Networks" +-#~ msgstr "無線ネットワークを変更" +- +-#~ msgid "*" +-#~ msgstr "*" +- +-#~ msgid "" +-#~ "128-bit Passphrase (WEP)\n" +-#~ "Ascii Key (WEP)\n" +-#~ "Hex Key (WEP)" +-#~ msgstr "" +-#~ "128-bit パスフレーズ (WEP)\n" +-#~ "ASCII 鍵 (WEP)\n" +-#~ "16 進鍵 (WEP)" +- +-#~ msgid "Ascii Key:" +-#~ msgstr "ASCII 鍵:" +- +-#~ msgid "You must log in to access the private network %s" +-#~ msgstr "" +-#~ "プライベートネットワーク %s にアクセスするにはログインしなければいけません" +- +-#~ msgid "Stop automatically running the networking applet?" +-#~ msgstr "ネットワークアップレットの実行を自動的に停止しますか?" +- +-#~ msgid "" +-#~ "The networking applet will now terminate, but will automatically launch " +-#~ "the next time you login. Would you like to stop automatically running " +-#~ "the networking applet on login?" +-#~ msgstr "" +-#~ "ネットワークアプレットは終了しますが、次にログインする際に自動的に起動しま" +-#~ "す。ログイン時にネットワークアプレットの自動起動を停止しますか?" ++#: ../src/nm-ap-security-wpa-eap.c:97 ../src/nm-ap-security-wpa-eap.c:124 ++msgid "WPA Enterprise" ++msgstr "WPA Enterprise" + +-#~ msgid "_Remove" +-#~ msgstr "削除(_R)" ++#: ../src/nm-ap-security-leap.c:66 ../src/nm-ap-security-leap.c:82 ++msgid "LEAP" ++msgstr "LEAP" +diff -urN NetworkManager-0.6.5/po/nb.po NetworkManager-SVNr3284/po/nb.po +--- NetworkManager-0.6.5/po/nb.po 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/po/nb.po 2008-02-04 16:01:02.000000000 +0100 +@@ -8,8 +8,8 @@ + msgstr "" + "Project-Id-Version: NetworkManager 0.1.x\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2006-05-29 18:33+0200\n" +-"PO-Revision-Date: 2006-03-02 12:59+0100\n" ++"POT-Creation-Date: 2007-06-04 12:37+0200\n" ++"PO-Revision-Date: 2007-06-04 12:38+0200\n" + "Last-Translator: Kjartan Maraas \n" + "Language-Team: Norwegian Bokmal \n" + "MIME-Version: 1.0\n" +@@ -17,710 +17,11 @@ + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + +-#: ../gnome/applet/applet-compat.c:171 ../gnome/applet/applet-dbus-info.c:919 +-#, c-format +-msgid "Passphrase for wireless network %s" +-msgstr "Passord for trÃ¥dløst nettverk %s" +- +-#: ../gnome/applet/applet-dbus.c:265 +-#, c-format +-msgid "Connection to the wireless network '%s' failed." +-msgstr "Tilkobling til trÃ¥dløst nettverk «%s» feilet." +- +-#: ../gnome/applet/applet-dbus.c:270 +-msgid "Connection to the wired network failed." +-msgstr "Tilkobling til trÃ¥dløst nettverk feilet." +- +-#: ../gnome/applet/applet.c:184 +-msgid "Error displaying connection information:" +-msgstr "Feil under visning av tilkoblingsinformasjon:" +- +-#: ../gnome/applet/applet.c:202 +-msgid "Could not find some required resources (the glade file)!" +-msgstr "Fant ikke nødvendige ressurser (glade-filen)." +- +-#: ../gnome/applet/applet.c:213 +-msgid "No active connections!" +-msgstr "Ingen aktive tilkoblinger!" +- +-#: ../gnome/applet/applet.c:234 +-#, c-format +-msgid "Wired Ethernet (%s)" +-msgstr "Kablet nettverk (%s)" +- +-#: ../gnome/applet/applet.c:236 +-#, c-format +-msgid "Wireless Ethernet (%s)" +-msgstr "TrÃ¥dløst nettverk (%s)" +- +-#: ../gnome/applet/applet.c:337 ../gnome/applet/applet.c:362 +-msgid "NetworkManager Applet" +-msgstr "NetworkManager panelprogram" +- +-#: ../gnome/applet/applet.c:339 ../gnome/applet/applet.c:364 +-msgid "Copyright © 2004-2005 Red Hat, Inc." +-msgstr "Opphavsrett © 2004-2005 Red Hat, Inc." +- +-#: ../gnome/applet/applet.c:340 ../gnome/applet/applet.c:365 +-msgid "" +-"Notification area applet for managing your network devices and connections." +-msgstr "Et panelprogram for Ã¥ hÃ¥ndtere nettverksenheter og tilkoblinger." +- +-#: ../gnome/applet/applet.c:343 ../gnome/applet/applet.c:370 +-msgid "translator-credits" +-msgstr "Kjartan Maraas " +- +-#: ../gnome/applet/applet.c:426 +-msgid "VPN Login Failure" +-msgstr "Feil ved VPN-pÃ¥logging" +- +-#: ../gnome/applet/applet.c:427 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a login failure." +-msgstr "Kunne ikke starte VPN-tilkobling «%s» pga en feil ved pÃ¥logging." +- +-#: ../gnome/applet/applet.c:431 +-msgid "VPN Start Failure" +-msgstr "Feil ved start av VPN" +- +-#: ../gnome/applet/applet.c:432 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' due to a failure launching the VPN " +-"program." +-msgstr "" +-"Kunne ikke starte VPN-tilkobling «%s» pÃ¥ grunn av feil ved oppstart av VPN-" +-"programmet." +- +-#: ../gnome/applet/applet.c:436 ../gnome/applet/applet.c:446 +-msgid "VPN Connect Failure" +-msgstr "Feil ved tilkobling av VPN" +- +-#: ../gnome/applet/applet.c:437 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a connection error." +-msgstr "Kunne ikke starte VPN-tilkobling «%s» pga en feil ved tilkobling." +- +-#: ../gnome/applet/applet.c:441 +-msgid "VPN Configuration Error" +-msgstr "Feil i konfigurasjon av VPN" +- +-#: ../gnome/applet/applet.c:442 +-#, c-format +-msgid "The VPN connection '%s' was not correctly configured." +-msgstr "VPN-tilkobling «%s» er ikke korrekt konfigurert." +- +-#: ../gnome/applet/applet.c:447 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' because the VPN server did not " +-"return an adequate network configuration." +-msgstr "" +-"Kunne ikke starte VPN-tilkobling «%s» fordi VPN-tjeneren ikke returnerte " +-"riktig nettverkskonfigurasjon." +- +-#: ../gnome/applet/applet.c:517 +-msgid "VPN Login Message" +-msgstr "PÃ¥loggingsmelding for VPN" +- +-#: ../gnome/applet/applet.c:741 ../gnome/applet/applet.c:2508 +-#: ../gnome/applet/other-network-dialog.c:453 +-#: ../gnome/applet/passphrase-dialog.c:228 +-msgid "" +-"The NetworkManager Applet could not find some required resources (the glade " +-"file was not found)." +-msgstr "" +-"NetworkManager fant ikke nødvendige ressurser (glade-filen ble ikke funnet)." +- +-#: ../gnome/applet/applet.c:753 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support wireless scanning." +-msgstr "Nettverksenheten «%s (%s)» støtter ikke søk etter trÃ¥dløse nettverk." +- +-#: ../gnome/applet/applet.c:761 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support link detection." +-msgstr "" +-"Nettverksenheten «%s (%s)» støtter ikke informasjon om tilkoblet status." +- +-#: ../gnome/applet/applet.c:908 +-#, c-format +-msgid "Preparing device %s for the wired network..." +-msgstr "Klargjør enhet %s for det trÃ¥dløse nettverket..." +- +-#: ../gnome/applet/applet.c:910 +-#, c-format +-msgid "Preparing device %s for the wireless network '%s'..." +-msgstr "Klargjør enhet %s for trÃ¥dløst nettverk «%s»..." +- +-#: ../gnome/applet/applet.c:918 +-#, c-format +-msgid "Configuring device %s for the wired network..." +-msgstr "Konfigurerer enhet %s for kablet nettverk..." +- +-#: ../gnome/applet/applet.c:920 +-#, c-format +-msgid "Attempting to join the wireless network '%s'..." +-msgstr "Forsøker Ã¥ bruke trÃ¥dløst nettverk «%s»..." +- +-#: ../gnome/applet/applet.c:928 +-#, c-format +-msgid "Waiting for Network Key for the wireless network '%s'..." +-msgstr "Venter pÃ¥ nettverksnøkkel for trÃ¥dløst nettverk «%s»..." +- +-#: ../gnome/applet/applet.c:936 ../gnome/applet/applet.c:946 +-msgid "Requesting a network address from the wired network..." +-msgstr "Ber om en nettverksadresse fra kablet nettverk..." +- +-#: ../gnome/applet/applet.c:938 ../gnome/applet/applet.c:948 +-#, c-format +-msgid "Requesting a network address from the wireless network '%s'..." +-msgstr "Ber om en nettverksadresse fra trÃ¥dløst nettverk «%s»..." +- +-#: ../gnome/applet/applet.c:956 +-msgid "Finishing connection to the wired network..." +-msgstr "Fullfører tilkobling til kablet nettverk..." +- +-#: ../gnome/applet/applet.c:958 +-#, c-format +-msgid "Finishing connection to the wireless network '%s'..." +-msgstr "Fullfører tilkobling til trÃ¥dløst nettverk «%s»..." +- +-#: ../gnome/applet/applet.c:1075 +-msgid "NetworkManager is not running" +-msgstr "NetworkManager kjører ikke" +- +-#: ../gnome/applet/applet.c:1083 ../gnome/applet/applet.c:1828 +-msgid "Networking disabled" +-msgstr "Nettverk deaktivert" +- +-#: ../gnome/applet/applet.c:1088 +-msgid "No network connection" +-msgstr "Ingen nettverksforbindelse" +- +-#: ../gnome/applet/applet.c:1093 +-msgid "Wired network connection" +-msgstr "Kablet nettverkforbindelse" +- +-#: ../gnome/applet/applet.c:1097 +-msgid "Connected to an Ad-Hoc wireless network" +-msgstr "Kobler til et Ad-Hoc trÃ¥dløst nettverk" +- +-#: ../gnome/applet/applet.c:1099 +-#, c-format +-msgid "Wireless network connection to '%s' (%d%%)" +-msgstr "TrÃ¥dløs nettverksforbindelse til «%s» (%d%%)" +- +-#: ../gnome/applet/applet.c:1120 +-#, c-format +-msgid "VPN connection to '%s'" +-msgstr "VPN-tilkobling til «%s»" +- +-#: ../gnome/applet/applet.c:1128 +-#, c-format +-msgid "VPN connecting to '%s'" +-msgstr "Kobler til «%s» via VPN" +- +-#: ../gnome/applet/applet.c:1541 +-msgid "_Connect to Other Wireless Network..." +-msgstr "_Koble til annet trÃ¥dløst nettverk..." +- +-#: ../gnome/applet/applet.c:1562 +-msgid "Create _New Wireless Network..." +-msgstr "Opprett _nytt trÃ¥dløst nettverk..." +- +-#: ../gnome/applet/applet.c:1685 +-msgid "_VPN Connections" +-msgstr "_VPN-tilkoblinger" +- +-#: ../gnome/applet/applet.c:1730 +-msgid "_Configure VPN..." +-msgstr "_Konfigurer VPN..." +- +-#: ../gnome/applet/applet.c:1734 +-msgid "_Disconnect VPN..." +-msgstr "Ko_ble fra VPN..." +- +-#: ../gnome/applet/applet.c:1756 +-msgid "_Dial Up Connections" +-msgstr "_Oppringte tilkoblinger" +- +-#. FIXME: We should save and then check the state of the devices and show Connect _or_ Disconnect for each item +-#: ../gnome/applet/applet.c:1767 +-#, c-format +-msgid "Connect to %s..." +-msgstr "Koble til %s..." +- +-#: ../gnome/applet/applet.c:1773 +-#, c-format +-msgid "Disconnect from %s..." +-msgstr "Koble fra %s..." +- +-#: ../gnome/applet/applet.c:1822 +-msgid "No network devices have been found" +-msgstr "Ingen nettverksenheter ble funnet" +- +-#: ../gnome/applet/applet.c:2014 +-msgid "NetworkManager is not running..." +-msgstr "NetworkManager kjører ikke..." +- +-#. 'Enable Networking' item +-#: ../gnome/applet/applet.c:2170 +-msgid "Enable _Networking" +-msgstr "_Aktiver nettverk" +- +-#. 'Enable Wireless' item +-#: ../gnome/applet/applet.c:2176 +-msgid "Enable _Wireless" +-msgstr "Aktiver _trÃ¥dløst nettverk" +- +-#. 'Connection Information' item +-#: ../gnome/applet/applet.c:2182 +-msgid "Connection _Information" +-msgstr "Tilkoblings_informasjon" +- +-#. Help item +-#: ../gnome/applet/applet.c:2193 +-msgid "_Help" +-msgstr "_Hjelp" +- +-#. About item +-#: ../gnome/applet/applet.c:2202 +-msgid "_About" +-msgstr "_Om" +- +-#: ../gnome/applet/applet.c:2667 +-msgid "" +-"The NetworkManager applet could not find some required resources. It cannot " +-"continue.\n" +-msgstr "" +-"Panelprogrammet for NetworkManager fant ikke noen av de nødvendige " +-"ressursene. Det kan ikke fortsette.\n" +- +-#: ../gnome/applet/wireless-security-option.c:157 +-msgid "Open System" +-msgstr "Åpent system" +- +-#: ../gnome/applet/wireless-security-option.c:160 +-msgid "Shared Key" +-msgstr "Delt nøkkel" +- +-#: ../gnome/applet/wireless-security-option.c:208 +-msgid "Automatic (Default)" +-msgstr "Automatisk (forvalgt)" +- +-#: ../gnome/applet/wireless-security-option.c:215 +-msgid "AES-CCMP" +-msgstr "AES-CCMP" +- +-#: ../gnome/applet/wireless-security-option.c:223 +-msgid "TKIP" +-msgstr "TKIP" +- +-#: ../gnome/applet/wireless-security-option.c:231 +-msgid "Dynamic WEP" +-msgstr "Dynamisk WEP" +- +-#: ../gnome/applet/wso-none.c:53 +-msgid "None" +-msgstr "Ingen" +- +-#: ../gnome/applet/wso-wep-ascii.c:138 +-msgid "WEP 64/128-bit ASCII" +-msgstr "WEP 64/128-bit ASCII" +- +-#: ../gnome/applet/wso-wep-hex.c:135 +-msgid "WEP 64/128-bit Hex" +-msgstr "WEP 64/128-bit heksadesimal" +- +-#: ../gnome/applet/wso-wep-passphrase.c:135 +-msgid "WEP 128-bit Passphrase" +-msgstr "WEP 128-bit passord:" +- +-#: ../gnome/applet/wso-wpa-eap.c:237 +-msgid "PEAP" +-msgstr "PEAP" +- +-#: ../gnome/applet/wso-wpa-eap.c:238 +-msgid "TLS" +-msgstr "TLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:239 +-msgid "TTLS" +-msgstr "TTLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:247 ../src/nm-ap-security-wpa-eap.c:92 +-#: ../src/nm-ap-security-wpa-eap.c:116 +-msgid "WPA2 Enterprise" +-msgstr "WPA2 enterprise" +- +-#: ../gnome/applet/wso-wpa-eap.c:249 ../src/nm-ap-security-wpa-eap.c:94 +-#: ../src/nm-ap-security-wpa-eap.c:121 +-msgid "WPA Enterprise" +-msgstr "WPA enterprise" +- +-#: ../gnome/applet/wso-wpa-psk.c:178 +-msgid "WPA2 Personal" +-msgstr "WPA2 personlig" +- +-#: ../gnome/applet/wso-wpa-psk.c:180 +-msgid "WPA Personal" +-msgstr "WPA personlig" +- +-#: ../gnome/applet/eggtrayicon.c:134 +-msgid "Orientation" +-msgstr "Orientering" +- +-#: ../gnome/applet/eggtrayicon.c:135 +-msgid "The orientation of the tray." +-msgstr "Orientering for trauet." +- +-#: ../gnome/applet/menu-items.c:88 +-#, c-format +-msgid "Wired Network (%s)" +-msgstr "Kablet nettverk (%s)" +- +-#: ../gnome/applet/menu-items.c:91 +-msgid "_Wired Network" +-msgstr "_Kablet nettverk" +- +-#: ../gnome/applet/menu-items.c:162 +-#, c-format +-msgid "Wireless Network (%s)" +-msgid_plural "Wireless Networks (%s)" +-msgstr[0] "TrÃ¥dløst nettverk (%s)" +-msgstr[1] "TrÃ¥dløse nettverk (%s)" +- +-#: ../gnome/applet/menu-items.c:164 +-msgid "Wireless Network" +-msgid_plural "Wireless Networks" +-msgstr[0] "TrÃ¥dløst nettverk" +-msgstr[1] "TrÃ¥dløse nettverk" +- +-#: ../gnome/applet/menu-items.c:343 +-msgid " (invalid Unicode)" +-msgstr " (ugyldig Unicode)" +- +-#: ../gnome/applet/other-network-dialog.c:352 +-#, c-format +-msgid "" +-"By default, the wireless network's name is set to your computer's name, %s, " +-"with no encryption enabled" +-msgstr "" +-"Nettverksnavnet er som standard satt til datamaskinens navn, %s, og " +-"kryptering er ikke aktivert." +- +-#: ../gnome/applet/other-network-dialog.c:358 +-msgid "Create new wireless network" +-msgstr "Opprett nytt trÃ¥dløst nettverk" +- +-#: ../gnome/applet/other-network-dialog.c:359 +-msgid "" +-"Enter the name and security settings of the wireless network you wish to " +-"create." +-msgstr "" +-"Oppgi navn og sikkerhetsinnstillinger for det trÃ¥dløse nettverket du ønsker " +-"Ã¥ opprette." +- +-#: ../gnome/applet/other-network-dialog.c:363 +-msgid "Create New Wireless Network" +-msgstr "Opprett nytt trÃ¥dløst nettverk" +- +-#: ../gnome/applet/other-network-dialog.c:368 +-msgid "Existing wireless network" +-msgstr "Eksisterende trÃ¥dløse nettverk" +- +-#: ../gnome/applet/other-network-dialog.c:369 +-msgid "Enter the name of the wireless network to which you wish to connect." +-msgstr "Oppgi navnet til det trÃ¥dløse nettverket du ønsker Ã¥ koble deg til." +- +-#: ../gnome/applet/other-network-dialog.c:371 +-msgid "Connect to Other Wireless Network" +-msgstr "Koble til annet trÃ¥dløst nettverk" +- +-#: ../gnome/applet/passphrase-dialog.c:215 +-msgid "Error connecting to wireless network" +-msgstr "Feil under tilkobling til trÃ¥dløst nettverk" +- +-#: ../gnome/applet/passphrase-dialog.c:216 +-msgid "" +-"The requested wireless network requires security capabilities unsupported by " +-"your hardware." +-msgstr "" +-"Valgt trÃ¥dløst nettverk krever en type sikkerhet som ikke er støttet av ditt " +-"nettverkskort." +- +-#: ../gnome/applet/vpn-password-dialog.c:151 +-#: ../gnome/applet/vpn-password-dialog.c:188 +-#, c-format +-msgid "Cannot start VPN connection '%s'" +-msgstr "Kan ikke starte VPN-tilkobling «%s»" +- +-#: ../gnome/applet/vpn-password-dialog.c:154 +-#, c-format +-msgid "" +-"Could not find the authentication dialog for VPN connection type '%s'. " +-"Contact your system administrator." +-msgstr "" +-"Fant ikke autentiseringsdialogen for VPN tilkoblingstypen «%s». Kontakt din " +-"systemadministrator." +- +-#: ../gnome/applet/vpn-password-dialog.c:191 +-#, c-format +-msgid "" +-"There was a problem launching the authentication dialog for VPN connection " +-"type '%s'. Contact your system administrator." +-msgstr "" +-"Det oppstod en feil under oppstart av autentiseringsdialogen for VPN " +-"tilkoblingstypen «%s». Kontakt din systemadministrator." +- +-#: ../gnome/applet/applet.glade.h:1 +-msgid " " +-msgstr " " +- +-#: ../gnome/applet/applet.glade.h:2 +-msgid "" +-"Active Connection Information" +-msgstr "" +-"Informasjon om aktiv tilkobling" +- +-#: ../gnome/applet/applet.glade.h:4 +-#, no-c-format +-msgid "" +-"Passphrase Required by Wireless " +-"Network\n" +-"\n" +-"A passphrase or encryption key is required to access the wireless network '%" +-"s'." +-msgstr "" +-"Passord kreves for trÃ¥dløst nettverk\n" +-"\n" +-"Ett passord eller en krypteringsnøkkel kreves for Ã¥ aksessere trÃ¥dløst " +-"nettverk «%s»." +- +-#: ../gnome/applet/applet.glade.h:8 +-#, no-c-format +-msgid "" +-"Reduced Network Functionality\n" +-"\n" +-"%s It will not be completely functional." +-msgstr "" +-"Redusert nettverksfunksjonalitet\n" +-"\n" +-"%s Ikke fullstendig funksjonell." +- +-#: ../gnome/applet/applet.glade.h:12 +-#, no-c-format +-msgid "" +-"Wireless Network Login Confirmation\n" +-"\n" +-"You have chosen to log in to the wireless network '%s'. If you are sure " +-"that this wireless network is secure, click the checkbox below and " +-"NetworkManager will not require confirmation on subsequent log ins." +-msgstr "" +-"Bekreftelse av pÃ¥logging pÃ¥ trÃ¥dløst " +-"nettverk\n" +-"\n" +-"Du har valgt Ã¥ logge inn pÃ¥ trÃ¥dløst nettverk «%s». Hvis du er sikker pÃ¥ at " +-"dette trÃ¥dløse nettverket er sikkert kan du be NetworkManager om Ã¥ slutte Ã¥ " +-"spørre spørsmÃ¥l nÃ¥r du kobler deg til det ved Ã¥ krysse av i boksen nedenfor." +- +-#: ../gnome/applet/applet.glade.h:15 +-msgid "Anonymous Identity:" +-msgstr "Anonym identitet:" +- +-#: ../gnome/applet/applet.glade.h:16 +-msgid "Authentication:" +-msgstr "Autentisering:" +- +-#: ../gnome/applet/applet.glade.h:17 +-msgid "Broadcast Address:" +-msgstr "Kringkastingsadresse:" +- +-#: ../gnome/applet/applet.glade.h:18 +-msgid "CA Certificate File:" +-msgstr "Sertifikatfil for CA:" +- +-#: ../gnome/applet/applet.glade.h:19 +-msgid "C_onnect" +-msgstr "K_oble til" +- +-#: ../gnome/applet/applet.glade.h:20 +-msgid "Client Certificate File:" +-msgstr "Sertifikatfil for klient:" +- +-#: ../gnome/applet/applet.glade.h:21 +-msgid "Connection Information" +-msgstr "Tilkoblingsinformasjon" +- +-#: ../gnome/applet/applet.glade.h:22 +-msgid "Default Route:" +-msgstr "Forvalgt rute:" +- +-#: ../gnome/applet/applet.glade.h:23 +-msgid "Destination Address:" +-msgstr "MÃ¥ladresse:" +- +-#: ../gnome/applet/applet.glade.h:24 +-msgid "Driver:" +-msgstr "Driver:" +- +-#: ../gnome/applet/applet.glade.h:25 +-msgid "EAP Method:" +-msgstr "EAP-metode:" +- +-#: ../gnome/applet/applet.glade.h:26 +-msgid "Hardware Address:" +-msgstr "Maskinvareadresse:" +- +-#: ../gnome/applet/applet.glade.h:27 +-msgid "IP Address:" +-msgstr "IP adresse:" +- +-#: ../gnome/applet/applet.glade.h:28 +-msgid "Identity:" +-msgstr "Identitet:" +- +-#: ../gnome/applet/applet.glade.h:29 +-msgid "Interface:" +-msgstr "Grensesnitt:" +- +-#: ../gnome/applet/applet.glade.h:30 +-msgid "Key Type:" +-msgstr "Nøkkeltype:" +- +-#: ../gnome/applet/applet.glade.h:31 +-msgid "Key:" +-msgstr "Nøkkel:" +- +-#: ../gnome/applet/applet.glade.h:32 +-msgid "" +-"None\n" +-"WEP 128-bit Passphrase\n" +-"WEP 64/128-bit Hex\n" +-"WEP 64/128-bit ASCII\n" +-msgstr "" +-"Ingen\n" +-"WEP passord\n" +-"WEP 64/128-bit heksadesimal\n" +-"WEP 64/128-bit ASCII\n" +- +-#: ../gnome/applet/applet.glade.h:37 +-msgid "" +-"Open System\n" +-"Shared Key" +-msgstr "" +-"Åpent system\n" +-"Delt nøkkel" +- +-#: ../gnome/applet/applet.glade.h:39 +-msgid "Other Wireless Network..." +-msgstr "Annet trÃ¥dløst nettverk..." +- +-#: ../gnome/applet/applet.glade.h:40 +-msgid "Passphrase:" +-msgstr "Passord:" +- +-#: ../gnome/applet/applet.glade.h:41 +-msgid "Password:" +-msgstr "Passord:" +- +-#: ../gnome/applet/applet.glade.h:42 +-msgid "Primary DNS:" +-msgstr "Primær DNS:" +- +-#: ../gnome/applet/applet.glade.h:43 +-msgid "Private Key File:" +-msgstr "Privat nøkkelfil:" +- +-#: ../gnome/applet/applet.glade.h:44 +-msgid "Private Key Password:" +-msgstr "Passord for privat nøkkel:" +- +-#: ../gnome/applet/applet.glade.h:45 +-msgid "Secondary DNS:" +-msgstr "Sekundær DNS:" +- +-#: ../gnome/applet/applet.glade.h:46 +-msgid "Select the CA Certificate File" +-msgstr "Velg sertifikatfil for CA" +- +-#: ../gnome/applet/applet.glade.h:47 +-msgid "Select the Client Certificate File" +-msgstr "Velg sertifikatfil for klient" +- +-#: ../gnome/applet/applet.glade.h:48 +-msgid "Select the Private Key File" +-msgstr "Velg fil med privat nøkkel" +- +-#: ../gnome/applet/applet.glade.h:49 +-msgid "Show key" +-msgstr "Vis nøkkel" +- +-#: ../gnome/applet/applet.glade.h:50 +-msgid "Show passphrase" +-msgstr "Vis passord" +- +-#: ../gnome/applet/applet.glade.h:51 +-msgid "Show password" +-msgstr "Vis passord" +- +-#: ../gnome/applet/applet.glade.h:52 +-msgid "Show passwords" +-msgstr "Vis passord" +- +-#: ../gnome/applet/applet.glade.h:53 +-msgid "Speed:" +-msgstr "Hastighet:" +- +-#: ../gnome/applet/applet.glade.h:54 +-msgid "Subnet Mask:" +-msgstr "Subnettmaske:" +- +-#: ../gnome/applet/applet.glade.h:55 +-msgid "Type:" +-msgstr "Type:" +- +-#: ../gnome/applet/applet.glade.h:56 +-msgid "User Name:" +-msgstr "Brukernavn:" +- +-#: ../gnome/applet/applet.glade.h:57 +-msgid "Wireless Network Key Required" +-msgstr "Nøkkel for trÃ¥dløst nettverk kreves" +- +-#: ../gnome/applet/applet.glade.h:58 +-msgid "Wireless _adapter:" +-msgstr "TrÃ¥dløst _kort:" +- +-#: ../gnome/applet/applet.glade.h:59 +-msgid "_Always Trust this Wireless Network" +-msgstr "Stol _alltid pÃ¥ dette trÃ¥dløse nettverket" +- +-#: ../gnome/applet/applet.glade.h:60 +-msgid "_Don't remind me again" +-msgstr "_Ikke vis pÃ¥minnelse igjen" +- +-#: ../gnome/applet/applet.glade.h:61 +-msgid "_Login to Network" +-msgstr "_Logg pÃ¥ nettverk" +- +-#: ../gnome/applet/applet.glade.h:62 +-msgid "_Network Name:" +-msgstr "_Nettverksnavn:" +- +-#: ../gnome/applet/applet.glade.h:63 +-msgid "_Wireless Security:" +-msgstr "Tr_Ã¥dløs sikkerhet:" +- +-#: ../gnome/vpn-properties/nm-vpn-properties.c:383 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:405 + msgid "Cannot add VPN connection" + msgstr "Kan ikke legge til VPN-tilkobling" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:385 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:407 + msgid "" + "No suitable VPN software was found on your system. Contact your system " + "administrator." +@@ -728,11 +29,11 @@ + "Ingen passende VPN-programvare ble funnet pÃ¥ systemet. Kontakt din " + "systemadministrator." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:437 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:457 + msgid "Cannot import VPN connection" + msgstr "Kan ikke importere VPN-tilkobling" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:439 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:459 + #, c-format + msgid "" + "Cannot find suitable software for VPN connection type '%s' to import the " +@@ -741,12 +42,12 @@ + "Kan ikke finne passende programvare for VPN-tilkobling av type «%s» for " + "import av fil «%s». Kontakt din sysstemadministrator." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:579 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:596 + #, c-format + msgid "Error retrieving VPN connection '%s'" + msgstr "Feil under henting av VPN tilkobling «%s»" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:582 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:599 + #, c-format + msgid "" + "Could not find the UI files for VPN connection type '%s'. Contact your " +@@ -755,12 +56,12 @@ + "Kunne ikke finne brukergrensesnittfiler for VPN-tilkobling type «%s». " + "Kontakt din systemadministrator." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:739 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:746 + #, c-format + msgid "Delete VPN connection \"%s\"?" + msgstr "Slett VPN-tilkobling «%s»?" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:742 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:749 + #, c-format + msgid "" + "All information about the VPN connection \"%s\" will be lost and you may " +@@ -770,16 +71,16 @@ + "All informasjon om VPN-tilkobling «%s» vil gÃ¥ tapt og du vil kanskje trenge " + "hjelp fra din systemadministrator for Ã¥ opprette en ny tilkobling." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:959 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:963 + msgid "Unable to load" + msgstr "Kunne ikke laste" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:961 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:965 + msgid "Cannot find some needed resources (the glade file)!" + msgstr "Fant ikke nødvendige ressurser (glade-filen)." + + #. Edit dialog +-#: ../gnome/vpn-properties/nm-vpn-properties.c:1071 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:1084 + msgid "Edit VPN Connection" + msgstr "Rediger VPN-tilkobling" + +@@ -885,11 +186,11 @@ + msgid "WPA2 Automatic" + msgstr "WPA2 automatisk" + +-#: ../src/nm-ap-security.c:320 ++#: ../src/nm-ap-security.c:338 + msgid "none" + msgstr "ingen" + +-#: ../src/nm-netlink-monitor.c:154 ++#: ../src/nm-netlink-monitor.c:170 + #, c-format + msgid "" + "unable to create netlink socket for monitoring wired ethernet devices - %s" +@@ -897,7 +198,7 @@ + "kan ikke opprette netlink-plugg for overvÃ¥king av kablede ethernet-enheter - " + "%s" + +-#: ../src/nm-netlink-monitor.c:172 ++#: ../src/nm-netlink-monitor.c:188 + #, c-format + msgid "" + "unable to bind to netlink socket for monitoring wired ethernet devices - %s" +@@ -905,83 +206,35 @@ + "kan ikke binde til netlink-plugg for overvÃ¥king av kablede ethernet-enheter " + "- %s" + +-#: ../src/nm-netlink-monitor.c:405 ++#: ../src/nm-netlink-monitor.c:426 + msgid "operation took too long" + msgstr "operasjonen tok for lang tid" + +-#: ../src/nm-netlink-monitor.c:502 ++#: ../src/nm-netlink-monitor.c:523 + msgid "received data from wrong type of sender" + msgstr "mottok data fra feil type avsender" + +-#: ../src/nm-netlink-monitor.c:515 ++#: ../src/nm-netlink-monitor.c:536 + msgid "received data from unexpected sender" + msgstr "mottok data fra uventet avsender" + +-#: ../src/nm-netlink-monitor.c:646 ++#: ../src/nm-netlink-monitor.c:665 + msgid "too much data was sent over socket and some of it was lost" + msgstr "for mye data ble sendt over pluggen og noe data gikk tapt" + +-#: ../src/nm-netlink-monitor.c:735 ++#: ../src/nm-netlink-monitor.c:775 + msgid "error occurred while waiting for data on socket" + msgstr "det skjedde en feil under venting pÃ¥ data pÃ¥ sokkel" + +-#: ../gnome/applet/applet-dbus-devices.c:898 +-#, c-format +-msgid "You are now connected to the Ad-Hoc wireless network '%s'." +-msgstr "Du er nÃ¥ koblet til Ad-Hoc trÃ¥dløst nettverk «%s»." ++#: ../src/nm-ap-security-wpa-eap.c:96 ../src/nm-ap-security-wpa-eap.c:120 ++msgid "WPA2 Enterprise" ++msgstr "WPA2 enterprise" + +-#: ../gnome/applet/applet-dbus-devices.c:903 +-#, c-format +-msgid "You are now connected to the wireless network '%s'." +-msgstr "Du er nÃ¥ koblet til trÃ¥dløst nettverk «%s»." ++#: ../src/nm-ap-security-wpa-eap.c:98 ../src/nm-ap-security-wpa-eap.c:125 ++msgid "WPA Enterprise" ++msgstr "WPA enterprise" + +-#: ../gnome/applet/applet-dbus-devices.c:910 +-msgid "You are now connected to the wired network." +-msgstr "Du er nÃ¥ koblet til kablet nettverk." +- +-#: ../gnome/applet/applet-dbus-devices.c:916 +-msgid "Connection Established" +-msgstr "Tilkobling etablert" +- +-#: ../gnome/applet/applet-dbus-devices.c:959 +-msgid "Disconnected" +-msgstr "Frakoblet" +- +-#: ../gnome/applet/applet-dbus-devices.c:960 +-msgid "The network connection has been disconnected." +-msgstr "Nettverksforbindelsen er frakoblet." +- +-#~ msgid "WEP 40/128-bit ASCII" +-#~ msgstr "WEP 40/128-bit ASCII" +- +-#~ msgid "WEP 40/128-bit hex" +-#~ msgstr "WEP 40/128-bit heksadesimal" +- +-#~ msgid "WEP Passphrase" +-#~ msgstr "WEP Passord:" +- +-#~ msgid "" +-#~ "None\n" +-#~ "WEP Passphrase\n" +-#~ "WEP 40/128-bit hex\n" +-#~ "WEP 40/128-bit ASCII\n" +-#~ msgstr "" +-#~ "Ingen\n" +-#~ "WEP passord\n" +-#~ "WEP 40/128-bit heksadesimal\n" +-#~ "WEP 40/128-bit ASCII\n" +- +-#~ msgid "Stop automatically running the networking applet?" +-#~ msgstr "Stopp automatisk oppstart av nettverkspanelprogrammet?" +- +-#~ msgid "" +-#~ "The networking applet will now terminate, but will automatically launch " +-#~ "the next time you login. Would you like to stop automatically running " +-#~ "the networking applet on login?" +-#~ msgstr "" +-#~ "Nettverkspanelprogrammet vil nÃ¥ avslutte, men automatisk starte opp neste " +-#~ "gang du logger inn. Vil du stoppe automatisk oppstart av dette " +-#~ "panelprogrammet?" ++#: ../src/nm-ap-security-leap.c:66 ../src/nm-ap-security-leap.c:82 ++msgid "LEAP" ++msgstr "LEAP" + +-#~ msgid "_Remove" +-#~ msgstr "Fje_rn fra panelet" +diff -urN NetworkManager-0.6.5/po/vi.po NetworkManager-SVNr3284/po/vi.po +--- NetworkManager-0.6.5/po/vi.po 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/po/vi.po 2008-02-04 16:01:02.000000000 +0100 +@@ -1,790 +1,89 @@ + # Vietnamese translation for Network Manager. +-# Copyright © 2006 Gnome i18n Project for Vietnamese. +-# Clytie Siddall , 2006. ++# Copyright © 2007 Gnome i18n Project for Vietnamese. ++# Clytie Siddall , 2006-2007. + # + msgid "" + msgstr "" + "Project-Id-Version: NetworkManager HEAD\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2006-05-29 18:33+0200\n" +-"PO-Revision-Date: 2006-02-28 17:28+1030\n" ++"POT-Creation-Date: 2007-03-03 03:27+0000\n" ++"PO-Revision-Date: 2007-09-14 22:38+0930\n" + "Last-Translator: Clytie Siddall \n" + "Language-Team: Vietnamese \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"Plural-Forms: nplurals=1; plural=0\n" +-"X-Generator: LocFactoryEditor 1.6b36\n" ++"Plural-Forms: nplurals=1; plural=0;\n" ++"X-Generator: LocFactoryEditor 1.7b1\n" + +-#: ../gnome/applet/applet-compat.c:171 ../gnome/applet/applet-dbus-info.c:919 +-#, c-format +-msgid "Passphrase for wireless network %s" +-msgstr "Cụm từ mật khẩu cho mạng vô tuyến %s" +- +-#: ../gnome/applet/applet-dbus.c:265 +-#, c-format +-msgid "Connection to the wireless network '%s' failed." +-msgstr "Việc kết nối đến mạng vô tuyến « %s » bị lỗi." +- +-#: ../gnome/applet/applet-dbus.c:270 +-msgid "Connection to the wired network failed." +-msgstr "Việc kết nối đến mạng tuyến bị lỗi." +- +-#: ../gnome/applet/applet.c:184 +-msgid "Error displaying connection information:" +-msgstr "Gặp lỗi khi hiển thị thông tin kết nối:" +- +-#: ../gnome/applet/applet.c:202 +-msgid "Could not find some required resources (the glade file)!" +-msgstr "• Không thể tìm thấy một số tài nguyên cần thiết (tập tin glade). •" +- +-#: ../gnome/applet/applet.c:213 +-msgid "No active connections!" +-msgstr "• Không có kết nối hoạt động. •" +- +-#: ../gnome/applet/applet.c:234 +-#, c-format +-msgid "Wired Ethernet (%s)" +-msgstr "Ethernet tuyến (%s)" +- +-#: ../gnome/applet/applet.c:236 +-#, c-format +-msgid "Wireless Ethernet (%s)" +-msgstr "Ethernet vô tuyến (%s)" +- +-#: ../gnome/applet/applet.c:337 ../gnome/applet/applet.c:362 +-msgid "NetworkManager Applet" +-msgstr "Tiểu dụng Quản lý mạng" +- +-#: ../gnome/applet/applet.c:339 ../gnome/applet/applet.c:364 +-msgid "Copyright © 2004-2005 Red Hat, Inc." +-msgstr "Bản quyền © năm 2004-2005 Red Hat, Inc." +- +-#: ../gnome/applet/applet.c:340 ../gnome/applet/applet.c:365 +-msgid "" +-"Notification area applet for managing your network devices and connections." +-msgstr "" +-"Tiểu dụng vùng thông báo để quản lý các thiết bị và kết nối mạng của bạn." +- +-#: ../gnome/applet/applet.c:343 ../gnome/applet/applet.c:370 +-msgid "translator-credits" +-msgstr "Nhóm Việt hóa Gnome " +- +-#: ../gnome/applet/applet.c:426 +-msgid "VPN Login Failure" +-msgstr "Đăng nhập VPN bị lỗi" +- +-#: ../gnome/applet/applet.c:427 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a login failure." +-msgstr "Không thể khởi chạy kết nối VPN « %s » do việc đăng nhập bị lỗi." +- +-#: ../gnome/applet/applet.c:431 +-msgid "VPN Start Failure" +-msgstr "Khởi chạy VPN bị lỗi" +- +-#: ../gnome/applet/applet.c:432 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' due to a failure launching the VPN " +-"program." +-msgstr "" +-"Không thể khởi chạy kết nối VPN « %s » do việc khởi chạy chÆ°Æ¡ng trình VPN bị " +-"lỗi." +- +-#: ../gnome/applet/applet.c:436 ../gnome/applet/applet.c:446 +-msgid "VPN Connect Failure" +-msgstr "Kết nối VPN bị lỗi" +- +-#: ../gnome/applet/applet.c:437 +-#, c-format +-msgid "Could not start the VPN connection '%s' due to a connection error." +-msgstr "Không thể khởi chạy kết nối VPN « %s » do lỗi kết nối." +- +-#: ../gnome/applet/applet.c:441 +-msgid "VPN Configuration Error" +-msgstr "Lỗi cấu hình VPN" +- +-#: ../gnome/applet/applet.c:442 +-#, c-format +-msgid "The VPN connection '%s' was not correctly configured." +-msgstr "ChÆ°a cấu hình đúng sá»± kết nối VPN « %s »." +- +-#: ../gnome/applet/applet.c:447 +-#, c-format +-msgid "" +-"Could not start the VPN connection '%s' because the VPN server did not " +-"return an adequate network configuration." +-msgstr "" +-"Không thể khởi chạy kết nối VPN « %s » vì trình phục vụ VPN chÆ°a trả gởi cấu " +-"hình mạng hợp lệ." +- +-#: ../gnome/applet/applet.c:517 +-msgid "VPN Login Message" +-msgstr "Thông điệp đăng nhập VPN" +- +-#: ../gnome/applet/applet.c:741 ../gnome/applet/applet.c:2508 +-#: ../gnome/applet/other-network-dialog.c:453 +-#: ../gnome/applet/passphrase-dialog.c:228 +-msgid "" +-"The NetworkManager Applet could not find some required resources (the glade " +-"file was not found)." +-msgstr "" +-"Tiểu dụng Quản lý mạng không thể tìm một số tài nguyên cần thiết (không tìm " +-"thấy tập tin glade)." +- +-#: ../gnome/applet/applet.c:753 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support wireless scanning." +-msgstr "Thiết bị mạng « %s (%s) » không hỗ trợ khả năng quét vô tuyến." +- +-#: ../gnome/applet/applet.c:761 +-#, c-format +-msgid "The network device \"%s (%s)\" does not support link detection." +-msgstr "Thiết bị mạng « %s (%s) » không hỗ trợ khả năng phát hiện liên kết." +- +-#: ../gnome/applet/applet.c:908 +-#, c-format +-msgid "Preparing device %s for the wired network..." +-msgstr "Đang chuẩn bị thiết bị %s cho mạng tuyến..." +- +-#: ../gnome/applet/applet.c:910 +-#, c-format +-msgid "Preparing device %s for the wireless network '%s'..." +-msgstr "Đang chuẩn bị thiết bị %s cho mạng vô tuyến « %s »..." +- +-#: ../gnome/applet/applet.c:918 +-#, c-format +-msgid "Configuring device %s for the wired network..." +-msgstr "Đang cấu hình thiết bị %s cho mạng tuyến..." +- +-#: ../gnome/applet/applet.c:920 +-#, c-format +-msgid "Attempting to join the wireless network '%s'..." +-msgstr "Đang cố tham gia mạng vô tuyến « %s »..." +- +-#: ../gnome/applet/applet.c:928 +-#, c-format +-msgid "Waiting for Network Key for the wireless network '%s'..." +-msgstr "Đang đợi Khóa mạng cho mạng vô tuyến « %s »..." +- +-#: ../gnome/applet/applet.c:936 ../gnome/applet/applet.c:946 +-msgid "Requesting a network address from the wired network..." +-msgstr "Đang yêu cầu địa chỉ mạng từ mạng tuyến..." +- +-#: ../gnome/applet/applet.c:938 ../gnome/applet/applet.c:948 +-#, c-format +-msgid "Requesting a network address from the wireless network '%s'..." +-msgstr "Đang yêu cầu địa chỉ mạng từ mạng vô tuyến « %s »..." +- +-#: ../gnome/applet/applet.c:956 +-msgid "Finishing connection to the wired network..." +-msgstr "Đang kết nối xong tới mạng tuyến..." +- +-#: ../gnome/applet/applet.c:958 +-#, c-format +-msgid "Finishing connection to the wireless network '%s'..." +-msgstr "Đang kết nối xong tới mạng vô tuyến « %s »..." +- +-#: ../gnome/applet/applet.c:1075 +-msgid "NetworkManager is not running" +-msgstr "Trình NetworkManager chÆ°a chạy." +- +-#: ../gnome/applet/applet.c:1083 ../gnome/applet/applet.c:1828 +-msgid "Networking disabled" +-msgstr "Chạy mạng bị tắt" +- +-#: ../gnome/applet/applet.c:1088 +-msgid "No network connection" +-msgstr "Không có kết nối mạng" +- +-#: ../gnome/applet/applet.c:1093 +-msgid "Wired network connection" +-msgstr "Kết nối mạng tuyến" +- +-#: ../gnome/applet/applet.c:1097 +-msgid "Connected to an Ad-Hoc wireless network" +-msgstr "Đã kết nối tới một mạng vô tuyến NhÆ° có" +- +-#: ../gnome/applet/applet.c:1099 +-#, c-format +-msgid "Wireless network connection to '%s' (%d%%)" +-msgstr "Cách kết nối mạng vô tuyến tới « %s » (%d%%)" +- +-#: ../gnome/applet/applet.c:1120 +-#, c-format +-msgid "VPN connection to '%s'" +-msgstr "Cách kết nối VPN tới « %s »" +- +-#: ../gnome/applet/applet.c:1128 +-#, c-format +-msgid "VPN connecting to '%s'" +-msgstr "Đang kết nối VPN tới « %s »..." +- +-#: ../gnome/applet/applet.c:1541 +-msgid "_Connect to Other Wireless Network..." +-msgstr "_Kết nối tới mạng Vô tuyến Khác..." +- +-#: ../gnome/applet/applet.c:1562 +-msgid "Create _New Wireless Network..." +-msgstr "Tạo mạng Vô tuyến _Mới..." +- +-#: ../gnome/applet/applet.c:1685 +-msgid "_VPN Connections" +-msgstr "Kết nối _VPN" +- +-#: ../gnome/applet/applet.c:1730 +-msgid "_Configure VPN..." +-msgstr "_Cấu hình VPN..." +- +-#: ../gnome/applet/applet.c:1734 +-msgid "_Disconnect VPN..." +-msgstr "_Ngắt kết nối VPN..." +- +-#: ../gnome/applet/applet.c:1756 +-msgid "_Dial Up Connections" +-msgstr "Kết nối _quay số" +- +-#. FIXME: We should save and then check the state of the devices and show Connect _or_ Disconnect for each item +-#: ../gnome/applet/applet.c:1767 +-#, c-format +-msgid "Connect to %s..." +-msgstr "Kết nối đến %s..." +- +-#: ../gnome/applet/applet.c:1773 +-#, c-format +-msgid "Disconnect from %s..." +-msgstr "Ngắt kết nối từ %s..." +- +-#: ../gnome/applet/applet.c:1822 +-msgid "No network devices have been found" +-msgstr "Không tìm thấy thiết bị mạng nào" +- +-#: ../gnome/applet/applet.c:2014 +-msgid "NetworkManager is not running..." +-msgstr "Trình NetworkManager chÆ°a chạy..." +- +-#. 'Enable Networking' item +-#: ../gnome/applet/applet.c:2170 +-msgid "Enable _Networking" +-msgstr "Bật chạy _mạng" +- +-#. 'Enable Wireless' item +-#: ../gnome/applet/applet.c:2176 +-msgid "Enable _Wireless" +-msgstr "Bật _Vô tuyến" +- +-#. 'Connection Information' item +-#: ../gnome/applet/applet.c:2182 +-msgid "Connection _Information" +-msgstr "Thông t_in kết nối" +- +-#. Help item +-#: ../gnome/applet/applet.c:2193 +-msgid "_Help" +-msgstr "Trợ _giúp" +- +-#. About item +-#: ../gnome/applet/applet.c:2202 +-msgid "_About" +-msgstr "_Giới thiệu" +- +-#: ../gnome/applet/applet.c:2667 +-msgid "" +-"The NetworkManager applet could not find some required resources. It cannot " +-"continue.\n" +-msgstr "" +-"Tiểu dụng Quản lý mạng không thể tìm một số tài nguyên nên không thể tiếp " +-"tục.\n" +- +-#: ../gnome/applet/wireless-security-option.c:157 +-msgid "Open System" +-msgstr "Hệ thống mở" +- +-#: ../gnome/applet/wireless-security-option.c:160 +-msgid "Shared Key" +-msgstr "Khóa dùng chung" +- +-#: ../gnome/applet/wireless-security-option.c:208 +-msgid "Automatic (Default)" +-msgstr "Tá»± động (Mặc định)" +- +-# Name: don't translate / Tên: đừng dịch +-#: ../gnome/applet/wireless-security-option.c:215 +-msgid "AES-CCMP" +-msgstr "AES-CCMP" +- +-# Literal: don't translate / NghÄ©a chữ: đừng dịch +-#: ../gnome/applet/wireless-security-option.c:223 +-msgid "TKIP" +-msgstr "TKIP" +- +-#: ../gnome/applet/wireless-security-option.c:231 +-msgid "Dynamic WEP" +-msgstr "WEP động" +- +-#: ../gnome/applet/wso-none.c:53 +-msgid "None" +-msgstr "Không có" +- +-# Name: don't translate / Tên: đừng dịch +-#: ../gnome/applet/wso-wep-ascii.c:138 +-msgid "WEP 64/128-bit ASCII" +-msgstr "WEP 64/128-bit ASCII" +- +-#: ../gnome/applet/wso-wep-hex.c:135 +-msgid "WEP 64/128-bit Hex" +-msgstr "WEP 64/128-bit thập lục" +- +-#: ../gnome/applet/wso-wep-passphrase.c:135 +-msgid "WEP 128-bit Passphrase" +-msgstr "WEP 128-bit cụm từ mật khẩu" +- +-#: ../gnome/applet/wso-wpa-eap.c:237 +-msgid "PEAP" +-msgstr "PEAP" +- +-#: ../gnome/applet/wso-wpa-eap.c:238 +-msgid "TLS" +-msgstr "TLS" +- +-#: ../gnome/applet/wso-wpa-eap.c:239 +-msgid "TTLS" +-msgstr "TTLS" +- +-# Name: don't translate / Tên: đừng dịch +-#: ../gnome/applet/wso-wpa-eap.c:247 ../src/nm-ap-security-wpa-eap.c:92 +-#: ../src/nm-ap-security-wpa-eap.c:116 +-msgid "WPA2 Enterprise" +-msgstr "WPA2 Enterprise" +- +-# Name: don't translate / Tên: đừng dịch +-#: ../gnome/applet/wso-wpa-eap.c:249 ../src/nm-ap-security-wpa-eap.c:94 +-#: ../src/nm-ap-security-wpa-eap.c:121 +-msgid "WPA Enterprise" +-msgstr "WPA Enterprise" +- +-#: ../gnome/applet/wso-wpa-psk.c:178 +-msgid "WPA2 Personal" +-msgstr "WPA2 Cá nhân" +- +-#: ../gnome/applet/wso-wpa-psk.c:180 +-msgid "WPA Personal" +-msgstr "WPA Cá nhân" +- +-#: ../gnome/applet/eggtrayicon.c:134 +-msgid "Orientation" +-msgstr "Hướng" +- +-#: ../gnome/applet/eggtrayicon.c:135 +-msgid "The orientation of the tray." +-msgstr "Hướng khay." +- +-#: ../gnome/applet/menu-items.c:88 +-#, c-format +-msgid "Wired Network (%s)" +-msgstr "mạng tuyến (%s)" +- +-#: ../gnome/applet/menu-items.c:91 +-msgid "_Wired Network" +-msgstr "mạng t_uyến" +- +-#: ../gnome/applet/menu-items.c:162 +-#, c-format +-msgid "Wireless Network (%s)" +-msgid_plural "Wireless Networks (%s)" +-msgstr[0] "mạng vô tuyến (%s)" +- +-#: ../gnome/applet/menu-items.c:164 +-msgid "Wireless Network" +-msgid_plural "Wireless Networks" +-msgstr[0] "mạng vô tuyến" +- +-#: ../gnome/applet/menu-items.c:343 +-msgid " (invalid Unicode)" +-msgstr " (Unicode không hợp lệ)" +- +-#: ../gnome/applet/other-network-dialog.c:352 +-#, c-format +-msgid "" +-"By default, the wireless network's name is set to your computer's name, %s, " +-"with no encryption enabled" +-msgstr "" +-"Mặc định là tên của mạng vô tuyến được đặt thành tên của máy tính bạn, %s, " +-"không có mật mã được bật." +- +-#: ../gnome/applet/other-network-dialog.c:358 +-msgid "Create new wireless network" +-msgstr "Tạo mạng vô tuyến mới" +- +-#: ../gnome/applet/other-network-dialog.c:359 +-msgid "" +-"Enter the name and security settings of the wireless network you wish to " +-"create." +-msgstr "Hãy nhập tên tên và thiết lập bảo mật của mạng vô tuyến bạn muốn thêm." +- +-#: ../gnome/applet/other-network-dialog.c:363 +-msgid "Create New Wireless Network" +-msgstr "Tạo mạng vô tuyến mới" +- +-#: ../gnome/applet/other-network-dialog.c:368 +-msgid "Existing wireless network" +-msgstr "mạng vô tuyến đã có" +- +-#: ../gnome/applet/other-network-dialog.c:369 +-msgid "Enter the name of the wireless network to which you wish to connect." +-msgstr "Hãy gõ tên của mạng vô tuyến đến mà bạn muốn kết nối." +- +-#: ../gnome/applet/other-network-dialog.c:371 +-msgid "Connect to Other Wireless Network" +-msgstr "Kết nối đến mạng Vô tuyến Khác" +- +-#: ../gnome/applet/passphrase-dialog.c:215 +-msgid "Error connecting to wireless network" +-msgstr "Gặp lỗi khi kết nối đến mạng vô tuyến" +- +-#: ../gnome/applet/passphrase-dialog.c:216 +-msgid "" +-"The requested wireless network requires security capabilities unsupported by " +-"your hardware." +-msgstr "" +-"mạng vô tuyến đã yêu cầu cần thiết khả năng bảo mật không được hỗ trợ bởi " +-"phần cứng của bạn." +- +-#: ../gnome/applet/vpn-password-dialog.c:151 +-#: ../gnome/applet/vpn-password-dialog.c:188 +-#, c-format +-msgid "Cannot start VPN connection '%s'" +-msgstr "Không thể khởi chạy kết nối VPN tới « %s »" +- +-#: ../gnome/applet/vpn-password-dialog.c:154 +-#, c-format +-msgid "" +-"Could not find the authentication dialog for VPN connection type '%s'. " +-"Contact your system administrator." +-msgstr "" +-"Không tìm thấy hộp thoại xác thá»±c cho cách kết nối VPN « %s ». Hãy liên lạc " +-"với quản trị hệ thống." +- +-#: ../gnome/applet/vpn-password-dialog.c:191 +-#, c-format +-msgid "" +-"There was a problem launching the authentication dialog for VPN connection " +-"type '%s'. Contact your system administrator." +-msgstr "" +-"Gặp lỗi khi khởi chạy hộp thoại xác thá»±c cho cách kết nối VPN « %s ». Hãy " +-"liên lạc với quản trị hệ thống." +- +-#: ../gnome/applet/applet.glade.h:1 +-msgid " " +-msgstr " " +- +-#: ../gnome/applet/applet.glade.h:2 +-msgid "" +-"Active Connection Information" +-msgstr "" +-"Thông tin kết nối hoạt động" +- +-#: ../gnome/applet/applet.glade.h:4 +-#, no-c-format +-msgid "" +-"Passphrase Required by Wireless " +-"Network\n" +-"\n" +-"A passphrase or encryption key is required to access the wireless network '%" +-"s'." +-msgstr "" +-"Cụm từ Mật khẩu Cần thiết cho mạng Vô " +-"tuyến\n" +-"\n" +-"Cần thiết cụm từ mật khẩu hay khóa mật mã để truy cập mạng vô tuyến « %s »." +- +-#: ../gnome/applet/applet.glade.h:8 +-#, no-c-format +-msgid "" +-"Reduced Network Functionality\n" +-"\n" +-"%s It will not be completely functional." +-msgstr "" +-"Chức năng mạng bị giảm\n" +-"\n" +-"%s Nó sẽ không hoạt động hoàn toàn." +- +-#: ../gnome/applet/applet.glade.h:12 +-#, no-c-format +-msgid "" +-"Wireless Network Login Confirmation\n" +-"\n" +-"You have chosen to log in to the wireless network '%s'. If you are sure " +-"that this wireless network is secure, click the checkbox below and " +-"NetworkManager will not require confirmation on subsequent log ins." +-msgstr "" +-"Xác thá»±c Đăng nhập với mạng Vô tuyến\n" +-"\n" +-"Bạn đã chọn đăng nhập với mạng vô tuyến « %s ». Nếu bạn có chắc là mạng này " +-"bảo mật, hãy đánh dấu trong hộp chọn bên dưới, vậy trình Quản lý mạng sẽ " +-"không cần thiết xác thá»±c khi đăng nhập sau." +- +-#: ../gnome/applet/applet.glade.h:15 +-msgid "Anonymous Identity:" +-msgstr "Thá»±c thể vô danh:" +- +-#: ../gnome/applet/applet.glade.h:16 +-msgid "Authentication:" +-msgstr "Xác thá»±c:" +- +-#: ../gnome/applet/applet.glade.h:17 +-msgid "Broadcast Address:" +-msgstr "Địa chỉ phát thanh:" +- +-#: ../gnome/applet/applet.glade.h:18 +-msgid "CA Certificate File:" +-msgstr "Tập tin chứng nhận của CA:" +- +-#: ../gnome/applet/applet.glade.h:19 +-msgid "C_onnect" +-msgstr "_Kết nối" +- +-#: ../gnome/applet/applet.glade.h:20 +-msgid "Client Certificate File:" +-msgstr "Tập tin chứng nhận của ứng dụng khách:" +- +-#: ../gnome/applet/applet.glade.h:21 +-msgid "Connection Information" +-msgstr "Thông tin kết nối" +- +-#: ../gnome/applet/applet.glade.h:22 +-msgid "Default Route:" +-msgstr "Tuyến mặc định:" +- +-#: ../gnome/applet/applet.glade.h:23 +-msgid "Destination Address:" +-msgstr "Địa chỉ đích:" +- +-#: ../gnome/applet/applet.glade.h:24 +-msgid "Driver:" +-msgstr "Trình điều khiển:" +- +-#: ../gnome/applet/applet.glade.h:25 +-msgid "EAP Method:" +-msgstr "PhÆ°Æ¡ng pháp EAP:" +- +-#: ../gnome/applet/applet.glade.h:26 +-msgid "Hardware Address:" +-msgstr "Địa chỉ phần cứng:" +- +-#: ../gnome/applet/applet.glade.h:27 +-msgid "IP Address:" +-msgstr "Địa chỉ IP:" +- +-#: ../gnome/applet/applet.glade.h:28 +-msgid "Identity:" +-msgstr "Thá»±c thể:" +- +-#: ../gnome/applet/applet.glade.h:29 +-msgid "Interface:" +-msgstr "Giao diện:" +- +-#: ../gnome/applet/applet.glade.h:30 +-msgid "Key Type:" +-msgstr "Kiểu khoá :" +- +-#: ../gnome/applet/applet.glade.h:31 +-msgid "Key:" +-msgstr "Khóa:" +- +-#: ../gnome/applet/applet.glade.h:32 +-msgid "" +-"None\n" +-"WEP 128-bit Passphrase\n" +-"WEP 64/128-bit Hex\n" +-"WEP 64/128-bit ASCII\n" +-msgstr "" +-"Không có\n" +-"WEP 128-bit cụm từ mật khẩu\n" +-"WEP 64/128-bit thập lục\n" +-"WEP 64/128-bit ASCII\n" +- +-#: ../gnome/applet/applet.glade.h:37 +-msgid "" +-"Open System\n" +-"Shared Key" +-msgstr "" +-"Hệ thống mở\n" +-"Khóa dùng chung" +- +-#: ../gnome/applet/applet.glade.h:39 +-msgid "Other Wireless Network..." +-msgstr "mạng Vô tuyến khác..." +- +-#: ../gnome/applet/applet.glade.h:40 +-msgid "Passphrase:" +-msgstr "Cụm từ mật khẩu :" +- +-#: ../gnome/applet/applet.glade.h:41 +-msgid "Password:" +-msgstr "Mật khẩu :" +- +-#: ../gnome/applet/applet.glade.h:42 +-msgid "Primary DNS:" +-msgstr "DNS chính:" +- +-#: ../gnome/applet/applet.glade.h:43 +-msgid "Private Key File:" +-msgstr "Tập tin khoá riêng:" +- +-#: ../gnome/applet/applet.glade.h:44 +-msgid "Private Key Password:" +-msgstr "Mật khẩu khoá riêng:" +- +-#: ../gnome/applet/applet.glade.h:45 +-msgid "Secondary DNS:" +-msgstr "DNS phụ :" +- +-#: ../gnome/applet/applet.glade.h:46 +-msgid "Select the CA Certificate File" +-msgstr "Chọn tập tin chứng nhận của nhà cầm quyền chứng nhận (CA)." +- +-#: ../gnome/applet/applet.glade.h:47 +-msgid "Select the Client Certificate File" +-msgstr "Chọn tập tin chứng nhận của ứng dụng khách." +- +-#: ../gnome/applet/applet.glade.h:48 +-msgid "Select the Private Key File" +-msgstr "Chọn tập tin là khóa riêng." +- +-#: ../gnome/applet/applet.glade.h:49 +-msgid "Show key" +-msgstr "Hiện khoá" +- +-#: ../gnome/applet/applet.glade.h:50 +-msgid "Show passphrase" +-msgstr "HIện cụm từ mật khẩu" +- +-#: ../gnome/applet/applet.glade.h:51 +-msgid "Show password" +-msgstr "Hiện mật khẩu" +- +-#: ../gnome/applet/applet.glade.h:52 +-msgid "Show passwords" +-msgstr "Hiện các mật khẩu" +- +-#: ../gnome/applet/applet.glade.h:53 +-msgid "Speed:" +-msgstr "Tốc độ :" +- +-#: ../gnome/applet/applet.glade.h:54 +-msgid "Subnet Mask:" +-msgstr "Mặt nạ mạng cấp dưới:" +- +-#: ../gnome/applet/applet.glade.h:55 +-msgid "Type:" +-msgstr "Kiểu :" +- +-#: ../gnome/applet/applet.glade.h:56 +-msgid "User Name:" +-msgstr "Tên người dùng:" +- +-#: ../gnome/applet/applet.glade.h:57 +-msgid "Wireless Network Key Required" +-msgstr "Cần thiết Khóa mạng Vô tuyến:" +- +-#: ../gnome/applet/applet.glade.h:58 +-msgid "Wireless _adapter:" +-msgstr "_Bộ điều hợp vô tuyến" +- +-#: ../gnome/applet/applet.glade.h:59 +-msgid "_Always Trust this Wireless Network" +-msgstr "_Luôn luôn tin cây mạng vô tuyến này" +- +-#: ../gnome/applet/applet.glade.h:60 +-msgid "_Don't remind me again" +-msgstr "_Đừng nhắc nhở tôi lần nữa" +- +-#: ../gnome/applet/applet.glade.h:61 +-msgid "_Login to Network" +-msgstr "_Đăng nhập với mạng" +- +-#: ../gnome/applet/applet.glade.h:62 +-msgid "_Network Name:" +-msgstr "T_ên mạng:" +- +-#: ../gnome/applet/applet.glade.h:63 +-msgid "_Wireless Security:" +-msgstr "_Bảo mật vô tuyến:" +- +-#: ../gnome/vpn-properties/nm-vpn-properties.c:383 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:405 + msgid "Cannot add VPN connection" + msgstr "Không thể thêm sá»± kết nối VPN" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:385 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:407 + msgid "" + "No suitable VPN software was found on your system. Contact your system " + "administrator." + msgstr "" +-"Không tìm thấy phần mềm VPN thích hợp nào trong hệ thống của bạn. Hãy liên " ++"Không tìm thấy phần mềm VPN thích hợp trong hệ thống của bạn. Hãy liên " + "lạc với quản trị hệ thống." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:437 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:457 + msgid "Cannot import VPN connection" +-msgstr "Không thể nhập sá»± kết nối VPN" ++msgstr "Không thể nhập khẩu sá»± kết nối VPN" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:439 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:459 + #, c-format + msgid "" + "Cannot find suitable software for VPN connection type '%s' to import the " + "file '%s'. Contact your system administrator." + msgstr "" +-"Không tìm thấy phần mềm thích hợp cho kiểu kết nối VPN « %s » để nhập tập " +-"tin « %s ». Hãy liên lạc với quản trị hệ thống." ++"Không tìm thấy phần mềm thích hợp cho kết nối VPN kiểu « %s » để nhập khẩu tập tin « %s ». Hãy liên lạc với quản trị hệ thống." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:579 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:596 + #, c-format + msgid "Error retrieving VPN connection '%s'" + msgstr "Gặp lỗi khi lấy kết nối PN « %s »" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:582 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:599 + #, c-format + msgid "" + "Could not find the UI files for VPN connection type '%s'. Contact your " + "system administrator." + msgstr "" +-"Không tìm thấy những tập tin giao diện người dùng cho kiểu kết nối VPN « %s " +-"». Hãy liên lạc với quản trị hệ thống." ++"Không tìm thấy những tập tin giao diện người dùng cho kết nối VPN kiểu « %s ». Hãy liên lạc với quản trị hệ thống." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:739 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:746 + #, c-format + msgid "Delete VPN connection \"%s\"?" +-msgstr "Xóa bỏ sá»± kết nối VPN « %s » không?" ++msgstr "Xóa kết nối VPN « %s » không?" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:742 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:749 + #, c-format + msgid "" + "All information about the VPN connection \"%s\" will be lost and you may " + "need your system administrator to provide information to create a new " + "connection." + msgstr "" +-"Mọi thông tin về sá»± kết nối VPN « %s » sẽ bị mất và có lẽ bạn sẽ cần quản " ++"Mọi thông tin về sá»± kết nối VPN « %s » sẽ bị mất thì bạn có thể cần phải yêu cầu quản " + "trị hệ thống cung cấp thông tin để tạo sá»± kết nối mới." + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:959 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:963 + msgid "Unable to load" +-msgstr "Không thể tải" ++msgstr "Không thể nạp" + +-#: ../gnome/vpn-properties/nm-vpn-properties.c:961 ++#: ../gnome/vpn-properties/nm-vpn-properties.c:965 + msgid "Cannot find some needed resources (the glade file)!" +-msgstr "• Không tìm thấy một số tài nguyên cần thiết (tải tập tin glade). •" ++msgstr "Không tìm thấy một số tài nguyên cần thiết (tải tập tin glade) !" + ++#: ../gnome/vpn-properties/nm-vpn-properties.c:1084 + #. Edit dialog +-#: ../gnome/vpn-properties/nm-vpn-properties.c:1071 + msgid "Edit VPN Connection" +-msgstr "Sá»­a đổi sá»± kết nối VPN" ++msgstr "Sá»­a kết nối VPN" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:1 + msgid "Add a new VPN connection" +-msgstr "Thêm sá»± kết nối VPN mới" ++msgstr "Thêm kết nối VPN mới" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:2 + msgid "Choose which type of VPN connection you wish to create." +@@ -796,19 +95,19 @@ + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:4 + msgid "Create VPN Connection" +-msgstr "Tạo sá»± kết nối VPN" ++msgstr "Tạo kết nối VPN" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:5 + msgid "Create VPN Connection - 1 of 2" +-msgstr "Tạo sá»± kết nối VPN — bước 1 trên 2" ++msgstr "Tạo kết nối VPN — bước 1 trên 2" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:6 + msgid "Create VPN Connection - 2 of 2" +-msgstr "Tạo sá»± kết nối VPN — bước 2 trên 2" ++msgstr "Tạo kết nối VPN — bước 2 trên 2" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:7 + msgid "Delete the selected VPN connection" +-msgstr "Xóa bỏ kết nối VPN đã chọn" ++msgstr "Xoá kết nối VPN đã chọn" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:8 + msgid "E_xport" +@@ -816,11 +115,11 @@ + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:9 + msgid "Edit the selected VPN connection" +-msgstr "Sá»­a đổi kết nối VPN đã chọn." ++msgstr "Sá»­a kết nối VPN đã chọn." + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:10 + msgid "Export the VPN settings to a file" +-msgstr "Xuất các thiết lập VPN vào tập tin" ++msgstr "Xuất thiết lập VPN vào tập tin" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:11 + msgid "Export the selected VPN connection to a file" +@@ -832,7 +131,7 @@ + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:13 + msgid "Manage Virtual Private Network Connections" +-msgstr "Quản lý các Kết nối mạng Riêng Ảo (VPN)" ++msgstr "Quản lý các Kết nối Mạng Riêng Ảo (VPN)" + + #: ../gnome/vpn-properties/nm-vpn-properties.glade.h:14 + msgid "" +@@ -842,7 +141,7 @@ + "It will require some information, such as IP addresses and secrets. Please " + "see your system administrator to obtain this information." + msgstr "" +-"Trợ lý này sẽ hướng dẫn bạn qua tiến trình tạo kết nối đến một mạng Riêng Ảo " ++"Trợ lý này sẽ hướng dẫn bạn qua tiến trình tạo kết nối đến một Mạng Riêng Ảo " + "(VPN).\n" + "\n" + "Cần thiết một phần thông tin, nhÆ° địa chỉ IP và điều bí mật. Hãy hỏi quan " +@@ -890,11 +189,11 @@ + msgid "WPA2 Automatic" + msgstr "WPA2 Tá»± động" + +-#: ../src/nm-ap-security.c:320 ++#: ../src/nm-ap-security.c:338 + msgid "none" + msgstr "không có" + +-#: ../src/nm-netlink-monitor.c:154 ++#: ../src/nm-netlink-monitor.c:170 + #, c-format + msgid "" + "unable to create netlink socket for monitoring wired ethernet devices - %s" +@@ -902,7 +201,7 @@ + "không thể tạo ổ cắm kiểu liên kết mạng, để theo dõi các thiết bị Ethernet " + "tuyến — %s" + +-#: ../src/nm-netlink-monitor.c:172 ++#: ../src/nm-netlink-monitor.c:188 + #, c-format + msgid "" + "unable to bind to netlink socket for monitoring wired ethernet devices - %s" +@@ -910,51 +209,566 @@ + "không thể đóng kết tới ổ cắm kiểu liên kết mạng, để theo dõi các thiết bị " + "Ethernet tuyến — %s" + +-#: ../src/nm-netlink-monitor.c:405 ++#: ../src/nm-netlink-monitor.c:426 + msgid "operation took too long" +-msgstr "thao tác quá lâu" ++msgstr "thao tác đã chạy quá lâu" + +-#: ../src/nm-netlink-monitor.c:502 ++#: ../src/nm-netlink-monitor.c:523 + msgid "received data from wrong type of sender" +-msgstr "đã nhận dữ liệu từ bộ gởi kiểu không đúng" ++msgstr "đã nhận dữ liệu từ nhà gá»­i kiểu sai" + +-#: ../src/nm-netlink-monitor.c:515 ++#: ../src/nm-netlink-monitor.c:536 + msgid "received data from unexpected sender" +-msgstr "đã nhận dữ liệu từ bộ gởi bất ngờ" ++msgstr "đã nhận dữ liệu từ nhà gá»­i bất thường" + +-#: ../src/nm-netlink-monitor.c:646 ++#: ../src/nm-netlink-monitor.c:665 + msgid "too much data was sent over socket and some of it was lost" +-msgstr "quá nhiều dữ liệu đã được gởi qua ổ cắm, và một phần nó bị mất" ++msgstr "quá nhiều dữ liệu đã được gá»­i qua ổ cắm, thì mất một số dữ liệu" + +-#: ../src/nm-netlink-monitor.c:735 ++#: ../src/nm-netlink-monitor.c:775 + msgid "error occurred while waiting for data on socket" + msgstr "gặp lỗi khi đợi dữ liệu trên ổ cắm" + +-#: ../gnome/applet/applet-dbus-devices.c:898 +-#, c-format +-msgid "You are now connected to the Ad-Hoc wireless network '%s'." +-msgstr "Bây giờ bạn có kết nối hoạt động đến mạng vô tuyến NhÆ° có « %s »." ++# Name: don't translate / Tên: đừng dịch ++#: ../src/nm-ap-security-wpa-eap.c:96 ++#: ../src/nm-ap-security-wpa-eap.c:120 ++msgid "WPA2 Enterprise" ++msgstr "WPA2 Enterprise" + +-#: ../gnome/applet/applet-dbus-devices.c:903 +-#, c-format +-msgid "You are now connected to the wireless network '%s'." +-msgstr "Bây giờ bạn có kết nối hoạt động đến mạng vô tuyến « %s »." ++# Name: don't translate / Tên: đừng dịch ++#: ../src/nm-ap-security-wpa-eap.c:98 ++#: ../src/nm-ap-security-wpa-eap.c:125 ++msgid "WPA Enterprise" ++msgstr "WPA Enterprise" ++ ++#: ../src/nm-ap-security-leap.c:66 ++#: ../src/nm-ap-security-leap.c:82 ++msgid "LEAP" ++msgstr "LEAP" ++ ++#~ msgid "Passphrase for wireless network %s" ++#~ msgstr "Cụm từ mật khẩu cho mạng vô tuyến %s" ++ ++#~ msgid "Connection to the wireless network '%s' failed." ++#~ msgstr "Việc kết nối đến mạng vô tuyến « %s » bị lỗi." ++ ++#~ msgid "Connection to the wired network failed." ++#~ msgstr "Việc kết nối đến mạng tuyến bị lỗi." ++ ++#~ msgid "Error displaying connection information:" ++#~ msgstr "Gặp lỗi khi hiển thị thông tin kết nối:" ++ ++#~ msgid "Could not find some required resources (the glade file)!" ++#~ msgstr "• Không thể tìm thấy một số tài nguyên cần thiết (tập tin glade). •" ++ ++#~ msgid "No active connections!" ++#~ msgstr "• Không có kết nối hoạt động. •" ++ ++#~ msgid "Wired Ethernet (%s)" ++#~ msgstr "Ethernet tuyến (%s)" ++ ++#~ msgid "Wireless Ethernet (%s)" ++#~ msgstr "Ethernet vô tuyến (%s)" ++ ++#~ msgid "NetworkManager Applet" ++#~ msgstr "Tiểu dụng Quản lý mạng" ++ ++#~ msgid "Copyright © 2004-2005 Red Hat, Inc." ++#~ msgstr "Bản quyền © năm 2004-2005 Red Hat, Inc." ++ ++#~ msgid "" ++#~ "Notification area applet for managing your network devices and " ++#~ "connections." ++#~ msgstr "" ++#~ "Tiểu dụng vùng thông báo để quản lý các thiết bị và kết nối mạng của bạn." ++ ++#~ msgid "translator-credits" ++#~ msgstr "Nhóm Việt hóa Gnome " ++ ++#~ msgid "VPN Login Failure" ++#~ msgstr "Đăng nhập VPN bị lỗi" ++ ++#~ msgid "Could not start the VPN connection '%s' due to a login failure." ++#~ msgstr "Không thể khởi chạy kết nối VPN « %s » do việc đăng nhập bị lỗi." ++ ++#~ msgid "VPN Start Failure" ++#~ msgstr "Khởi chạy VPN bị lỗi" ++ ++#~ msgid "" ++#~ "Could not start the VPN connection '%s' due to a failure launching the " ++#~ "VPN program." ++#~ msgstr "" ++#~ "Không thể khởi chạy kết nối VPN « %s » do việc khởi chạy chÆ°Æ¡ng trình VPN " ++#~ "bị lỗi." ++ ++#~ msgid "VPN Connect Failure" ++#~ msgstr "Kết nối VPN bị lỗi" ++ ++#~ msgid "Could not start the VPN connection '%s' due to a connection error." ++#~ msgstr "Không thể khởi chạy kết nối VPN « %s » do lỗi kết nối." ++ ++#~ msgid "VPN Configuration Error" ++#~ msgstr "Lỗi cấu hình VPN" ++ ++#~ msgid "The VPN connection '%s' was not correctly configured." ++#~ msgstr "ChÆ°a cấu hình đúng sá»± kết nối VPN « %s »." ++ ++#~ msgid "" ++#~ "Could not start the VPN connection '%s' because the VPN server did not " ++#~ "return an adequate network configuration." ++#~ msgstr "" ++#~ "Không thể khởi chạy kết nối VPN « %s » vì trình phục vụ VPN chÆ°a trả gởi " ++#~ "cấu hình mạng hợp lệ." ++ ++#~ msgid "VPN Login Message" ++#~ msgstr "Thông điệp đăng nhập VPN" ++ ++#~ msgid "" ++#~ "The NetworkManager Applet could not find some required resources (the " ++#~ "glade file was not found)." ++#~ msgstr "" ++#~ "Tiểu dụng Quản lý mạng không thể tìm một số tài nguyên cần thiết (không " ++#~ "tìm thấy tập tin glade)." ++ ++#~ msgid "The network device \"%s (%s)\" does not support wireless scanning." ++#~ msgstr "Thiết bị mạng « %s (%s) » không hỗ trợ khả năng quét vô tuyến." ++ ++#~ msgid "The network device \"%s (%s)\" does not support link detection." ++#~ msgstr "Thiết bị mạng « %s (%s) » không hỗ trợ khả năng phát hiện liên kết." ++ ++#~ msgid "Preparing device %s for the wired network..." ++#~ msgstr "Đang chuẩn bị thiết bị %s cho mạng tuyến..." ++ ++#~ msgid "Preparing device %s for the wireless network '%s'..." ++#~ msgstr "Đang chuẩn bị thiết bị %s cho mạng vô tuyến « %s »..." ++ ++#~ msgid "Configuring device %s for the wired network..." ++#~ msgstr "Đang cấu hình thiết bị %s cho mạng tuyến..." ++ ++#~ msgid "Attempting to join the wireless network '%s'..." ++#~ msgstr "Đang cố tham gia mạng vô tuyến « %s »..." ++ ++#~ msgid "Waiting for Network Key for the wireless network '%s'..." ++#~ msgstr "Đang đợi Khóa mạng cho mạng vô tuyến « %s »..." ++ ++#~ msgid "Requesting a network address from the wired network..." ++#~ msgstr "Đang yêu cầu địa chỉ mạng từ mạng tuyến..." ++ ++#~ msgid "Requesting a network address from the wireless network '%s'..." ++#~ msgstr "Đang yêu cầu địa chỉ mạng từ mạng vô tuyến « %s »..." ++ ++#~ msgid "Finishing connection to the wired network..." ++#~ msgstr "Đang kết nối xong tới mạng tuyến..." ++ ++#~ msgid "Finishing connection to the wireless network '%s'..." ++#~ msgstr "Đang kết nối xong tới mạng vô tuyến « %s »..." ++ ++#~ msgid "NetworkManager is not running" ++#~ msgstr "Trình NetworkManager chÆ°a chạy." ++ ++#~ msgid "Networking disabled" ++#~ msgstr "Chạy mạng bị tắt" ++ ++#~ msgid "No network connection" ++#~ msgstr "Không có kết nối mạng" ++ ++#~ msgid "Wired network connection" ++#~ msgstr "Kết nối mạng tuyến" ++ ++#~ msgid "Connected to an Ad-Hoc wireless network" ++#~ msgstr "Đã kết nối tới một mạng vô tuyến NhÆ° có" ++ ++#~ msgid "Wireless network connection to '%s' (%d%%)" ++#~ msgstr "Cách kết nối mạng vô tuyến tới « %s » (%d%%)" ++ ++#~ msgid "VPN connection to '%s'" ++#~ msgstr "Cách kết nối VPN tới « %s »" ++ ++#~ msgid "VPN connecting to '%s'" ++#~ msgstr "Đang kết nối VPN tới « %s »..." ++ ++#~ msgid "_Connect to Other Wireless Network..." ++#~ msgstr "_Kết nối tới mạng Vô tuyến Khác..." ++ ++#~ msgid "Create _New Wireless Network..." ++#~ msgstr "Tạo mạng Vô tuyến _Mới..." ++ ++#~ msgid "_VPN Connections" ++#~ msgstr "Kết nối _VPN" ++ ++#~ msgid "_Configure VPN..." ++#~ msgstr "_Cấu hình VPN..." ++ ++#~ msgid "_Disconnect VPN..." ++#~ msgstr "_Ngắt kết nối VPN..." ++ ++#~ msgid "_Dial Up Connections" ++#~ msgstr "Kết nối _quay số" ++ ++#~ msgid "Connect to %s..." ++#~ msgstr "Kết nối đến %s..." ++ ++#~ msgid "Disconnect from %s..." ++#~ msgstr "Ngắt kết nối từ %s..." ++ ++#~ msgid "No network devices have been found" ++#~ msgstr "Không tìm thấy thiết bị mạng nào" ++ ++#~ msgid "NetworkManager is not running..." ++#~ msgstr "Trình NetworkManager chÆ°a chạy..." ++ ++#~ msgid "Enable _Networking" ++#~ msgstr "Bật chạy _mạng" ++ ++#~ msgid "Enable _Wireless" ++#~ msgstr "Bật _Vô tuyến" ++ ++#~ msgid "Connection _Information" ++#~ msgstr "Thông t_in kết nối" ++ ++#~ msgid "_Help" ++#~ msgstr "Trợ _giúp" ++ ++#~ msgid "_About" ++#~ msgstr "_Giới thiệu" ++ ++#~ msgid "" ++#~ "The NetworkManager applet could not find some required resources. It " ++#~ "cannot continue.\n" ++#~ msgstr "" ++#~ "Tiểu dụng Quản lý mạng không thể tìm một số tài nguyên nên không thể tiếp " ++#~ "tục.\n" ++ ++#~ msgid "Open System" ++#~ msgstr "Hệ thống mở" ++ ++#~ msgid "Shared Key" ++#~ msgstr "Khóa dùng chung" ++ ++#~ msgid "Automatic (Default)" ++#~ msgstr "Tá»± động (Mặc định)" ++ ++# Name: don't translate / Tên: đừng dịch ++#~ msgid "AES-CCMP" ++#~ msgstr "AES-CCMP" ++ ++# Literal: don't translate / NghÄ©a chữ: đừng dịch ++#~ msgid "TKIP" ++#~ msgstr "TKIP" ++ ++#~ msgid "Dynamic WEP" ++#~ msgstr "WEP động" ++ ++#~ msgid "None" ++#~ msgstr "Không có" ++ ++# Name: don't translate / Tên: đừng dịch ++#~ msgid "WEP 64/128-bit ASCII" ++#~ msgstr "WEP 64/128-bit ASCII" ++ ++#~ msgid "WEP 64/128-bit Hex" ++#~ msgstr "WEP 64/128-bit thập lục" ++ ++#~ msgid "WEP 128-bit Passphrase" ++#~ msgstr "WEP 128-bit cụm từ mật khẩu" ++ ++#~ msgid "TLS" ++#~ msgstr "TLS" ++ ++#~ msgid "TTLS" ++#~ msgstr "TTLS" ++ ++#~ msgid "WPA2 Personal" ++#~ msgstr "WPA2 Cá nhân" ++ ++#~ msgid "WPA Personal" ++#~ msgstr "WPA Cá nhân" ++ ++#~ msgid "Orientation" ++#~ msgstr "Hướng" ++ ++#~ msgid "The orientation of the tray." ++#~ msgstr "Hướng khay." ++ ++#~ msgid "Wired Network (%s)" ++#~ msgstr "mạng tuyến (%s)" ++ ++#~ msgid "_Wired Network" ++#~ msgstr "mạng t_uyến" ++ ++#~ msgid "Wireless Network (%s)" ++#~ msgid_plural "Wireless Networks (%s)" ++#~ msgstr[0] "mạng vô tuyến (%s)" ++ ++#~ msgid "Wireless Network" ++#~ msgid_plural "Wireless Networks" ++#~ msgstr[0] "mạng vô tuyến" ++ ++#~ msgid " (invalid Unicode)" ++#~ msgstr " (Unicode không hợp lệ)" ++ ++#~ msgid "" ++#~ "By default, the wireless network's name is set to your computer's name, %" ++#~ "s, with no encryption enabled" ++#~ msgstr "" ++#~ "Mặc định là tên của mạng vô tuyến được đặt thành tên của máy tính bạn, %" ++#~ "s, không có mật mã được bật." ++ ++#~ msgid "Create new wireless network" ++#~ msgstr "Tạo mạng vô tuyến mới" ++ ++#~ msgid "" ++#~ "Enter the name and security settings of the wireless network you wish to " ++#~ "create." ++#~ msgstr "" ++#~ "Hãy nhập tên tên và thiết lập bảo mật của mạng vô tuyến bạn muốn thêm." ++ ++#~ msgid "Create New Wireless Network" ++#~ msgstr "Tạo mạng vô tuyến mới" ++ ++#~ msgid "Existing wireless network" ++#~ msgstr "mạng vô tuyến đã có" ++ ++#~ msgid "Enter the name of the wireless network to which you wish to connect." ++#~ msgstr "Hãy gõ tên của mạng vô tuyến đến mà bạn muốn kết nối." ++ ++#~ msgid "Connect to Other Wireless Network" ++#~ msgstr "Kết nối đến mạng Vô tuyến Khác" ++ ++#~ msgid "Error connecting to wireless network" ++#~ msgstr "Gặp lỗi khi kết nối đến mạng vô tuyến" ++ ++#~ msgid "" ++#~ "The requested wireless network requires security capabilities unsupported " ++#~ "by your hardware." ++#~ msgstr "" ++#~ "mạng vô tuyến đã yêu cầu cần thiết khả năng bảo mật không được hỗ trợ bởi " ++#~ "phần cứng của bạn." ++ ++#~ msgid "Cannot start VPN connection '%s'" ++#~ msgstr "Không thể khởi chạy kết nối VPN tới « %s »" ++ ++#~ msgid "" ++#~ "Could not find the authentication dialog for VPN connection type '%s'. " ++#~ "Contact your system administrator." ++#~ msgstr "" ++#~ "Không tìm thấy hộp thoại xác thá»±c cho cách kết nối VPN « %s ». Hãy liên " ++#~ "lạc với quản trị hệ thống." ++ ++#~ msgid "" ++#~ "There was a problem launching the authentication dialog for VPN " ++#~ "connection type '%s'. Contact your system administrator." ++#~ msgstr "" ++#~ "Gặp lỗi khi khởi chạy hộp thoại xác thá»±c cho cách kết nối VPN « %s ». Hãy " ++#~ "liên lạc với quản trị hệ thống." ++ ++#~ msgid " " ++#~ msgstr " " ++ ++#~ msgid "" ++#~ "Active Connection Information" ++#~ msgstr "" ++#~ "Thông tin kết nối hoạt động" ++ ++#~ msgid "" ++#~ "Passphrase Required by Wireless " ++#~ "Network\n" ++#~ "\n" ++#~ "A passphrase or encryption key is required to access the wireless network " ++#~ "'%s'." ++#~ msgstr "" ++#~ "Cụm từ Mật khẩu Cần thiết cho mạng " ++#~ "Vô tuyến\n" ++#~ "\n" ++#~ "Cần thiết cụm từ mật khẩu hay khóa mật mã để truy cập mạng vô tuyến « %s " ++#~ "»." ++ ++#~ msgid "" ++#~ "Reduced Network Functionality\n" ++#~ "\n" ++#~ "%s It will not be completely functional." ++#~ msgstr "" ++#~ "Chức năng mạng bị giảm\n" ++#~ "\n" ++#~ "%s Nó sẽ không hoạt động hoàn toàn." ++ ++#~ msgid "" ++#~ "Wireless Network Login " ++#~ "Confirmation\n" ++#~ "\n" ++#~ "You have chosen to log in to the wireless network '%s'. If you are sure " ++#~ "that this wireless network is secure, click the checkbox below and " ++#~ "NetworkManager will not require confirmation on subsequent log ins." ++#~ msgstr "" ++#~ "Xác thá»±c Đăng nhập với mạng Vô " ++#~ "tuyến\n" ++#~ "\n" ++#~ "Bạn đã chọn đăng nhập với mạng vô tuyến « %s ». Nếu bạn có chắc là mạng " ++#~ "này bảo mật, hãy đánh dấu trong hộp chọn bên dưới, vậy trình Quản lý mạng " ++#~ "sẽ không cần thiết xác thá»±c khi đăng nhập sau." ++ ++#~ msgid "Anonymous Identity:" ++#~ msgstr "Thá»±c thể vô danh:" ++ ++#~ msgid "Authentication:" ++#~ msgstr "Xác thá»±c:" ++ ++#~ msgid "Broadcast Address:" ++#~ msgstr "Địa chỉ phát thanh:" ++ ++#~ msgid "CA Certificate File:" ++#~ msgstr "Tập tin chứng nhận của CA:" ++ ++#~ msgid "C_onnect" ++#~ msgstr "_Kết nối" ++ ++#~ msgid "Client Certificate File:" ++#~ msgstr "Tập tin chứng nhận của ứng dụng khách:" ++ ++#~ msgid "Connection Information" ++#~ msgstr "Thông tin kết nối" ++ ++#~ msgid "Default Route:" ++#~ msgstr "Tuyến mặc định:" ++ ++#~ msgid "Destination Address:" ++#~ msgstr "Địa chỉ đích:" ++ ++#~ msgid "Driver:" ++#~ msgstr "Trình điều khiển:" ++ ++#~ msgid "EAP Method:" ++#~ msgstr "PhÆ°Æ¡ng pháp EAP:" ++ ++#~ msgid "Hardware Address:" ++#~ msgstr "Địa chỉ phần cứng:" ++ ++#~ msgid "IP Address:" ++#~ msgstr "Địa chỉ IP:" ++ ++#~ msgid "Identity:" ++#~ msgstr "Thá»±c thể:" ++ ++#~ msgid "Interface:" ++#~ msgstr "Giao diện:" ++ ++#~ msgid "Key Type:" ++#~ msgstr "Kiểu khoá :" ++ ++#~ msgid "Key:" ++#~ msgstr "Khóa:" ++ ++#~ msgid "" ++#~ "None\n" ++#~ "WEP 128-bit Passphrase\n" ++#~ "WEP 64/128-bit Hex\n" ++#~ "WEP 64/128-bit ASCII\n" ++#~ msgstr "" ++#~ "Không có\n" ++#~ "WEP 128-bit cụm từ mật khẩu\n" ++#~ "WEP 64/128-bit thập lục\n" ++#~ "WEP 64/128-bit ASCII\n" ++ ++#~ msgid "" ++#~ "Open System\n" ++#~ "Shared Key" ++#~ msgstr "" ++#~ "Hệ thống mở\n" ++#~ "Khóa dùng chung" ++ ++#~ msgid "Other Wireless Network..." ++#~ msgstr "mạng Vô tuyến khác..." ++ ++#~ msgid "Passphrase:" ++#~ msgstr "Cụm từ mật khẩu :" ++ ++#~ msgid "Password:" ++#~ msgstr "Mật khẩu :" ++ ++#~ msgid "Primary DNS:" ++#~ msgstr "DNS chính:" ++ ++#~ msgid "Private Key File:" ++#~ msgstr "Tập tin khoá riêng:" ++ ++#~ msgid "Private Key Password:" ++#~ msgstr "Mật khẩu khoá riêng:" ++ ++#~ msgid "Secondary DNS:" ++#~ msgstr "DNS phụ :" ++ ++#~ msgid "Select the CA Certificate File" ++#~ msgstr "Chọn tập tin chứng nhận của nhà cầm quyền chứng nhận (CA)." ++ ++#~ msgid "Select the Client Certificate File" ++#~ msgstr "Chọn tập tin chứng nhận của ứng dụng khách." ++ ++#~ msgid "Select the Private Key File" ++#~ msgstr "Chọn tập tin là khóa riêng." ++ ++#~ msgid "Show key" ++#~ msgstr "Hiện khoá" ++ ++#~ msgid "Show passphrase" ++#~ msgstr "HIện cụm từ mật khẩu" ++ ++#~ msgid "Show password" ++#~ msgstr "Hiện mật khẩu" ++ ++#~ msgid "Show passwords" ++#~ msgstr "Hiện các mật khẩu" ++ ++#~ msgid "Speed:" ++#~ msgstr "Tốc độ :" ++ ++#~ msgid "Subnet Mask:" ++#~ msgstr "Mặt nạ mạng cấp dưới:" ++ ++#~ msgid "Type:" ++#~ msgstr "Kiểu :" ++ ++#~ msgid "User Name:" ++#~ msgstr "Tên người dùng:" ++ ++#~ msgid "Wireless Network Key Required" ++#~ msgstr "Cần thiết Khóa mạng Vô tuyến:" ++ ++#~ msgid "Wireless _adapter:" ++#~ msgstr "_Bộ điều hợp vô tuyến" ++ ++#~ msgid "_Always Trust this Wireless Network" ++#~ msgstr "_Luôn luôn tin cây mạng vô tuyến này" ++ ++#~ msgid "_Don't remind me again" ++#~ msgstr "_Đừng nhắc nhở tôi lần nữa" ++ ++#~ msgid "_Login to Network" ++#~ msgstr "_Đăng nhập với mạng" ++ ++#~ msgid "_Network Name:" ++#~ msgstr "T_ên mạng:" ++ ++#~ msgid "_Wireless Security:" ++#~ msgstr "_Bảo mật vô tuyến:" ++ ++#~ msgid "You are now connected to the Ad-Hoc wireless network '%s'." ++#~ msgstr "Bây giờ bạn có kết nối hoạt động đến mạng vô tuyến NhÆ° có « %s »." ++ ++#~ msgid "You are now connected to the wireless network '%s'." ++#~ msgstr "Bây giờ bạn có kết nối hoạt động đến mạng vô tuyến « %s »." ++ ++#~ msgid "You are now connected to the wired network." ++#~ msgstr "Bây giờ bạn có kết nối hoạt động đến mạng tuyến." ++ ++#~ msgid "Connection Established" ++#~ msgstr "Kết nối đã được thiết lập" ++ ++#~ msgid "Disconnected" ++#~ msgstr "Bị ngắt kết nối" + +-#: ../gnome/applet/applet-dbus-devices.c:910 +-msgid "You are now connected to the wired network." +-msgstr "Bây giờ bạn có kết nối hoạt động đến mạng tuyến." +- +-#: ../gnome/applet/applet-dbus-devices.c:916 +-msgid "Connection Established" +-msgstr "Kết nối đã được thiết lập" +- +-#: ../gnome/applet/applet-dbus-devices.c:959 +-msgid "Disconnected" +-msgstr "Bị ngắt kết nối" +- +-#: ../gnome/applet/applet-dbus-devices.c:960 +-msgid "The network connection has been disconnected." +-msgstr "Kết nối mạng đã bị ngắt." ++#~ msgid "The network connection has been disconnected." ++#~ msgstr "Kết nối mạng đã bị ngắt." + + # Name: don't translate / Tên: đừng dịch + #~ msgid "WEP 40/128-bit ASCII" +diff -urN NetworkManager-0.6.5/README NetworkManager-SVNr3284/README +--- NetworkManager-0.6.5/README 2007-04-18 20:13:10.000000000 +0200 ++++ NetworkManager-SVNr3284/README 2008-02-04 16:01:02.000000000 +0100 +@@ -20,7 +20,8 @@ + For wireless networking support, NetworkManager keeps a list of wireless + networks, the preferred list. Preferred Networks are wireless networks that + the user has explicitly made NetworkManager associate with at some previous +-time. So if the user walks into a Starbucks and explicitly asks NetworkManager to associate with that Starbucks network, NetworkManager will remember the ++time. So if the user walks into a Starbucks and explicitly asks NetworkManager ++to associate with that Starbucks network, NetworkManager will remember the + Starbucks network information from that point on. Upon returning to that + Starbucks, NetworkManager will attempt to associate _automatically_ with the + Starbucks network since it is now in the Preferred Networks list. The point of +diff -urN NetworkManager-0.6.5/src/dhcp-manager/nm-dhcp-manager.c NetworkManager-SVNr3284/src/dhcp-manager/nm-dhcp-manager.c +--- NetworkManager-0.6.5/src/dhcp-manager/nm-dhcp-manager.c 2007-04-18 20:13:04.000000000 +0200 ++++ NetworkManager-SVNr3284/src/dhcp-manager/nm-dhcp-manager.c 2008-02-04 16:00:00.000000000 +0100 +@@ -476,6 +476,8 @@ + guint32 * ip4_nis_servers = NULL; + struct in_addr temp_addr; + nm_completion_args args; ++ guint32 mtu = 0; ++ guint32 * dhcp_mtus = NULL; + + g_return_val_if_fail (manager != NULL, NULL); + g_return_val_if_fail (req != NULL, NULL); +@@ -580,10 +582,19 @@ + } + + /* +- * Grab the MTU from the backend. If DHCP servers can send recommended MTU's, +- * should set that here if the backend returns zero. ++ * MTU from the system backend is preferred; otherwise the DHCP-provided ++ * MTU is used. + */ +- nm_ip4_config_set_mtu (ip4_config, nm_system_get_mtu (dev)); ++ mtu = nm_system_get_mtu (dev); ++ if (!mtu) { ++ if (get_ip4_uint32s (manager, dev, "interface_mtu", &dhcp_mtus, &count, TRUE)) { ++ if (count) ++ mtu = dhcp_mtus[0]; ++ } ++ } ++ ++ if (mtu) ++ nm_ip4_config_set_mtu (ip4_config, mtu); + + out: + g_free (hostname); +diff -urN NetworkManager-0.6.5/src/Makefile.am NetworkManager-SVNr3284/src/Makefile.am +--- NetworkManager-0.6.5/src/Makefile.am 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/Makefile.am 2008-02-04 16:00:13.000000000 +0100 +@@ -64,6 +64,10 @@ + nm-ap-security-wpa-psk.h \ + nm-ap-security-leap.c \ + nm-ap-security-leap.h \ ++ nm-supplicant.h \ ++ nm-supplicant.c \ ++ nm-wired-network.c \ ++ nm-wired-network.h \ + nm-marshal-main.c \ + kernel-types.h \ + wpa.c \ +diff -urN NetworkManager-0.6.5/src/named-manager/nm-named-manager.c NetworkManager-SVNr3284/src/named-manager/nm-named-manager.c +--- NetworkManager-0.6.5/src/named-manager/nm-named-manager.c 2007-04-18 20:13:05.000000000 +0200 ++++ NetworkManager-SVNr3284/src/named-manager/nm-named-manager.c 2008-02-04 16:00:05.000000000 +0100 +@@ -352,6 +352,7 @@ + const char * tmp_resolv_conf = RESOLV_CONF ".tmp"; + char * searches = NULL; + FILE * f; ++ NMIP4Config *ns_config = config; + + /* If no config, we don't have anything to update, so exit silently */ + if (!config) +@@ -367,21 +368,35 @@ + if ((f = fopen (tmp_resolv_conf, "w")) == NULL) + goto lose; + +- if (fprintf (f, "%s","# generated by NetworkManager, do not edit!\n\n") < 0) ++ if (fprintf (f, "### BEGIN INFO\n#\n") < 0) ++ goto lose; ++ if (fprintf (f, "# Modified_by: NetworkManager\n") < 0) ++ goto lose; ++ if (fprintf (f, "# Process: /usr/bin/NetworkManager\n") < 0) ++ goto lose; ++ if (fprintf (f, "# Process_id: %d\n", getpid ()) < 0) ++ goto lose; ++ if (fprintf (f, "#\n### END INFO\n\n") < 0) + goto lose; + +- searches = compute_searches (mgr, config); ++ /* If the ip4 config is a secondary config and has no nameservers, use the ++ * nameservers from the primary config. ++ */ ++ if ( nm_ip4_config_get_secondary (config) ++ && !nm_ip4_config_get_num_nameservers (config)) { ++ ns_config = mgr->priv->configs->data; ++ } ++ g_return_val_if_fail (ns_config != NULL, FALSE); + +- if (mgr->priv->use_named == TRUE) +- { ++ searches = compute_searches (mgr, ns_config); ++ ++ if (mgr->priv->use_named == TRUE) { + /* Using caching-nameserver & local DNS */ + if (fprintf (f, "%s%s%s", "; Use a local caching nameserver controlled by NetworkManager\n\n", searches, "\nnameserver 127.0.0.1\n") < 0) + goto lose; +- } +- else +- { ++ } else { + /* Using glibc resolver */ +- char *nameservers = compute_nameservers (mgr, config); ++ char *nameservers = compute_nameservers (mgr, ns_config); + + fprintf (f, "%s\n\n", searches); + g_free (searches); +@@ -438,6 +453,7 @@ + add_ip4_config_to_named (NMNamedManager *mgr, NMIP4Config *config) + { + const char *domain; ++ NMIP4Config *ns_config = config; + int i, num_nameservers; + DBusMessage * message; + DBusMessage * reply; +@@ -455,10 +471,18 @@ + + dbus_message_append_args (message, DBUS_TYPE_STRING, &domain, DBUS_TYPE_INVALID); + +- num_nameservers = nm_ip4_config_get_num_nameservers (config); +- for (i = 0; i < num_nameservers; i++) +- { +- dbus_uint32_t server = nm_ip4_config_get_nameserver (config, i); ++ /* If the ip4 config is a secondary config and has no nameservers, use the ++ * nameservers from the primary config. ++ */ ++ if ( nm_ip4_config_get_secondary (config) ++ && !nm_ip4_config_get_num_nameservers (config)) { ++ ns_config = mgr->priv->configs->data; ++ } ++ g_return_val_if_fail (ns_config != NULL, FALSE); ++ ++ num_nameservers = nm_ip4_config_get_num_nameservers (ns_config); ++ for (i = 0; i < num_nameservers; i++) { ++ dbus_uint32_t server = nm_ip4_config_get_nameserver (ns_config, i); + dbus_uint16_t port = htons (53); /* default DNS port */ + char fwd_policy = dflt ? 1 : 2; /* 'first' : 'only' */ + +diff -urN NetworkManager-0.6.5/src/NetworkManagerAPList.c NetworkManager-SVNr3284/src/NetworkManagerAPList.c +--- NetworkManager-0.6.5/src/NetworkManagerAPList.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/NetworkManagerAPList.c 2008-02-04 16:00:13.000000000 +0100 +@@ -463,32 +463,33 @@ + const char * merge_essid = nm_ap_get_essid (merge_ap); + const GTimeVal *merge_ap_seen = nm_ap_get_last_seen (merge_ap); + +- /* Did the AP's name change? */ +- if (!devlist_essid || !merge_essid || nm_null_safe_strcmp (devlist_essid, merge_essid)) +- { +- nm_dbus_signal_wireless_network_change (app_data->dbus_connection, +- dev, list_ap, NETWORK_STATUS_DISAPPEARED, -1); +- new = TRUE; ++ /* All attributes should be updated when merging a non-hidden SSID, ++ * but prefer most attributes of existing non-hidden SSIDs when the ++ * merge AP is hidden. ++ */ ++ if (merge_essid) { ++ /* Did the AP's name change? */ ++ if (!devlist_essid || nm_null_safe_strcmp (devlist_essid, merge_essid)) { ++ nm_dbus_signal_wireless_network_change (app_data->dbus_connection, ++ dev, list_ap, NETWORK_STATUS_DISAPPEARED, -1); ++ new = TRUE; ++ } ++ ++ nm_ap_set_capabilities (list_ap, nm_ap_get_capabilities (merge_ap)); ++ nm_ap_set_broadcast (list_ap, nm_ap_get_broadcast (merge_ap)); ++ nm_ap_set_essid (list_ap, merge_essid); + } + +- nm_ap_set_capabilities (list_ap, nm_ap_get_capabilities (merge_ap)); +- if (nm_ap_get_strength (merge_ap) != nm_ap_get_strength (list_ap)) +- { ++ if (nm_ap_get_strength (merge_ap) != nm_ap_get_strength (list_ap)) { + nm_ap_set_strength (list_ap, nm_ap_get_strength (merge_ap)); + strength_changed = TRUE; + } + nm_ap_set_last_seen (list_ap, merge_ap_seen); +- nm_ap_set_broadcast (list_ap, nm_ap_get_broadcast (merge_ap)); + + /* If the AP is noticed in a scan, it's automatically no longer + * artificial, since it clearly exists somewhere. + */ + nm_ap_set_artificial (list_ap, FALSE); +- +- /* Have to change AP's name _after_ dbus signal for old network name +- * has gone out. +- */ +- nm_ap_set_essid (list_ap, merge_essid); + } + else if ((list_ap = nm_ap_list_get_ap_by_essid (list, nm_ap_get_essid (merge_ap)))) + { +diff -urN NetworkManager-0.6.5/src/NetworkManager.c NetworkManager-SVNr3284/src/NetworkManager.c +--- NetworkManager-0.6.5/src/NetworkManager.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/NetworkManager.c 2008-02-04 16:00:13.000000000 +0100 +@@ -65,8 +65,11 @@ + */ + static NMData *nm_data = NULL; + ++char *ks_err_message = NULL; ++ + static gboolean sigterm_pipe_handler (GIOChannel *src, GIOCondition condition, gpointer data); + static void nm_data_free (NMData *data); ++static gboolean nm_poll_killswitches(gpointer user_data); + + /* + * nm_get_device_interface_from_hal +@@ -274,6 +277,204 @@ + } + + ++static void handle_killswitch_pcall_done (NMData *data, DBusPendingCall * pcall) ++{ ++ GSource * source; ++ gboolean now_enabled = FALSE; ++ gboolean now_disabled = FALSE; ++ ++ data->ks_pcall_list = g_slist_remove (data->ks_pcall_list, pcall); ++ if (g_slist_length (data->ks_pcall_list) > 0) ++ return; /* not done with all killswitches yet */ ++ ++ if (data->hw_rf_enabled != data->tmp_hw_rf_enabled) { ++ nm_info ("Wireless now %s by radio killswitch", ++ data->tmp_hw_rf_enabled ? "enabled" : "disabled"); ++ if (data->tmp_hw_rf_enabled) ++ now_enabled = TRUE; ++ else ++ now_disabled = TRUE; ++ ++ data->hw_rf_enabled = data->tmp_hw_rf_enabled; ++ } ++ ++ if (data->hw_rf_enabled == data->wireless_enabled) ++ goto out; ++ ++ /* Only re-enabled wireless if killswitch just changed, otherwise ++ * ignore hardware rf enabled state. ++ */ ++ if (now_enabled && !data->wireless_enabled) { ++ data->wireless_enabled = TRUE; ++ nm_policy_schedule_device_change_check (data); ++ nm_dbus_signal_wireless_enabled (data); ++ } else if (!data->hw_rf_enabled && data->wireless_enabled) { ++ GSList * elt; ++ ++ /* Deactivate all wireless devices and force them down so they ++ * turn off their radios. ++ */ ++ nm_lock_mutex (data->dev_list_mutex, __FUNCTION__); ++ for (elt = data->dev_list; elt; elt = g_slist_next (elt)) { ++ NMDevice * dev = (NMDevice *) elt->data; ++ if (nm_device_is_802_11_wireless (dev)) { ++ nm_device_deactivate (dev); ++ nm_device_bring_down (dev); ++ } ++ } ++ nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__); ++ ++ data->wireless_enabled = FALSE; ++ nm_policy_schedule_device_change_check (data); ++ nm_dbus_signal_wireless_enabled (data); ++ } ++ ++out: ++ /* Schedule another killswitch poll */ ++ source = g_timeout_source_new (6000); ++ g_source_set_callback (source, nm_poll_killswitches, data, NULL); ++ g_source_attach (source, data->main_context); ++ g_source_unref (source); ++} ++ ++static void nm_killswitch_getpower_reply_cb (DBusPendingCall *pcall, NMData * data) ++{ ++ DBusError err; ++ DBusMessage * reply = NULL; ++ gint32 int_status = 1; ++ guint32 uint_status = 1; ++ ++ g_return_if_fail (pcall != NULL); ++ g_return_if_fail (data != NULL); ++ ++ if (!dbus_pending_call_get_completed (pcall)) ++ goto out; ++ ++ if (!(reply = dbus_pending_call_steal_reply (pcall))) ++ goto out; ++ ++ if (message_is_error (reply)) { ++ dbus_error_init (&err); ++ dbus_set_error_from_message (&err, reply); ++ if (!ks_err_message || strcmp (ks_err_message, err.message)) { ++ nm_info ("Error getting killswitch power: %s - %s", err.name, err.message); ++ g_free (ks_err_message); ++ ks_err_message = g_strdup (err.message); ++ } ++ dbus_error_free (&err); ++ goto out; ++ } ++ ++ /* Handle both HAL <= 0.5.9 which uses UINT and HAL >= 0.5.10 which ++ * uses INT. ++ */ ++ dbus_error_init (&err); ++ if (!dbus_message_get_args (reply, &err, DBUS_TYPE_UINT32, &uint_status, DBUS_TYPE_INVALID)) { ++ dbus_error_free (&err); ++ ++ dbus_error_init (&err); ++ if (!dbus_message_get_args (reply, &err, DBUS_TYPE_INT32, &int_status, DBUS_TYPE_INVALID)) { ++ if (!ks_err_message || strcmp (ks_err_message, err.message)) { ++ nm_info ("Error getting killswitch power arguments: %s - %s", err.name, err.message); ++ g_free (ks_err_message); ++ ks_err_message = g_strdup (err.message); ++ } ++ dbus_error_free (&err); ++ goto out; ++ } else { ++ if (int_status == 0) ++ data->tmp_hw_rf_enabled = FALSE; ++ } ++ } else { ++ if (uint_status == 0) ++ data->tmp_hw_rf_enabled = FALSE; ++ } ++ ++out: ++ if (reply) ++ dbus_message_unref (reply); ++ ++ handle_killswitch_pcall_done (data, pcall); ++ dbus_pending_call_unref (pcall); ++} ++ ++ ++static gboolean nm_poll_killswitches (gpointer user_data) ++{ ++ NMData * data = (NMData *) user_data; ++ DBusConnection * connection = data->dbus_connection; ++ GSList * elt; ++ ++ g_return_val_if_fail (data != NULL, FALSE); ++ ++ data->tmp_hw_rf_enabled = TRUE; ++ ++ for (elt = data->killswitch_list; elt; elt = g_slist_next (elt)) ++ { ++ DBusPendingCall * pcall; ++ DBusMessage * message; ++ ++ message = dbus_message_new_method_call ("org.freedesktop.Hal", ++ elt->data, ++ "org.freedesktop.Hal.Device.KillSwitch", ++ "GetPower"); ++ if (!dbus_connection_send_with_reply (connection, message, &pcall, 5000)) { ++ nm_warning ("%s(): could not send dbus message", __func__); ++ } else if (!pcall) { ++ nm_warning ("%s(): could not send dbus message; pcall was NULL", __func__); ++ } else { ++ dbus_pending_call_set_notify (pcall, ++ (DBusPendingCallNotifyFunction) nm_killswitch_getpower_reply_cb, ++ data, ++ NULL); ++ data->ks_pcall_list = g_slist_append (data->ks_pcall_list, pcall); ++ } ++ dbus_message_unref (message); ++ } ++ return FALSE; ++} ++ ++ ++/* ++ * nm_add_killswitch_device ++ * ++ * Adds a killswitch device to the list ++ * ++ */ ++static void nm_add_killswitch_device (NMData * data, const char * udi) ++{ ++ char * type; ++ GSList * elt; ++ ++ type = libhal_device_get_property_string (data->hal_ctx, udi, "killswitch.type", NULL); ++ if (!type) ++ return; ++ ++ if (strcmp (type, "wlan") != 0) ++ goto out; ++ ++ /* see if it's already in the list */ ++ for (elt = data->killswitch_list; elt; elt = g_slist_next (elt)) { ++ const char * list_udi = (const char *) elt->data; ++ if (strcmp (list_udi, udi) == 0) ++ goto out; ++ } ++ ++ /* Start polling switches if this is the first switch we've found */ ++ if (g_slist_length (data->killswitch_list) == 0) { ++ GSource * source = g_idle_source_new (); ++ g_source_set_callback (source, nm_poll_killswitches, data, NULL); ++ g_source_attach (source, data->main_context); ++ g_source_unref (source); ++ } ++ ++ data->killswitch_list = g_slist_append (data->killswitch_list, g_strdup (udi)); ++ nm_info ("Found radio killswitch %s", udi); ++ ++out: ++ libhal_free_string (type); ++} ++ + /* + * nm_hal_device_new_capability + * +@@ -283,10 +484,9 @@ + NMData *data = (NMData *)libhal_ctx_get_user_data (ctx); + + g_return_if_fail (data != NULL); ++ g_return_if_fail (capability != NULL); + +- /*nm_debug ("nm_hal_device_new_capability() called with udi = %s, capability = %s", udi, capability );*/ +- +- if (capability && ((strcmp (capability, "net.80203") == 0) || (strcmp (capability, "net.80211") == 0))) ++ if (((strcmp (capability, "net.80203") == 0) || (strcmp (capability, "net.80211") == 0))) + { + char *iface; + +@@ -296,6 +496,10 @@ + g_free (iface); + } + } ++ else if (strcmp (capability, "killswitch") == 0) ++ { ++ nm_add_killswitch_device (data, udi); ++ } + } + + +@@ -340,6 +544,30 @@ + libhal_free_string_array (net_devices); + } + ++void nm_add_initial_killswitch_devices (NMData * data) ++{ ++ char ** udis; ++ int num_udis, i; ++ DBusError error; ++ ++ g_return_if_fail (data != NULL); ++ ++ dbus_error_init (&error); ++ udis = libhal_find_device_by_capability (data->hal_ctx, "killswitch", &num_udis, &error); ++ if (!udis) ++ return; ++ ++ if (dbus_error_is_set (&error)) { ++ nm_warning("Could not find killswitch devices: %s", error.message); ++ dbus_error_free (&error); ++ return; ++ } ++ ++ for (i = 0; i < num_udis; i++) ++ nm_add_killswitch_device (data, udis[i]); ++ libhal_free_string_array (udis); ++} ++ + + /* + * nm_state_change_signal_broadcast +@@ -548,6 +776,9 @@ + + nm_hal_deinit (data); + ++ if (data->dbus_connection) ++ dbus_connection_unref (data->dbus_connection); ++ + memset (data, 0, sizeof (NMData)); + } + +@@ -582,7 +813,7 @@ + nm_hal_mainloop_integration (ctx, data->dbus_connection); + libhal_ctx_set_dbus_connection (ctx, data->dbus_connection); + dbus_error_init (&error); +- if(!libhal_ctx_init (ctx, &error)) ++ if (!libhal_ctx_init (ctx, &error)) + { + nm_error ("libhal_ctx_init() failed: %s\n" + "Make sure the hal daemon is running?", +@@ -616,28 +847,39 @@ + g_return_if_fail (data != NULL); + + if ((data->hal_ctx = nm_get_hal_ctx (data))) ++ { ++ nm_add_initial_killswitch_devices (data); + nm_add_initial_devices (data); ++ } ++ ++ /* If there weren't any killswitches, mark hardware RF to on */ ++ if (g_slist_length (data->killswitch_list) == 0) ++ data->hw_rf_enabled = TRUE; + } + + + void nm_hal_deinit (NMData *data) + { ++ DBusError error; ++ + g_return_if_fail (data != NULL); + +- if (data->hal_ctx) +- { +- DBusError error; ++ if (!data->hal_ctx) ++ return; + +- dbus_error_init (&error); +- libhal_ctx_shutdown (data->hal_ctx, &error); +- if (dbus_error_is_set (&error)) +- { +- nm_warning ("libhal shutdown failed - %s", error.message); +- dbus_error_free (&error); +- } +- libhal_ctx_free (data->hal_ctx); +- data->hal_ctx = NULL; ++ g_slist_foreach (data->killswitch_list, (GFunc) g_free, NULL); ++ g_slist_free (data->killswitch_list); ++ data->killswitch_list = NULL; ++ ++ dbus_error_init (&error); ++ libhal_ctx_shutdown (data->hal_ctx, &error); ++ if (dbus_error_is_set (&error)) ++ { ++ nm_warning ("libhal shutdown failed - %s", error.message); ++ dbus_error_free (&error); + } ++ libhal_ctx_free (data->hal_ctx); ++ data->hal_ctx = NULL; + } + + +diff -urN NetworkManager-0.6.5/src/NetworkManagerDbus.c NetworkManager-SVNr3284/src/NetworkManagerDbus.c +--- NetworkManager-0.6.5/src/NetworkManagerDbus.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/NetworkManagerDbus.c 2008-02-04 16:00:13.000000000 +0100 +@@ -174,7 +174,7 @@ + { + NMData * data; + NMDevice * dev; +- NMAccessPoint * ap; ++ char *essid; + DeviceStatus status; + } NMStatusChangeData; + +@@ -232,11 +232,9 @@ + } + + /* If the device was wireless, attach the name of the wireless network that failed to activate */ +- if (cb_data->ap) ++ if (cb_data->essid) + { +- const char *essid = nm_ap_get_essid (cb_data->ap); +- if (essid) +- dbus_message_append_args (message, DBUS_TYPE_OBJECT_PATH, &dev_path, DBUS_TYPE_STRING, &essid, DBUS_TYPE_INVALID); ++ dbus_message_append_args (message, DBUS_TYPE_OBJECT_PATH, &dev_path, DBUS_TYPE_STRING, &cb_data->essid, DBUS_TYPE_INVALID); + } + else + dbus_message_append_args (message, DBUS_TYPE_OBJECT_PATH, &dev_path, DBUS_TYPE_INVALID); +@@ -248,8 +246,7 @@ + if (message) + dbus_message_unref (message); + +- if (cb_data->ap) +- nm_ap_unref (cb_data->ap); ++ g_free (cb_data->essid); + + g_free (dev_path); + g_object_unref (G_OBJECT (cb_data->dev)); +@@ -259,7 +256,7 @@ + } + + +-void nm_dbus_schedule_device_status_change_signal (NMData *data, NMDevice *dev, NMAccessPoint *ap, DeviceStatus status) ++void nm_dbus_schedule_device_status_change_signal (NMData *data, NMDevice *dev, const char *essid, DeviceStatus status) + { + NMStatusChangeData *cb_data = NULL; + GSource *source; +@@ -271,11 +268,9 @@ + g_object_ref (G_OBJECT (dev)); + cb_data->data = data; + cb_data->dev = dev; +- if (ap) +- { +- nm_ap_ref (ap); +- cb_data->ap = ap; +- } ++ if (essid) ++ cb_data->essid = g_strdup (essid); ++ + cb_data->status = status; + + source = g_idle_source_new (); +@@ -434,6 +429,29 @@ + } + + ++void nm_dbus_signal_wireless_enabled (NMData * data) ++{ ++ DBusMessage * message; ++ ++ g_return_if_fail (data != NULL); ++ g_return_if_fail (data->dbus_connection != NULL); ++ ++ if (!(message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, "WirelessEnabled"))) ++ { ++ nm_warning ("%s(): Not enough memory for new dbus message!", __func__); ++ return; ++ } ++ ++ dbus_message_append_args (message, ++ DBUS_TYPE_BOOLEAN, &data->wireless_enabled, ++ DBUS_TYPE_BOOLEAN, &data->hw_rf_enabled, ++ DBUS_TYPE_INVALID); ++ if (!dbus_connection_send (data->dbus_connection, message, NULL)) ++ nm_warning ("%s(): Could not emit the WirelessEnabled signal!", __func__); ++ ++ dbus_message_unref (message); ++} ++ + /* + * nm_dbus_signal_filter + * +@@ -490,7 +508,7 @@ + } + else if (dbus_message_is_signal (message, NMI_DBUS_INTERFACE, "UserInterfaceActivated")) + { +- nm_device_802_11_wireless_set_scan_interval (data, NULL, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); ++ nm_device_802_11_wireless_ui_activated (data, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); + handled = TRUE; + } + } +diff -urN NetworkManager-0.6.5/src/NetworkManagerDbus.h NetworkManager-SVNr3284/src/NetworkManagerDbus.h +--- NetworkManager-0.6.5/src/NetworkManagerDbus.h 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/NetworkManagerDbus.h 2008-02-04 16:00:13.000000000 +0100 +@@ -62,12 +62,13 @@ + char * nm_dbus_get_object_path_for_device (NMDevice *dev); + char * nm_dbus_get_object_path_for_network (NMDevice *dev, NMAccessPoint *ap); + +-void nm_dbus_schedule_device_status_change_signal (NMData *data, NMDevice *dev, NMAccessPoint *ap, DeviceStatus status); ++void nm_dbus_schedule_device_status_change_signal (NMData *data, NMDevice *dev, const char *essid, DeviceStatus status); + + void nm_dbus_signal_state_change (DBusConnection *connection, NMData *data); + + void nm_dbus_signal_wireless_network_change (DBusConnection *connection, NMDevice80211Wireless *dev, NMAccessPoint *ap, NMNetworkStatus status, gint strength); + void nm_dbus_signal_device_strength_change (DBusConnection *connection, NMDevice80211Wireless *dev, gint strength); ++void nm_dbus_signal_wireless_enabled (NMData * data); + + NMDevice * nm_dbus_get_device_from_escaped_object_path (NMData *data, const char *path); + +diff -urN NetworkManager-0.6.5/src/NetworkManagerMain.h NetworkManager-SVNr3284/src/NetworkManagerMain.h +--- NetworkManager-0.6.5/src/NetworkManagerMain.h 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/NetworkManagerMain.h 2008-02-04 16:00:13.000000000 +0100 +@@ -82,6 +82,7 @@ + GSList * dev_list; + GMutex * dev_list_mutex; + ++ gboolean hw_rf_enabled; + gboolean wireless_enabled; + gboolean modem_active; + gboolean asleep; +@@ -90,6 +91,10 @@ + GSList * dialup_list; + GMutex * dialup_list_mutex; + ++ GSList * killswitch_list; ++ GSList * ks_pcall_list; /* track killswitch D-Bus pending calls */ ++ gboolean tmp_hw_rf_enabled; ++ + struct NMAccessPointList *allowed_ap_list; + struct NMAccessPointList *invalid_ap_list; + } NMData; +diff -urN NetworkManager-0.6.5/src/NetworkManagerPolicy.c NetworkManager-SVNr3284/src/NetworkManagerPolicy.c +--- NetworkManager-0.6.5/src/NetworkManagerPolicy.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/NetworkManagerPolicy.c 2008-02-04 16:00:13.000000000 +0100 +@@ -51,7 +51,8 @@ + { + NMDevice *dev = NULL; + NMData *data = NULL; +- NMAccessPoint * ap = NULL; ++ NMActRequest * dev_req; ++ const char *network_id = NULL; + + g_return_val_if_fail (req != NULL, FALSE); + +@@ -61,14 +62,26 @@ + dev = nm_act_request_get_dev (req); + g_assert (dev); + +- if (nm_device_is_802_11_wireless (dev)) +- ap = nm_act_request_get_ap (req); ++ /* Ensure that inactive devices don't get the activated signal ++ * sent due to race conditions. ++ */ ++ dev_req = nm_device_get_act_request (dev); ++ if (!dev_req || (dev_req != req)) ++ return FALSE; ++ ++ if (NM_IS_DEVICE_802_11_WIRELESS (dev)) ++ network_id = nm_ap_get_essid (nm_act_request_get_ap (req)); ++ else if (NM_IS_DEVICE_802_3_ETHERNET (dev)) { ++ NMWiredNetwork *wired_net = nm_act_request_get_wired_network (req); ++ if (wired_net) ++ network_id = nm_wired_network_get_network_id (wired_net); ++ } + + nm_device_activation_success_handler (dev, req); + + nm_act_request_unref (req); + nm_info ("Activation (%s) successful, device activated.", nm_device_get_iface (dev)); +- nm_dbus_schedule_device_status_change_signal (data, dev, ap, DEVICE_NOW_ACTIVE); ++ nm_dbus_schedule_device_status_change_signal (data, dev, network_id, DEVICE_NOW_ACTIVE); + nm_schedule_state_change_signal_broadcast (data); + + return FALSE; +@@ -115,7 +128,7 @@ + { + NMDevice * dev = NULL; + NMData * data = NULL; +- NMAccessPoint *ap = NULL; ++ const char *network_id = NULL; + + g_return_val_if_fail (req != NULL, FALSE); + +@@ -127,11 +140,16 @@ + + nm_device_activation_failure_handler (dev, req); + +- if (nm_device_is_802_11_wireless (dev)) +- ap = nm_act_request_get_ap (req); ++ if (NM_IS_DEVICE_802_11_WIRELESS (dev)) ++ network_id = nm_ap_get_essid (nm_act_request_get_ap (req)); ++ else if (NM_IS_DEVICE_802_3_ETHERNET (dev)) { ++ NMWiredNetwork *wired_net = nm_act_request_get_wired_network (req); ++ if (wired_net) ++ network_id = nm_wired_network_get_network_id (wired_net); ++ } + + nm_info ("Activation (%s) failed.", nm_device_get_iface (dev)); +- nm_dbus_schedule_device_status_change_signal (data, dev, ap, DEVICE_ACTIVATION_FAILED); ++ nm_dbus_schedule_device_status_change_signal (data, dev, network_id, DEVICE_ACTIVATION_FAILED); + + nm_device_deactivate (dev); + nm_schedule_state_change_signal_broadcast (data); +@@ -265,14 +283,16 @@ + } + + #if 0 +- nm_info ("AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (best_wired_dev) : "(null)", +- best_wireless_dev ? nm_device_get_iface (best_wireless_dev) : "(null)", (best_wireless_dev && *ap) ? nm_ap_get_essid (*ap) : "null" ); ++ nm_info ("AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (NM_DEVICE (best_wired_dev)) : "(null)", ++ best_wireless_dev ? nm_device_get_iface (NM_DEVICE (best_wireless_dev)) : "(null)", (best_wireless_dev && *ap) ? nm_ap_get_essid (*ap) : "null" ); + #endif + + return highest_priority_dev; + } + + ++static GStaticMutex dcc_mutex = G_STATIC_MUTEX_INIT; ++ + /* + * nm_policy_device_change_check + * +@@ -294,7 +314,9 @@ + + g_return_val_if_fail (data != NULL, FALSE); + ++ g_static_mutex_lock (&dcc_mutex); + data->dev_change_check_idle_id = 0; ++ g_static_mutex_unlock (&dcc_mutex); + + old_dev = nm_get_active_device (data); + +@@ -303,11 +325,19 @@ + + if (old_dev) + { ++ gboolean has_link = TRUE; + guint32 caps = nm_device_get_capabilities (old_dev); + ++ /* Ensure ethernet devices have a link before starting activation, ++ * partially works around Fedora #194124. ++ */ ++ if (nm_device_is_802_3_ethernet (old_dev)) ++ has_link = nm_device_has_active_link (old_dev); ++ + /* Don't interrupt a currently activating device. */ + if ( nm_device_is_activating (old_dev) +- && !nm_device_can_interrupt_activation (old_dev)) ++ && !nm_device_can_interrupt_activation (old_dev) ++ && has_link) + { + nm_info ("Old device '%s' activating, won't change.", nm_device_get_iface (old_dev)); + goto out; +@@ -425,12 +455,41 @@ + if (do_switch && (nm_device_is_802_3_ethernet (new_dev) || (nm_device_is_802_11_wireless (new_dev) && ap))) + { + NMActRequest * act_req = NULL; ++ gboolean has_link = TRUE; + +- if ((act_req = nm_act_request_new (data, new_dev, ap, FALSE))) ++ /* Ensure ethernet devices have a link before starting activation, ++ * partially works around Fedora #194124. ++ */ ++ if (nm_device_is_802_3_ethernet (new_dev)) ++ has_link = nm_device_has_active_link (new_dev); ++ ++ if (has_link) + { +- nm_info ("Will activate connection '%s%s%s'.", nm_device_get_iface (new_dev), ap ? "/" : "", ap ? nm_ap_get_essid (ap) : ""); +- nm_policy_schedule_device_activation (act_req); +- nm_act_request_unref (act_req); ++ if ((act_req = nm_act_request_new (data, new_dev, FALSE))) ++ { ++ nm_info ("Will activate connection '%s%s%s'.", ++ nm_device_get_iface (new_dev), ++ ap ? "/" : "", ++ ap ? nm_ap_get_essid (ap) : ""); ++ ++ if (ap) { ++ nm_act_request_set_ap (act_req, ap); ++ nm_ap_unref (ap); ++ } ++ ++ nm_policy_schedule_device_activation (act_req); ++ nm_act_request_unref (act_req); ++ } ++ else ++ { ++ nm_info ("Error creating activation request for %s", ++ nm_device_get_iface (new_dev)); ++ } ++ } ++ else ++ { ++ nm_info ("Won't activate %s because it no longer has a link.", ++ nm_device_get_iface (new_dev)); + } + } + +@@ -452,11 +511,9 @@ + */ + void nm_policy_schedule_device_change_check (NMData *data) + { +- static GStaticMutex mutex = G_STATIC_MUTEX_INIT; +- + g_return_if_fail (data != NULL); + +- g_static_mutex_lock (&mutex); ++ g_static_mutex_lock (&dcc_mutex); + + if (data->dev_change_check_idle_id == 0) + { +@@ -466,8 +523,7 @@ + data->dev_change_check_idle_id = g_source_attach (source, data->main_context); + g_source_unref (source); + } +- +- g_static_mutex_unlock (&mutex); ++ g_static_mutex_unlock (&dcc_mutex); + } + + +diff -urN NetworkManager-0.6.5/src/NetworkManagerSystem.c NetworkManager-SVNr3284/src/NetworkManagerSystem.c +--- NetworkManager-0.6.5/src/NetworkManagerSystem.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/NetworkManagerSystem.c 2008-02-04 16:00:13.000000000 +0100 +@@ -64,6 +64,7 @@ + struct sockaddr_in *p; + const char * iface; + int err; ++ NMIP4Config * config = NULL; + + iface = nm_device_get_iface (dev); + +@@ -75,6 +76,15 @@ + if (ip4_gateway == 0) + return TRUE; + ++ /* ++ * Do not add the route if the destination is on the same subnet. ++ */ ++ config = nm_device_get_ip4_config(dev); ++ if (config && ++ ((guint32)ip4_dest & nm_ip4_config_get_netmask(config)) == ++ (nm_ip4_config_get_address(config) & nm_ip4_config_get_netmask(config))) ++ return TRUE; ++ + if ((sk = nm_dev_sock_open (dev, NETWORK_CONTROL, __FUNCTION__, NULL)) == NULL) + return FALSE; + +@@ -167,24 +177,6 @@ + } + + +-static struct nl_cache * get_link_cache (struct nl_handle *nlh) +-{ +- static GStaticMutex mutex = G_STATIC_MUTEX_INIT; +- static struct nl_cache * link_cache = NULL; +- +- g_static_mutex_lock (&mutex); +- if (!link_cache) +- link_cache = rtnl_link_alloc_cache (nlh); +- if (!link_cache) +- nm_warning ("ERROR: couldn't allocate rtnl link cache!"); +- else +- nl_cache_update (nlh, link_cache); +- g_static_mutex_unlock (&mutex); +- +- return link_cache; +-} +- +- + static void iface_to_rtnl_index (const char *iface, struct nl_handle *nlh, struct rtnl_addr *addr) + { + struct nl_cache * cache = NULL; +@@ -194,14 +186,17 @@ + g_return_if_fail (nlh != NULL); + g_return_if_fail (addr != NULL); + +- if ((cache = get_link_cache (nlh))) +- { +- i = rtnl_link_name2i (cache, iface); +- if (RTNL_LINK_NOT_FOUND != i) +- rtnl_addr_set_ifindex (addr, i); ++ cache = rtnl_link_alloc_cache (nlh); ++ if (!cache) { ++ nm_warning ("%s: couldn't allocate link cache.", __func__); ++ return; + } +- else +- nm_warning ("iface_to_rtnl_link() couldn't allocate link cache."); ++ ++ nl_cache_update (nlh, cache); ++ i = rtnl_link_name2i (cache, iface); ++ if (RTNL_LINK_NOT_FOUND != i) ++ rtnl_addr_set_ifindex (addr, i); ++ nl_cache_free (cache); + } + + +@@ -213,45 +208,85 @@ + g_return_val_if_fail (iface != NULL, NULL); + g_return_val_if_fail (nlh != NULL, NULL); + +- if ((cache = get_link_cache (nlh))) +- have_link = rtnl_link_get_by_name (cache, iface); +- else +- nm_warning ("iface_to_rtnl_link() couldn't allocate link cache."); ++ cache = rtnl_link_alloc_cache (nlh); ++ if (!cache) { ++ nm_warning ("%s: couldn't allocate link cache.", __func__); ++ return NULL; ++ } ++ ++ nl_cache_update (nlh, cache); ++ have_link = rtnl_link_get_by_name (cache, iface); ++ nl_cache_free (cache); + + return have_link; + } + +- +-static struct nl_handle * new_nl_handle (void) ++static struct ++nl_handle *new_nl_handle (gboolean recursive) + { +- struct nl_handle * nlh = NULL; ++ struct nl_handle *nlh = NULL; ++ struct nl_cb *cb; + +- nlh = nl_handle_alloc_nondefault(NL_CB_VERBOSE); +- nl_handle_set_pid (nlh, (pthread_self() << 16 | getpid())); +- if (nl_connect(nlh, NETLINK_ROUTE) < 0) +- { +- nm_warning ("%s: couldn't connecto to netlink: %s", __func__, nl_geterror()); ++ cb = nl_cb_alloc (NL_CB_VERBOSE); ++ nlh = nl_handle_alloc_cb (cb); ++ if (!nlh) { ++ nm_warning ("%s: couldn't allocate netlink handle: %s", __func__, nl_geterror ()); ++ return NULL; ++ } ++ ++ if (nl_connect (nlh, NETLINK_ROUTE) < 0) { ++ /* HACK: try one more time. Because the netlink monitor for link state ++ * inits before we get here, it grabs the port that matches the PID ++ * of the NM process, which also happens to be the PID that libnl uses ++ * the first time too. The real fix is to convert nm-netlink-monitor.c ++ * over to use libnl. ++ */ + nl_handle_destroy (nlh); +- nlh = NULL; ++ if (recursive) ++ return NULL; ++ ++ nlh = new_nl_handle (TRUE); ++ if (!nlh) { ++ nm_warning ("%s: couldn't connect to netlink: %s", __func__, nl_geterror ()); ++ return NULL; ++ } + } + + return nlh; + } + ++static void ++destroy_nl_handle (struct nl_handle *nlh) ++{ ++ g_return_if_fail (nlh != NULL); ++ ++ nl_close (nlh); ++ nl_handle_destroy (nlh); ++} + + int + nm_system_get_rtnl_index_from_iface (const char *iface) + { + struct nl_handle * nlh = NULL; +- struct nl_cache * cache = NULL; ++ struct nl_cache * cache; + int i = RTNL_LINK_NOT_FOUND; + +- nlh = new_nl_handle (); +- if (nlh && (cache = get_link_cache (nlh))) +- i = rtnl_link_name2i (cache, iface); +- nl_close (nlh); +- nl_handle_destroy (nlh); ++ nlh = new_nl_handle (FALSE); ++ if (!nlh) ++ return RTNL_LINK_NOT_FOUND; ++ ++ cache = rtnl_link_alloc_cache (nlh); ++ if (!cache) { ++ nm_warning ("%s: couldn't allocate link cache.", iface); ++ goto out; ++ } ++ ++ nl_cache_update (nlh, cache); ++ i = rtnl_link_name2i (cache, iface); ++ nl_cache_free (cache); + ++out: ++ destroy_nl_handle (nlh); + return i; + } + +@@ -264,19 +299,32 @@ + struct nl_cache * cache = NULL; + char * buf = NULL; + +- nlh = new_nl_handle (); +- if (nlh && (cache = get_link_cache (nlh))) +- { +- buf = g_malloc0 (MAX_IFACE_LEN); +- if (!rtnl_link_i2name (cache, rtnl_index, buf, MAX_IFACE_LEN - 1)) +- { +- g_free (buf); +- buf = NULL; +- } ++ nlh = new_nl_handle (FALSE); ++ if (!nlh) ++ return NULL; ++ ++ cache = rtnl_link_alloc_cache (nlh); ++ if (!cache) { ++ nm_warning ("Couldn't allocate link cache."); ++ goto out; ++ } ++ ++ nl_cache_update (nlh, cache); ++ ++ buf = g_malloc0 (MAX_IFACE_LEN); ++ if (!buf) ++ goto destroy_cache; ++ ++ if (!rtnl_link_i2name (cache, rtnl_index, buf, MAX_IFACE_LEN - 1)) { ++ g_free (buf); ++ buf = NULL; + } +- nl_close (nlh); +- nl_handle_destroy (nlh); + ++destroy_cache: ++ nl_cache_free (cache); ++ ++out: ++ destroy_nl_handle (nlh); + return buf; + } + +@@ -303,13 +351,15 @@ + config = nm_device_get_ip4_config (dev); + g_return_val_if_fail (config != NULL, FALSE); + ++ nlh = new_nl_handle (FALSE); ++ if (!nlh) ++ return FALSE; ++ + nm_system_delete_default_route (); + nm_system_device_flush_addresses (dev); + nm_system_device_flush_routes (dev); + nm_system_flush_arp_cache (); + +- nlh = new_nl_handle (); +- + if ((addr = nm_ip4_config_to_rtnl_addr (config, NM_RTNL_ADDR_DEFAULT))) + { + iface_to_rtnl_index (nm_device_get_iface (dev), nlh, addr); +@@ -320,8 +370,7 @@ + else + nm_warning ("nm_system_device_set_from_ip4_config(): couldn't create rtnl address!\n"); + +- nl_close (nlh); +- nl_handle_destroy (nlh); ++ destroy_nl_handle (nlh); + + sleep (1); + nm_system_device_set_ip4_route (dev, nm_ip4_config_get_gateway (config), 0, 0, nm_ip4_config_get_mss (config)); +@@ -414,7 +463,13 @@ + * Set IPv4 configuration of a VPN device from an NMIP4Config object. + * + */ +-gboolean nm_system_vpn_device_set_from_ip4_config (NMNamedManager *named, NMDevice *active_device, const char *iface, NMIP4Config *config, char **routes, int num_routes) ++gboolean ++nm_system_vpn_device_set_from_ip4_config (NMNamedManager *named, ++ NMDevice *active_device, ++ const char *iface, ++ NMIP4Config *config, ++ char **routes, ++ int num_routes) + { + NMIP4Config * ad_config = NULL; + struct nl_handle * nlh = NULL; +@@ -427,71 +482,73 @@ + if (active_device && (ad_config = nm_device_get_ip4_config (active_device))) + nm_system_device_set_ip4_route (active_device, nm_ip4_config_get_gateway (ad_config), nm_ip4_config_get_gateway (config), 0xFFFFFFFF, nm_ip4_config_get_mss (config)); + +- if (iface != NULL && strlen (iface)) +- { +- nm_system_device_set_up_down_with_iface (iface, TRUE); ++ if (!iface || !strlen (iface)) ++ goto done; + +- nlh = new_nl_handle (); ++ nlh = new_nl_handle (FALSE); ++ if (!nlh) ++ goto done; + +- if ((addr = nm_ip4_config_to_rtnl_addr (config, NM_RTNL_ADDR_PTP_DEFAULT))) +- { +- int err = 0; +- iface_to_rtnl_index (iface, nlh, addr); +- if ((err = rtnl_addr_add (nlh, addr, 0)) < 0) +- nm_warning ("nm_system_device_set_from_ip4_config(): error %d returned from rtnl_addr_add():\n%s", err, nl_geterror()); +- rtnl_addr_put (addr); +- } +- else +- nm_warning ("nm_system_vpn_device_set_from_ip4_config(): couldn't create rtnl address!\n"); ++ nm_system_device_set_up_down_with_iface (iface, TRUE); + +- /* Set the MTU */ +- if ((request = rtnl_link_alloc ())) +- { +- struct rtnl_link * old; ++ if ((addr = nm_ip4_config_to_rtnl_addr (config, NM_RTNL_ADDR_PTP_DEFAULT))) ++ { ++ int err = 0; ++ iface_to_rtnl_index (iface, nlh, addr); ++ if ((err = rtnl_addr_add (nlh, addr, 0)) < 0) ++ nm_warning ("nm_system_device_set_from_ip4_config(): error %d returned from rtnl_addr_add():\n%s", err, nl_geterror()); ++ rtnl_addr_put (addr); ++ } ++ else ++ nm_warning ("nm_system_vpn_device_set_from_ip4_config(): couldn't create rtnl address!\n"); + +- old = iface_to_rtnl_link (iface, nlh); +- rtnl_link_set_mtu (request, 1412); +- rtnl_link_change (nlh, old, request, 0); ++ /* Set the MTU */ ++ if ((request = rtnl_link_alloc ())) ++ { ++ struct rtnl_link * old; + +- rtnl_link_put (old); +- rtnl_link_put (request); +- } ++ old = iface_to_rtnl_link (iface, nlh); ++ rtnl_link_set_mtu (request, 1412); ++ rtnl_link_change (nlh, old, request, 0); + +- nl_close (nlh); +- nl_handle_destroy (nlh); ++ rtnl_link_put (old); ++ rtnl_link_put (request); ++ } + +- sleep (1); ++ destroy_nl_handle (nlh); + +- nm_system_device_flush_routes_with_iface (iface); +- if (num_routes <= 0) +- { +- nm_system_delete_default_route (); +- nm_system_device_add_default_route_via_device_with_iface (iface); +- } +- else ++ sleep (1); ++ ++ nm_system_device_flush_routes_with_iface (iface); ++ if (num_routes <= 0) ++ { ++ nm_system_delete_default_route (); ++ nm_system_device_add_default_route_via_device_with_iface (iface); ++ } ++ else ++ { ++ int i; ++ for (i = 0; i < num_routes; i++) + { +- int i; +- for (i = 0; i < num_routes; i++) +- { +- char *valid_ip4_route; ++ char *valid_ip4_route; + +- /* Make sure the route is valid, otherwise it's a security risk as the route +- * text is simply taken from the user, and passed directly to system(). If +- * we did not check the route, think of: +- * +- * system("/sbin/ip route add `rm -rf /` dev eth0") +- * +- * where `rm -rf /` was the route text. As UID 0 (root), we have to be careful. +- */ +- if ((valid_ip4_route = validate_ip4_route (routes[i]))) +- { +- nm_system_device_add_route_via_device_with_iface (iface, valid_ip4_route); +- g_free (valid_ip4_route); +- } ++ /* Make sure the route is valid, otherwise it's a security risk as the route ++ * text is simply taken from the user, and passed directly to system(). If ++ * we did not check the route, think of: ++ * ++ * system("/sbin/ip route add `rm -rf /` dev eth0") ++ * ++ * where `rm -rf /` was the route text. As UID 0 (root), we have to be careful. ++ */ ++ if ((valid_ip4_route = validate_ip4_route (routes[i]))) ++ { ++ nm_system_device_add_route_via_device_with_iface (iface, valid_ip4_route); ++ g_free (valid_ip4_route); + } + } + } + ++done: + nm_named_manager_add_ip4_config (named, config); + + return TRUE; +@@ -538,7 +595,8 @@ + + g_return_val_if_fail (iface != NULL, FALSE); + +- if (!(nlh = new_nl_handle ())) ++ nlh = new_nl_handle (FALSE); ++ if (!nlh) + return FALSE; + + if (!(request = rtnl_link_alloc ())) +@@ -559,9 +617,7 @@ + success = TRUE; + + out: +- nl_close (nlh); +- nl_handle_destroy (nlh); +- ++ destroy_nl_handle (nlh); + return success; + } + +@@ -583,7 +639,7 @@ + if (!mtu) + return; + +- nlh = new_nl_handle (); ++ nlh = new_nl_handle (FALSE); + if (!nlh) + return; + +@@ -604,6 +660,6 @@ + out_request: + rtnl_link_put (request); + out_nl_close: +- nl_close (nlh); +- nl_handle_destroy (nlh); ++ destroy_nl_handle (nlh); + } ++ +diff -urN NetworkManager-0.6.5/src/nm-activation-request.c NetworkManager-SVNr3284/src/nm-activation-request.c +--- NetworkManager-0.6.5/src/nm-activation-request.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-activation-request.c 2008-02-04 16:00:13.000000000 +0100 +@@ -36,6 +36,7 @@ + NMData * data; + NMDevice * dev; + NMAccessPoint * ap; ++ NMWiredNetwork *wired_net; + NMIP4Config * ip4_config; + + gboolean user_requested; +@@ -48,16 +49,13 @@ + }; + + +-NMActRequest * nm_act_request_new (NMData *data, NMDevice *dev, NMAccessPoint *ap, gboolean user_requested) ++NMActRequest * nm_act_request_new (NMData *data, NMDevice *dev, gboolean user_requested) + { + NMActRequest * req; + + g_return_val_if_fail (data != NULL, NULL); + g_return_val_if_fail (dev != NULL, NULL); + +- if (nm_device_is_802_11_wireless (dev)) +- g_return_val_if_fail (ap != NULL, NULL); +- + req = g_malloc0 (sizeof (NMActRequest)); + req->refcount = 1; + req->data = data; +@@ -65,10 +63,6 @@ + g_object_ref (G_OBJECT (dev)); + req->dev = dev; + +- if (ap) +- nm_ap_ref (ap); +- req->ap = ap; +- + req->user_requested = user_requested; + req->dhcp_state = nm_dhcp_manager_get_state_for_device (data->dhcp_manager, dev); + +@@ -103,6 +97,9 @@ + g_source_destroy (source); + } + ++ if (req->wired_net) ++ g_object_unref (req->wired_net); ++ + memset (req, 0, sizeof (NMActRequest)); + g_free (req); + } +@@ -124,6 +121,14 @@ + } + + ++gboolean nm_act_request_get_user_requested (NMActRequest *req) ++{ ++ g_return_val_if_fail (req != NULL, FALSE); ++ ++ return req->user_requested; ++} ++ ++ + NMAccessPoint * nm_act_request_get_ap (NMActRequest *req) + { + g_return_val_if_fail (req != NULL, NULL); +@@ -132,11 +137,42 @@ + } + + +-gboolean nm_act_request_get_user_requested (NMActRequest *req) ++void nm_act_request_set_ap (NMActRequest *req, NMAccessPoint *ap) + { +- g_return_val_if_fail (req != NULL, FALSE); ++ g_return_if_fail (req != NULL); + +- return req->user_requested; ++ if (req->ap) ++ { ++ nm_ap_unref (req->ap); ++ req->ap = NULL; ++ } ++ if (ap) ++ { ++ nm_ap_ref (ap); ++ req->ap = ap; ++ } ++} ++ ++ ++NMWiredNetwork *nm_act_request_get_wired_network (NMActRequest *req) ++{ ++ g_return_val_if_fail (req != NULL, NULL); ++ ++ return req->wired_net; ++} ++ ++ ++void nm_act_request_set_wired_network (NMActRequest *req, NMWiredNetwork *wired_net) ++{ ++ g_return_if_fail (req != NULL); ++ ++ if (req->wired_net) ++ { ++ g_object_unref (req->wired_net); ++ req->wired_net = NULL; ++ } ++ if (wired_net) ++ req->wired_net = g_object_ref (wired_net); + } + + +@@ -242,4 +278,3 @@ + + req->dhcp_timeout = dhcp_timeout; + } +- +diff -urN NetworkManager-0.6.5/src/nm-activation-request.h NetworkManager-SVNr3284/src/nm-activation-request.h +--- NetworkManager-0.6.5/src/nm-activation-request.h 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-activation-request.h 2008-02-04 16:00:13.000000000 +0100 +@@ -28,19 +28,25 @@ + #include "NetworkManagerMain.h" + #include "nm-device.h" + #include "NetworkManagerAP.h" ++#include "nm-wired-network.h" + #include "nm-ip4-config.h" + + + +-NMActRequest * nm_act_request_new (NMData *data, NMDevice *dev, NMAccessPoint *ap, gboolean user_requested); ++NMActRequest * nm_act_request_new (NMData *data, NMDevice *dev, gboolean user_requested); + void nm_act_request_ref (NMActRequest *req); + void nm_act_request_unref (NMActRequest *req); + + NMDevice * nm_act_request_get_dev (NMActRequest *req); + NMData * nm_act_request_get_data (NMActRequest *req); +-NMAccessPoint * nm_act_request_get_ap (NMActRequest *req); + gboolean nm_act_request_get_user_requested (NMActRequest *req); + ++NMAccessPoint * nm_act_request_get_ap (NMActRequest *req); ++void nm_act_request_set_ap (NMActRequest *req, NMAccessPoint *ap); ++ ++NMWiredNetwork *nm_act_request_get_wired_network (NMActRequest *req); ++void nm_act_request_set_wired_network (NMActRequest *req, NMWiredNetwork *network); ++ + NMIP4Config * nm_act_request_get_ip4_config (NMActRequest *req); + void nm_act_request_set_ip4_config (NMActRequest *req, NMIP4Config *ip4_config); + +diff -urN NetworkManager-0.6.5/src/nm-ap-security.c NetworkManager-SVNr3284/src/nm-ap-security.c +--- NetworkManager-0.6.5/src/nm-ap-security.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-ap-security.c 2008-02-04 16:00:13.000000000 +0100 +@@ -171,7 +171,7 @@ + nm_ap_security_write_supplicant_config (NMAPSecurity *self, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean adhoc) ++ NMAPSecurityWriteFlags flag) + { + g_return_val_if_fail (self != NULL, FALSE); + g_return_val_if_fail (ctrl != NULL, FALSE); +@@ -181,7 +181,7 @@ + return FALSE; + + return NM_AP_SECURITY_GET_CLASS (self)->write_supplicant_config_func (self, +- ctrl, nwid, adhoc); ++ ctrl, nwid, flag); + } + + void +@@ -240,7 +240,7 @@ + real_write_supplicant_config (NMAPSecurity *self, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean adhoc) ++ NMAPSecurityWriteFlags flag) + { + /* Unencrypted network setup */ + if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +diff -urN NetworkManager-0.6.5/src/nm-ap-security.h NetworkManager-SVNr3284/src/nm-ap-security.h +--- NetworkManager-0.6.5/src/nm-ap-security.h 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-ap-security.h 2008-02-04 16:00:13.000000000 +0100 +@@ -40,6 +40,12 @@ + #define NM_IS_AP_SECURITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AP_SECURITY)) + #define NM_AP_SECURITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AP_SECURITY, NMAPSecurityClass)) + ++typedef enum { ++ NM_AP_SECURITY_WRITE_FLAG_NONE, ++ NM_AP_SECURITY_WRITE_FLAG_ADHOC, ++ NM_AP_SECURITY_WRITE_FLAG_WIRED ++} NMAPSecurityWriteFlags; ++ + typedef struct _NMAPSecurity NMAPSecurity; + typedef struct _NMAPSecurityClass NMAPSecurityClass; + typedef struct _NMAPSecurityPrivate NMAPSecurityPrivate; +@@ -67,7 +73,7 @@ + gboolean (*write_supplicant_config_func)(NMAPSecurity *self, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean adhoc); ++ NMAPSecurityWriteFlags flag); + + guint32 (*get_default_capabilities_func)(NMAPSecurity *self); + gboolean (*get_authentication_required_func)(NMAPSecurity *self); +@@ -94,7 +100,7 @@ + gboolean nm_ap_security_write_supplicant_config (NMAPSecurity *self, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean adhoc); ++ NMAPSecurityWriteFlags flag); + + const char * nm_ap_security_get_description (NMAPSecurity *self); + +diff -urN NetworkManager-0.6.5/src/nm-ap-security-leap.c NetworkManager-SVNr3284/src/nm-ap-security-leap.c +--- NetworkManager-0.6.5/src/nm-ap-security-leap.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-ap-security-leap.c 2008-02-04 16:00:13.000000000 +0100 +@@ -100,7 +100,7 @@ + real_write_supplicant_config (NMAPSecurity *instance, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean user_created) ++ NMAPSecurityWriteFlags flag) + { + NMAPSecurityLEAP * self = NM_AP_SECURITY_LEAP (instance); + gboolean success = FALSE; +@@ -109,6 +109,11 @@ + + g_return_val_if_fail (nm_ap_security_get_we_cipher (instance) == NM_AUTH_TYPE_LEAP, FALSE); + ++ /* LEAP is not valid for wired */ ++ if (flag == NM_AP_SECURITY_WRITE_FLAG_WIRED) ++ goto out; ++ ++ + if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, "SET_NETWORK %i proto WPA", nwid)) + goto out; + +diff -urN NetworkManager-0.6.5/src/nm-ap-security-wep.c NetworkManager-SVNr3284/src/nm-ap-security-wep.c +--- NetworkManager-0.6.5/src/nm-ap-security-wep.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-ap-security-wep.c 2008-02-04 16:00:13.000000000 +0100 +@@ -115,12 +115,16 @@ + real_write_supplicant_config (NMAPSecurity *instance, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean adhoc) ++ NMAPSecurityWriteFlags flag) + { + gboolean success = FALSE; + char * msg = NULL; + const char * key = nm_ap_security_get_key (instance); + ++ /* WEP is not valid for wired */ ++ if (flag == NM_AP_SECURITY_WRITE_FLAG_WIRED) ++ goto out; ++ + /* WEP network setup */ + if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, + "SET_NETWORK %i key_mgmt NONE", nwid)) +diff -urN NetworkManager-0.6.5/src/nm-ap-security-wpa-eap.c NetworkManager-SVNr3284/src/nm-ap-security-wpa-eap.c +--- NetworkManager-0.6.5/src/nm-ap-security-wpa-eap.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-ap-security-wpa-eap.c 2008-02-04 16:00:13.000000000 +0100 +@@ -57,7 +57,6 @@ + NMAPSecurityWPA_EAP * security = NULL; + int eap_method; + int key_type; +- int phase2_type; + int wpa_version; + char * identity = NULL; + char * passwd = NULL; +@@ -172,7 +171,7 @@ + real_write_supplicant_config (NMAPSecurity *instance, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean adhoc) ++ NMAPSecurityWriteFlags flag) + { + NMAPSecurityWPA_EAP * self = NM_AP_SECURITY_WPA_EAP (instance); + gboolean success = FALSE; +@@ -213,15 +212,17 @@ + + /* WPA-EAP network setup */ + +- if (self->priv->wpa_version == IW_AUTH_WPA_VERSION_WPA) +- { +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, "SET_NETWORK %i proto WPA", nwid)) +- goto out; +- } +- else +- { +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, "SET_NETWORK %i proto WPA2", nwid)) +- goto out; ++ if (flag != NM_AP_SECURITY_WRITE_FLAG_WIRED) { ++ if (self->priv->wpa_version == IW_AUTH_WPA_VERSION_WPA) ++ { ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, "SET_NETWORK %i proto WPA", nwid)) ++ goto out; ++ } ++ else ++ { ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, "SET_NETWORK %i proto WPA2", nwid)) ++ goto out; ++ } + } + + if (key_type != IW_AUTH_CIPHER_WEP104) +@@ -308,7 +309,8 @@ + * Set the pairwise and group cipher, if the user provided one. If user selected "Automatic", we + * let wpa_supplicant sort it out. Likewise, if the user selected "Dynamic WEP", we do nothing. + */ +- if (key_type != NM_AUTH_TYPE_WPA_PSK_AUTO && key_type != IW_AUTH_CIPHER_WEP104) ++ if (flag != NM_AP_SECURITY_WRITE_FLAG_WIRED && ++ key_type != NM_AUTH_TYPE_WPA_PSK_AUTO && key_type != IW_AUTH_CIPHER_WEP104) + { + const char *cipher; + +@@ -330,6 +332,10 @@ + goto out; + } + ++ if (flag != NM_AP_SECURITY_WRITE_FLAG_WIRED) ++ nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "SET_NETWORK %i fragment_size 1300", nwid); ++ + success = TRUE; + + out: +diff -urN NetworkManager-0.6.5/src/nm-ap-security-wpa-psk.c NetworkManager-SVNr3284/src/nm-ap-security-wpa-psk.c +--- NetworkManager-0.6.5/src/nm-ap-security-wpa-psk.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-ap-security-wpa-psk.c 2008-02-04 16:00:13.000000000 +0100 +@@ -134,7 +134,7 @@ + real_write_supplicant_config (NMAPSecurity *instance, + struct wpa_ctrl *ctrl, + int nwid, +- gboolean adhoc) ++ NMAPSecurityWriteFlags flag) + { + NMAPSecurityWPA_PSK * self = NM_AP_SECURITY_WPA_PSK (instance); + gboolean success = FALSE; +@@ -145,6 +145,11 @@ + char * pairwise_cipher = NULL; + char * group_cipher = NULL; + ++ ++ /* WPA-PSK is not valid for wired */ ++ if (flag == NM_AP_SECURITY_WRITE_FLAG_WIRED) ++ goto out; ++ + /* WPA-PSK network setup */ + + if (self->priv->wpa_version == IW_AUTH_WPA_VERSION_WPA) +@@ -161,7 +166,7 @@ + } + + /* Ad-Hoc has to be WPA-NONE */ +- if (adhoc) ++ if (flag == NM_AP_SECURITY_WRITE_FLAG_ADHOC) + key_mgmt = "WPA-NONE"; + + if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +@@ -189,7 +194,7 @@ + pairwise_cipher = group_cipher = "NONE"; + + /* Ad-Hoc requires pairwise cipher of NONE */ +- if (adhoc) ++ if (flag == NM_AP_SECURITY_WRITE_FLAG_ADHOC) + pairwise_cipher = "NONE"; + + /* If user selected "Automatic", we let wpa_supplicant sort it out */ +diff -urN NetworkManager-0.6.5/src/nm-dbus-device.c NetworkManager-SVNr3284/src/nm-dbus-device.c +--- NetworkManager-0.6.5/src/nm-dbus-device.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-dbus-device.c 2008-02-04 16:00:13.000000000 +0100 +@@ -448,8 +448,17 @@ + } + } + } +- else ++ else { ++ NMActRequest *req = nm_device_get_act_request (dev); ++ ++ if (req) { ++ NMWiredNetwork *wired_net = nm_act_request_get_wired_network (req); ++ if (wired_net) ++ active_network_path = g_strdup (nm_wired_network_get_network_id (wired_net)); ++ } ++ + speed = nm_device_802_3_ethernet_get_speed (NM_DEVICE_802_3_ETHERNET (dev)); ++ } + + if (!active_network_path) + active_network_path = g_strdup (""); +diff -urN NetworkManager-0.6.5/src/nm-dbus-nm.c NetworkManager-SVNr3284/src/nm-dbus-nm.c +--- NetworkManager-0.6.5/src/nm-dbus-nm.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-dbus-nm.c 2008-02-04 16:00:13.000000000 +0100 +@@ -1,3 +1,5 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ + /* NetworkManager -- Network link manager + * + * Dan Williams +@@ -227,10 +229,11 @@ + const char * INVALID_ARGS_MESSAGE = "NetworkManager::setActiveDevice called with invalid arguments."; + NMDevice * dev = NULL; + DBusMessage * reply = NULL; +- char * dev_path; +- NMAccessPoint * ap = NULL; ++ char * dev_path = NULL; ++ NMAPSecurity * security = NULL; + NMActRequest * req; + DBusMessageIter iter; ++ char * network_id = NULL; + + g_return_val_if_fail (connection != NULL, NULL); + g_return_val_if_fail (message != NULL, NULL); +@@ -253,62 +256,62 @@ + if (!dev || !(nm_device_get_capabilities (dev) & NM_DEVICE_CAP_NM_SUPPORTED)) + { + reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, "DeviceNotFound", +- "The requested network device does not exist."); ++ "The requested network device does not exist."); + nm_warning ("%s:%d (%s): Invalid device (device not found).", __FILE__, __LINE__, __func__); + goto out; + } + +- if (nm_device_is_802_11_wireless (dev)) +- { +- NMAPSecurity * security = NULL; +- char * essid = NULL; +- +- if (!dbus_message_iter_next (&iter) || (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING)) +- { +- nm_warning ("%s:%d (%s): Invalid argument type (essid).", __FILE__, __LINE__, __func__); ++ /* Next up is the network id... */ ++ if (dbus_message_iter_next (&iter) && (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_STRING)) ++ dbus_message_iter_get_basic (&iter, &network_id); ++ ++ /* and finally, the security object */ ++ if (dbus_message_iter_next (&iter)) { ++ security = nm_ap_security_new_deserialize (&iter); ++ if (!security) { ++ /* There was security info, but it was invalid */ ++ reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, INVALID_ARGS_ERROR, INVALID_ARGS_MESSAGE); ++ nm_warning ("%s:%d (%s): Invalid argument (security info).", __FILE__, __LINE__, __func__); + goto out; + } ++ } + +- /* grab ssid and ensure validity */ +- dbus_message_iter_get_basic (&iter, &essid); +- if (!essid || (strlen (essid) <= 0)) +- { +- nm_warning ("%s:%d (%s): Invalid argument (essid).", __FILE__, __LINE__, __func__); +- goto out; +- } ++ req = nm_act_request_new (data->data, dev, TRUE); + +- /* If there's security information, we use that. If not, we +- * make some up from the scan list. +- */ +- if (dbus_message_iter_next (&iter)) +- { +- if (!(security = nm_ap_security_new_deserialize (&iter))) +- { +- /* There was security info, but it was invalid */ +- reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, INVALID_ARGS_ERROR, INVALID_ARGS_MESSAGE); +- nm_warning ("%s:%d (%s): Invalid argument (wireless security info).", __FILE__, __LINE__, __func__); +- goto out; +- } ++ if (nm_device_is_802_11_wireless (dev)) { ++ NMAccessPoint *ap; ++ ++ if (!network_id || (strlen (network_id) <= 0)) { ++ nm_warning ("%s:%d (%s): Invalid argument type (essid).", __FILE__, __LINE__, __func__); ++ goto out; + } + + /* Set up the wireless-specific activation request properties */ +- ap = nm_device_802_11_wireless_get_activation_ap (NM_DEVICE_802_11_WIRELESS (dev), essid, security); +- if (security) +- g_object_unref (G_OBJECT (security)); ++ ap = nm_device_802_11_wireless_get_activation_ap (NM_DEVICE_802_11_WIRELESS (dev), network_id, security); ++ nm_act_request_set_ap (req, ap); ++ } else if (nm_device_is_802_3_ethernet (dev)) { ++ if (network_id && security) { ++ NMWiredNetwork *wired_net; + +- nm_info ("User Switch: %s / %s", dev_path, essid); ++ wired_net = nm_wired_network_new (network_id, security); ++ nm_act_request_set_wired_network (req, wired_net); ++ g_object_unref (wired_net); ++ } + } +- else if (nm_device_is_802_3_ethernet (dev)) +- { ++ ++ if (network_id) ++ nm_info ("User Switch: %s / %s", dev_path, network_id); ++ else + nm_info ("User Switch: %s", dev_path); +- } + + nm_device_deactivate (dev); + nm_schedule_state_change_signal_broadcast (data->data); +- req = nm_act_request_new (data->data, dev, ap, TRUE); + nm_policy_schedule_device_activation (req); + nm_act_request_unref (req); + ++ if (security) ++ g_object_unref (security); ++ + /* empty success message */ + reply = dbus_message_new_method_return (message); + if (!reply) +@@ -398,7 +401,10 @@ + g_object_unref (G_OBJECT (security)); + nm_ap_set_user_created (new_ap, TRUE); + +- req = nm_act_request_new (data->data, dev, new_ap, TRUE); ++ req = nm_act_request_new (data->data, dev, TRUE); ++ nm_act_request_set_ap (req, new_ap); ++ nm_ap_unref (new_ap); ++ + nm_policy_schedule_device_activation (req); + nm_act_request_unref (req); + +@@ -483,52 +489,83 @@ + return (reply); + } + +-static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data) ++static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *cb_data) + { + gboolean enabled = FALSE; + DBusError err; +- NMData *app_data; ++ NMData * data; ++ DBusMessage * ret = NULL; + +- g_return_val_if_fail (data && data->data && connection && message, NULL); ++ g_return_val_if_fail (cb_data && cb_data->data && connection && message, NULL); + + dbus_error_init (&err); + if (!dbus_message_get_args (message, &err, DBUS_TYPE_BOOLEAN, &enabled, DBUS_TYPE_INVALID)) +- return NULL; ++ goto out; + +- app_data = data->data; +- app_data->wireless_enabled = enabled; ++ data = cb_data->data; ++ if (enabled == data->wireless_enabled) ++ goto out; + +- if (!enabled) +- { +- GSList *elt; ++ /* Hardware rfkill overrides whatever user wants */ ++ if (!data->hw_rf_enabled) { ++ nm_info ("User request to %s wireless overridden by radio killswitch.", ++ enabled ? "enable" : "disable"); + +- /* Physically down all wireless devices */ +- nm_lock_mutex (app_data->dev_list_mutex, __FUNCTION__); +- for (elt = app_data->dev_list; elt; elt = g_slist_next (elt)) +- { +- NMDevice *dev = (NMDevice *)(elt->data); +- if (nm_device_is_802_11_wireless (dev)) +- { ++ /* Return error if user tries to re-enable wireless, or just ignore ++ * a disable wireless request when wireless is already disabled. ++ */ ++ if (enabled) { ++ ret = nm_dbus_create_error_message (message, ++ NM_DBUS_INTERFACE, ++ "DisabledBySystem", ++ "Wireless disabled by hardware switch."); ++ } ++ goto out; ++ } ++ ++ nm_info ("User request to %s wireless.", enabled ? "enable" : "disable"); ++ ++ data->wireless_enabled = enabled; ++ if (!data->wireless_enabled) { ++ GSList * elt; ++ ++ /* Deactivate all wireless devices and force them down so they ++ * turn off their radios. ++ */ ++ nm_lock_mutex (data->dev_list_mutex, __FUNCTION__); ++ for (elt = data->dev_list; elt; elt = g_slist_next (elt)) { ++ NMDevice * dev = (NMDevice *) elt->data; ++ if (nm_device_is_802_11_wireless (dev)) { + nm_device_deactivate (dev); + nm_device_bring_down (dev); + } + } +- nm_unlock_mutex (app_data->dev_list_mutex, __FUNCTION__); ++ nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__); + } + +- nm_policy_schedule_device_change_check (data->data); ++ nm_policy_schedule_device_change_check (data); ++ nm_dbus_signal_wireless_enabled (data); + +- return NULL; ++out: ++ return ret; + } + +-static DBusMessage *nm_dbus_nm_get_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data) ++static DBusMessage *nm_dbus_nm_get_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *cb_data) + { ++ NMData * data; + DBusMessage *reply = NULL; + +- g_return_val_if_fail (data && data->data && connection && message, NULL); ++ g_return_val_if_fail (cb_data && connection && message, NULL); + +- if ((reply = dbus_message_new_method_return (message))) +- dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &data->data->wireless_enabled, DBUS_TYPE_INVALID); ++ data = cb_data->data; ++ g_return_val_if_fail (data != NULL, NULL); ++ ++ if ((reply = dbus_message_new_method_return (message))) { ++ dbus_message_append_args (reply, ++ DBUS_TYPE_BOOLEAN, &data->wireless_enabled, ++ DBUS_TYPE_BOOLEAN, &data->hw_rf_enabled, ++ DBUS_TYPE_INVALID); ++ } + + return reply; + } +diff -urN NetworkManager-0.6.5/src/nm-dbus-nmi.c NetworkManager-SVNr3284/src/nm-dbus-nmi.c +--- NetworkManager-0.6.5/src/nm-dbus-nmi.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-dbus-nmi.c 2008-02-04 16:00:13.000000000 +0100 +@@ -1,3 +1,5 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ + /* NetworkManager -- Network link manager + * + * Dan Williams +@@ -22,6 +24,7 @@ + #include "NetworkManager.h" + #include "nm-device.h" + #include "nm-activation-request.h" ++#include "nm-device-802-3-ethernet.h" + #include "NetworkManagerAPList.h" + #include "NetworkManagerPolicy.h" + #include "NetworkManagerUtils.h" +@@ -29,42 +32,23 @@ + #include "nm-utils.h" + + +-/* +- * nm_dbus_get_user_key_for_network_cb +- * +- * Callback from nm_dbus_get_user_key_for_network when NetworkManagerInfo returns +- * the new user key. +- * +- */ +-static void nm_dbus_get_user_key_for_network_cb (DBusPendingCall *pcall, NMActRequest *req) ++static gboolean ++nm_dbus_get_wireless_user_key_done (DBusMessage *reply, NMActRequest *req) + { +- DBusMessage * reply = NULL; +- NMData * data; +- NMDevice * dev; +- NMAccessPoint * ap; +- NMAPSecurity * security; +- DBusMessageIter iter; ++ NMAccessPoint *ap; ++ NMData *data; ++ NMAPSecurity *security; ++ DBusMessageIter iter; + +- g_return_if_fail (pcall != NULL); +- g_return_if_fail (req != NULL); ++ const char *iface = nm_device_get_iface (nm_act_request_get_dev (req)); + + data = nm_act_request_get_data (req); + g_assert (data); + +- dev = nm_act_request_get_dev (req); +- g_assert (dev); +- + ap = nm_act_request_get_ap (req); + g_assert (ap); + +- if (!dbus_pending_call_get_completed (pcall)) +- goto out; +- +- if (!(reply = dbus_pending_call_steal_reply (pcall))) +- goto out; +- +- if (message_is_error (reply)) +- { ++ if (message_is_error (reply)) { + DBusError err; + + dbus_error_init (&err); +@@ -72,10 +56,8 @@ + + /* Check for cancelled error */ + if (strcmp (err.name, NMI_DBUS_USER_KEY_CANCELED_ERROR) == 0) +- { + nm_info ("Activation (%s) New wireless user key request for network '%s' was canceled.", +- nm_device_get_iface (dev), nm_ap_get_essid (ap)); +- } ++ iface, nm_ap_get_essid (ap)); + else + nm_warning ("nm_dbus_get_user_key_for_network_cb(): dbus returned an error.\n (%s) %s\n", err.name, err.message); + +@@ -87,15 +69,13 @@ + * here... ad nauseum. Figure out how to deal with a failure here. + */ + nm_ap_list_append_ap (data->invalid_ap_list, ap); +- nm_policy_schedule_activation_failed (req); +- goto out; ++ return FALSE; + } + +- nm_info ("Activation (%s) New wireless user key for network '%s' received.", nm_device_get_iface (dev), nm_ap_get_essid (ap)); ++ nm_info ("Activation (%s) New wireless user key for network '%s' received.", iface, nm_ap_get_essid (ap)); + + dbus_message_iter_init (reply, &iter); +- if ((security = nm_ap_security_new_deserialize (&iter))) +- { ++ if ((security = nm_ap_security_new_deserialize (&iter))) { + NMAccessPoint *allowed_ap; + + nm_ap_set_security (ap, security); +@@ -106,11 +86,91 @@ + nm_ap_set_security (allowed_ap, security); + + g_object_unref (G_OBJECT (security)); /* set_security copies the object */ +- nm_device_activate_schedule_stage1_device_prepare (req); + } ++ ++ return TRUE; ++} ++ ++static gboolean ++nm_dbus_get_wired_user_key_done (DBusMessage *reply, NMActRequest *req) ++{ ++ NMAPSecurity *security; ++ DBusMessageIter iter; ++ NMWiredNetwork *wired_net; ++ const char *iface = nm_device_get_iface (nm_act_request_get_dev (req)); ++ ++ wired_net = nm_act_request_get_wired_network (req); ++ g_assert (wired_net); ++ ++ if (message_is_error (reply)) { ++ DBusError err; ++ ++ dbus_error_init (&err); ++ dbus_set_error_from_message (&err, reply); ++ ++ /* Check for cancelled error */ ++ if (strcmp (err.name, NMI_DBUS_USER_KEY_CANCELED_ERROR) == 0) ++ nm_info ("Activation (%s) New wired user key request was canceled.", iface); ++ else ++ nm_warning ("nm_dbus_get_user_key_for_network_cb(): dbus returned an error.\n (%s) %s\n", err.name, err.message); ++ ++ dbus_error_free (&err); ++ return FALSE; ++ } ++ ++ nm_info ("Activation (%s) New wired user key received.", iface); ++ ++ dbus_message_iter_init (reply, &iter); ++ if ((security = nm_ap_security_new_deserialize (&iter))) { ++ nm_wired_network_set_security (wired_net, security); ++ g_object_unref (security); ++ } ++ ++ return TRUE; ++} ++ ++/* ++ * nm_dbus_get_user_key_for_network_cb ++ * ++ * Callback from nm_dbus_get_user_key_for_network when NetworkManagerInfo returns ++ * the new user key. ++ * ++ */ ++static void nm_dbus_get_user_key_for_network_cb (DBusPendingCall *pcall, NMActRequest *req) ++{ ++ NMDevice *dev; ++ gboolean success; ++ DBusMessage *reply = NULL; ++ ++ g_return_if_fail (pcall != NULL); ++ g_return_if_fail (req != NULL); ++ ++ if (!dbus_pending_call_get_completed (pcall)) ++ goto out; ++ ++ if (!(reply = dbus_pending_call_steal_reply (pcall))) ++ goto out; ++ ++ dev = nm_act_request_get_dev (req); ++ g_assert (dev); ++ + nm_act_request_set_user_key_pending_call (req, NULL); + +-out: ++ if (NM_IS_DEVICE_802_11_WIRELESS (dev)) ++ success = nm_dbus_get_wireless_user_key_done (reply, req); ++ else if (NM_IS_DEVICE_802_3_ETHERNET (dev)) ++ success = nm_dbus_get_wired_user_key_done (reply, req); ++ else { ++ g_error ("Unhandled device type (%s)", G_OBJECT_TYPE_NAME (dev)); ++ return; ++ } ++ ++ if (success) ++ nm_device_activate_schedule_stage1_device_prepare (req); ++ else ++ nm_policy_schedule_activation_failed (req); ++ ++ out: + if (reply) + dbus_message_unref (reply); + nm_act_request_unref (req); +@@ -126,11 +186,8 @@ + */ + void nm_dbus_get_user_key_for_network (DBusConnection *connection, NMActRequest *req, const gboolean new_key) + { +- DBusMessage * message; +- DBusPendingCall * pcall; + NMData * data; + NMDevice * dev; +- NMAccessPoint * ap; + gint32 attempt = 1; + char * dev_path; + char * net_path; +@@ -145,22 +202,44 @@ + dev = nm_act_request_get_dev (req); + g_assert (dev); + +- ap = nm_act_request_get_ap (req); +- g_assert (ap); ++ if (NM_IS_DEVICE_802_11_WIRELESS (dev)) { ++ NMAccessPoint * ap; + +- essid = nm_ap_get_essid (ap); +- nm_info ("Activation (%s) New wireless user key requested for network '%s'.", nm_device_get_iface (dev), essid); ++ ap = nm_act_request_get_ap (req); ++ g_assert (ap); + +- if (!(message = dbus_message_new_method_call (NMI_DBUS_SERVICE, NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "getKeyForNetwork"))) +- { +- nm_warning ("nm_dbus_get_user_key_for_network(): Couldn't allocate the dbus message"); ++ essid = nm_ap_get_essid (ap); ++ net_path = nm_dbus_get_object_path_for_network (dev, ap); ++ ++ nm_info ("Activation (%s) New wireless user key requested for network '%s'.", ++ nm_device_get_iface (dev), essid); ++ ++ } else if (NM_IS_DEVICE_802_3_ETHERNET (dev)) { ++ NMWiredNetwork *wired_net; ++ ++ wired_net = nm_act_request_get_wired_network (req); ++ g_assert (wired_net); ++ ++ essid = nm_wired_network_get_network_id (wired_net); ++ net_path = g_strdup ("/"); ++ } else { ++ g_error ("Unhandled device type (%s)", G_OBJECT_TYPE_NAME (dev)); + return; + } + + dev_path = nm_dbus_get_object_path_for_device (dev); +- net_path = nm_dbus_get_object_path_for_network (dev, ap); ++ + if (dev_path && strlen (dev_path) && net_path && strlen (net_path)) + { ++ DBusMessage *message; ++ DBusPendingCall *pcall; ++ ++ if (!(message = dbus_message_new_method_call (NMI_DBUS_SERVICE, NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "getKeyForNetwork"))) ++ { ++ nm_warning ("nm_dbus_get_user_key_for_network(): Couldn't allocate the dbus message"); ++ return; ++ } ++ + dbus_message_append_args (message, DBUS_TYPE_OBJECT_PATH, &dev_path, + DBUS_TYPE_OBJECT_PATH, &net_path, + DBUS_TYPE_STRING, &essid, +@@ -176,7 +255,11 @@ + } + else + nm_warning ("nm_dbus_get_user_key_for_network(): could not send dbus message"); +- } else nm_warning ("nm_dbus_get_user_key_for_network(): bad object path data"); ++ ++ dbus_message_unref (message); ++ } else ++ nm_warning ("nm_dbus_get_user_key_for_network(): bad object path data"); ++ + g_free (net_path); + g_free (dev_path); + +@@ -184,8 +267,6 @@ + * we just hang in the activation process and nothing happens + * until the user cancels stuff. + */ +- +- dbus_message_unref (message); + } + + +@@ -219,26 +300,15 @@ + } + + +-/* +- * nm_dbus_update_network_info +- * +- * Tell NetworkManagerInfo the updated info of the AP +- * +- */ +-gboolean nm_dbus_update_network_info (DBusConnection *connection, NMAccessPoint *ap, const gboolean automatic) +-{ +- DBusMessage * message; +- gboolean success = FALSE; +- const char * essid; +- gchar * char_bssid; +- NMAPSecurity * security; +- const struct ether_addr *addr; +- DBusMessageIter iter; +- +- g_return_val_if_fail (connection != NULL, FALSE); +- g_return_val_if_fail (ap != NULL, FALSE); +- +- essid = nm_ap_get_essid (ap); ++static gboolean update_network_info (DBusConnection *connection, ++ const char *network_id, ++ gboolean automatic, ++ const char *bssid, ++ NMAPSecurity *security) ++{ ++ DBusMessage *message; ++ DBusMessageIter iter; ++ gboolean success = FALSE; + + if (!(message = dbus_message_new_method_call (NMI_DBUS_SERVICE, NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "updateNetworkInfo"))) + { +@@ -249,19 +319,52 @@ + dbus_message_iter_init_append (message, &iter); + + /* First argument: ESSID (STRING) */ +- dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &essid); ++ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &network_id); + + /* Second argument: Automatic (BOOLEAN) */ + dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &automatic); + + /* Third argument: Access point's BSSID */ ++ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &bssid); ++ ++ /* Serialize the AP's security info into the message */ ++ if (nm_ap_security_serialize (security, &iter) != 0) ++ goto unref; ++ ++ if (dbus_connection_send (connection, message, NULL)) ++ success = TRUE; ++ else ++ nm_warning ("update_network_info(): failed to send dbus message."); ++ ++unref: ++ dbus_message_unref (message); ++ ++out: ++ return success; ++ ++} ++ ++ ++/* ++ * nm_dbus_update_network_info ++ * ++ * Tell NetworkManagerInfo the updated info of the AP ++ * ++ */ ++gboolean nm_dbus_update_network_info (DBusConnection *connection, NMAccessPoint *ap, const gboolean automatic) ++{ ++ gboolean success; ++ gchar *char_bssid; ++ const struct ether_addr *addr; ++ ++ g_return_val_if_fail (connection != NULL, FALSE); ++ g_return_val_if_fail (ap != NULL, FALSE); ++ + addr = nm_ap_get_address (ap); + if ((nm_ap_get_mode (ap) == IW_MODE_INFRA) && nm_ethernet_address_is_valid (addr)) + { + char_bssid = g_new0 (gchar, 20); + iw_ether_ntop (addr, char_bssid); +- dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &char_bssid); +- g_free (char_bssid); + } + else + { +@@ -269,26 +372,30 @@ + * the BSSID is usually randomly constructed by the driver and + * changed every time you activate the network. + */ +- char_bssid = " "; +- dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &char_bssid); ++ char_bssid = g_strdup (" "); + } + +- /* Serialize the AP's security info into the message */ +- security = nm_ap_get_security (ap); +- g_assert (security); +- if (nm_ap_security_serialize (security, &iter) != 0) +- goto unref; ++ success = update_network_info (connection, ++ nm_ap_get_essid (ap), ++ automatic, ++ char_bssid, ++ nm_ap_get_security (ap)); ++ g_free (char_bssid); + +- if (dbus_connection_send (connection, message, NULL)) +- success = TRUE; +- else +- nm_warning ("nm_dbus_update_network_info(): failed to send dbus message."); ++ return success; ++} + +-unref: +- dbus_message_unref (message); + +-out: +- return success; ++gboolean nm_dbus_update_wired_network_info (DBusConnection *connection, NMWiredNetwork *wired_net) ++{ ++ g_return_val_if_fail (connection != NULL, FALSE); ++ g_return_val_if_fail (wired_net != NULL, FALSE); ++ ++ return update_network_info (connection, ++ nm_wired_network_get_network_id (wired_net), ++ FALSE, ++ "WIRED", /* CRAPPY HACK */ ++ nm_wired_network_get_security (wired_net)); + } + + +diff -urN NetworkManager-0.6.5/src/nm-dbus-nmi.h NetworkManager-SVNr3284/src/nm-dbus-nmi.h +--- NetworkManager-0.6.5/src/nm-dbus-nmi.h 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-dbus-nmi.h 2008-02-04 16:00:13.000000000 +0100 +@@ -24,6 +24,7 @@ + + #include "NetworkManager.h" + #include "NetworkManagerAP.h" ++#include "nm-wired-network.h" + + void nm_dbus_get_user_key_for_network (DBusConnection *connection, NMActRequest *req, const gboolean new_key); + +@@ -33,6 +34,9 @@ + + gboolean nm_dbus_update_network_info (DBusConnection *connection, NMAccessPoint *ap, const gboolean user_requested); + ++gboolean nm_dbus_update_wired_network_info (DBusConnection *connection, NMWiredNetwork *wired_net); ++ ++ + void nm_dbus_update_one_allowed_network (DBusConnection *connection, const char *network, NMData *data); + + void nm_dbus_update_allowed_networks (DBusConnection *connection, NMAccessPointList *list, NMData *data); +diff -urN NetworkManager-0.6.5/src/nm-device-802-11-wireless.c NetworkManager-SVNr3284/src/nm-device-802-11-wireless.c +--- NetworkManager-0.6.5/src/nm-device-802-11-wireless.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-device-802-11-wireless.c 2008-02-04 16:00:13.000000000 +0100 +@@ -1,3 +1,5 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ + /* NetworkManager -- Network link manager + * + * Dan Williams +@@ -35,6 +37,7 @@ + #include "nm-device-private.h" + #include "NetworkManagerAPList.h" + #include "NetworkManagerDbus.h" ++#include "nm-supplicant.h" + #include "nm-utils.h" + #include "NetworkManagerUtils.h" + #include "NetworkManagerPolicy.h" +@@ -47,15 +50,6 @@ + + #define NM_DEVICE_802_11_WIRELESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_802_11_WIRELESS, NMDevice80211WirelessPrivate)) + +-struct _Supplicant +-{ +- GPid pid; +- GSource * watch; +- GSource * status; +- struct wpa_ctrl * ctrl; +- GSource * timeout; +-}; +- + struct _NMDevice80211WirelessPrivate + { + gboolean dispose_has_run; +@@ -77,7 +71,7 @@ + GSource * scan_timeout; + GSource * pending_scan; + +- struct _Supplicant supplicant; ++ NMSupplicant *supplicant; + + guint32 failed_link_count; + GSource * link_timeout; +@@ -86,6 +80,7 @@ + /* Static options from driver */ + guint8 we_version; + guint32 capabilities; ++ gboolean has_scan_capa_ssid; + }; + + +@@ -107,14 +102,11 @@ + + static void cancel_scan_results_timeout (NMDevice80211Wireless *self); + +-static void cancel_pending_scan (NMDevice80211Wireless *self); +- +-static void request_and_convert_scan_results (NMDevice80211Wireless *self); +- + static gboolean process_scan_results (NMDevice80211Wireless *dev, + const guint8 *res_buf, + guint32 res_buf_len); +-static void schedule_scan (NMDevice80211Wireless *self); ++ ++static void schedule_scan (NMDevice80211Wireless *self, guint32 ms); + + static int wireless_qual_to_percent (const struct iw_quality *qual, + const struct iw_quality *max_qual, +@@ -126,8 +118,6 @@ + NMAccessPoint *ap, + gboolean default_link); + +-static void supplicant_cleanup (NMDevice80211Wireless *self); +- + static void remove_link_timeout (NMDevice80211Wireless *self); + + static void nm_device_802_11_wireless_set_wep_enc_key (NMDevice80211Wireless *self, +@@ -140,6 +130,9 @@ + int data_len, + NMDevice80211Wireless *self); + ++static void nm_device_802_11_wireless_set_scan_interval (NMDevice80211Wireless *self, ++ NMWirelessScanInterval interval); ++ + /* + * nm_device_802_11_wireless_update_signal_strength + * +@@ -379,10 +372,29 @@ + self->priv = NM_DEVICE_802_11_WIRELESS_GET_PRIVATE (self); + self->priv->dispose_has_run = FALSE; + self->priv->is_initialized = FALSE; +- +- self->priv->supplicant.pid = -1; + } + ++ ++/* Until a new wireless-tools comes out that has the defs and the structure, ++ * need to copy them here. ++ */ ++/* Scan capability flags - in (struct iw_range *)->scan_capa */ ++#define NM_IW_SCAN_CAPA_NONE 0x00 ++#define NM_IW_SCAN_CAPA_ESSID 0x01 ++ ++struct iw_range_with_scan_capa ++{ ++ guint32 throughput; ++ guint32 min_nwid; ++ guint32 max_nwid; ++ guint16 old_num_channels; ++ guint8 old_num_frequency; ++ ++ guint8 scan_capa; ++/* don't need the rest... */ ++}; ++ ++ + static void + real_init (NMDevice *dev) + { +@@ -398,7 +410,8 @@ + self->priv->ap_list = nm_ap_list_new (NETWORK_TYPE_DEVICE); + + app_data = nm_device_get_app_data (NM_DEVICE (self)); +- nm_device_802_11_wireless_set_scan_interval (app_data, self, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); ++ ++ nm_device_802_11_wireless_set_scan_interval (self, NM_WIRELESS_SCAN_INTERVAL_INIT); + + nm_device_802_11_wireless_set_mode (self, IW_MODE_INFRA); + +@@ -422,6 +435,7 @@ + + if (ioctl (nm_dev_sock_get_fd (sk), SIOCGIWRANGE, &wrq) >= 0) + { ++ struct iw_range_with_scan_capa *scan_capa_range; + int i; + + self->priv->max_qual.qual = range.max_qual.qual; +@@ -440,6 +454,22 @@ + + self->priv->we_version = range.we_version_compiled; + ++ /* Check for the ability to scan specific SSIDs. Until the scan_capa ++ * field gets added to wireless-tools, need to work around that by casting ++ * to the custom structure. ++ */ ++ scan_capa_range = (struct iw_range_with_scan_capa *) ⦥ ++ if (scan_capa_range->scan_capa & NM_IW_SCAN_CAPA_ESSID) { ++ self->priv->has_scan_capa_ssid = TRUE; ++ nm_info ("%s: driver supports SSID scans (scan_capa 0x%02X).", ++ nm_device_get_iface (NM_DEVICE (self)), ++ scan_capa_range->scan_capa); ++ } else { ++ nm_info ("%s: driver does not support SSID scans (scan_capa 0x%02X).", ++ nm_device_get_iface (NM_DEVICE (self)), ++ scan_capa_range->scan_capa); ++ } ++ + /* 802.11 wireless-specific capabilities */ + self->priv->capabilities = get_wireless_capabilities (self, &range, wrq.u.data.length); + } +@@ -582,7 +612,7 @@ + NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (dev); + + /* If the supplicant isn't running, we can't possibly have a link */ +- if (!self->priv->supplicant.pid) ++ if (!self->priv->supplicant) + nm_device_set_active_link (NM_DEVICE (self), FALSE); + } + +@@ -615,16 +645,11 @@ + guint source_id; + + /* Start the scanning timeout for devices that can do scanning */ +- if (nm_device_get_capabilities (dev) & NM_DEVICE_CAP_WIRELESS_SCAN) +- { +- self->priv->pending_scan = g_idle_source_new (); +- g_source_set_callback (self->priv->pending_scan, +- nm_device_802_11_wireless_scan, +- self, +- nm_device_802_11_wireless_scan_done); +- source_id = g_source_attach (self->priv->pending_scan, +- nm_device_get_main_context (dev)); +- g_source_unref (self->priv->pending_scan); ++ if (nm_device_get_capabilities (dev) & NM_DEVICE_CAP_WIRELESS_SCAN) { ++ /* Stupid orinoco has problems scanning immediately after being up, ++ * so wait a bit before triggering a scan. ++ */ ++ schedule_scan (self, 600); + } + + /* Peridoically update link status and signal strength */ +@@ -639,7 +664,11 @@ + { + NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (dev); + +- supplicant_cleanup (self); ++ if (self->priv->supplicant) { ++ g_object_unref (self->priv->supplicant); ++ self->priv->supplicant = NULL; ++ } ++ + remove_link_timeout (self); + } + +@@ -648,16 +677,15 @@ + real_deactivate (NMDevice *dev) + { + NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (dev); +- NMData * app_data; +- +- app_data = nm_device_get_app_data (dev); +- g_assert (app_data); + + /* Clean up stuff, don't leave the card associated */ + nm_device_802_11_wireless_set_essid (self, ""); + nm_device_802_11_wireless_set_wep_enc_key (self, NULL, 0); + nm_device_802_11_wireless_set_mode (self, IW_MODE_INFRA); +- nm_device_802_11_wireless_set_scan_interval (app_data, self, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); ++ ++ /* Don't re-set the scan interval if there hasn't been a scan yet */ ++ if (self->priv->last_scan > 0) ++ nm_device_802_11_wireless_set_scan_interval (self, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); + } + + +@@ -1060,59 +1088,77 @@ + + + static gboolean +-set_scan_interval_cb (gpointer user_data) ++set_inactive_scan_interval_cb (gpointer user_data) + { + NMData *data = (NMData*) user_data; + +- nm_device_802_11_wireless_set_scan_interval (data, NULL, NM_WIRELESS_SCAN_INTERVAL_INACTIVE); +- ++ nm_device_802_11_wireless_ui_activated (data, NM_WIRELESS_SCAN_INTERVAL_INACTIVE); + return FALSE; + } + +-void +-nm_device_802_11_wireless_set_scan_interval (NMData *data, +- NMDevice80211Wireless *self, ++static void ++set_inactive_scan_timeout (NMData *data, NMWirelessScanInterval interval) ++{ ++ static GSource *source = NULL; ++ ++ if (source) { ++ g_source_destroy (source); ++ g_source_unref (source); ++ source = NULL; ++ } ++ ++ if (interval != NM_WIRELESS_SCAN_INTERVAL_INACTIVE) { ++ source = g_timeout_source_new (120000); ++ g_source_set_callback (source, set_inactive_scan_interval_cb, (gpointer) data, NULL); ++ g_source_attach (source, data->main_context); ++ } ++} ++ ++static void ++nm_device_802_11_wireless_set_scan_interval (NMDevice80211Wireless *self, + NMWirelessScanInterval interval) + { +- static guint source_id = 0; +- GSource * source = NULL; +- GSList * elt; +- gboolean found = FALSE; +- guint8 seconds = nm_wireless_scan_interval_to_seconds (interval); ++ guint8 seconds = nm_wireless_scan_interval_to_seconds (interval); + +- g_return_if_fail (data != NULL); ++ g_return_if_fail (self != NULL); + +- if (source_id != 0) +- g_source_remove (source_id); ++ self->priv->scan_interval = seconds; + +- for (elt = data->dev_list; elt; elt = g_slist_next (elt)) +- { +- NMDevice *d = (NMDevice *)(elt->data); +- if (self && (NM_DEVICE (self) != d)) +- continue; ++ if (interval == NM_WIRELESS_SCAN_INTERVAL_ACTIVE && !self->priv->scanning) { ++ glong new_next_scan = self->priv->last_scan + seconds; ++ GTimeVal cur_time; + +- if (d && nm_device_is_802_11_wireless (d)) +- { +- NM_DEVICE_802_11_WIRELESS (d)->priv->scan_interval = seconds; +- if (self && (NM_DEVICE (self) == d)) +- found = TRUE; ++ g_get_current_time (&cur_time); ++ ++ if (new_next_scan <= cur_time.tv_sec) { ++ /* If the interval is now ACTIVE, and the last scan was more than the ++ * ACTIVE interval seconds ago, schedule an immediate scan. ++ */ ++ schedule_scan (self, 200); ++ } else if (new_next_scan > cur_time.tv_sec) { ++ /* If the interval is now ACTIVE, and the last scan was less than the ++ * ACTIVE interval seconds ago, schedule a scan at last_scan + ACTIVE ++ * interval seconds. ++ */ ++ schedule_scan (self, (new_next_scan - cur_time.tv_sec) * 1000); + } + } + +- /* In case the scan interval didn't get set (which can happen during card +- * initialization where the device gets set up before being added to the +- * device list), set interval here +- */ +- if (self && !found) +- self->priv->scan_interval = seconds; ++ set_inactive_scan_timeout (nm_device_get_app_data (NM_DEVICE (self)), interval); ++} + +- if (interval != NM_WIRELESS_SCAN_INTERVAL_INACTIVE) +- { +- source = g_timeout_source_new (120000); +- g_source_set_callback (source, set_scan_interval_cb, (gpointer) data, NULL); +- source_id = g_source_attach (source, data->main_context); +- g_source_unref (source); ++void ++nm_device_802_11_wireless_ui_activated (NMData *data, ++ NMWirelessScanInterval interval) ++{ ++ GSList *iter; ++ ++ for (iter = data->dev_list; iter; iter = g_slist_next (iter)) { ++ if (NM_IS_DEVICE_802_11_WIRELESS (iter->data)) ++ nm_device_802_11_wireless_set_scan_interval (NM_DEVICE_802_11_WIRELESS (iter->data), interval); + } ++ ++ set_inactive_scan_timeout (data, interval); + } + + +@@ -1141,7 +1187,7 @@ + #endif + if (iw_get_ext (nm_dev_sock_get_fd (sk), nm_device_get_iface (NM_DEVICE (self)), SIOCGIWMODE, &wrq) == 0) + { +- if ((mode == IW_MODE_ADHOC) || (mode == IW_MODE_INFRA)) ++ if ((wrq.u.mode == IW_MODE_ADHOC) || (wrq.u.mode == IW_MODE_INFRA)) + mode = wrq.u.mode; + } + else +@@ -1400,14 +1446,15 @@ + unsigned char safe_essid[IW_ESSID_MAX_SIZE + 1] = "\0"; + const char * iface; + const char * driver; ++ gboolean lock_ssid = TRUE; + + g_return_if_fail (self != NULL); + + /* Make sure the essid we get passed is a valid size */ +- if (!essid) ++ if (!essid) { + safe_essid[0] = '\0'; +- else +- { ++ lock_ssid = FALSE; ++ } else { + strncpy ((char *) safe_essid, essid, IW_ESSID_MAX_SIZE); + safe_essid[IW_ESSID_MAX_SIZE] = '\0'; + } +@@ -1417,7 +1464,7 @@ + { + wreq.u.essid.pointer = (caddr_t) safe_essid; + wreq.u.essid.length = strlen ((char *) safe_essid) + 1; +- wreq.u.essid.flags = 1; /* Enable essid on card */ ++ wreq.u.essid.flags = lock_ssid ? 1 : 0; + + #ifdef IOCTL_DEBUG + nm_info ("%s: About to SET IWESSID.", iface); +@@ -1944,7 +1991,6 @@ + { + NMData * app_data = nm_device_get_app_data (NM_DEVICE (self)); + GSource * convert_source = g_idle_source_new (); +- GTimeVal cur_time; + + /* We run the scan processing function from the main thread, since it must deliver + * messages over DBUS. Plus, that way the main thread is the only thread that has +@@ -1960,8 +2006,6 @@ + (GDestroyNotify) free_process_scan_cb_data); + g_source_attach (convert_source, app_data->main_context); + g_source_unref (convert_source); +- g_get_current_time (&cur_time); +- self->priv->last_scan = cur_time.tv_sec; + } + } + +@@ -1985,10 +2029,22 @@ + static gboolean + scan_results_timeout (NMDevice80211Wireless *self) + { ++ GTimeVal cur_time; ++ + g_return_val_if_fail (self != NULL, FALSE); + + request_and_convert_scan_results (self); +- schedule_scan (self); ++ ++ self->priv->scanning = FALSE; ++ ++ g_get_current_time (&cur_time); ++ self->priv->last_scan = cur_time.tv_sec; ++ ++ /* After the first successful scan back down to the ACTIVE scan interval */ ++ if (self->priv->scan_interval == nm_wireless_scan_interval_to_seconds (NM_WIRELESS_SCAN_INTERVAL_INIT)) ++ nm_device_802_11_wireless_set_scan_interval (self, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); ++ else ++ schedule_scan (self, 0); + + return FALSE; + } +@@ -2061,7 +2117,6 @@ + NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (user_data); + guint32 caps; + NMData * app_data; +- gboolean success = FALSE; + const char * iface; + + g_return_val_if_fail (self != NULL, FALSE); +@@ -2073,7 +2128,7 @@ + if (!(caps & NM_DEVICE_CAP_NM_SUPPORTED) || !(caps & NM_DEVICE_CAP_WIRELESS_SCAN)) + goto out; + +- self->priv->pending_scan = NULL; ++ nm_device_802_11_wireless_scan_done ((gpointer) self); + + /* Reschedule ourselves if all wireless is disabled, we're asleep, + * or we are currently activating. +@@ -2082,9 +2137,8 @@ + || (app_data->asleep == TRUE) + || (nm_device_is_activating (NM_DEVICE (self)) == TRUE)) + { +- nm_device_802_11_wireless_set_scan_interval (app_data, self, NM_WIRELESS_SCAN_INTERVAL_INIT); +- schedule_scan (self); +- goto out; ++ nm_device_802_11_wireless_set_scan_interval (self, NM_WIRELESS_SCAN_INTERVAL_INIT); ++ goto reschedule; + } + + /* +@@ -2094,77 +2148,87 @@ + */ + if ((self->priv->num_freqs > 14) && nm_device_is_activated (NM_DEVICE (self)) == TRUE) + { +- nm_device_802_11_wireless_set_scan_interval (app_data, self, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); +- schedule_scan (self); +- goto out; ++ nm_device_802_11_wireless_set_scan_interval (self, NM_WIRELESS_SCAN_INTERVAL_ACTIVE); ++ goto reschedule; + } + +- self->priv->scanning = TRUE; +- + /* Device must be up before we can scan */ + if (nm_device_bring_up_wait (NM_DEVICE (self), 1)) +- { +- schedule_scan (self); +- goto out; +- } ++ goto reschedule; ++ ++ self->priv->scanning = TRUE; + + /* If we're currently connected to an AP, let wpa_supplicant initiate + * the scan request rather than doing it ourselves. + */ + iface = nm_device_get_iface (NM_DEVICE (self)); +- if (self->priv->supplicant.ctrl) +- { +- if (nm_utils_supplicant_request_with_check (self->priv->supplicant.ctrl, +- "OK", __func__, NULL, "SCAN")) +- success = TRUE; +- } +- else +- { +- NMSock * sk; +- +- if ((sk = nm_dev_sock_open (NM_DEVICE (self), DEV_WIRELESS, __FUNCTION__, NULL))) +- { +- struct iwreq wrq; ++ if (self->priv->supplicant) { ++ if (!nm_utils_supplicant_request_with_check (nm_supplicant_get_ctrl (self->priv->supplicant), ++ "OK", __func__, NULL, "SCAN")) { ++ nm_warning ("(%s): could not trigger wireless scan", iface); ++ goto reschedule; ++ } ++ schedule_scan_results_timeout (self, 10); ++ } else { ++ NMSock *sk = NULL; ++ struct iwreq wrq; ++ int ret; + +- wrq.u.data.pointer = NULL; +- wrq.u.data.flags = 0; +- wrq.u.data.length = 0; +- if (iw_set_ext (nm_dev_sock_get_fd (sk), iface, SIOCSIWSCAN, &wrq) == 0) +- success = TRUE; +- nm_dev_sock_close (sk); ++ sk = nm_dev_sock_open (NM_DEVICE (self), DEV_WIRELESS, __FUNCTION__, NULL); ++ if (!sk) { ++ nm_warning ("(%s): could not open control socket on device", iface); ++ goto reschedule; + } +- } + +- if (success) +- { ++ memset (&wrq, 0, sizeof (wrq)); ++ ret = iw_set_ext (nm_dev_sock_get_fd (sk), iface, SIOCSIWSCAN, &wrq); ++ nm_dev_sock_close (sk); ++ ++ if (ret != 0) { ++ nm_warning ("(%s): could not trigger wireless scan: %s", iface, strerror (errno)); ++ goto reschedule; ++ } + schedule_scan_results_timeout (self, 10); + } +- else +- { +- nm_warning ("could not trigger wireless scan on device %s: %s", +- iface, strerror (errno)); +- schedule_scan (self); +- } ++ return FALSE; + ++reschedule: ++ schedule_scan (self, 0); + out: + return FALSE; /* Balance g_source_attach(), destroyed on return */ + } + + ++static void ++cancel_pending_scan (NMDevice80211Wireless *self) ++{ ++ g_return_if_fail (self != NULL); ++ ++ self->priv->scanning = FALSE; ++ if (self->priv->pending_scan) { ++ g_source_destroy (self->priv->pending_scan); ++ self->priv->pending_scan = NULL; ++ } ++} ++ ++ + /* +- * nm_device_wireless_schedule_scan ++ * schedule_scan + * + * Schedule a wireless scan in the /device's/ thread. + * + */ + static void +-schedule_scan (NMDevice80211Wireless *self) ++schedule_scan (NMDevice80211Wireless *self, guint32 ms) + { ++ guint32 interval; ++ + g_return_if_fail (self != NULL); + + cancel_pending_scan (self); + +- self->priv->pending_scan = g_timeout_source_new (self->priv->scan_interval * 1000); ++ interval = ms ? ms : self->priv->scan_interval * 1000; ++ self->priv->pending_scan = g_timeout_source_new (interval); + g_source_set_callback (self->priv->pending_scan, + nm_device_802_11_wireless_scan, + self, +@@ -2174,20 +2238,6 @@ + } + + +-static void +-cancel_pending_scan (NMDevice80211Wireless *self) +-{ +- g_return_if_fail (self != NULL); +- +- self->priv->scanning = FALSE; +- if (self->priv->pending_scan) +- { +- g_source_destroy (self->priv->pending_scan); +- self->priv->pending_scan = NULL; +- } +-} +- +- + /* + * is_associated + * +@@ -2366,144 +2416,205 @@ + return auth_required; + } + +- + /****************************************************************************/ +-/* WPA Supplicant control stuff +- * +- * Originally from: +- * +- * wpa_supplicant wrapper +- * +- * Copyright (C) 2005 Kay Sievers +- * +- * 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 version 2 of the License. +- */ + +-#define WPA_SUPPLICANT_GLOBAL_SOCKET LOCALSTATEDIR"/run/wpa_supplicant-global" +-#define WPA_SUPPLICANT_CONTROL_SOCKET LOCALSTATEDIR"/run/wpa_supplicant" +-#define WPA_SUPPLICANT_NUM_RETRIES 20 +-#define WPA_SUPPLICANT_RETRY_TIME_US 100*1000 +- +- +-static void +-remove_link_timeout (NMDevice80211Wireless *self) ++static guint32 ++find_supported_frequency (NMDevice80211Wireless *self, guint32 *freqs) + { +- g_return_if_fail (self != NULL); ++ int i; + +- if (self->priv->link_timeout != NULL) +- { +- g_source_destroy (self->priv->link_timeout); +- self->priv->link_timeout = NULL; ++ for (i = 0; i < self->priv->num_freqs; i++) { ++ while (*freqs) { ++ if ((guint32) self->priv->freqs[i] == (*freqs * 1000000)) ++ return *freqs; ++ freqs++; ++ } + } +-} + +-static void +-supplicant_remove_timeout (NMDevice80211Wireless *self) +-{ +- g_return_if_fail (self != NULL); +- +- /* Remove any pending timeouts on the request */ +- if (self->priv->supplicant.timeout != NULL) +- { +- g_source_destroy (self->priv->supplicant.timeout); +- self->priv->supplicant.timeout = NULL; +- } ++ return 0; + } + +-static char * +-supplicant_get_device_socket_path (NMDevice80211Wireless *self) ++static gboolean ++supplicant_send_network_config (NMDevice80211Wireless *self, ++ NMActRequest *req) + { +- const char *iface; ++ NMAccessPoint * ap = NULL; ++ gboolean success = FALSE; ++ char * response = NULL; ++ int nwid; ++ const char * essid; ++ struct wpa_ctrl * ctrl; ++ gboolean is_adhoc; ++ char * hex_essid = NULL; ++ const char * ap_scan = "AP_SCAN 1"; ++ guint32 caps; ++ gboolean supports_wpa; + +- g_return_val_if_fail (self != NULL, NULL); ++ ap = nm_act_request_get_ap (req); ++ g_assert (ap); + +- iface = nm_device_get_iface (NM_DEVICE (self)); +- return g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "/%s", iface); +-} ++ ctrl = nm_supplicant_get_ctrl (self->priv->supplicant); ++ g_assert (ctrl); + +-static void +-supplicant_cleanup (NMDevice80211Wireless *self) +-{ +- char * sock_path; ++ /* Assume that drivers that don't support WPA pretty much suck, ++ * and can't handle NM scanning along with wpa_supplicant. Which ++ * is the case for most of them, airo in particular. ++ */ ++ caps = nm_device_get_type_capabilities (NM_DEVICE (self)); ++ supports_wpa = (caps & NM_802_11_CAP_PROTO_WPA) ++ || (caps & NM_802_11_CAP_PROTO_WPA2); + +- g_return_if_fail (self != NULL); ++ /* Use "AP_SCAN 2" if: ++ * - The wireless network is non-broadcast and the driver doesn't support ++ * scanning specific SSIDs ++ * - The wireless network is Ad-Hoc ++ * - The wireless driver does not support WPA (stupid drivers...) ++ */ ++ is_adhoc = (nm_ap_get_mode(ap) == IW_MODE_ADHOC); ++ if (is_adhoc || !supports_wpa) ++ ap_scan = "AP_SCAN 2"; ++ else if (!nm_ap_get_broadcast (ap)) ++ ap_scan = self->priv->has_scan_capa_ssid ? "AP_SCAN 1" : "AP_SCAN 2"; + +- if (self->priv->supplicant.pid > 0) +- { +- kill (self->priv->supplicant.pid, SIGTERM); +- self->priv->supplicant.pid = -1; +- } +- if (self->priv->supplicant.watch) ++ /* Tell wpa_supplicant that we'll do the scanning */ ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ap_scan)) ++ goto out; ++ ++ /* Standard network setup info */ ++ if (!(response = nm_utils_supplicant_request (ctrl, "ADD_NETWORK"))) + { +- g_source_destroy (self->priv->supplicant.watch); +- self->priv->supplicant.watch = NULL; ++ nm_warning ("Supplicant error for ADD_NETWORK.\n"); ++ goto out; + } +- if (self->priv->supplicant.status) ++ if (sscanf (response, "%i\n", &nwid) != 1) + { +- g_source_destroy (self->priv->supplicant.status); +- self->priv->supplicant.status = NULL; ++ nm_warning ("Supplicant error for ADD_NETWORK. Response: '%s'\n", response); ++ g_free (response); ++ goto out; + } +- if (self->priv->supplicant.ctrl) ++ g_free (response); ++ ++ if (nm_device_activation_should_cancel (NM_DEVICE (self))) ++ goto out; ++ ++ essid = nm_ap_get_orig_essid (ap); ++ hex_essid = cipher_bin2hexstr (essid, strlen (essid), -1); ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "SET_NETWORK %i ssid %s", nwid, hex_essid)) ++ goto out; ++ ++ /* For non-broadcast networks, we need to set "scan_ssid 1" to scan with probe request frames. ++ * However, don't try to probe Ad-Hoc networks. ++ */ ++ if (!nm_ap_get_broadcast (ap) && !is_adhoc) + { +- wpa_ctrl_close (self->priv->supplicant.ctrl); +- self->priv->supplicant.ctrl = NULL; ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "SET_NETWORK %i scan_ssid 1", nwid)) ++ goto out; + } + +- supplicant_remove_timeout (self); +- remove_link_timeout (self); ++ /* Ad-Hoc ? */ ++ if (is_adhoc) { ++ guint32 adhoc_freq = nm_ap_get_freq (ap); + +- /* HACK: should be fixed in wpa_supplicant. Will likely +- * require accomodations for selinux. +- */ +- unlink (WPA_SUPPLICANT_GLOBAL_SOCKET); +- sock_path = supplicant_get_device_socket_path (self); +- unlink (sock_path); +- g_free (sock_path); +-} ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "SET_NETWORK %i mode 1", nwid)) ++ goto out; ++ ++ if (!adhoc_freq) { ++ guint32 freqs[] = {2412, 2437, 2462, 2472, 0}; ++ adhoc_freq = find_supported_frequency (self, freqs); ++ if (!adhoc_freq) ++ adhoc_freq = 2462; ++ } ++ /* Don't make failure to set the frequency option a hard error */ ++ nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "SET_NETWORK %i frequency %d", ++ nwid, adhoc_freq); ++ } + +-static void +-supplicant_watch_done (gpointer user_data) +-{ +- NMDevice80211Wireless *device = NM_DEVICE_802_11_WIRELESS (user_data); ++ if (nm_device_activation_should_cancel (NM_DEVICE (self))) ++ goto out; + +- device->priv->supplicant.watch = NULL; +-} ++ if (!nm_ap_security_write_supplicant_config (nm_ap_get_security (ap), ctrl, nwid, ++ is_adhoc ? ++ NM_AP_SECURITY_WRITE_FLAG_ADHOC : ++ NM_AP_SECURITY_WRITE_FLAG_NONE)) ++ goto out; + +-static void +-supplicant_watch_cb (GPid pid, +- gint status, +- gpointer user_data) +-{ +- NMDevice * dev = NM_DEVICE (user_data); +- NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (user_data); +- +- g_assert (self); ++ if (nm_device_activation_should_cancel (NM_DEVICE (self))) ++ goto out; + +- if (WIFEXITED (status)) +- nm_warning ("wpa_supplicant exited with error code %d", WEXITSTATUS (status)); +- else if (WIFSTOPPED (status)) +- nm_warning ("wpa_supplicant stopped unexpectedly with signal %d", WSTOPSIG (status)); +- else if (WIFSIGNALED (status)) +- nm_warning ("wpa_supplicant died with signal %d", WTERMSIG (status)); +- else +- nm_warning ("wpa_supplicant died from an unknown cause"); ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "ENABLE_NETWORK %i", nwid, essid)) ++ goto out; + +- supplicant_cleanup (self); ++ success = TRUE; ++out: ++ g_free (hex_essid); + +- nm_device_set_active_link (dev, FALSE); ++ return success; + } + ++#define NM_SUPPLICANT_TIMEOUT 20 /* how long we wait for wpa_supplicant to associate (in seconds) */ + +-static void +-link_timeout_done (gpointer user_data) ++static unsigned int ++get_supplicant_timeout (NMDevice80211Wireless *self) + { +- NMDevice80211Wireless *device = NM_DEVICE_802_11_WIRELESS (user_data); +- +- device->priv->link_timeout = NULL; ++ if (self->priv->num_freqs > 14) ++ return NM_SUPPLICANT_TIMEOUT * 2; ++ return NM_SUPPLICANT_TIMEOUT; ++} ++ ++static gboolean ++supplicant_timed_out (gpointer user_data) ++{ ++ NMDevice *dev = NM_DEVICE (user_data); ++ NMDevice80211Wireless *self = NM_DEVICE_802_11_WIRELESS (user_data); ++ NMActRequest *req = nm_device_get_act_request (dev); ++ NMAccessPoint *ap = nm_act_request_get_ap (req); ++ NMData *data = nm_device_get_app_data (dev); ++ gboolean has_key; ++ ++ /* Timed out waiting for authentication success; if the security method ++ * in use does not require access point side authentication (Open System ++ * WEP, for example) then we are likely using the wrong authentication ++ * algorithm or key. Request new one from the user. ++ */ ++ if (!ap_is_auth_required (ap, &has_key) && has_key) { ++ /* Activation failed, we must have bad encryption key */ ++ nm_info ("Activation (%s/wireless): association took too long (>%us), asking for new key.", ++ nm_device_get_iface (dev), get_supplicant_timeout (self)); ++ nm_dbus_get_user_key_for_network (data->dbus_connection, req, TRUE); ++ } else { ++ nm_info ("Activation (%s/wireless): association took too long (>%us), failing activation.", ++ nm_device_get_iface (dev), get_supplicant_timeout (self)); ++ if (nm_device_is_activating (dev)) ++ nm_policy_schedule_activation_failed (nm_device_get_act_request (dev)); ++ } ++ ++ return FALSE; + } + ++static void ++remove_link_timeout (NMDevice80211Wireless *self) ++{ ++ g_return_if_fail (self != NULL); ++ ++ if (self->priv->link_timeout != NULL) ++ { ++ g_source_destroy (self->priv->link_timeout); ++ self->priv->link_timeout = NULL; ++ } ++} ++ ++static void ++link_timeout_done (gpointer user_data) ++{ ++ NMDevice80211Wireless *device = NM_DEVICE_802_11_WIRELESS (user_data); ++ ++ device->priv->link_timeout = NULL; ++} + + /* + * link_timeout_cb +@@ -2533,7 +2644,7 @@ + /* Association/authentication failed, we must have bad encryption key */ + nm_info ("Activation (%s/wireless): disconnected during association," + " asking for new key.", nm_device_get_iface (dev)); +- supplicant_remove_timeout(self); ++ nm_supplicant_remove_timeout (self->priv->supplicant); + nm_dbus_get_user_key_for_network (data->dbus_connection, req, TRUE); + } + else +@@ -2545,418 +2656,58 @@ + return FALSE; + } + +- + static void +-supplicant_status_done (gpointer user_data) +-{ +- NMDevice80211Wireless *device = NM_DEVICE_802_11_WIRELESS (user_data); +- +- device->priv->supplicant.status = NULL; +-} +- +- +-#define MESSAGE_LEN 2048 +- +-static gboolean +-supplicant_status_cb (GIOChannel *source, +- GIOCondition condition, +- gpointer user_data) +-{ +- NMDevice * dev = NM_DEVICE (user_data); +- NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (user_data); +- char * message; +- size_t len; +- struct wpa_ctrl * ctrl; +- NMActRequest * req; +- +- g_assert (self); ++supplicant_state_changed (NMSupplicant *supplicant, ++ gboolean connected, ++ gpointer user_data) ++{ ++ NMDevice80211Wireless *self = NM_DEVICE_802_11_WIRELESS (user_data); ++ NMDevice *dev = NM_DEVICE (self); ++ NMActRequest *req = nm_device_get_act_request (NM_DEVICE (self)); + +- /* Do nothing if we're supposed to be canceling activation. +- * We'll get cleaned up by the cancellation handlers later. +- */ +- if (nm_device_activation_should_cancel (dev)) +- return TRUE; +- +- ctrl = self->priv->supplicant.ctrl; +- g_return_val_if_fail (ctrl != NULL, FALSE); +- +- req = nm_device_get_act_request (NM_DEVICE (self)); +- +- message = g_malloc (MESSAGE_LEN); +- len = MESSAGE_LEN; +- wpa_ctrl_recv (ctrl, message, &len); +- message[len] = '\0'; +- +- if (strstr (message, WPA_EVENT_CONNECTED) != NULL) +- { ++ if (connected) { + remove_link_timeout (self); + nm_device_set_active_link (dev, TRUE); + + /* If this is the initial association during device activation, + * schedule the next activation stage. + */ +- if (req && (nm_act_request_get_stage (req) == NM_ACT_STAGE_DEVICE_CONFIG)) +- { +- NMAccessPoint *ap = nm_act_request_get_ap (req); ++ if (req && (nm_act_request_get_stage (req) == NM_ACT_STAGE_DEVICE_CONFIG)) { ++ NMAccessPoint *ap = nm_act_request_get_ap (req); + + nm_info ("Activation (%s/wireless) Stage 2 of 5 (Device Configure) " +- "successful. Connected to access point '%s'.", +- nm_device_get_iface (NM_DEVICE (self)), +- nm_ap_get_essid (ap) ? nm_ap_get_essid (ap) : "(none)"); +- supplicant_remove_timeout (self); ++ "successful. Connected to access point '%s'.", ++ nm_device_get_iface (dev), ++ nm_ap_get_essid (ap) ? nm_ap_get_essid (ap) : "(none)"); ++ nm_supplicant_remove_timeout (self->priv->supplicant); + nm_device_activate_schedule_stage3_ip_config_start (req); + } +- } +- else if (strstr (message, WPA_EVENT_DISCONNECTED) != NULL) +- { +- if (nm_device_is_activated (dev) || nm_device_is_activating (dev)) +- { ++ } else { ++ if (nm_device_is_activated (dev) || nm_device_is_activating (dev)) { + /* Start the link timeout so we allow some time for reauthentication */ +- if ((self->priv->link_timeout == NULL) && !self->priv->scanning) +- { +- GMainContext * context = nm_device_get_main_context (dev); ++ if ((self->priv->link_timeout == NULL) && !self->priv->scanning) { + self->priv->link_timeout = g_timeout_source_new (8000); + g_source_set_callback (self->priv->link_timeout, +- link_timeout_cb, +- self, +- link_timeout_done); +- g_source_attach (self->priv->link_timeout, context); ++ link_timeout_cb, ++ self, ++ link_timeout_done); ++ g_source_attach (self->priv->link_timeout, nm_device_get_main_context (dev)); + g_source_unref (self->priv->link_timeout); + } +- } +- else +- { ++ } else + nm_device_set_active_link (dev, FALSE); +- } + } +- +- g_free (message); +- +- return TRUE; + } + +- +-#define NM_SUPPLICANT_TIMEOUT 20 /* how long we wait for wpa_supplicant to associate (in seconds) */ +- +-static unsigned int +-get_supplicant_timeout (NMDevice80211Wireless *self) +-{ +- if (self->priv->num_freqs > 14) +- return NM_SUPPLICANT_TIMEOUT * 2; +- return NM_SUPPLICANT_TIMEOUT; +-} +- +- + static void +-supplicant_timeout_done (gpointer user_data) +-{ +- NMDevice80211Wireless *device = NM_DEVICE_802_11_WIRELESS (user_data); +- +- device->priv->supplicant.timeout = NULL; +-} +- +- +-/* +- * supplicant_timeout_cb +- * +- * Called when the supplicant has been unable to connect to an access point +- * within a specified period of time. +- */ +-static gboolean +-supplicant_timeout_cb (gpointer user_data) ++supplicant_down (NMSupplicant *supplicant, ++ gpointer user_data) + { +- NMDevice * dev = NM_DEVICE (user_data); +- NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (user_data); +- NMActRequest * req = nm_device_get_act_request (dev); +- NMAccessPoint * ap = nm_act_request_get_ap (req); +- NMData * data = nm_device_get_app_data (dev); +- gboolean has_key; ++ NMDevice80211Wireless *self = NM_DEVICE_802_11_WIRELESS (user_data); + +- g_assert (self); +- +- /* Timed out waiting for authentication success; if the security method +- * in use does not require access point side authentication (Open System +- * WEP, for example) then we are likely using the wrong authentication +- * algorithm or key. Request new one from the user. +- */ +- if (!ap_is_auth_required (ap, &has_key) && has_key) +- { +- /* Activation failed, we must have bad encryption key */ +- nm_info ("Activation (%s/wireless): association took too long (>%us), asking for new key.", +- nm_device_get_iface (dev), get_supplicant_timeout (self)); +- nm_dbus_get_user_key_for_network (data->dbus_connection, req, TRUE); +- } +- else +- { +- nm_info ("Activation (%s/wireless): association took too long (>%us), failing activation.", +- nm_device_get_iface (dev), get_supplicant_timeout (self)); +- if (nm_device_is_activating (dev)) +- nm_policy_schedule_activation_failed (nm_device_get_act_request (dev)); +- } +- +- return FALSE; +-} +- +-/* +- * supplicant_child_setup +- * +- * Set the process group ID of the newly forked process +- * +- */ +-static void +-supplicant_child_setup (gpointer user_data G_GNUC_UNUSED) +-{ +- /* We are in the child process at this point */ +- pid_t pid = getpid (); +- setpgid (pid, pid); +-} +- +-static gboolean +-supplicant_exec (NMDevice80211Wireless *self) +-{ +- gboolean success = FALSE; +- char * argv[4]; +- GError * error = NULL; +- GPid pid = -1; +- +- argv[0] = WPA_SUPPLICANT_BIN; +- argv[1] = "-g"; +- argv[2] = WPA_SUPPLICANT_GLOBAL_SOCKET; +- argv[3] = NULL; +- +- success = g_spawn_async ("/", argv, NULL, 0, &supplicant_child_setup, NULL, +- &pid, &error); +- if (!success) +- { +- if (error) +- { +- nm_warning ("Couldn't start wpa_supplicant. Error: (%d) %s", +- error->code, error->message); +- g_error_free (error); +- } +- else +- nm_warning ("Couldn't start wpa_supplicant due to an unknown error."); +- } +- else +- { +- /* Monitor the child process so we know when it stops */ +- self->priv->supplicant.pid = pid; +- if (self->priv->supplicant.watch) +- g_source_destroy (self->priv->supplicant.watch); +- self->priv->supplicant.watch = g_child_watch_source_new (pid); +- g_source_set_callback (self->priv->supplicant.watch, +- (GSourceFunc) supplicant_watch_cb, +- self, +- supplicant_watch_done); +- g_source_attach (self->priv->supplicant.watch, nm_device_get_main_context (NM_DEVICE (self))); +- g_source_unref (self->priv->supplicant.watch); +- } +- +- return success; +-} +- +- +-static gboolean +-supplicant_interface_init (NMDevice80211Wireless *self) +-{ +- struct wpa_ctrl * ctrl = NULL; +- char * socket_path; +- const char * iface = nm_device_get_iface (NM_DEVICE (self)); +- gboolean success = FALSE; +- int tries = 0; +- +- /* Try to open wpa_supplicant's global control socket */ +- for (tries = 0; tries < WPA_SUPPLICANT_NUM_RETRIES && !ctrl; tries++) +- { +- ctrl = wpa_ctrl_open (WPA_SUPPLICANT_GLOBAL_SOCKET, NM_RUN_DIR); +- g_usleep (WPA_SUPPLICANT_RETRY_TIME_US); +- } +- +- if (!ctrl) +- { +- nm_info ("Error opening supplicant global control interface."); +- goto exit; +- } +- +- /* wpa_cli -g/var/run/wpa_supplicant-global interface_add eth1 "" wext /var/run/wpa_supplicant */ +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +- "INTERFACE_ADD %s\t\twext\t" WPA_SUPPLICANT_CONTROL_SOCKET "\t", iface)) +- goto exit; +- wpa_ctrl_close (ctrl); +- +- /* Get a control socket to wpa_supplicant for this interface. +- * Try a couple times to work around naive socket naming +- * in wpa_ctrl that sometimes collides with stale ones. +- */ +- socket_path = supplicant_get_device_socket_path (self); +- while (!self->priv->supplicant.ctrl && (tries++ < 10)) +- self->priv->supplicant.ctrl = wpa_ctrl_open (socket_path, NM_RUN_DIR); +- g_free (socket_path); +- if (!self->priv->supplicant.ctrl) +- { +- nm_info ("Error opening control interface to supplicant."); +- goto exit; +- } +- success = TRUE; +- +-exit: +- return success; +-} +- +- +-static gboolean +-supplicant_send_network_config (NMDevice80211Wireless *self, +- NMActRequest *req) +-{ +- NMAccessPoint * ap = NULL; +- gboolean success = FALSE; +- char * response = NULL; +- int nwid; +- const char * essid; +- struct wpa_ctrl * ctrl; +- gboolean is_adhoc; +- char * hex_essid = NULL; +- const char * ap_scan = "AP_SCAN 1"; +- guint32 caps; +- gboolean supports_wpa; +- +- g_return_val_if_fail (self != NULL, FALSE); +- g_return_val_if_fail (req != NULL, FALSE); +- +- ap = nm_act_request_get_ap (req); +- g_assert (ap); +- +- ctrl = self->priv->supplicant.ctrl; +- g_assert (ctrl); +- +- /* Assume that drivers that don't support WPA pretty much suck, +- * and can't handle NM scanning along with wpa_supplicant. Which +- * is the case for most of them, airo in particular. +- */ +- caps = nm_device_get_type_capabilities (NM_DEVICE (self)); +- supports_wpa = (caps & NM_802_11_CAP_PROTO_WPA) +- || (caps & NM_802_11_CAP_PROTO_WPA2); +- +- /* Use "AP_SCAN 2" if: +- * - The wireless network is non-broadcast or Ad-Hoc +- * - The wireless driver does not support WPA (stupid drivers...) +- */ +- is_adhoc = (nm_ap_get_mode(ap) == IW_MODE_ADHOC); +- if (!nm_ap_get_broadcast (ap) || is_adhoc || !supports_wpa) +- ap_scan = "AP_SCAN 2"; +- +- /* Tell wpa_supplicant that we'll do the scanning */ +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ap_scan)) +- goto out; +- +- /* Standard network setup info */ +- if (!(response = nm_utils_supplicant_request (ctrl, "ADD_NETWORK"))) +- { +- nm_warning ("Supplicant error for ADD_NETWORK.\n"); +- goto out; +- } +- if (sscanf (response, "%i\n", &nwid) != 1) +- { +- nm_warning ("Supplicant error for ADD_NETWORK. Response: '%s'\n", response); +- g_free (response); +- goto out; +- } +- g_free (response); +- +- if (nm_device_activation_should_cancel (NM_DEVICE (self))) +- goto out; +- +- essid = nm_ap_get_orig_essid (ap); +- hex_essid = cipher_bin2hexstr (essid, strlen (essid), -1); +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +- "SET_NETWORK %i ssid %s", nwid, hex_essid)) +- goto out; +- +- /* For non-broadcast networks, we need to set "scan_ssid 1" to scan with probe request frames. +- * However, don't try to probe Ad-Hoc networks. +- */ +- if (!nm_ap_get_broadcast (ap) && !is_adhoc) +- { +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +- "SET_NETWORK %i scan_ssid 1", nwid)) +- goto out; +- } +- +- /* Ad-Hoc ? */ +- if (is_adhoc) +- { +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +- "SET_NETWORK %i mode 1", nwid)) +- goto out; +- } +- +- if (nm_device_activation_should_cancel (NM_DEVICE (self))) +- goto out; +- +- if (!nm_ap_security_write_supplicant_config (nm_ap_get_security (ap), ctrl, nwid, is_adhoc)) +- goto out; +- +- if (nm_device_activation_should_cancel (NM_DEVICE (self))) +- goto out; +- +- if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +- "ENABLE_NETWORK %i", nwid, essid)) +- goto out; +- +- success = TRUE; +-out: +- g_free (hex_essid); +- +- return success; +-} +- +- +-static gboolean +-supplicant_monitor_start (NMDevice80211Wireless *self) +-{ +- gboolean success = FALSE; +- int fd = -1; +- GIOChannel * channel; +- GMainContext * context; +- +- g_return_val_if_fail (self != NULL, FALSE); +- +- /* register network event monitor */ +- if (wpa_ctrl_attach (self->priv->supplicant.ctrl) != 0) +- goto out; +- +- if ((fd = wpa_ctrl_get_fd (self->priv->supplicant.ctrl)) < 0) +- goto out; +- +- context = nm_device_get_main_context (NM_DEVICE (self)); +- channel = g_io_channel_unix_new (fd); +- self->priv->supplicant.status = g_io_create_watch (channel, G_IO_IN); +- g_io_channel_unref (channel); +- g_source_set_callback (self->priv->supplicant.status, +- (GSourceFunc) supplicant_status_cb, +- self, +- supplicant_status_done); +- g_source_attach (self->priv->supplicant.status, context); +- g_source_unref (self->priv->supplicant.status); +- +- /* Set up a timeout on the association to kill it after get_supplicant_time() seconds */ +- self->priv->supplicant.timeout = g_timeout_source_new (get_supplicant_timeout (self) * 1000); +- g_source_set_callback (self->priv->supplicant.timeout, +- supplicant_timeout_cb, +- self, +- supplicant_timeout_done); +- g_source_attach (self->priv->supplicant.timeout, context); +- g_source_unref (self->priv->supplicant.timeout); +- +- success = TRUE; +- +-out: +- return success; ++ remove_link_timeout (self); + } + +- +- +- + /****************************************************************************/ + + static NMActStageReturn +@@ -2965,14 +2716,15 @@ + { + NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (dev); + NMAccessPoint * ap = nm_act_request_get_ap (req); +- NMActStageReturn ret = NM_ACT_STAGE_RETURN_FAILURE; + NMData * data = nm_act_request_get_data (req); + const char * iface; + gboolean ask_user = FALSE; ++ GMainContext *ctx; + + g_assert (ap); + +- supplicant_cleanup (self); ++ if (self->priv->supplicant) ++ g_object_unref (self->priv->supplicant); + + /* If we need an encryption key, get one */ + if (ap_need_key (self, ap, &ask_user)) +@@ -2981,23 +2733,36 @@ + return NM_ACT_STAGE_RETURN_POSTPONE; + } + ++ /* Some cards are dumb. Wait a second */ ++ sleep (1); ++ + iface = nm_device_get_iface (dev); +- if (!supplicant_exec (self)) ++ ctx = nm_device_get_main_context (dev); ++ ++ self->priv->supplicant = nm_supplicant_new (); ++ g_signal_connect (self->priv->supplicant, "state-changed", ++ G_CALLBACK (supplicant_state_changed), ++ self); ++ ++ g_signal_connect (self->priv->supplicant, "down", ++ G_CALLBACK (supplicant_down), ++ self); ++ ++ if (!nm_supplicant_exec (self->priv->supplicant, ctx)) + { +- nm_warning ("Activation (%s/wireless): couldn't start the supplicant.", +- iface); ++ nm_warning ("Activation (%s/wireless): couldn't start the supplicant.", iface); + goto out; + } +- if (!supplicant_interface_init (self)) ++ if (!nm_supplicant_interface_init (self->priv->supplicant, iface, "wext")) + { +- nm_warning ("Activation (%s/wireless): couldn't connect to the supplicant.", +- iface); ++ nm_warning ("Activation (%s/wireless): couldn't connect to the supplicant.", iface); + goto out; + } +- if (!supplicant_monitor_start (self)) ++ if (!nm_supplicant_monitor_start (self->priv->supplicant, ctx, ++ get_supplicant_timeout (self), ++ supplicant_timed_out, self)) + { +- nm_warning ("Activation (%s/wireless): couldn't monitor the supplicant.", +- iface); ++ nm_warning ("Activation (%s/wireless): couldn't monitor the supplicant.", iface); + goto out; + } + if (!supplicant_send_network_config (self, req)) +@@ -3008,10 +2773,13 @@ + } + + /* We'll get stage3 started when the supplicant connects */ +- ret = NM_ACT_STAGE_RETURN_POSTPONE; ++ return NM_ACT_STAGE_RETURN_POSTPONE; + + out: +- return ret; ++ g_object_unref (self->priv->supplicant); ++ self->priv->supplicant = NULL; ++ ++ return NM_ACT_STAGE_RETURN_FAILURE; + } + + +@@ -3113,6 +2881,14 @@ + /* Activation failed, we must have bad encryption key */ + nm_debug ("Activation (%s/wireless): could not get IP configuration info for '%s', asking for new key.", + nm_device_get_iface (dev), nm_ap_get_essid (ap) ? nm_ap_get_essid (ap) : "(none)"); ++ ++ /* Kill the supplicant */ ++ if (self->priv->supplicant) { ++ g_object_unref (self->priv->supplicant); ++ self->priv->supplicant = NULL; ++ } ++ remove_link_timeout (self); ++ + nm_dbus_get_user_key_for_network (data->dbus_connection, req, TRUE); + ret = NM_ACT_STAGE_RETURN_POSTPONE; + } +@@ -3446,10 +3222,9 @@ + char *genie, *gpos, *gend, *custom; + NMAccessPoint *ap = NULL; + size_t clen; +- int maxrate; ++ int maxrate = 0; + struct iw_event iwe_buf, *iwe = &iwe_buf; + struct stream_descr stream; +- struct wireless_scan * wscan = NULL; + int ret; + + g_return_val_if_fail (dev != NULL, FALSE); +diff -urN NetworkManager-0.6.5/src/nm-device-802-11-wireless.h NetworkManager-SVNr3284/src/nm-device-802-11-wireless.h +--- NetworkManager-0.6.5/src/nm-device-802-11-wireless.h 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-device-802-11-wireless.h 2008-02-04 16:00:13.000000000 +0100 +@@ -92,9 +92,8 @@ + const char *essid, + NMAPSecurity *security); + +-void nm_device_802_11_wireless_set_scan_interval (struct NMData *data, +- NMDevice80211Wireless *dev, +- NMWirelessScanInterval interval); ++void nm_device_802_11_wireless_ui_activated (struct NMData *data, ++ NMWirelessScanInterval interval); + + void nm_device_802_11_wireless_copy_allowed_to_dev_list (NMDevice80211Wireless *self, + struct NMAccessPointList *allowed_list); +diff -urN NetworkManager-0.6.5/src/nm-device-802-3-ethernet.c NetworkManager-SVNr3284/src/nm-device-802-3-ethernet.c +--- NetworkManager-0.6.5/src/nm-device-802-3-ethernet.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-device-802-3-ethernet.c 2008-02-04 16:00:13.000000000 +0100 +@@ -1,3 +1,5 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ + /* NetworkManager -- Network link manager + * + * Dan Williams +@@ -30,8 +32,10 @@ + #include "nm-device-private.h" + #include "NetworkManagerMain.h" + #include "nm-activation-request.h" ++#include "nm-supplicant.h" + #include "NetworkManagerUtils.h" + #include "NetworkManagerPolicy.h" ++#include "nm-dbus-nmi.h" + #include "nm-utils.h" + #include "kernel-types.h" + +@@ -44,6 +48,9 @@ + char * carrier_file_path; + gulong link_connected_id; + gulong link_disconnected_id; ++ NMSupplicant * supplicant; ++ GSource * link_timeout; ++ gboolean failed_8021x; + }; + + static gboolean supports_mii_carrier_detect (NMDevice8023Ethernet *dev); +@@ -56,6 +63,8 @@ + GObject *obj, + NMDevice8023Ethernet *self); + ++static void remove_link_timeout (NMDevice8023Ethernet *self); ++ + + static void + nm_device_802_3_ethernet_init (NMDevice8023Ethernet * self) +@@ -99,7 +108,9 @@ + static gboolean + link_activated_helper (NMDevice8023Ethernet *self) + { +- nm_device_set_active_link (NM_DEVICE (self), TRUE); ++ if (!self->priv->failed_8021x) ++ nm_device_set_active_link (NM_DEVICE (self), TRUE); ++ + return FALSE; + } + +@@ -108,18 +119,16 @@ + GObject *obj, + NMDevice8023Ethernet *self) + { ++ GSource * source; ++ + /* Make sure signal is for us */ + if (NM_DEVICE (self) != NM_DEVICE (obj)) + return; + +- if (!nm_device_has_active_link (NM_DEVICE (self))) +- { +- GSource * source = g_idle_source_new (); +- +- g_source_set_callback (source, (GSourceFunc) link_activated_helper, self, NULL); +- g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); +- g_source_unref (source); +- } ++ source = g_idle_source_new (); ++ g_source_set_callback (source, (GSourceFunc) link_activated_helper, self, NULL); ++ g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); ++ g_source_unref (source); + } + + +@@ -135,48 +144,50 @@ + GObject *obj, + NMDevice8023Ethernet *self) + { ++ GSource * source; ++ + /* Make sure signal is for us */ + if (NM_DEVICE (self) != NM_DEVICE (obj)) + return; + +- if (nm_device_has_active_link (NM_DEVICE (self))) +- { +- GSource * source = g_idle_source_new (); +- +- g_source_set_callback (source, (GSourceFunc) link_deactivated_helper, self, NULL); +- g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); +- g_source_unref (source); +- } ++ source = g_idle_source_new (); ++ g_source_set_callback (source, (GSourceFunc) link_deactivated_helper, self, NULL); ++ g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); ++ g_source_unref (source); + } + +-static void +-real_update_link (NMDevice *dev) ++static gboolean ++poll_link_state (NMDevice8023Ethernet *self) + { +- NMDevice8023Ethernet * self = NM_DEVICE_802_3_ETHERNET (dev); +- gboolean have_link = FALSE; ++ gboolean have_link = FALSE; + guint32 caps; +- gchar * contents; +- gsize length; ++ gchar *contents; ++ gsize length; + +- if (nm_device_get_removed (NM_DEVICE (self))) +- goto out; ++ if (nm_device_get_removed (NM_DEVICE (self)) || self->priv->failed_8021x) ++ return FALSE; + + /* Devices that don't support carrier detect are always "on" and + * must be manually chosen by the user. + */ + caps = nm_device_get_capabilities (NM_DEVICE (self)); +- if (!(caps & NM_DEVICE_CAP_CARRIER_DETECT)) { +- have_link = TRUE; +- goto out; +- } ++ if (!(caps & NM_DEVICE_CAP_CARRIER_DETECT)) ++ return TRUE; + + if (g_file_get_contents (self->priv->carrier_file_path, &contents, &length, NULL)) { + have_link = atoi (contents) > 0 ? TRUE : FALSE; + g_free (contents); + } + +-out: +- nm_device_set_active_link (NM_DEVICE (self), have_link); ++ return have_link; ++} ++ ++static void ++real_update_link (NMDevice *dev) ++{ ++ NMDevice8023Ethernet *self = NM_DEVICE_802_3_ETHERNET (dev); ++ ++ nm_device_set_active_link (NM_DEVICE (self), poll_link_state (self)); + } + + +@@ -211,6 +222,287 @@ + return caps; + } + ++ ++static void ++real_deactivate_quickly (NMDevice *dev) ++{ ++ NMDevice8023Ethernet *self = NM_DEVICE_802_3_ETHERNET (dev); ++ gboolean have_link; ++ ++ if (self->priv->supplicant) { ++ g_object_unref (self->priv->supplicant); ++ self->priv->supplicant = NULL; ++ } ++ ++ remove_link_timeout (self); ++ ++ self->priv->failed_8021x = FALSE; ++ have_link = poll_link_state (self); ++ if (nm_device_has_active_link (dev) != have_link) { ++ GSource * source; ++ ++ source = g_idle_source_new (); ++ if (have_link) ++ g_source_set_callback (source, (GSourceFunc) link_activated_helper, self, NULL); ++ else ++ g_source_set_callback (source, (GSourceFunc) link_deactivated_helper, self, NULL); ++ g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); ++ g_source_unref (source); ++ } ++} ++ ++ ++static NMActStageReturn ++real_act_stage1_prepare (NMDevice *dev, NMActRequest *req) ++{ ++ NMDevice8023Ethernet * self = NM_DEVICE_802_3_ETHERNET (dev); ++ NMDevice8023EthernetClass * klass; ++ NMDeviceClass * parent_class; ++ ++ /* Ensure ethernet devices have a link before going further with activation, ++ * partially works around Fedora #194124. ++ */ ++ if (!nm_device_has_active_link (dev)) ++ return NM_ACT_STAGE_RETURN_FAILURE; ++ ++ /* Chain up to parent */ ++ klass = NM_DEVICE_802_3_ETHERNET_GET_CLASS (self); ++ parent_class = NM_DEVICE_CLASS (g_type_class_peek_parent (klass)); ++ return parent_class->act_stage1_prepare (dev, req); ++} ++ ++static gboolean ++supplicant_send_network_config (NMDevice8023Ethernet *self, ++ NMAPSecurity *security) ++{ ++ gboolean success = FALSE; ++ char *response = NULL; ++ int nwid; ++ struct wpa_ctrl *ctrl; ++ ++ ctrl = nm_supplicant_get_ctrl (self->priv->supplicant); ++ g_assert (ctrl); ++ ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, "AP_SCAN 0")) ++ goto out; ++ ++ /* Standard network setup info */ ++ if (!(response = nm_utils_supplicant_request (ctrl, "ADD_NETWORK"))) { ++ nm_warning ("Supplicant error for ADD_NETWORK.\n"); ++ goto out; ++ } ++ if (sscanf (response, "%i\n", &nwid) != 1) ++ { ++ nm_warning ("Supplicant error for ADD_NETWORK. Response: '%s'\n", response); ++ g_free (response); ++ goto out; ++ } ++ g_free (response); ++ ++ if (!nm_ap_security_write_supplicant_config (security, ctrl, nwid, NM_AP_SECURITY_WRITE_FLAG_WIRED)) ++ goto out; ++ ++ if (nm_device_activation_should_cancel (NM_DEVICE (self))) ++ goto out; ++ ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "ENABLE_NETWORK %i", nwid)) ++ goto out; ++ ++ success = TRUE; ++out: ++ return success; ++} ++ ++static void ++remove_link_timeout (NMDevice8023Ethernet *self) ++{ ++ if (self->priv->link_timeout) { ++ g_source_destroy (self->priv->link_timeout); ++ self->priv->link_timeout = NULL; ++ } ++} ++ ++static void ++link_timeout_done (gpointer user_data) ++{ ++ NMDevice8023Ethernet *self = NM_DEVICE_802_3_ETHERNET (user_data); ++ ++ self->priv->link_timeout = NULL; ++} ++ ++static gboolean ++link_timeout_cb (gpointer user_data) ++{ ++ NMDevice * dev = NM_DEVICE (user_data); ++ NMDevice8023Ethernet * self = NM_DEVICE_802_3_ETHERNET (user_data); ++ NMActRequest * req = nm_device_get_act_request (dev); ++ NMData * data = nm_device_get_app_data (dev); ++ ++ /* Disconnect event during initial authentication and credentials ++ * ARE checked - we are likely to have wrong key. Ask the user for ++ * another one. ++ */ ++ if (nm_act_request_get_stage (req) == NM_ACT_STAGE_DEVICE_CONFIG) { ++ /* Association/authentication failed, we must have bad encryption key */ ++ nm_info ("Activation (%s/wired): disconnected during association," ++ " asking for new key.", nm_device_get_iface (dev)); ++ nm_supplicant_remove_timeout (self->priv->supplicant); ++ nm_dbus_get_user_key_for_network (data->dbus_connection, req, TRUE); ++ } else { ++ nm_info ("%s: link timed out.", nm_device_get_iface (dev)); ++ self->priv->failed_8021x = TRUE; ++ nm_device_set_active_link (dev, FALSE); ++ } ++ ++ return FALSE; ++} ++ ++static gboolean ++supplicant_timed_out (gpointer user_data) ++{ ++ NMDevice *dev = NM_DEVICE (user_data); ++ NMData *data = nm_device_get_app_data (dev); ++ NMActRequest *req = nm_device_get_act_request (dev); ++ ++ nm_info ("Activation (%s/): association took too long, asking for new key.", nm_device_get_iface (dev)); ++ nm_dbus_get_user_key_for_network (data->dbus_connection, req, TRUE); ++ ++ return FALSE; ++} ++ ++static void ++supplicant_state_changed (NMSupplicant *supplicant, ++ gboolean connected, ++ gpointer user_data) ++{ ++ NMDevice8023Ethernet *self = NM_DEVICE_802_3_ETHERNET (user_data); ++ NMDevice *dev = NM_DEVICE (self); ++ NMActRequest *req = nm_device_get_act_request (NM_DEVICE (self)); ++ ++ if (connected) { ++ remove_link_timeout (self); ++ nm_device_set_active_link (dev, TRUE); ++ ++ /* If this is the initial association during device activation, ++ * schedule the next activation stage. ++ */ ++ if (req && (nm_act_request_get_stage (req) == NM_ACT_STAGE_DEVICE_CONFIG)) { ++ nm_info ("Activation (%s) Stage 2 of 5 (Device Configure) successful.", ++ nm_device_get_iface (dev)); ++ nm_supplicant_remove_timeout (self->priv->supplicant); ++ nm_device_activate_schedule_stage3_ip_config_start (req); ++ } ++ } else { ++ if (nm_device_is_activated (dev) || nm_device_is_activating (dev)) { ++ /* Start the link timeout so we allow some time for reauthentication */ ++ if (!self->priv->link_timeout) { ++ self->priv->link_timeout = g_timeout_source_new (8000); ++ g_source_set_callback (self->priv->link_timeout, ++ link_timeout_cb, ++ self, ++ link_timeout_done); ++ g_source_attach (self->priv->link_timeout, nm_device_get_main_context (dev)); ++ g_source_unref (self->priv->link_timeout); ++ } ++ } else ++ nm_device_set_active_link (dev, FALSE); ++ } ++} ++ ++static void ++supplicant_down (NMSupplicant *supplicant, ++ gpointer user_data) ++{ ++ NMDevice8023Ethernet *self = NM_DEVICE_802_3_ETHERNET (user_data); ++ ++ remove_link_timeout (self); ++} ++ ++static NMActStageReturn ++real_act_stage2_config (NMDevice *dev, NMActRequest *req) ++{ ++ NMDevice8023Ethernet *self = NM_DEVICE_802_3_ETHERNET (dev); ++ NMWiredNetwork *wired_net; ++ NMAPSecurity *security; ++ const char *iface; ++ GMainContext *ctx; ++ ++ if (self->priv->supplicant) ++ g_object_unref (self->priv->supplicant); ++ ++ wired_net = nm_act_request_get_wired_network (req); ++ if (!wired_net) ++ return NM_ACT_STAGE_RETURN_SUCCESS; ++ ++ iface = nm_device_get_iface (dev); ++ security = nm_wired_network_get_security (wired_net); ++ ++ if (!nm_ap_security_get_key (security)) { ++ NMData *data = nm_act_request_get_data (req); ++ ++ nm_info ("Activation (%s): using 802.1X authentication, but NO valid key exists. New key needed.", iface); ++ nm_dbus_get_user_key_for_network (data->dbus_connection, req, FALSE); ++ ++ return NM_ACT_STAGE_RETURN_POSTPONE; ++ } ++ ++ nm_info ("Activation (%s): using 802.1X authentication and a key exists. No new key needed.", iface); ++ ++ self->priv->supplicant = nm_supplicant_new (); ++ g_signal_connect (self->priv->supplicant, "state-changed", ++ G_CALLBACK (supplicant_state_changed), ++ self); ++ ++ g_signal_connect (self->priv->supplicant, "down", ++ G_CALLBACK (supplicant_down), ++ self); ++ ++ ctx = nm_device_get_main_context (dev); ++ ++ if (!nm_supplicant_exec (self->priv->supplicant, ctx)) { ++ nm_warning ("Activation (%s): couldn't start the supplicant.", iface); ++ goto out; ++ } ++ if (!nm_supplicant_interface_init (self->priv->supplicant, iface, "wired")) { ++ nm_warning ("Activation (%s): couldn't connect to the supplicant.", iface); ++ goto out; ++ } ++ if (!nm_supplicant_monitor_start (self->priv->supplicant, ctx, 10, ++ supplicant_timed_out, self)) { ++ nm_warning ("Activation (%s): couldn't monitor the supplicant.", iface); ++ goto out; ++ } ++ if (!supplicant_send_network_config (self, security)) { ++ nm_warning ("Activation (%s): couldn't send security information" ++ " to the supplicant.", iface); ++ goto out; ++ } ++ ++ /* We'll get stage3 started when the supplicant connects */ ++ return NM_ACT_STAGE_RETURN_POSTPONE; ++ ++out: ++ g_object_unref (self->priv->supplicant); ++ self->priv->supplicant = NULL; ++ ++ return NM_ACT_STAGE_RETURN_FAILURE; ++} ++ ++static void ++real_activation_success_handler (NMDevice *dev, NMActRequest *req) ++{ ++ NMWiredNetwork *wired_net; ++ ++ wired_net = nm_act_request_get_wired_network (req); ++ if (wired_net) { ++ NMData *app_data; ++ ++ app_data = nm_act_request_get_data (req); ++ nm_dbus_update_wired_network_info (app_data->dbus_connection, wired_net); ++ } ++} ++ + static void + nm_device_802_3_ethernet_dispose (GObject *object) + { +@@ -275,6 +567,10 @@ + parent_class->get_generic_capabilities = real_get_generic_capabilities; + parent_class->init = real_init; + parent_class->update_link = real_update_link; ++ parent_class->act_stage1_prepare = real_act_stage1_prepare; ++ parent_class->act_stage2_config = real_act_stage2_config; ++ parent_class->deactivate_quickly = real_deactivate_quickly; ++ parent_class->activation_success_handler = real_activation_success_handler; + + g_type_class_add_private (object_class, sizeof (NMDevice8023EthernetPrivate)); + } +@@ -386,7 +682,9 @@ + /**************************************/ + /* MII capability detection */ + /**************************************/ ++#define _LINUX_IF_H + #include ++#undef _LINUX_IF_H + + static int + mdio_read (NMDevice8023Ethernet *self, NMSock *sk, struct ifreq *ifr, int location) +diff -urN NetworkManager-0.6.5/src/nm-device.c NetworkManager-SVNr3284/src/nm-device.c +--- NetworkManager-0.6.5/src/nm-device.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-device.c 2008-02-04 16:00:13.000000000 +0100 +@@ -620,7 +620,7 @@ + do_switch = TRUE; + + /* FIXME: Why is this activation request created here and never used? */ +- /* if (do_switch && (act_req = nm_act_request_new (app_data, self, NULL, TRUE))) */ ++ /* if (do_switch && (act_req = nm_act_request_new (app_data, self, TRUE))) */ + if (do_switch) + { + nm_info ("Will activate wired connection '%s' because it now has a link.", nm_device_get_iface (self)); +@@ -856,6 +856,12 @@ + data = nm_act_request_get_data (req); + g_assert (data); + ++ /* Sometimes the device gets downed by wpa_supplicant; in any case, make ++ * sure it's up before anything tries to use it. ++ */ ++ if (!nm_device_is_up (self)) ++ nm_device_bring_up (self); ++ + /* DHCP devices try DHCP, non-DHCP default to SUCCESS */ + if (nm_device_get_use_dhcp (self)) + { +diff -urN NetworkManager-0.6.5/src/nm-netlink-monitor.c NetworkManager-SVNr3284/src/nm-netlink-monitor.c +--- NetworkManager-0.6.5/src/nm-netlink-monitor.c 2007-04-18 20:13:06.000000000 +0200 ++++ NetworkManager-SVNr3284/src/nm-netlink-monitor.c 2008-02-04 16:00:13.000000000 +0100 +@@ -174,7 +174,7 @@ + } + + monitor_address.nl_family = AF_NETLINK; +- monitor_address.nl_pid = getpid (); ++ monitor_address.nl_pid = UINT_MAX; + monitor_address.nl_groups = RTMGRP_LINK; + + if (bind (fd, +@@ -365,7 +365,7 @@ + packet.header.nlmsg_len = NLMSG_LENGTH (sizeof (struct rtgenmsg)); + packet.header.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST; + packet.header.nlmsg_type = RTM_GETLINK; +- packet.header.nlmsg_pid = getpid (); ++ packet.header.nlmsg_pid = UINT_MAX; + /* Might be good to generate a unique sequence number and track + the response */ + packet.header.nlmsg_seq = sequence_number << 16; +diff -urN NetworkManager-0.6.5/src/nm-supplicant.c NetworkManager-SVNr3284/src/nm-supplicant.c +--- NetworkManager-0.6.5/src/nm-supplicant.c 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/src/nm-supplicant.c 2008-02-04 16:00:13.000000000 +0100 +@@ -0,0 +1,420 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ ++#include ++#include ++#include ++ ++#include "nm-supplicant.h" ++#include "NetworkManagerUtils.h" ++#include "nm-utils.h" ++#include "wpa_ctrl.h" ++ ++ ++/****************************************************************************/ ++/* WPA Supplicant control stuff ++ * ++ * Originally from: ++ * ++ * wpa_supplicant wrapper ++ * ++ * Copyright (C) 2005 Kay Sievers ++ * ++ * 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 version 2 of the License. ++ */ ++ ++#define WPA_SUPPLICANT_GLOBAL_SOCKET LOCALSTATEDIR"/run/wpa_supplicant-global" ++#define WPA_SUPPLICANT_CONTROL_SOCKET LOCALSTATEDIR"/run/wpa_supplicant" ++#define WPA_SUPPLICANT_NUM_RETRIES 20 ++#define WPA_SUPPLICANT_RETRY_TIME_US 100*1000 ++ ++G_DEFINE_TYPE (NMSupplicant, nm_supplicant, G_TYPE_OBJECT) ++ ++#define NM_SUPPLICANT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SUPPLICANT, NMSupplicantPrivate)) ++ ++typedef struct { ++ GPid pid; ++ GSource *watch; ++ GSource *status; ++ GSource *timeout; ++ struct wpa_ctrl *ctrl; ++ ++ char *socket_path; ++ char *message; ++} NMSupplicantPrivate; ++ ++enum { ++ STATE_CHANGED, ++ DOWN, ++ ++ LAST_SIGNAL ++}; ++ ++static guint signals[LAST_SIGNAL] = { 0 }; ++ ++NMSupplicant * ++nm_supplicant_new (void) ++{ ++ return (NMSupplicant *) g_object_new (NM_TYPE_SUPPLICANT, NULL); ++} ++ ++void ++nm_supplicant_remove_timeout (NMSupplicant *self) ++{ ++ NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ ++ /* Remove any pending timeouts on the request */ ++ if (priv->timeout != NULL) { ++ g_source_destroy (priv->timeout); ++ priv->timeout = NULL; ++ } ++} ++ ++void ++nm_supplicant_down (NMSupplicant *self) ++{ ++ NMSupplicantPrivate *priv; ++ ++ g_return_if_fail (NM_IS_SUPPLICANT (self)); ++ ++ priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ ++ if (priv->pid > 0) { ++ kill (priv->pid, SIGTERM); ++ priv->pid = -1; ++ } ++ ++ if (priv->watch) { ++ g_source_destroy (priv->watch); ++ priv->watch = NULL; ++ } ++ ++ if (priv->status) { ++ g_source_destroy (priv->status); ++ priv->status = NULL; ++ } ++ ++ if (priv->ctrl) { ++ wpa_ctrl_close (priv->ctrl); ++ priv->ctrl = NULL; ++ } ++ ++ nm_supplicant_remove_timeout (self); ++ ++ /* HACK: should be fixed in wpa_supplicant. Will likely ++ * require accomodations for selinux. ++ */ ++ unlink (WPA_SUPPLICANT_GLOBAL_SOCKET); ++ unlink (priv->socket_path); ++ ++ g_signal_emit (self, signals[DOWN], 0); ++} ++ ++static void ++supplicant_watch_done (gpointer user_data) ++{ ++ NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (user_data); ++ ++ priv->watch = NULL; ++} ++ ++static void ++supplicant_watch_cb (GPid pid, ++ gint status, ++ gpointer user_data) ++{ ++ NMSupplicant *self = NM_SUPPLICANT (user_data); ++ ++ if (WIFEXITED (status)) ++ nm_warning ("wpa_supplicant exited with error code %d", WEXITSTATUS (status)); ++ else if (WIFSTOPPED (status)) ++ nm_warning ("wpa_supplicant stopped unexpectedly with signal %d", WSTOPSIG (status)); ++ else if (WIFSIGNALED (status)) ++ nm_warning ("wpa_supplicant died with signal %d", WTERMSIG (status)); ++ else ++ nm_warning ("wpa_supplicant died from an unknown cause"); ++ ++ nm_supplicant_down (self); ++} ++ ++/* ++ * supplicant_child_setup ++ * ++ * Set the process group ID of the newly forked process ++ * ++ */ ++static void ++supplicant_child_setup (gpointer user_data G_GNUC_UNUSED) ++{ ++ /* We are in the child process at this point */ ++ pid_t pid = getpid (); ++ setpgid (pid, pid); ++} ++ ++gboolean ++nm_supplicant_exec (NMSupplicant *self, ++ GMainContext *ctx) ++{ ++ gboolean success; ++ char *argv[4]; ++ GPid pid; ++ GError *err = NULL; ++ ++ g_return_val_if_fail (NM_IS_SUPPLICANT (self), FALSE); ++ ++ argv[0] = WPA_SUPPLICANT_BIN; ++ argv[1] = "-g"; ++ argv[2] = WPA_SUPPLICANT_GLOBAL_SOCKET; ++ argv[3] = NULL; ++ ++ success = g_spawn_async ("/", argv, NULL, 0, &supplicant_child_setup, NULL, &pid, &err); ++ if (!success) { ++ if (err) { ++ nm_warning ("Couldn't start wpa_supplicant. Error: (%d) %s", err->code, err->message); ++ g_error_free (err); ++ } else ++ nm_warning ("Couldn't start wpa_supplicant due to an unknown error."); ++ } else { ++ NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ ++ /* Monitor the child process so we know when it stops */ ++ priv->pid = pid; ++ if (priv->watch) ++ g_source_destroy (priv->watch); ++ ++ priv->watch = g_child_watch_source_new (pid); ++ g_source_set_callback (priv->watch, ++ (GSourceFunc) supplicant_watch_cb, ++ self, ++ supplicant_watch_done); ++ g_source_attach (priv->watch, ctx); ++ g_source_unref (priv->watch); ++ } ++ ++ return success; ++} ++ ++gboolean ++nm_supplicant_interface_init (NMSupplicant *self, ++ const char *iface, ++ const char *supplicant_driver) ++{ ++ NMSupplicantPrivate *priv; ++ struct wpa_ctrl *ctrl = NULL; ++ int tries; ++ ++ g_return_val_if_fail (NM_IS_SUPPLICANT (self), FALSE); ++ g_return_val_if_fail (iface != NULL, FALSE); ++ ++ /* Try to open wpa_supplicant's global control socket */ ++ for (tries = 0; tries < WPA_SUPPLICANT_NUM_RETRIES && !ctrl; tries++) { ++ ctrl = wpa_ctrl_open (WPA_SUPPLICANT_GLOBAL_SOCKET, NM_RUN_DIR); ++ g_usleep (WPA_SUPPLICANT_RETRY_TIME_US); ++ } ++ ++ if (!ctrl) { ++ nm_info ("Error opening supplicant global control interface."); ++ return FALSE; ++ } ++ ++ /* wpa_cli -g/var/run/wpa_supplicant-global interface_add eth1 "" wext /var/run/wpa_supplicant */ ++ if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ++ "INTERFACE_ADD %s\t\t%s\t" WPA_SUPPLICANT_CONTROL_SOCKET "\t", ++ iface, supplicant_driver)) { ++ wpa_ctrl_close (ctrl); ++ return FALSE; ++ } ++ ++ wpa_ctrl_close (ctrl); ++ ++ priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ ++ /* Get a control socket to wpa_supplicant for this interface. ++ * Try a couple times to work around naive socket naming ++ * in wpa_ctrl that sometimes collides with stale ones. ++ */ ++ priv->socket_path = g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "/%s", iface); ++ ++ while (!priv->ctrl && (tries++ < 10)) ++ priv->ctrl = wpa_ctrl_open (priv->socket_path, NM_RUN_DIR); ++ ++ if (!priv->ctrl) ++ nm_info ("Error opening control interface to supplicant."); ++ ++ return priv->ctrl != NULL; ++} ++ ++static void ++supplicant_status_done (gpointer user_data) ++{ ++ NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (user_data); ++ ++ priv->status = NULL; ++} ++ ++static void ++supplicant_state_changed (NMSupplicant *self, gboolean up) ++{ ++ nm_info ("Supplicant state changed: %d", up); ++ g_signal_emit (self, signals[STATE_CHANGED], 0, up); ++} ++ ++#define MESSAGE_LEN 2048 ++ ++static gboolean ++supplicant_status_cb (GIOChannel *source, ++ GIOCondition condition, ++ gpointer user_data) ++{ ++ NMSupplicant *self = NM_SUPPLICANT (user_data); ++ NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ size_t len = MESSAGE_LEN; ++ ++ wpa_ctrl_recv (priv->ctrl, priv->message, &len); ++ priv->message[len] = '\0'; ++ ++ if (strstr (priv->message, WPA_EVENT_CONNECTED) != NULL) ++ supplicant_state_changed (self, TRUE); ++ else if (strstr (priv->message, WPA_EVENT_DISCONNECTED) != NULL) ++ supplicant_state_changed (self, FALSE); ++ ++ return TRUE; ++} ++ ++typedef struct { ++ NMSupplicant *supplicant; ++ GSourceFunc callback; ++ gpointer user_data; ++} TimeoutInfo; ++ ++static void ++supplicant_timeout_done (gpointer user_data) ++{ ++ TimeoutInfo *info = (TimeoutInfo *) user_data; ++ ++ NM_SUPPLICANT_GET_PRIVATE (info->supplicant)->timeout = NULL; ++ ++ g_free (info); ++} ++ ++static void ++supplicant_timeout_cb (gpointer user_data) ++{ ++ TimeoutInfo *info = (TimeoutInfo *) user_data; ++ ++ info->callback (info->user_data); ++} ++ ++gboolean ++nm_supplicant_monitor_start (NMSupplicant *self, ++ GMainContext *context, ++ guint32 timeout, ++ GSourceFunc timeout_cb, ++ gpointer user_data) ++{ ++ NMSupplicantPrivate *priv; ++ int fd; ++ GIOChannel *channel; ++ ++ g_return_val_if_fail (NM_IS_SUPPLICANT (self), FALSE); ++ ++ priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ ++ /* register network event monitor */ ++ if (wpa_ctrl_attach (priv->ctrl) != 0) ++ return FALSE; ++ ++ if ((fd = wpa_ctrl_get_fd (priv->ctrl)) < 0) ++ return FALSE; ++ ++ channel = g_io_channel_unix_new (fd); ++ priv->status = g_io_create_watch (channel, G_IO_IN); ++ g_io_channel_unref (channel); ++ g_source_set_callback (priv->status, ++ (GSourceFunc) supplicant_status_cb, ++ self, ++ supplicant_status_done); ++ g_source_attach (priv->status, context); ++ g_source_unref (priv->status); ++ ++ if (timeout_cb) { ++ TimeoutInfo *info; ++ ++ info = g_new (TimeoutInfo, 1); ++ info->supplicant = self; ++ info->callback = timeout_cb; ++ info->user_data = user_data; ++ ++ priv->timeout = g_timeout_source_new (timeout * 1000); ++ g_source_set_callback (priv->timeout, ++ (GSourceFunc) supplicant_timeout_cb, ++ info, ++ supplicant_timeout_done); ++ g_source_attach (priv->timeout, context); ++ g_source_unref (priv->timeout); ++ } ++ ++ return TRUE; ++} ++ ++struct wpa_ctrl * ++nm_supplicant_get_ctrl (NMSupplicant *self) ++{ ++ g_return_val_if_fail (NM_IS_SUPPLICANT (self), NULL); ++ ++ return NM_SUPPLICANT_GET_PRIVATE (self)->ctrl; ++} ++ ++/*****************************************************************************/ ++ ++static void ++nm_supplicant_init (NMSupplicant *supplicant) ++{ ++ NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (supplicant); ++ ++ priv->message = g_malloc (MESSAGE_LEN); ++} ++ ++static void ++finalize (GObject *object) ++{ ++ NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (object); ++ ++ nm_supplicant_down (NM_SUPPLICANT (object)); ++ ++ g_free (priv->socket_path); ++ g_free (priv->message); ++ ++ G_OBJECT_CLASS (nm_supplicant_parent_class)->finalize (object); ++} ++ ++static void ++nm_supplicant_class_init (NMSupplicantClass *supplicant_class) ++{ ++ GObjectClass *object_class = G_OBJECT_CLASS (supplicant_class); ++ ++ g_type_class_add_private (supplicant_class, sizeof (NMSupplicantPrivate)); ++ ++ object_class->finalize = finalize; ++ ++ /* signals */ ++ signals[STATE_CHANGED] = ++ g_signal_new ("state-changed", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_FIRST, ++ G_STRUCT_OFFSET (NMSupplicantClass, state_changed), ++ NULL, NULL, ++ g_cclosure_marshal_VOID__BOOLEAN, ++ G_TYPE_NONE, 1, ++ G_TYPE_BOOLEAN); ++ ++ signals[DOWN] = ++ g_signal_new ("down", ++ G_OBJECT_CLASS_TYPE (object_class), ++ G_SIGNAL_RUN_FIRST, ++ G_STRUCT_OFFSET (NMSupplicantClass, down), ++ NULL, NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, 0); ++} +diff -urN NetworkManager-0.6.5/src/nm-supplicant.h NetworkManager-SVNr3284/src/nm-supplicant.h +--- NetworkManager-0.6.5/src/nm-supplicant.h 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/src/nm-supplicant.h 2008-02-04 16:00:13.000000000 +0100 +@@ -0,0 +1,53 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ ++#ifndef NM_SUPPLICANT_H ++#define NM_SUPPLICANT_H 1 ++ ++#include ++#include ++ ++#define NM_TYPE_SUPPLICANT (nm_supplicant_get_type ()) ++#define NM_SUPPLICANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SUPPLICANT, NMSupplicant)) ++#define NM_SUPPLICANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SUPPLICANT, NMSupplicantClass)) ++#define NM_IS_SUPPLICANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SUPPLICANT)) ++#define NM_IS_SUPPLICANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_SUPPLICANT)) ++#define NM_SUPPLICANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SUPPLICANT, NMSupplicantClass)) ++ ++typedef struct { ++ GObject parent; ++} NMSupplicant; ++ ++typedef struct { ++ GObjectClass parent; ++ ++ /* Signals */ ++ void (*state_changed) (NMSupplicant *supplicant, ++ gboolean connected); ++ ++ void (*down) (NMSupplicant *supplicant); ++} NMSupplicantClass; ++ ++GType nm_supplicant_get_type (void); ++ ++NMSupplicant *nm_supplicant_new (void); ++gboolean nm_supplicant_exec (NMSupplicant *self, ++ GMainContext *ctx); ++ ++gboolean nm_supplicant_interface_init (NMSupplicant *self, ++ const char *iface, ++ const char *supplicant_driver); ++ ++gboolean nm_supplicant_monitor_start (NMSupplicant *self, ++ GMainContext *context, ++ guint32 timeout, ++ GSourceFunc timeout_cb, ++ gpointer user_data); ++ ++void nm_supplicant_remove_timeout (NMSupplicant *self); ++ ++void nm_supplicant_down (NMSupplicant *self); ++ ++struct wpa_ctrl *nm_supplicant_get_ctrl (NMSupplicant *self); ++ ++ ++#endif /* NM_SUPPLICANT_H */ +diff -urN NetworkManager-0.6.5/src/nm-wired-network.c NetworkManager-SVNr3284/src/nm-wired-network.c +--- NetworkManager-0.6.5/src/nm-wired-network.c 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/src/nm-wired-network.c 2008-02-04 16:00:13.000000000 +0100 +@@ -0,0 +1,89 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ ++#include "nm-wired-network.h" ++ ++G_DEFINE_TYPE (NMWiredNetwork, nm_wired_network, G_TYPE_OBJECT) ++ ++#define NM_WIRED_NETWORK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_WIRED_NETWORK, NMWiredNetworkPrivate)) ++ ++typedef struct { ++ char *network_id; ++ NMAPSecurity *security; ++} NMWiredNetworkPrivate; ++ ++NMWiredNetwork * ++nm_wired_network_new (const char *network_id, NMAPSecurity *security) ++{ ++ NMWiredNetwork *wired_net; ++ NMWiredNetworkPrivate *priv; ++ ++ g_return_val_if_fail (network_id != NULL, NULL); ++ g_return_val_if_fail (security != NULL, NULL); ++ ++ wired_net = (NMWiredNetwork *) g_object_new (NM_TYPE_WIRED_NETWORK, NULL); ++ if (!wired_net) ++ return NULL; ++ ++ priv = NM_WIRED_NETWORK_GET_PRIVATE (wired_net); ++ priv->network_id = g_strdup (network_id); ++ priv->security = g_object_ref (security); ++ ++ return wired_net; ++} ++ ++const char * ++nm_wired_network_get_network_id (NMWiredNetwork *net) ++{ ++ g_return_val_if_fail (NM_IS_WIRED_NETWORK (net), NULL); ++ ++ return NM_WIRED_NETWORK_GET_PRIVATE (net)->network_id; ++} ++ ++NMAPSecurity * ++nm_wired_network_get_security (NMWiredNetwork *net) ++{ ++ g_return_val_if_fail (NM_IS_WIRED_NETWORK (net), NULL); ++ ++ return NM_WIRED_NETWORK_GET_PRIVATE (net)->security; ++} ++ ++void ++nm_wired_network_set_security (NMWiredNetwork *net, NMAPSecurity *security) ++{ ++ NMWiredNetworkPrivate *priv; ++ ++ g_return_if_fail (NM_IS_WIRED_NETWORK (net)); ++ ++ priv = NM_WIRED_NETWORK_GET_PRIVATE (net); ++ if (priv->security) ++ g_object_unref (priv->security); ++ ++ priv->security = security ? g_object_ref (security) : NULL; ++} ++ ++ ++static void ++nm_wired_network_init (NMWiredNetwork *wired_net) ++{ ++} ++ ++static void ++finalize (GObject *object) ++{ ++ NMWiredNetworkPrivate *priv = NM_WIRED_NETWORK_GET_PRIVATE (object); ++ ++ g_free (priv->network_id); ++ g_object_unref (priv->security); ++ ++ G_OBJECT_CLASS (nm_wired_network_parent_class)->finalize (object); ++} ++ ++static void ++nm_wired_network_class_init (NMWiredNetworkClass *wired_class) ++{ ++ GObjectClass *object_class = G_OBJECT_CLASS (wired_class); ++ ++ g_type_class_add_private (wired_class, sizeof (NMWiredNetworkPrivate)); ++ ++ object_class->finalize = finalize; ++} +diff -urN NetworkManager-0.6.5/src/nm-wired-network.h NetworkManager-SVNr3284/src/nm-wired-network.h +--- NetworkManager-0.6.5/src/nm-wired-network.h 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/src/nm-wired-network.h 2008-02-04 16:00:13.000000000 +0100 +@@ -0,0 +1,35 @@ ++/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ ++ ++#ifndef NM_WIRED_NETWORK_H ++#define NM_WIRED_NETWORK_H 1 ++ ++#include ++#include ++#include "nm-ap-security.h" ++ ++#define NM_TYPE_WIRED_NETWORK (nm_wired_network_get_type ()) ++#define NM_WIRED_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WIRED_NETWORK, NMWiredNetwork)) ++#define NM_WIRED_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_WIRED_NETWORK, NMWiredNetworkClass)) ++#define NM_IS_WIRED_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_WIRED_NETWORK)) ++#define NM_IS_WIRED_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_WIRED_NETWORK)) ++#define NM_WIRED_NETWORK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_WIRED_NETWORK, NMWiredNetworkClass)) ++ ++typedef struct { ++ GObject parent; ++} NMWiredNetwork; ++ ++typedef struct { ++ GObjectClass parent; ++} NMWiredNetworkClass; ++ ++GType nm_wired_network_get_type (void); ++ ++NMWiredNetwork *nm_wired_network_new (const char *network_id, ++ NMAPSecurity *security); ++ ++const char *nm_wired_network_get_network_id (NMWiredNetwork *net); ++NMAPSecurity *nm_wired_network_get_security (NMWiredNetwork *net); ++void nm_wired_network_set_security (NMWiredNetwork *net, ++ NMAPSecurity *security); ++ ++#endif /* NM_WIRED_NETWORK_H */ +diff -urN NetworkManager-0.6.5/src/vpn-manager/nm-dbus-vpn.c NetworkManager-SVNr3284/src/vpn-manager/nm-dbus-vpn.c +--- NetworkManager-0.6.5/src/vpn-manager/nm-dbus-vpn.c 2007-04-18 20:13:05.000000000 +0200 ++++ NetworkManager-SVNr3284/src/vpn-manager/nm-dbus-vpn.c 2008-02-04 16:00:09.000000000 +0100 +@@ -410,8 +410,6 @@ + NMData * data = (NMData *) user_data; + DBusMessage * reply; + DBusMessageIter iter, array_iter; +- GSList * remove_list = NULL; +- GSList * elt; + + g_return_if_fail (pcall); + g_return_if_fail (data != NULL); +@@ -427,22 +425,15 @@ + + nm_info ("Updating VPN Connections..."); + +- remove_list = nm_vpn_manager_vpn_connection_list_copy (data->vpn_manager); +- + dbus_message_iter_init (reply, &iter); + dbus_message_iter_recurse (&iter, &array_iter); + while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRING) + { + DBusMessage * message; + const char * con_name; +- NMVPNConnection * vpn; + + dbus_message_iter_get_basic (&array_iter, &con_name); + +- /* If the connection already exists, remove it from the remove list */ +- if ((vpn = nm_vpn_manager_find_connection_by_name (data->vpn_manager, con_name))) +- remove_list = g_slist_remove (remove_list, vpn); +- + if ((message = dbus_message_new_method_call (NMI_DBUS_SERVICE, NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "getVPNConnectionProperties"))) + { + DBusPendingCall * vpn_pcall = NULL; +@@ -463,15 +454,6 @@ + } + dbus_message_unref (reply); + +- /* VPN connections left in the remove list aren't known by NMI, therefore we delete them */ +- for (elt = remove_list; elt; elt = g_slist_next (elt)) +- { +- nm_vpn_manager_remove_connection (data->vpn_manager, elt->data); +- nm_vpn_connection_unref (elt->data); +- } +- +- g_slist_free (remove_list); +- + out: + dbus_pending_call_unref (pcall); + } +@@ -527,6 +509,8 @@ + g_return_val_if_fail (data->dbus_connection != NULL, FALSE); + g_return_val_if_fail (data->vpn_manager != NULL, FALSE); -+ /* Some cards are dumb. Wait a second */ -+ sleep (1); ++ nm_vpn_manager_clear_connections (data->vpn_manager); + - iface = nm_device_get_iface (dev); - if (!supplicant_exec (self)) + if (!(message = dbus_message_new_method_call (NMI_DBUS_SERVICE, NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "getVPNConnections"))) { -@@ -3446,10 +3452,9 @@ - char *genie, *gpos, *gend, *custom; - NMAccessPoint *ap = NULL; - size_t clen; -- int maxrate; -+ int maxrate = 0; - struct iw_event iwe_buf, *iwe = &iwe_buf; - struct stream_descr stream; -- struct wireless_scan * wscan = NULL; - int ret; + nm_warning ("nm_dbus_vpn_connections_update (): Couldn't allocate the dbus message"); +diff -urN NetworkManager-0.6.5/src/vpn-manager/nm-vpn-manager.c NetworkManager-SVNr3284/src/vpn-manager/nm-vpn-manager.c +--- NetworkManager-0.6.5/src/vpn-manager/nm-vpn-manager.c 2007-04-18 20:13:05.000000000 +0200 ++++ NetworkManager-SVNr3284/src/vpn-manager/nm-vpn-manager.c 2008-02-04 16:00:09.000000000 +0100 +@@ -130,28 +130,6 @@ - g_return_val_if_fail (dev != NULL, FALSE); -diff -urN NetworkManager/src/nm-device-802-3-ethernet.c NetworkManager-SVN/src/nm-device-802-3-ethernet.c ---- NetworkManager/src/nm-device-802-3-ethernet.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/nm-device-802-3-ethernet.c 2007-09-08 00:06:44.000000000 +0200 -@@ -108,18 +108,16 @@ - GObject *obj, - NMDevice8023Ethernet *self) - { -+ GSource * source; -+ - /* Make sure signal is for us */ - if (NM_DEVICE (self) != NM_DEVICE (obj)) - return; -- if (!nm_device_has_active_link (NM_DEVICE (self))) -- { -- GSource * source = g_idle_source_new (); + /* +- * nm_vpn_manager_vpn_connection_list_copy +- * +- * Make a shallow copy of the VPN connection list, should +- * only be used by nm-dbus-vpn.c +- * +- */ +-GSList *nm_vpn_manager_vpn_connection_list_copy (NMVPNManager *manager) +-{ +- GSList * list; +- GSList * elt; - -- g_source_set_callback (source, (GSourceFunc) link_activated_helper, self, NULL); -- g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -- g_source_unref (source); -- } -+ source = g_idle_source_new (); -+ g_source_set_callback (source, (GSourceFunc) link_activated_helper, self, NULL); -+ g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -+ g_source_unref (source); - } +- g_return_val_if_fail (manager != NULL, NULL); +- +- list = g_slist_copy (manager->connections); +- for (elt = list; elt; elt = g_slist_next (elt)) +- nm_vpn_connection_ref (elt->data); +- +- return list; +-} +- +- +-/* + * nm_vpn_manager_add_connection + * + * Add a new VPN connection if none already exits, otherwise update the existing one. +@@ -227,6 +205,29 @@ -@@ -135,18 +133,16 @@ - GObject *obj, - NMDevice8023Ethernet *self) - { -+ GSource * source; + /* ++ * nm_vpn_manager_clear_connections ++ * ++ * Remove all VPN connections. ++ * ++ */ ++void ++nm_vpn_manager_clear_connections (NMVPNManager *manager) ++{ ++ GSList *connections; ++ GSList *iter; + - /* Make sure signal is for us */ - if (NM_DEVICE (self) != NM_DEVICE (obj)) - return; ++ g_return_if_fail (manager != NULL); ++ ++ connections = g_slist_copy (manager->connections); ++ ++ for (iter = connections; iter; iter = iter->next) ++ nm_vpn_manager_remove_connection (manager, (NMVPNConnection *) iter->data); ++ ++ g_slist_free (connections); ++} ++ ++ ++/* + * nm_vpn_manager_get_connection_names + * + * Return an array of strings of all the VPN Connection names +diff -urN NetworkManager-0.6.5/src/vpn-manager/nm-vpn-manager.h NetworkManager-SVNr3284/src/vpn-manager/nm-vpn-manager.h +--- NetworkManager-0.6.5/src/vpn-manager/nm-vpn-manager.h 2007-04-18 20:13:05.000000000 +0200 ++++ NetworkManager-SVNr3284/src/vpn-manager/nm-vpn-manager.h 2008-02-04 16:00:09.000000000 +0100 +@@ -29,13 +29,12 @@ + NMVPNManager * nm_vpn_manager_new (NMData *app_data); + NMVPNConnection * nm_vpn_manager_add_connection (NMVPNManager *manager, const char *name, const char *service_name, const char *user_name); + void nm_vpn_manager_remove_connection (NMVPNManager *manager, NMVPNConnection *vpn); ++void nm_vpn_manager_clear_connections (NMVPNManager *manager); + char ** nm_vpn_manager_get_connection_names (NMVPNManager *manager); + void nm_vpn_manager_dispose (NMVPNManager *manager); -- if (nm_device_has_active_link (NM_DEVICE (self))) -- { -- GSource * source = g_idle_source_new (); + NMVPNActRequest * nm_vpn_manager_get_vpn_act_request (NMVPNManager *manager); + +-GSList * nm_vpn_manager_vpn_connection_list_copy (NMVPNManager *manager); - -- g_source_set_callback (source, (GSourceFunc) link_deactivated_helper, self, NULL); -- g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -- g_source_unref (source); -- } -+ source = g_idle_source_new (); -+ g_source_set_callback (source, (GSourceFunc) link_deactivated_helper, self, NULL); -+ g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -+ g_source_unref (source); - } + void nm_vpn_manager_activate_vpn_connection (NMVPNManager *manager, NMVPNConnection *vpn, char **password_items, + int password_count, char **data_items, int data_count, + char **user_routes, int user_routes_count ); +diff -urN NetworkManager-0.6.5/test/libnm_glib_test.c NetworkManager-SVNr3284/test/libnm_glib_test.c +--- NetworkManager-0.6.5/test/libnm_glib_test.c 2007-04-18 20:13:03.000000000 +0200 ++++ NetworkManager-SVNr3284/test/libnm_glib_test.c 2008-02-04 15:59:52.000000000 +0100 +@@ -23,6 +23,8 @@ + #include + #include + #include ++#include ++ + #include "libnm_glib.h" - static void -@@ -211,6 +207,26 @@ - return caps; + +@@ -56,10 +58,33 @@ + } } ++static GMainLoop *loop = NULL; + -+static NMActStageReturn -+real_act_stage1_prepare (NMDevice *dev, NMActRequest *req) ++static void ++signal_handler (int signo) +{ -+ NMDevice8023Ethernet * self = NM_DEVICE_802_3_ETHERNET (dev); -+ NMDevice8023EthernetClass * klass; -+ NMDeviceClass * parent_class; ++ if (signo == SIGINT || signo == SIGTERM) { ++ g_message ("Caught signal %d, shutting down...", signo); ++ g_main_loop_quit (loop); ++ } ++} + -+ /* Ensure ethernet devices have a link before going further with activation, -+ * partially works around Fedora #194124. -+ */ -+ if (!nm_device_has_active_link (dev)) -+ return NM_ACT_STAGE_RETURN_FAILURE; ++static void ++setup_signals (void) ++{ ++ struct sigaction action; ++ sigset_t mask; + -+ /* Chain up to parent */ -+ klass = NM_DEVICE_802_3_ETHERNET_GET_CLASS (self); -+ parent_class = NM_DEVICE_CLASS (g_type_class_peek_parent (klass)); -+ return parent_class->act_stage1_prepare (dev, req); ++ sigemptyset (&mask); ++ action.sa_handler = signal_handler; ++ action.sa_mask = mask; ++ action.sa_flags = 0; ++ sigaction (SIGTERM, &action, NULL); ++ sigaction (SIGINT, &action, NULL); +} -+ - static void - nm_device_802_3_ethernet_dispose (GObject *object) + + int main( int argc, char *argv[] ) { -@@ -275,6 +291,7 @@ - parent_class->get_generic_capabilities = real_get_generic_capabilities; - parent_class->init = real_init; - parent_class->update_link = real_update_link; -+ parent_class->act_stage1_prepare = real_act_stage1_prepare; +- GMainLoop *loop; + libnm_glib_ctx *ctx; + guint id; - g_type_class_add_private (object_class, sizeof (NMDevice8023EthernetPrivate)); - } -diff -urN NetworkManager/src/nm-device.c NetworkManager-SVN/src/nm-device.c ---- NetworkManager/src/nm-device.c 2007-09-08 00:09:05.000000000 +0200 -+++ NetworkManager-SVN/src/nm-device.c 2007-09-08 00:06:44.000000000 +0200 -@@ -856,6 +856,12 @@ - data = nm_act_request_get_data (req); - g_assert (data); +@@ -79,7 +104,10 @@ + fprintf (stderr, "Registered Callback with ID %d\n", id); -+ /* Sometimes the device gets downed by wpa_supplicant; in any case, make -+ * sure it's up before anything tries to use it. -+ */ -+ if (!nm_device_is_up (self)) -+ nm_device_bring_up (self); + loop = g_main_loop_new (NULL, FALSE); ++ setup_signals (); + g_main_loop_run (loop); + ++ libnm_glib_shutdown (ctx); + - /* DHCP devices try DHCP, non-DHCP default to SUCCESS */ - if (nm_device_get_use_dhcp (self)) - { + exit (0); + } +diff -urN NetworkManager-0.6.5/test/nm-dhcp-opt-test.c NetworkManager-SVNr3284/test/nm-dhcp-opt-test.c +--- NetworkManager-0.6.5/test/nm-dhcp-opt-test.c 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/test/nm-dhcp-opt-test.c 2008-02-04 15:59:52.000000000 +0100 +@@ -0,0 +1,270 @@ ++/* nm-dhcp-opt-test - test app for NetworkManager's DHCP Options interface ++ * ++ * Dan Williams ++ * ++ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * (C) Copyright 2005 Red Hat, Inc. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "NetworkManager.h" ++ ++/* Return codes for functions that use dbus */ ++enum ++{ ++ RETURN_SUCCESS = 1, ++ RETURN_FAILURE = 0, ++ RETURN_NO_NM = -1 ++}; ++ ++ ++#define DBUS_NO_SERVICE_ERROR "org.freedesktop.DBus.Error.ServiceDoesNotExist" ++#define NM_DHCP_OPT_NOT_FOUND_ERROR "org.freedesktop.NetworkManager.OptionNotFound" ++ ++static char *dbus_type_to_string (int type) ++{ ++ switch (type) ++ { ++ case DBUS_TYPE_UINT32: ++ return "uint32"; ++ ++ case DBUS_TYPE_BOOLEAN: ++ return "boolean"; ++ ++ case DBUS_TYPE_BYTE: ++ return "byte"; ++ ++ case DBUS_TYPE_STRING: ++ return "string"; ++ } ++ g_assert_not_reached (); ++ return NULL; ++} ++ ++ ++/* ++ * call_nm_method ++ * ++ * Do a method call on NetworkManager. ++ * ++ * Returns: RETURN_SUCCESS on success ++ * RETURN_FAILURE on failure ++ * RETURN_NO_NM if NetworkManager service no longer exists ++ */ ++static int call_nm_method (DBusConnection *con, const char *method, int opt, gboolean is_array, int arg_type, void **arg, int *item_count) ++{ ++ DBusMessage *message; ++ DBusMessage *reply; ++ DBusError error; ++ dbus_bool_t ret = TRUE; ++ DBusMessageIter iter; ++ ++ g_return_val_if_fail (con != NULL, RETURN_FAILURE); ++ g_return_val_if_fail (method != NULL, RETURN_FAILURE); ++ g_return_val_if_fail (arg != NULL, RETURN_FAILURE); ++ ++ if (is_array) ++ { ++ g_return_val_if_fail (item_count != NULL, RETURN_FAILURE); ++ *item_count = 0; ++ } ++ ++ if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE, NM_DBUS_PATH_DHCP, NM_DBUS_INTERFACE_DHCP, method))) ++ { ++ fprintf (stderr, "call_nm_method(): Couldn't allocate the dbus message\n"); ++ return (RETURN_FAILURE); ++ } ++ dbus_message_append_args (message, DBUS_TYPE_UINT32, &opt, DBUS_TYPE_INVALID); ++ ++ dbus_error_init (&error); ++ reply = dbus_connection_send_with_reply_and_block (con, message, -1, &error); ++ dbus_message_unref (message); ++ if (dbus_error_is_set (&error)) ++ { ++ int ret = RETURN_FAILURE; ++ ++ if (!strcmp (error.name, DBUS_NO_SERVICE_ERROR)) ++ ret = RETURN_NO_NM; ++ ++ if (ret != RETURN_SUCCESS && (strcmp (error.name, NM_DHCP_OPT_NOT_FOUND_ERROR) != 0)) ++ fprintf (stderr, "call_nm_method(): %s raised:\n %s\n\n", error.name, error.message); ++ ++ dbus_error_free (&error); ++ return (ret); ++ } ++ ++ if (reply == NULL) ++ { ++ fprintf (stderr, "call_nm_method(): dbus reply message was NULL\n" ); ++ return (RETURN_FAILURE); ++ } ++ ++ if (is_array) ++ ret = dbus_message_get_args (reply, NULL, DBUS_TYPE_ARRAY, arg_type, arg, item_count, DBUS_TYPE_INVALID); ++ else ++ ret = dbus_message_get_args (reply, NULL, arg_type, arg, DBUS_TYPE_INVALID); ++ ++/* ++ We simply don't unref the message, so that the values returned stay ++ valid in the caller of this function. ++ dbus_message_unref (reply); ++*/ ++ if (!ret) ++ { ++ fprintf (stderr, "call_nm_method(): error while getting args.\n"); ++ return (RETURN_FAILURE); ++ } ++ ++ return (RETURN_SUCCESS); ++} ++ ++void print_array (DBusConnection *connection, int opt) ++{ ++ int num_items; ++ unsigned int *uint32 = NULL; ++ int *int32 = NULL; ++ gboolean *bool = NULL; ++ unsigned char *byte = NULL; ++ char **string = NULL; ++ void *item = NULL; ++ char *method = NULL; ++ int ret; ++ const char *name = NULL; ++ int opt_type = -1; ++ unsigned int foo; ++ ++ ret = call_nm_method (connection, "getName", opt, FALSE, DBUS_TYPE_STRING, (void *)(&name), NULL); ++ if (ret != RETURN_SUCCESS) ++ return; ++ ++ ret = call_nm_method (connection, "getElementType", opt, FALSE, DBUS_TYPE_UINT32, (void *)(&opt_type), NULL); ++ if (ret != RETURN_SUCCESS) ++ return; ++ ++ switch (opt_type) ++ { ++ case DBUS_TYPE_UINT32: ++ item = &uint32; ++ method = "getInteger"; ++ break; ++ ++ case DBUS_TYPE_BOOLEAN: ++ item = &bool; ++ method = "getBoolean"; ++ break; ++ ++ case DBUS_TYPE_BYTE: ++ item = &byte; ++ method = "getByte"; ++ break; ++ ++ case DBUS_TYPE_STRING: ++ item = &string; ++ method = "getString"; ++ break; ++ ++ default: ++ fprintf (stderr, "%d: Type %c\n", opt, opt_type); ++ g_assert_not_reached (); ++ break; ++ } ++ ++ ret = call_nm_method (connection, method, opt, TRUE, opt_type, item, &num_items); ++ if ((ret == RETURN_SUCCESS) && (num_items > 0)) ++ { ++ int i; ++ fprintf (stderr, "%d ('%s'): (%d %s of type %s) ", opt, name, num_items, num_items > 1 ? "elements" : "element", dbus_type_to_string (opt_type)); ++ for (i = 0; i < num_items; i++) ++ { ++ struct in_addr in; ++ gboolean last = (i == num_items - 1) ? TRUE : FALSE; ++ ++ switch (opt_type) ++ { ++ case DBUS_TYPE_BYTE: ++ fprintf (stderr, "%d%s", byte[i], last ? "" : ", "); ++ break; ++ case DBUS_TYPE_BOOLEAN: ++ fprintf (stderr, "%d%s", bool[i], last ? "" : ", "); ++ break; ++ case DBUS_TYPE_UINT32: ++ in.s_addr = uint32[i]; ++ fprintf (stderr, "%u (%s)%s", uint32[i], inet_ntoa(in), last ? "" : ", "); ++ break; ++ case DBUS_TYPE_STRING: ++ fprintf (stderr, "'%s'%s", string[i], last ? "" : ", "); ++ break; ++ ++ default: ++ g_assert_not_reached (); ++ break; ++ } ++ } ++ fprintf (stderr, "\n"); ++ } ++ else ++ fprintf (stderr, "%d ('%s'): could not get option value\n", opt, name); ++} ++ ++ ++void print_each_dhcp_option (DBusConnection *connection) ++{ ++ DBusMessage *message; ++ DBusMessage *reply; ++ DBusMessageIter iter; ++ DBusError error; ++ int i; ++ int opt_type; ++ int ret; ++ ++ g_return_if_fail (connection != NULL); ++ ++ /* Loop through all available DHCP options and print each one. */ ++ for (i = 1; i < 62; i++) ++ print_array (connection, i); ++} ++ ++ ++int main (int argc, char **argv) ++{ ++ DBusConnection *connection; ++ DBusError error; ++ ++ g_type_init (); ++ ++ dbus_error_init (&error); ++ connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); ++ if (connection == NULL) ++ { ++ fprintf (stderr, "Error connecting to system bus: %s\n", error.message); ++ dbus_error_free (&error); ++ return 1; ++ } ++ ++ print_each_dhcp_option (connection); ++ ++ exit (0); ++} +diff -urN NetworkManager-0.6.5/test/NMLoadModules NetworkManager-SVNr3284/test/NMLoadModules +--- NetworkManager-0.6.5/test/NMLoadModules 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/test/NMLoadModules 2008-02-04 15:59:52.000000000 +0100 +@@ -0,0 +1,61 @@ ++#! /bin/bash ++# Load kernel modules for all network devices ++ ++CWD=`pwd` ++cd /etc/sysconfig/network-scripts ++ ++# find all the interfaces besides loopback. ++# ignore aliases, alternative configurations, and editor backup files ++interfaces=`ls ifcfg* | LANG=C egrep -v '(ifcfg-lo|:|rpmsave|rpmorig|rpmnew)' | \ ++ LANG=C egrep -v '(~|\.bak)$' | \ ++ LANG=C egrep 'ifcfg-[A-Za-z0-9\._-]+$' | \ ++ sed 's/^ifcfg-//g' | ++ sed 's/[0-9]/ &/' | LANG=C sort -k 1,1 -k 2n | sed 's/ //'` ++ ++# bring up all other interfaces configured to come up at boot time ++for i in $interfaces; do ++ eval $(LANG=C fgrep "DEVICE=" ifcfg-$i) ++ eval $(LANG=C fgrep "TYPE=" ifcfg-$i) ++ eval $(LANG=C fgrep "SLAVE=" ifcfg-$i) ++ eval $(LANG=C fgrep "BRIDGE=" ifcfg-$i) ++ ++ if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi ++ ++ if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then ++ unset DEVICE TYPE SLAVE BRIDGE ++ continue ++ fi ++ ++ if [ "$TYPE" = "xDSL" ]; then ++ unset DEVICE TYPE SLAVE BRIDGE ++ continue ++ fi ++ ++ if [ -n "$BRIDGE" ]; then ++ unset DEVICE TYPE SLAVE BRIDGE ++ continue ++ fi ++ ++ if [ "${DEVICE%%.*}" != "$DEVICE" ] ; then ++ unset DEVICE TYPE SLAVE BRIDGE ++ continue ++ fi ++ ++ if [ "$SLAVE" = "yes" ]; then ++ unset DEVICE TYPE SLAVE BRIDGE ++ continue ++ fi ++ unset DEVICE TYPE SLAVE BRIDGE ++ ++ # Load the module ++ LC_ALL= LANG= /sbin/ip -o link | grep -q $i ++ if [ "$?" = "1" ]; then ++ alias=`modprobe -c | awk "/^(alias|install)[[:space:]]+$i[[:space:]]/ { print \\$3 }"` ++ if [ -n "$alias" -a "$alias" != "off" -a "$alias" != "/bin/true" ]; then ++ modprobe $alias > /dev/null 2>&1 ++ fi ++ fi ++ continue ++done ++ ++exit 0 +diff -urN NetworkManager-0.6.5/test/nmnetlinktest.c NetworkManager-SVNr3284/test/nmnetlinktest.c +--- NetworkManager-0.6.5/test/nmnetlinktest.c 1970-01-01 01:00:00.000000000 +0100 ++++ NetworkManager-SVNr3284/test/nmnetlinktest.c 2008-02-04 15:59:52.000000000 +0100 +@@ -0,0 +1,76 @@ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static void ++device_added (NmNetlinkMonitor *monitor, ++ const gchar *device_name) ++{ ++ g_print ("interface '%s' connected\n", device_name); ++} ++ ++ ++static void ++device_removed (NmNetlinkMonitor *monitor, ++ const gchar *device_name) ++{ ++ g_print ("interface '%s' disconnected\n", device_name); ++} ++ ++int ++main (void) ++{ ++ NmNetlinkMonitor *monitor; ++ GMainLoop *loop; ++ GError *error; ++ ++ g_type_init (); ++ ++ monitor = nm_netlink_monitor_new (); ++ ++ error = NULL; ++ nm_netlink_monitor_open_connection (monitor, &error); ++ ++ if (error != NULL) ++ { ++ g_printerr ("could not open connection: %s\n", ++ error->message); ++ g_error_free (error); ++ return 1; ++ } ++ ++ loop = g_main_loop_new (NULL, FALSE); ++ ++ g_signal_connect (G_OBJECT (monitor), ++ "interface-connected", ++ G_CALLBACK (device_added), NULL); ++ ++ g_signal_connect (G_OBJECT (monitor), ++ "interface-disconnected", ++ G_CALLBACK (device_removed), NULL); ++ ++ nm_netlink_monitor_attach (monitor, NULL); ++ ++ nm_netlink_monitor_request_status (monitor, &error); ++ ++ if (error != NULL) ++ { ++ g_printerr ("could not request status of interfaces: %s\n", ++ error->message); ++ g_error_free (error); ++ return 2; ++ } ++ ++ g_main_loop_run (loop); ++ ++ return 0; ++} -- 2.44.0