]> git.pld-linux.org Git - packages/NetworkManager.git/commitdiff
- updated
authorMarcin Banasiak <marcin.banasiak@gmail.com>
Mon, 4 Feb 2008 17:12:09 +0000 (17:12 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    NetworkManager-branch.diff -> 1.2

NetworkManager-branch.diff

index aaee77deb5f3aeb9211bf6f5a0b8fd108dad1f59..322775fbb0b19cd1ada76f11eac6f92003956e57 100644 (file)
@@ -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  <tambet@ximian.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <tambet@ximian.com>
++
++      Implement 802.1x wired authentication.
++
++2008-01-30  Dan Williams  <dcbw@redhat.com>
++
++      * 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  <tambet@gmail.com>
++
++      * 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  <tambet@gmail.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      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  <dcbw@redhat.com>
++
++      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  <dcbw@redhat.com>
++
++      * 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  <tambet@gmail.com>
++
++      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  <dcbw@redhat.com>
++
++      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  <dcbw@redhat.com>
++
++      * src/NetworkManager.c
++              - (nm_killswitch_getpower_reply_cb): ensure DBusErrors are initialized
++                      before using them
++
++2008-01-09  Dan Williams  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * src/NetworkManager.c
++              - (nm_killswitch_getpower_reply_cb): don't repeat errors too often
++                      (rh #246106)
++
++2007-12-07  Dan Williams  <dcbw@redhat.com>
++
++      * src/NetworkManagerSystem.c
++              - (new_nl_handle): ensure that the same netlink pid is never chosen
++                      twice (gnome.org #491047)
++
++2007-12-07  Dan Williams  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * 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  <dcbw@redhat.com>
++
++      * src/NetworkManager.c
++              - (nm_data_free): clean up dbus connection on exit
++
++2007-12-02  Dan Williams  <dcbw@redhat.com>
++
++      * 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  <plaes@svn.gnome.org>
++
++        * configure.in: Added "et" (Estonian) to ALL_LINGUAS.
++
 +2007-08-30  Dan Williams  <dcbw@redhat.com>
 +
 +      * libnm-util/sha1.c
@@ -106,812 +339,13203 @@ diff -urN NetworkManager/ChangeLog NetworkManager-SVN/ChangeLog
  2007-04-18  Tambet Ingo  <tambet@ximian.com>
  
        * 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 <config.h>
-+#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 <stdlib.h>
- #include <string.h>
+       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 <config.h>
++#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 <stdlib.h>
+ #include <string.h>
+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  <plaes@svn.gnome.org>
 +
-+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  <plaes@svn.gnome.org>
 +
-+      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  <plaes@svn.gnome.org>
 +
-+      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 <clytie@riverland.net.au>
 +
-+      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 <ss@gnome.gr.jp>
 +
-+      handle_killswitch_pcall_done (data, pcall);
-+      dbus_pending_call_unref (pcall);
-+}
++      * ja.po: Updated Japanese translation.
 +
++2007-08-22  Jorge Gonzalez <jorgegonz@svn.gnome.org>
 +
-+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  <hile@iki.fi>
 +
-+      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 <takeshi.aihana@gmail.com>
 +
-+              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  <kmaraas@gnome.org>
 +
-+/*
-+ * 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  <elle.uca@libero.it>
 +
-+      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 <iharh@gnome.org>
  
-       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 <antonio@linux.org.pe>, 2004.
+ # Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2004, 2005.
+ # Lucas Vieites Fariña <lucas@asixinformatica.com>, 2005, 2006.
+-#
++# Jorge González <jorgegonz@svn.gnome.org>, 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 <language@novell.com>\n"
+-"Language-Team: Novell Language <language@novell.com>\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 <jorgegonz@svn.gnome.org>\n"
++"Language-Team: Spanish <traductores@es.gnome.org>\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 <lucas@asixinformatica.com>, 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 ""
+-"<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Información de la conexión activa</"
+-"span>"
+-
+-#: ../gnome/applet/applet.glade.h:4
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
+-"Network</span>\n"
+-"\n"
+-"A passphrase or encryption key is required to access the wireless network '%"
+-"s'."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Contraseña requerida por red "
+-"inalámbrica</span>\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 ""
+-"<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</span>\n"
+-"\n"
+-"%s  It will not be completely functional."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Funcionalidad de red reducida</span>\n"
+-"\n"
+-"%s No será completamente funcional."
+-
+-#: ../gnome/applet/applet.glade.h:12
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Wireless Network Login Confirmation</"
+-"span>\n"
+-"\n"
+-"You have chosen to log in to the wireless network '%s'.  If you are sure "
+-"that this wireless network is secure, click the checkbox below and "
+-"NetworkManager will not require confirmation on subsequent log ins."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Confirmación de entrada a la red "
+-"inalámbrica</span>\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 <amd@store20.com>, 2007.
++# Mattias Põldaru <mattias@gmail.com>, 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 <mahfiaz@gmail.com>\n"
++"Language-Team: Estonian <gnome-et@linux.ee>\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 <hile@iki.fi>\n"
+ "Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\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 ""
+-"<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Tietoja aktiivisesta yhteydestä</span>"
+-
+-#: ../gnome/applet/applet.glade.h:4
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
+-"Network</span>\n"
+-"\n"
+-"A passphrase or encryption key is required to access the wireless network '%"
+-"s'."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Langaton verkko vaatii tunnuslausetta</"
+-"span>\n"
+-"\n"
+-"Tunnuslause tai salausavain vaaditaan, jotta voit ottaa yhteyttä "
+-"langattomaan verkkoon %s."
+-
+-#: ../gnome/applet/applet.glade.h:8
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</span>\n"
+-"\n"
+-"%s  It will not be completely functional."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Rajattu verkon toiminnallisuus</span>\n"
+-"\n"
+-"%s  Verkkoyhteys ei ole täysin toimiva."
+-
+-#: ../gnome/applet/applet.glade.h:12
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Wireless Network Login Confirmation</"
+-"span>\n"
+-"\n"
+-"You have chosen to log in to the wireless network '%s'.  If you are sure "
+-"that this wireless network is secure, click the checkbox below and "
+-"NetworkManager will not require confirmation on subsequent log ins."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Langattoman yhteyden kirjatumisen "
+-"vahvistus</span>\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 ""
++#~ "<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Tietoja aktiivisesta yhteydestä</"
++#~ "span>"
++
++#~ msgid ""
++#~ "<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
++#~ "Network</span>\n"
++#~ "\n"
++#~ "A passphrase or encryption key is required to access the wireless network "
++#~ "'%s'."
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Langaton verkko vaatii "
++#~ "tunnuslausetta</span>\n"
++#~ "\n"
++#~ "Tunnuslause tai salausavain vaaditaan, jotta voit ottaa yhteyttä "
++#~ "langattomaan verkkoon %s."
++
++#~ msgid ""
++#~ "<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</"
++#~ "span>\n"
++#~ "\n"
++#~ "%s  It will not be completely functional."
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Rajattu verkon toiminnallisuus</"
++#~ "span>\n"
++#~ "\n"
++#~ "%s  Verkkoyhteys ei ole täysin toimiva."
++
++#~ msgid ""
++#~ "<span weight=\"bold\" size=\"larger\">Wireless Network Login "
++#~ "Confirmation</span>\n"
++#~ "\n"
++#~ "You have chosen to log in to the wireless network '%s'.  If you are sure "
++#~ "that this wireless network is secure, click the checkbox below and "
++#~ "NetworkManager will not require confirmation on subsequent log ins."
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Langattoman yhteyden kirjatumisen "
++#~ "vahvistus</span>\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 <francesco.marletta@tiscali.it>, 2004-2005.
++# Francesco Marletta <francesco.marletta@tiscali.it>, 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 <language@novell.com>\n"
+ "Language-Team: Novell Language <language@novell.com>\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 <francesco.marletta@tiscali.it>"
+-
+-#: ../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 ""
+-"<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Informazioni connessione attiva</span>"
+-
+-#: ../gnome/applet/applet.glade.h:4
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
+-"Network</span>\n"
+-"\n"
+-"A passphrase or encryption key is required to access the wireless network '%"
+-"s'."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Frase chiave richiesta dalla rete "
+-"wireless</span>\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 ""
+-"<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</span>\n"
+-"\n"
+-"%s  It will not be completely functional."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Funzionalità di rete ridotta</span>\n"
+-"\n"
+-"%s  Non sarà del funzionale."
+-
+-#: ../gnome/applet/applet.glade.h:12
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Wireless Network Login Confirmation</"
+-"span>\n"
+-"\n"
+-"You have chosen to log in to the wireless network '%s'.  If you are sure "
+-"that this wireless network is secure, click the checkbox below and "
+-"NetworkManager will not require confirmation on subsequent log ins."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Conferma accesso a rete wireless</"
+-"span>\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 "<span weight=\"bold\">Wireless Networks:</span>"
+-#~ msgstr "<span weight=\"bold\">Reti wireless:</span>"
+-
+-#~ 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 <dcbw@redhat.com>
+ # This file is distributed under the same license as the NetworkManager package.
+-# Satoru SATOH <ss@gnome.gr.jp>, 2005.
++# Satoru SATOH <ss@gnome.gr.jp>, 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 <language@novell.com>\n"
+-"Language-Team: Novell Language <language@novell.com>\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 <ss@gnome.gr.jp>\n"
++"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\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 ""
+-"相花 毅 <aihana@gnome.gr.jp>\n"
+-"Akira TAGOH <tagoh@gnome.gr.jp>\n"
+-"Yukihiro Nakai <nakai@gnome.gr.jp>\n"
+-"Takuo KITAME <kitame@debian.org>\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 ""
+-"<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
+-msgstr "<span weight=\"bold\" size=\"larger\">有効な接続情報</span>"
+-
+-#: ../gnome/applet/applet.glade.h:4
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
+-"Network</span>\n"
+-"\n"
+-"A passphrase or encryption key is required to access the wireless network '%"
+-"s'."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">無線ネットワークにはパスフレーズが必要"
+-"です</span>\n"
+-"\n"
+-"無線ネットワーク '%s' にアクセスするにはパスフレーズか暗号化鍵が必要です"
+-
+-#: ../gnome/applet/applet.glade.h:8
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</span>\n"
+-"\n"
+-"%s  It will not be completely functional."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">縮小されたネットワーク機能</span>\n"
+-"\n"
+-"%s  完全には機能しません。"
+-
+-#: ../gnome/applet/applet.glade.h:12
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Wireless Network Login Confirmation</"
+-"span>\n"
+-"\n"
+-"You have chosen to log in to the wireless network '%s'.  If you are sure "
+-"that this wireless network is secure, click the checkbox below and "
+-"NetworkManager will not require confirmation on subsequent log ins."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Wireless Network Login 確認</span>\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 <kmaraas@gnome.org>\n"
+ "Language-Team: Norwegian Bokmal <i18n-nb@lister.ping.uio.no>\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 <kmaraas@gnome.org>"
+-
+-#: ../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 ""
+-"<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Informasjon om aktiv tilkobling</span>"
+-
+-#: ../gnome/applet/applet.glade.h:4
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
+-"Network</span>\n"
+-"\n"
+-"A passphrase or encryption key is required to access the wireless network '%"
+-"s'."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Passord kreves for trådløst nettverk</"
+-"span>\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 ""
+-"<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</span>\n"
+-"\n"
+-"%s  It will not be completely functional."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Redusert nettverksfunksjonalitet</"
+-"span>\n"
+-"\n"
+-"%s  Ikke fullstendig funksjonell."
+-
+-#: ../gnome/applet/applet.glade.h:12
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Wireless Network Login Confirmation</"
+-"span>\n"
+-"\n"
+-"You have chosen to log in to the wireless network '%s'.  If you are sure "
+-"that this wireless network is secure, click the checkbox below and "
+-"NetworkManager will not require confirmation on subsequent log ins."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Bekreftelse av pålogging på trådløst "
+-"nettverk</span>\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 <clytie@riverland.net.au>, 2006.
++# Copyright © 2007 Gnome i18n Project for Vietnamese.
++# Clytie Siddall <clytie@riverland.net.au>, 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 <clytie@riverland.net.au>\n"
+ "Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\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 <gnomevi-list@lists.sourceforge.net>"
+-
+-#: ../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 ""
+-"<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Thông tin kết nối hoạt động</span>"
+-
+-#: ../gnome/applet/applet.glade.h:4
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
+-"Network</span>\n"
+-"\n"
+-"A passphrase or encryption key is required to access the wireless network '%"
+-"s'."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Cụm từ Mật khẩu Cần thiết cho mạng Vô "
+-"tuyến</span>\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 ""
+-"<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</span>\n"
+-"\n"
+-"%s  It will not be completely functional."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Chức năng mạng bị giảm</span>\n"
+-"\n"
+-"%s  Nó sẽ không hoạt động hoàn toàn."
+-
+-#: ../gnome/applet/applet.glade.h:12
+-#, no-c-format
+-msgid ""
+-"<span weight=\"bold\" size=\"larger\">Wireless Network Login Confirmation</"
+-"span>\n"
+-"\n"
+-"You have chosen to log in to the wireless network '%s'.  If you are sure "
+-"that this wireless network is secure, click the checkbox below and "
+-"NetworkManager will not require confirmation on subsequent log ins."
+-msgstr ""
+-"<span weight=\"bold\" size=\"larger\">Xác thực Đăng nhập với mạng Vô tuyến</"
+-"span>\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 <gnomevi-list@lists.sourceforge.net>"
++
++#~ 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 ""
++#~ "<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Thông tin kết nối hoạt động</span>"
++
++#~ msgid ""
++#~ "<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
++#~ "Network</span>\n"
++#~ "\n"
++#~ "A passphrase or encryption key is required to access the wireless network "
++#~ "'%s'."
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Cụm từ Mật khẩu Cần thiết cho mạng "
++#~ "Vô tuyến</span>\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 ""
++#~ "<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</"
++#~ "span>\n"
++#~ "\n"
++#~ "%s  It will not be completely functional."
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Chức năng mạng bị giảm</span>\n"
++#~ "\n"
++#~ "%s  Nó sẽ không hoạt động hoàn toàn."
++
++#~ msgid ""
++#~ "<span weight=\"bold\" size=\"larger\">Wireless Network Login "
++#~ "Confirmation</span>\n"
++#~ "\n"
++#~ "You have chosen to log in to the wireless network '%s'.  If you are sure "
++#~ "that this wireless network is secure, click the checkbox below and "
++#~ "NetworkManager will not require confirmation on subsequent log ins."
++#~ msgstr ""
++#~ "<span weight=\"bold\" size=\"larger\">Xác thực Đăng nhập với mạng Vô "
++#~ "tuyến</span>\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 <dcbw@redhat.com>
+@@ -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 <dcbw@redhat.com>
+@@ -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 <dcbw@redhat.com>
+@@ -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 *) &range;
++                      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 <kay.sievers@vrfy.org>
+- *
+- *    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 <dcbw@redhat.com>
+@@ -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 <linux/mii.h>
++#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 <signal.h>
++#include <sys/wait.h>
++#include <unistd.h>
++
++#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 <kay.sievers@vrfy.org>
++ *
++ *    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 <glib/gtypes.h>
++#include <glib-object.h>
++
++#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 <glib/gtypes.h>
++#include <glib-object.h>
++#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 <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <signal.h>
++
+ #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 <dcbw@redhat.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * (C) Copyright 2005 Red Hat, Inc.
++ */
++
++#include <glib.h>
++#include <dbus/dbus.h>
++#include <dbus/dbus-glib.h>
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++#include <sys/socket.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
++
++#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 <sys/types.h>
++
++#include <sys/socket.h>
++#include <asm/types.h>
++#include <linux/types.h>
++#include <linux/netlink.h>
++#include <linux/rtnetlink.h>
++#include <linux/if.h>
++#include <errno.h>
++
++#include <glib.h>
++#include <nm-netlink-monitor.h>
++
++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;
++}
This page took 2.755218 seconds and 4 git commands to generate.