2006/9/8, Thiago Bauermann <[EMAIL PROTECTED]>:
2006/9/8, Jason Martens <[EMAIL PROTECTED]>:
Jason Martens wrote:
> Yes, I was still able to connect after removing the "auth_alg=OPEN LEAP"
> line.
>
Have these changes made it into CVS yet? If so, I'll re-compile and try
them out. :)
Sorry pal. Still didn't get around to do it, but I believe I will in the next few days...

Mmmm... was more than a few days. But here it is, finally.

This patch adds Pairwise and Group options to the LEAP configuration dialog, which should address your wpa supplicant configuration.
--
[]'s
Thiago Jung Bauermann
diff -u -r1.14 applet.glade
--- NetworkManager/gnome/applet/applet.glade    13 Jul 2006 17:03:29 -0000      
1.14
+++ NetworkManager/gnome/applet/applet.glade    13 Oct 2006 03:45:49 -0000
@@ -2012,7 +2012,7 @@
        <widget class="GtkTable" id="table5">
          <property name="border_width">6</property>
          <property name="visible">True</property>
-         <property name="n_rows">3</property>
+         <property name="n_rows">5</property>
          <property name="n_columns">2</property>
          <property name="homogeneous">False</property>
          <property name="row_spacing">6</property>
@@ -2154,6 +2154,96 @@
              <property name="right_attach">2</property>
              <property name="top_attach">2</property>
              <property name="bottom_attach">3</property>
+             <property name="x_options">fill</property>
+             <property name="y_options">fill</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="pairwise">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Pairwise:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">3</property>
+             <property name="bottom_attach">4</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkLabel" id="group">
+             <property name="visible">True</property>
+             <property name="label" translatable="yes">Group:</property>
+             <property name="use_underline">False</property>
+             <property name="use_markup">False</property>
+             <property name="justify">GTK_JUSTIFY_LEFT</property>
+             <property name="wrap">False</property>
+             <property name="selectable">False</property>
+             <property name="xalign">0</property>
+             <property name="yalign">0.5</property>
+             <property name="xpad">0</property>
+             <property name="ypad">0</property>
+             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+             <property name="width_chars">-1</property>
+             <property name="single_line_mode">False</property>
+             <property name="angle">0</property>
+           </widget>
+           <packing>
+             <property name="left_attach">0</property>
+             <property name="right_attach">1</property>
+             <property name="top_attach">4</property>
+             <property name="bottom_attach">5</property>
+             <property name="x_options">fill</property>
+             <property name="y_options"></property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkComboBox" id="leap_group_combobox">
+             <property name="visible">True</property>
+             <property name="items" translatable="yes"></property>
+             <property name="add_tearoffs">False</property>
+             <property name="focus_on_click">True</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">4</property>
+             <property name="bottom_attach">5</property>
+             <property name="x_options">fill</property>
+             <property name="y_options">fill</property>
+           </packing>
+         </child>
+
+         <child>
+           <widget class="GtkComboBox" id="leap_pairwise_combobox">
+             <property name="visible">True</property>
+             <property name="items" translatable="yes"></property>
+             <property name="add_tearoffs">False</property>
+             <property name="focus_on_click">True</property>
+           </widget>
+           <packing>
+             <property name="left_attach">1</property>
+             <property name="right_attach">2</property>
+             <property name="top_attach">3</property>
+             <property name="bottom_attach">4</property>
              <property name="x_options">fill</property>
              <property name="y_options">fill</property>
            </packing>
diff -u -r1.1 nm-gconf-wso-leap.c
--- NetworkManager/gnome/applet/nm-gconf-wso-leap.c     13 Jul 2006 17:03:30 
-0000      1.1
+++ NetworkManager/gnome/applet/nm-gconf-wso-leap.c     13 Oct 2006 03:45:49 
-0000
@@ -39,6 +39,8 @@
 {
        const char *    username;
        const char *    key_mgmt;
+       const char *    pairwise;
+       const char *    group;
 };
 
 
@@ -49,11 +51,13 @@
        char *                  username = NULL;
        char *                  password = NULL;
        char *                  key_mgmt = NULL;
+       char *                  pairwise = NULL;
+       char *                  group = NULL;
 
        g_return_val_if_fail (we_cipher == NM_AUTH_TYPE_LEAP, NULL);
        g_return_val_if_fail (iter != NULL, NULL);
 
