Hello community,

here is the log from the commit of package NetworkManager for openSUSE:12.2 
checked in at 2012-08-22 12:00:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2/NetworkManager (Old)
 and      /work/SRC/openSUSE:12.2/.NetworkManager.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "NetworkManager", Maintainer is "gnome-maintain...@suse.de"

Changes:
--------
--- /work/SRC/openSUSE:12.2/NetworkManager/NetworkManager.changes       
2012-07-31 14:15:46.000000000 +0200
+++ /work/SRC/openSUSE:12.2/.NetworkManager.new/NetworkManager.changes  
2012-08-22 12:00:52.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Aug 20 07:13:17 UTC 2012 - bi...@opensuse.org
+
+- Add nm-wireless-strength.patch, fix wireless status for ipw2200.
+  (bnc#755541, bgo#675017).
+
+-------------------------------------------------------------------

New:
----
  nm-wireless-strength-ipw2200.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ NetworkManager.spec ++++++
--- /var/tmp/diff_new_pack.QoYULy/_old  2012-08-22 12:00:52.000000000 +0200
+++ /var/tmp/diff_new_pack.QoYULy/_new  2012-08-22 12:00:52.000000000 +0200
@@ -52,6 +52,8 @@
 # PATCH-FIX-UPSTREAM nm-probe-radius-server-cert.patch bnc#574266 
g...@suse.com -- Probe the RADIUS server certificate
 Patch9:         nm-probe-radius-server-cert.patch
 Patch10:        nm-null-out-on-dispose.patch
+# PATCH-FIX-UPSTREAM nm-wireless-strength-ipw2200.patch bnc#755541 
bi...@opensuse.org -- Fix wireless status for ipw2200
+Patch11:        nm-wireless-strength-ipw2200.patch
 BuildRequires:  fdupes
 BuildRequires:  gobject-introspection-devel
 BuildRequires:  gtk-doc
@@ -197,6 +199,7 @@
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -p1
 
 %build
 pppddir=`ls -1d /usr/%_lib/pppd/2*`


++++++ nm-null-out-on-dispose.patch ++++++
--- /var/tmp/diff_new_pack.QoYULy/_old  2012-08-22 12:00:52.000000000 +0200
+++ /var/tmp/diff_new_pack.QoYULy/_new  2012-08-22 12:00:52.000000000 +0200
@@ -10,10 +10,10 @@
     
     https://bugzilla.gnome.org/show_bug.cgi?id=674473
 
-diff --git a/include/nm-glib-compat.h b/include/nm-glib-compat.h
-index 30b83e0..e953f6e 100644
---- a/include/nm-glib-compat.h
-+++ b/include/nm-glib-compat.h
+Index: NetworkManager-0.9.4.0/include/nm-glib-compat.h
+===================================================================
+--- NetworkManager-0.9.4.0.orig/include/nm-glib-compat.h
++++ NetworkManager-0.9.4.0/include/nm-glib-compat.h
 @@ -42,6 +42,16 @@
                g_simple_async_result_set_from_error (result, __error); \
                g_error_free (__error); \
@@ -31,11 +31,11 @@
  #endif
  
  #endif  /* NM_GLIB_COMPAT_H */
-diff --git a/libnm-glib/nm-access-point.c b/libnm-glib/nm-access-point.c
-index a6218ed..9c11c04 100644
---- a/libnm-glib/nm-access-point.c
-+++ b/libnm-glib/nm-access-point.c
-@@ -41,7 +41,6 @@ G_DEFINE_TYPE (NMAccessPoint, nm_access_point, 
NM_TYPE_OBJECT)
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-access-point.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-access-point.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-access-point.c
+@@ -41,7 +41,6 @@ G_DEFINE_TYPE (NMAccessPoint, nm_access_
  #define NM_ACCESS_POINT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), 
NM_TYPE_ACCESS_POINT, NMAccessPointPrivate))
  
  typedef struct {
@@ -59,11 +59,11 @@
  
        G_OBJECT_CLASS (nm_access_point_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-active-connection.c 
b/libnm-glib/nm-active-connection.c
-index 81b1f01..f170121 100644
---- a/libnm-glib/nm-active-connection.c
-+++ b/libnm-glib/nm-active-connection.c
-@@ -49,7 +49,6 @@ G_DEFINE_TYPE_WITH_CODE (NMActiveConnection, 
nm_active_connection, NM_TYPE_OBJEC
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-active-connection.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-active-connection.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-active-connection.c
+@@ -49,7 +49,6 @@ G_DEFINE_TYPE_WITH_CODE (NMActiveConnect
  #define NM_ACTIVE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE 
((o), NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionPrivate))
  
  typedef struct {
@@ -93,11 +93,11 @@
  
        G_OBJECT_CLASS (nm_active_connection_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c
-index 781ce4c..4a908e0 100644
---- a/libnm-glib/nm-client.c
-+++ b/libnm-glib/nm-client.c
-@@ -53,8 +53,6 @@ G_DEFINE_TYPE_WITH_CODE (NMClient, nm_client, NM_TYPE_OBJECT,
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-client.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-client.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-client.c
+@@ -53,8 +53,6 @@ G_DEFINE_TYPE_WITH_CODE (NMClient, nm_cl
  #define NM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), 
NM_TYPE_CLIENT, NMClientPrivate))
  
  typedef struct {
@@ -138,10 +138,10 @@
  
        G_OBJECT_CLASS (nm_client_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-bond.c b/libnm-glib/nm-device-bond.c
-index 7d8bf57..07ec4e8 100644
---- a/libnm-glib/nm-device-bond.c
-+++ b/libnm-glib/nm-device-bond.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-bond.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-bond.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-bond.c
 @@ -215,10 +215,7 @@ dispose (GObject *object)
  {
        NMDeviceBondPrivate *priv = NM_DEVICE_BOND_GET_PRIVATE (object);
@@ -154,10 +154,10 @@
  
        G_OBJECT_CLASS (nm_device_bond_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-bt.c b/libnm-glib/nm-device-bt.c
-index bd8ccd2..b175f37 100644
---- a/libnm-glib/nm-device-bt.c
-+++ b/libnm-glib/nm-device-bt.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-bt.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-bt.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-bt.c
 @@ -42,8 +42,6 @@ typedef struct {
        char *hw_address;
        char *name;
@@ -182,10 +182,10 @@
  
        G_OBJECT_CLASS (nm_device_bt_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-ethernet.c b/libnm-glib/nm-device-ethernet.c
-index 2c35a97..bc61b1f 100644
---- a/libnm-glib/nm-device-ethernet.c
-+++ b/libnm-glib/nm-device-ethernet.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-ethernet.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-ethernet.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-ethernet.c
 @@ -44,8 +44,6 @@ typedef struct {
        char *perm_hw_address;
        guint32 speed;
@@ -211,10 +211,10 @@
  
        G_OBJECT_CLASS (nm_device_ethernet_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-infiniband.c 
b/libnm-glib/nm-device-infiniband.c
-index 4f28823..4dee29d 100644
---- a/libnm-glib/nm-device-infiniband.c
-+++ b/libnm-glib/nm-device-infiniband.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-infiniband.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-infiniband.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-infiniband.c
 @@ -224,10 +224,7 @@ dispose (GObject *object)
  {
        NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE 
(object);
@@ -227,10 +227,10 @@
  
        G_OBJECT_CLASS (nm_device_infiniband_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-modem.c b/libnm-glib/nm-device-modem.c
-index 09b6df1..40597bf 100644
---- a/libnm-glib/nm-device-modem.c
-+++ b/libnm-glib/nm-device-modem.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-modem.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-modem.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-modem.c
 @@ -44,8 +44,6 @@ typedef struct {
  
        NMDeviceModemCapabilities caps;
@@ -256,10 +256,10 @@
  
        G_OBJECT_CLASS (nm_device_modem_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-olpc-mesh.c 
b/libnm-glib/nm-device-olpc-mesh.c
-index 96e1c36..9d14aa0 100644
---- a/libnm-glib/nm-device-olpc-mesh.c
-+++ b/libnm-glib/nm-device-olpc-mesh.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-olpc-mesh.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-olpc-mesh.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-olpc-mesh.c
 @@ -227,14 +227,8 @@ dispose (GObject *object)
  {
        NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE 
(object);
@@ -277,10 +277,10 @@
  
        G_OBJECT_CLASS (nm_device_olpc_mesh_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-vlan.c b/libnm-glib/nm-device-vlan.c
-index 7ebc8dd..6ff7292 100644
---- a/libnm-glib/nm-device-vlan.c
-+++ b/libnm-glib/nm-device-vlan.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-vlan.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-vlan.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-vlan.c
 @@ -238,10 +238,7 @@ dispose (GObject *object)
  {
        NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (object);
@@ -293,11 +293,11 @@
  
        G_OBJECT_CLASS (nm_device_vlan_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-wifi.c b/libnm-glib/nm-device-wifi.c
-index aba43f9..01f0468 100644
---- a/libnm-glib/nm-device-wifi.c
-+++ b/libnm-glib/nm-device-wifi.c
-@@ -43,7 +43,6 @@ G_DEFINE_TYPE (NMDeviceWifi, nm_device_wifi, NM_TYPE_DEVICE)
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-wifi.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-wifi.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-wifi.c
+@@ -43,7 +43,6 @@ G_DEFINE_TYPE (NMDeviceWifi, nm_device_w
  void _nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, gboolean 
enabled);
  
  typedef struct {
@@ -305,7 +305,7 @@
        DBusGProxy *proxy;
  
        char *hw_address;
-@@ -608,15 +607,8 @@ dispose (GObject *object)
+@@ -659,15 +658,8 @@ dispose (GObject *object)
  {
        NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (object);
  
@@ -322,11 +322,11 @@
  
        G_OBJECT_CLASS (nm_device_wifi_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device-wimax.c b/libnm-glib/nm-device-wimax.c
-index e49b4f3..de99b7c 100644
---- a/libnm-glib/nm-device-wimax.c
-+++ b/libnm-glib/nm-device-wimax.c
-@@ -42,7 +42,6 @@ G_DEFINE_TYPE (NMDeviceWimax, nm_device_wimax, 
NM_TYPE_DEVICE)
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device-wimax.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device-wimax.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device-wimax.c
+@@ -42,7 +42,6 @@ G_DEFINE_TYPE (NMDeviceWimax, nm_device_
  void _nm_device_wimax_set_wireless_enabled (NMDeviceWimax *wimax, gboolean 
enabled);
  
  typedef struct {
@@ -361,11 +361,11 @@
  
        G_OBJECT_CLASS (nm_device_wimax_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c
-index a8a6338..5346b9d 100644
---- a/libnm-glib/nm-device.c
-+++ b/libnm-glib/nm-device.c
-@@ -60,7 +60,6 @@ G_DEFINE_TYPE_WITH_CODE (NMDevice, nm_device, NM_TYPE_OBJECT,
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-device.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-device.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-device.c
+@@ -60,7 +60,6 @@ G_DEFINE_TYPE_WITH_CODE (NMDevice, nm_de
  #define NM_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), 
NM_TYPE_DEVICE, NMDevicePrivate))
  
  typedef struct {
@@ -407,10 +407,10 @@
  
        G_OBJECT_CLASS (nm_device_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-object.c b/libnm-glib/nm-object.c
-index 43f5dec..e333f9f 100644
---- a/libnm-glib/nm-object.c
-+++ b/libnm-glib/nm-object.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-object.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-object.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-object.c
 @@ -78,7 +78,7 @@ typedef struct {
  
        GSList *notify_props;
@@ -443,11 +443,11 @@
        g_slist_foreach (priv->property_interfaces, (GFunc) g_free, NULL);
        g_slist_free (priv->property_interfaces);
 +      priv->property_interfaces = NULL;
-+
-+      g_clear_object (&priv->properties_proxy);
  
 -      g_object_unref (priv->properties_proxy);
 -      dbus_g_connection_unref (priv->connection);
++      g_clear_object (&priv->properties_proxy);
++
 +      if (priv->connection) {
 +              dbus_g_connection_unref (priv->connection);
 +              priv->connection = NULL;
@@ -455,10 +455,10 @@
  
        G_OBJECT_CLASS (nm_object_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-remote-connection.c 
b/libnm-glib/nm-remote-connection.c
-index c5e3864..e8b99df 100644
---- a/libnm-glib/nm-remote-connection.c
-+++ b/libnm-glib/nm-remote-connection.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-remote-connection.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-remote-connection.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-remote-connection.c
 @@ -72,7 +72,6 @@ typedef struct {
        GSList *calls;
  
@@ -487,10 +487,10 @@
        }
  
        G_OBJECT_CLASS (nm_remote_connection_parent_class)->dispose (object);
-diff --git a/libnm-glib/nm-remote-settings.c b/libnm-glib/nm-remote-settings.c
-index 040d912..19d865c 100644
---- a/libnm-glib/nm-remote-settings.c
-+++ b/libnm-glib/nm-remote-settings.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-remote-settings.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-remote-settings.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-remote-settings.c
 @@ -61,8 +61,6 @@ typedef struct {
        DBusGProxy *dbus_proxy;
  
@@ -500,7 +500,7 @@
  } NMRemoteSettingsPrivate;
  
  enum {
-@@ -1043,29 +1041,35 @@ dispose (GObject *object)
+@@ -1007,29 +1005,35 @@ dispose (GObject *object)
        NMRemoteSettings *self = NM_REMOTE_SETTINGS (object);
        NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self);
  
@@ -548,10 +548,10 @@
  
        G_OBJECT_CLASS (nm_remote_settings_parent_class)->dispose (object);
  }
-diff --git a/libnm-glib/nm-secret-agent.c b/libnm-glib/nm-secret-agent.c
-index 19f55c0..02f7419 100644
---- a/libnm-glib/nm-secret-agent.c
-+++ b/libnm-glib/nm-secret-agent.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-secret-agent.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-secret-agent.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-secret-agent.c
 @@ -79,8 +79,6 @@ typedef struct {
        gboolean auto_register;
        gboolean suppress_auto;
@@ -608,10 +608,10 @@
        }
  
        G_OBJECT_CLASS (nm_secret_agent_parent_class)->dispose (object);
-diff --git a/libnm-glib/nm-vpn-plugin.c b/libnm-glib/nm-vpn-plugin.c
-index 2368538..2de3e9f 100644
---- a/libnm-glib/nm-vpn-plugin.c
-+++ b/libnm-glib/nm-vpn-plugin.c
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-vpn-plugin.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-vpn-plugin.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-vpn-plugin.c
 @@ -63,9 +63,6 @@ typedef struct {
        DBusGConnection *connection;
        char *dbus_service_name;
@@ -641,11 +641,11 @@
  
        state = nm_vpn_plugin_get_state (plugin);
  
-diff --git a/libnm-glib/nm-wimax-nsp.c b/libnm-glib/nm-wimax-nsp.c
-index 39553ce..980f7ce 100644
---- a/libnm-glib/nm-wimax-nsp.c
-+++ b/libnm-glib/nm-wimax-nsp.c
-@@ -37,7 +37,6 @@ G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp, NM_TYPE_OBJECT)
+Index: NetworkManager-0.9.4.0/libnm-glib/nm-wimax-nsp.c
+===================================================================
+--- NetworkManager-0.9.4.0.orig/libnm-glib/nm-wimax-nsp.c
++++ NetworkManager-0.9.4.0/libnm-glib/nm-wimax-nsp.c
+@@ -37,7 +37,6 @@ G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp,
  #define NM_WIMAX_NSP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), 
NM_TYPE_WIMAX_NSP, NMWimaxNspPrivate))
  
  typedef struct {

++++++ nm-wireless-strength-ipw2200.patch ++++++
commit 50435e1d5deff17233f1de73ee030a5982e9fd05
Author: Dan Williams <d...@redhat.com>
Date:   Fri May 4 14:26:10 2012 -0500

    wifi: attempt to use same kernel API wpa_supplicant does (bgo #675017)
    
    Some drivers (ipw2x00) support capabilities reporting via nl80211 but
    absolutely nothing else.  NM was only checking for capabilities
    when deciding whether or not to use nl80211 to communicate with the
    driver for associated AP, signal strength, and channel info, and that
    clearly fails with half-implementations of nl80211 in the kernel.
    
    Instead, match the logic that wpa_supplicant uses to determine whether
    to stick with nl80211 or fall back to WEXT.  For these drivers
    NM will now fall back to WEXT and should return to the behavior we
    had with 0.9.2 for these devices.

Index: NetworkManager-0.9.4.0/src/wifi/wifi-utils-nl80211.c
===================================================================
--- NetworkManager-0.9.4.0.orig/src/wifi/wifi-utils-nl80211.c
+++ NetworkManager-0.9.4.0/src/wifi/wifi-utils-nl80211.c
@@ -535,7 +535,9 @@ struct nl80211_device_info {
        guint32 *freqs;
        int num_freqs;
        guint32 caps;
-       gboolean can_scan, can_scan_ssid;
+       gboolean can_scan;
+       gboolean can_scan_ssid;
+       gboolean supported;
        gboolean success;
 };
 
@@ -579,11 +581,24 @@ static int nl80211_wiphy_info_handler (s
                struct nlattr *nl_cmd;
                int i;
 
-               nla_for_each_nested (nl_cmd,
-                                    tb[NL80211_ATTR_SUPPORTED_COMMANDS], i) {
-                       guint32 cmd = nla_get_u32 (nl_cmd);
-                       if (cmd == NL80211_CMD_TRIGGER_SCAN)
+               nla_for_each_nested (nl_cmd, 
tb[NL80211_ATTR_SUPPORTED_COMMANDS], i) {
+                       switch (nla_get_u32 (nl_cmd)) {
+                       case NL80211_CMD_TRIGGER_SCAN:
                                info->can_scan = TRUE;
+                               break;
+                       case NL80211_CMD_CONNECT:
+                       case NL80211_CMD_AUTHENTICATE:
+                               /* Only devices that support CONNECT or AUTH 
actually support
+                                * 802.11, unlike say ipw2x00 (up to at least 
kernel 3.4) which
+                                * has minimal info support, but no actual 
command support.
+                                * This check mirrors what wpa_supplicant does 
to determine
+                                * whether or not to use the nl80211 driver.
+                                */
+                               info->supported = TRUE;
+                               break;
+                       default:
+                               break;
+                       }
                }
        }
 
@@ -720,6 +735,13 @@ wifi_nl80211_init (const char *iface, in
                                    nl80211->parent.iface);
                goto error;
        }
+
+       if (!device_info.supported) {
+               nm_log_dbg (LOGD_HW | LOGD_WIFI,
+                                   "(%s): driver does not fully support 
nl80211, falling back to WEXT",
+                                   nl80211->parent.iface);
+               goto error;
+       }
 
        if (!device_info.can_scan_ssid) {
                nm_log_err (LOGD_HW | LOGD_WIFI,
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to