-       if (!nmu_security_deserialize_leap (iter, &username, &password, 
&key_mgmt))
+       if (!nmu_security_deserialize_leap (iter, &username, &password, 
&key_mgmt, &pairwise, &group))
                goto out;
 
        /* Success, build up our security object */
@@ -65,6 +69,10 @@
                   security->priv->username = g_strdup (username);
        if (key_mgmt)
                   security->priv->key_mgmt = g_strdup (key_mgmt);
+       if (pairwise)
+                  security->priv->pairwise = g_strdup (pairwise);
+       if (group)
+                  security->priv->group = g_strdup (group);
 
 out:
        return security;
@@ -77,6 +85,8 @@
        NMGConfWSOLEAP *        security = NULL;
        char *                  username = NULL;
        char *                  key_mgmt = NULL;
+       char *                  pairwise = NULL;
+       char *                  group = NULL;
 
        g_return_val_if_fail (client != NULL, NULL);
        g_return_val_if_fail (network != NULL, NULL);
@@ -94,11 +104,25 @@
                                                   network,
                                                   &key_mgmt);
 
+       nm_gconf_get_string_helper (client,
+                                                  GCONF_PATH_WIRELESS_NETWORKS,
+                                                  LEAP_PREFIX"pairwise",
+                                                  network,
+                                                  &pairwise);
+
+       nm_gconf_get_string_helper (client,
+                                                  GCONF_PATH_WIRELESS_NETWORKS,
+                                                  LEAP_PREFIX"group",
+                                                  network,
+                                                  &group);
+
        /* Success, build up our security object */
        security = g_object_new (NM_TYPE_GCONF_WSO_LEAP, NULL);
        nm_gconf_wso_set_we_cipher (NM_GCONF_WSO (security), we_cipher);
        security->priv->username = username;
        security->priv->key_mgmt = key_mgmt;
+       security->priv->pairwise = pairwise;
+       security->priv->group = group;
 
        return security;
 }
@@ -110,7 +134,7 @@
        NMGConfWSOLEAP * self = NM_GCONF_WSO_LEAP (instance);
 
        if (!nmu_security_serialize_leap (iter, self->priv->username,
-                       nm_gconf_wso_get_key(instance), self->priv->key_mgmt))
+                       nm_gconf_wso_get_key(instance), self->priv->key_mgmt, 
self->priv->pairwise, self->priv->group))
                return FALSE;
        return TRUE;
 }
@@ -127,6 +151,14 @@
 
        key = g_strdup_printf ("%s/%s/%skey_mgmt", 
GCONF_PATH_WIRELESS_NETWORKS, network, LEAP_PREFIX);
        gconf_client_set_string (client, key, self->priv->key_mgmt, NULL);
+       g_free (key);
+
+       key = g_strdup_printf ("%s/%s/%spairwise", 
GCONF_PATH_WIRELESS_NETWORKS, network, LEAP_PREFIX);
+       gconf_client_set_string (client, key, self->priv->pairwise, NULL);
+       g_free (key);
+
+       key = g_strdup_printf ("%s/%s/%sgroup", GCONF_PATH_WIRELESS_NETWORKS, 
network, LEAP_PREFIX);
+       gconf_client_set_string (client, key, self->priv->group, NULL);
        g_free (key);
 
        return TRUE;
diff -u -r1.1 wso-leap.c
--- NetworkManager/gnome/applet/wso-leap.c      13 Jul 2006 17:03:30 -0000      
1.1
+++ NetworkManager/gnome/applet/wso-leap.c      13 Oct 2006 03:45:50 -0000
@@ -37,6 +37,8 @@
        const char *    username;
        const char *    passwd;
        const char *    key_mgmt;
+       const char *    pairwise;
+       const char *    group;
 };
 
 
@@ -50,6 +52,14 @@
                   g_free((char *) opt->data->key_mgmt);
        }
 
+       if (opt->data->pairwise) {
+                  g_free((char *) opt->data->pairwise);
+       }
+
+       if (opt->data->group) {
+                  g_free((char *) opt->data->group);
+       }
+
        memset (opt->data, 0, sizeof (opt->data));
        g_free (opt->data);
 }
@@ -79,12 +89,24 @@
        gtk_combo_box_get_active_iter(GTK_COMBO_BOX(entry), &iter);
        gtk_tree_model_get(combo_model, &iter, 1, &opt->data->key_mgmt, -1);
 
+       entry = glade_xml_get_widget (opt->uixml, "leap_pairwise_combobox");
+       combo_model = gtk_combo_box_get_model(GTK_COMBO_BOX(entry));
+       gtk_combo_box_get_active_iter(GTK_COMBO_BOX(entry), &iter);
+       gtk_tree_model_get(combo_model, &iter, 1, &opt->data->pairwise, -1);
+
+       entry = glade_xml_get_widget (opt->uixml, "leap_group_combobox");
+       combo_model = gtk_combo_box_get_model(GTK_COMBO_BOX(entry));
+       gtk_combo_box_get_active_iter(GTK_COMBO_BOX(entry), &iter);
+       gtk_tree_model_get(combo_model, &iter, 1, &opt->data->group, -1);
+
        dbus_message_iter_init_append (message, &dbus_iter);
 
        nmu_security_serialize_leap_with_cipher (&dbus_iter,
                                                                      
opt->data->username,
                                                                      
opt->data->passwd,
-                                                                        
opt->data->key_mgmt);
+                                                                        
opt->data->key_mgmt,
+                                                                        
opt->data->pairwise,
+                                                                        
opt->data->group);
 
        return TRUE;
 }
@@ -97,6 +119,8 @@
        GtkWidget *     entry;
        GtkWidget *     widget;
        GtkWidget *     key_mgmt;
+       GtkWidget *     pairwise;
+       GtkWidget *     group;
        GtkListStore *  list_store;
        GtkTreeIter     iter;
 
@@ -127,6 +151,48 @@
 
        /* set default choice to be IEEE 802.1X */
        gtk_combo_box_set_active(GTK_COMBO_BOX(key_mgmt), 0);
+
+       /* set-up pairwise combo box */
+
+       pairwise = glade_xml_get_widget (opt->uixml, "leap_pairwise_combobox");
+
+       /* create tree model containing combo box items */
+       list_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "Default", 1, "", -1);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "CCMP", 1, "CCMP", -1);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "TKIP", 1, "TKIP", -1);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "None", 1, "NONE", -1);
+
+       gtk_combo_box_set_model(GTK_COMBO_BOX(pairwise), 
GTK_TREE_MODEL(list_store));
+
+       /* set default choice to be Default */
+       gtk_combo_box_set_active(GTK_COMBO_BOX(pairwise), 0);
+
+       /* set-up group combo box */
+
+       group = glade_xml_get_widget (opt->uixml, "leap_group_combobox");
+
+       /* create tree model containing combo box items */
+       list_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "Default", 1, "", -1);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "CCMP", 1, "CCMP", -1);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "TKIP", 1, "TKIP", -1);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "WEP104", 1, "WEP104", -1);
+       gtk_list_store_append(list_store, &iter);
+       gtk_list_store_set(list_store, &iter, 0, "WEP40", 1, "WEP40", -1);
+
+       gtk_combo_box_set_model(GTK_COMBO_BOX(group), 
GTK_TREE_MODEL(list_store));
+
+       /* set default choice to be Default */
+       gtk_combo_box_set_active(GTK_COMBO_BOX(group), 0);
 
        return widget;
 }
diff -u -r1.20 dbus-helpers.c
--- NetworkManager/libnm-util/dbus-helpers.c    13 Jul 2006 17:03:31 -0000      
1.20
+++ NetworkManager/libnm-util/dbus-helpers.c    13 Oct 2006 03:45:50 -0000
@@ -478,10 +478,14 @@
 nmu_security_serialize_leap (DBusMessageIter *iter,
                                            const char *username,
                                            const char *passwd,
-                                           const char *key_mgmt)
+                                           const char *key_mgmt,
+                                           const char *pairwise,
+                                           const char *group)
 {
        const char *fake_username = "";
        const char *fake_passwd = "";
+       const char *fake_pairwise = "";
+       const char *fake_group = "";
 
        g_return_val_if_fail (iter != NULL, FALSE);
        g_return_val_if_fail (key_mgmt != NULL, FALSE);
@@ -495,6 +499,12 @@
        /* Fourth arg: Key management (STRING) */
        dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &key_mgmt);
 
+       /* Fifth arg: Pairwise cipher (STRING) */
+       dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, pairwise? 
&pairwise : &fake_pairwise);
+
+       /* Sixth arg: Group cipher (STRING) */
+       dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, group? &group : 
&fake_group);
+
        return TRUE;
 }
 
@@ -502,25 +512,31 @@
 nmu_security_serialize_leap_with_cipher (DBusMessageIter *iter,
                                                                 const char 
*username,
                                                                 const char 
*passwd,
-                                                                const char 
*key_mgmt)
+                                                                const char 
*key_mgmt,
+                                                                const char 
*pairwise,
+                                                                const char 
*group)
 {
        g_return_val_if_fail (iter != NULL, FALSE);
 
        /* First arg: WE Cipher (INT32) */
        we_cipher_append_helper (iter, NM_AUTH_TYPE_LEAP);
 
-       return nmu_security_serialize_leap (iter, username, passwd, key_mgmt);
+       return nmu_security_serialize_leap (iter, username, passwd, key_mgmt, 
pairwise, group);
 }
 
 dbus_bool_t
 nmu_security_deserialize_leap (DBusMessageIter *iter,
                                              char **username,
                                              char **passwd,
-                                                char **key_mgmt)
+                                                char **key_mgmt,
+                                                char **pairwise,
+                                                char **group)
 {
        char *          dbus_username;
        char *          dbus_password;
        char *          dbus_key_mgmt;
+       char *          dbus_pairwise;
+       char *          dbus_group;
 
        g_return_val_if_fail (iter != NULL, FALSE);
        g_return_val_if_fail (username != NULL, FALSE);
@@ -529,6 +545,10 @@
        g_return_val_if_fail (*passwd == NULL, FALSE);
        g_return_val_if_fail (key_mgmt != NULL, FALSE);
        g_return_val_if_fail (*key_mgmt == NULL, FALSE);
+       g_return_val_if_fail (pairwise != NULL, FALSE);
+       g_return_val_if_fail (*pairwise == NULL, FALSE);
+       g_return_val_if_fail (group != NULL, FALSE);
+       g_return_val_if_fail (*group == NULL, FALSE);
 
        /* Second arg: Username (STRING) */
        g_return_val_if_fail (dbus_message_iter_get_arg_type (iter) == 
DBUS_TYPE_STRING, FALSE);
@@ -547,9 +567,23 @@
        dbus_message_iter_get_basic (iter, &dbus_key_mgmt);
        g_return_val_if_fail (dbus_key_mgmt != NULL, FALSE);
 
+       /* Fifth arg: Pairwise cipher (STRING) */
+       g_return_val_if_fail (dbus_message_iter_next (iter), FALSE);
+       g_return_val_if_fail (dbus_message_iter_get_arg_type (iter) == 
DBUS_TYPE_STRING, FALSE);
+       dbus_message_iter_get_basic (iter, &dbus_pairwise);
+       g_return_val_if_fail (dbus_pairwise != NULL, FALSE);
+
+       /* Sixth arg: Group cipher (STRING) */
+       g_return_val_if_fail (dbus_message_iter_next (iter), FALSE);
+       g_return_val_if_fail (dbus_message_iter_get_arg_type (iter) == 
DBUS_TYPE_STRING, FALSE);
+       dbus_message_iter_get_basic (iter, &dbus_group);
+       g_return_val_if_fail (dbus_group != NULL, FALSE);
+
        *username = strlen (dbus_username) > 0 ? dbus_username : NULL;
        *passwd = strlen (dbus_password) > 0 ? dbus_password : NULL;
        *key_mgmt = strlen (dbus_key_mgmt) > 0 ? dbus_key_mgmt : NULL;
+       *pairwise = strlen (dbus_pairwise) > 0 ? dbus_pairwise : NULL;
+       *group = strlen (dbus_group) > 0 ? dbus_group : NULL;
 
        return TRUE;
 }
diff -u -r1.10 dbus-helpers.h
--- NetworkManager/libnm-util/dbus-helpers.h    13 Jul 2006 17:03:31 -0000      
1.10
+++ NetworkManager/libnm-util/dbus-helpers.h    13 Oct 2006 03:45:50 -0000
@@ -103,17 +103,23 @@
 dbus_bool_t    nmu_security_serialize_leap (DBusMessageIter *iter,
                                                                const char 
*username,
                                                                const char 
*passwd,
-                                                               const char 
*key_mgmt);
+                                                               const char 
*key_mgmt,
+                                                               const char 
*pairwise,
+                                                               const char 
*group);
 
 dbus_bool_t    nmu_security_serialize_leap_with_cipher (DBusMessageIter *iter,
                                                                const char 
*username,
                                                                const char 
*passwd,
-                                                               const char 
*key_mgmt);
+                                                               const char 
*key_mgmt,
+                                                               const char 
*pairwise,
+                                                               const char 
*group);
 
 dbus_bool_t    nmu_security_deserialize_leap (DBusMessageIter *iter,
                                                                char **username,
                                                                char **passwd,
-                                                               char 
**key_mgmt);
+                                                               char **key_mgmt,
+                                                               char **group,
+                                                               char 
**pairwise);
 
 DBusMessage *  nmu_create_dbus_error_message (DBusMessage *message,
                                         const char *exception_namespace,
diff -u -r1.2 nm-ap-security-leap.c
--- NetworkManager/src/nm-ap-security-leap.c    14 Aug 2006 03:11:03 -0000      
1.2
+++ NetworkManager/src/nm-ap-security-leap.c    13 Oct 2006 03:45:50 -0000
@@ -37,6 +37,8 @@
 {
        char *  username;
        char *  key_mgmt;
+       char *  pairwise;
+       char *  group;
 };
 
 
@@ -47,10 +49,12 @@
        char *                  username = NULL;
        char *                  password = NULL;
        char *                  key_mgmt = NULL;
+       char *                  pairwise = NULL;
+       char *                  group = NULL;
 
        g_return_val_if_fail (iter != NULL, NULL);
 
-       if (!nmu_security_deserialize_leap (iter, &username, &password, 
&key_mgmt))
+       if (!nmu_security_deserialize_leap (iter, &username, &password, 
&key_mgmt, &pairwise, &group))
                goto out;
 
        /* Success, build up our security object */
@@ -62,6 +66,10 @@
                security->priv->username = g_strdup (username);
        if (key_mgmt)
                security->priv->key_mgmt = g_strdup (key_mgmt);
+       if (pairwise)
+               security->priv->pairwise = g_strdup (pairwise);
+       if (group)
+               security->priv->group = g_strdup (group);
 
        nm_ap_security_set_description (NM_AP_SECURITY (security), _("LEAP"));
 
@@ -91,7 +99,7 @@
        NMAPSecurityLEAP * self = NM_AP_SECURITY_LEAP (instance);
 
        if (!nmu_security_serialize_leap (iter, self->priv->username,
-                       nm_ap_security_get_key(instance), self->priv->key_mgmt))
+                       nm_ap_security_get_key(instance), self->priv->key_mgmt, 
self->priv->pairwise, self->priv->group))
                return -1;
        return 0;
 }
@@ -124,6 +132,16 @@
                                                    nwid, self->priv->username))
                        goto out;
 
+       if (self->priv->pairwise && strlen (self->priv->pairwise) > 0)
+               if (!nm_utils_supplicant_request_with_check (ctrl, "OK", 
__func__, NULL, "SET_NETWORK %i pairwise %s",
+                                                   nwid, self->priv->pairwise))
+                       goto out;
+
+       if (self->priv->group && strlen (self->priv->group) > 0)
+               if (!nm_utils_supplicant_request_with_check (ctrl, "OK", 
__func__, NULL, "SET_NETWORK %i group %s",
+                                                   nwid, self->priv->group))
+                       goto out;
+
        if (password && strlen (password) > 0)
        {
                msg = g_strdup_printf ("SET_NETWORK %i password <password>", 
nwid);
@@ -167,6 +185,8 @@
 
        dst->priv->username = self->priv->username;
        dst->priv->key_mgmt = self->priv->key_mgmt;
+       dst->priv->pairwise = self->priv->pairwise;
+       dst->priv->group = self->priv->group;
 
        nm_ap_security_copy_properties (NM_AP_SECURITY (self), NM_AP_SECURITY 
(dst));
 
@@ -180,6 +200,8 @@
        self->priv = NM_AP_SECURITY_LEAP_GET_PRIVATE (self);
        self->priv->username = NULL;
        self->priv->key_mgmt = NULL;
+       self->priv->pairwise = NULL;
+       self->priv->group = NULL;
 }
 
 
_______________________________________________
NetworkManager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to