From 77cdb552797f022fe312b1ce0b380d9c1a67b406 Mon Sep 17 00:00:00 2001 From: Tambet Ingo Date: Wed, 13 Jun 2007 09:30:44 +0000 Subject: [PATCH] 2007-06-13 Tambet Ingo * src/nm-device-802-11-wireless.c (nm_device_802_11_wireless_set_activation_ap): Convert the essid byte array to string correctly, including the terminating NULL. * src/NetworkManagerPolicy.c (create_connection): Create wireless ssid and mode with correct types. * src/nm-dbus-nmi.c (nm_dbus_get_user_key_for_network): Fix a typo, pass the constructed info to dbus call instead of the activation request. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2592 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- src/NetworkManagerPolicy.c | 8 ++++++-- src/nm-dbus-nmi.c | 2 +- src/nm-device-802-11-wireless.c | 9 ++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/NetworkManagerPolicy.c b/src/NetworkManagerPolicy.c index 9b022313bd..c78c983321 100644 --- a/src/NetworkManagerPolicy.c +++ b/src/NetworkManagerPolicy.c @@ -167,6 +167,7 @@ create_connection (NMDevice *device, NMAccessPoint *ap) setting = nm_setting_wired_new (); } else if (NM_IS_DEVICE_802_11_WIRELESS (device) && ap) { NMSettingWireless *wireless; + const char *ssid; nm_info ("Will activate connection '%s/%s'.", nm_device_get_iface (device), @@ -175,8 +176,11 @@ create_connection (NMDevice *device, NMAccessPoint *ap) setting = nm_setting_wireless_new (); wireless = (NMSettingWireless *) setting; - wireless->ssid = g_strdup (nm_ap_get_essid (ap)); - wireless->mode = 1; + ssid = nm_ap_get_essid (ap); + wireless->ssid = g_byte_array_sized_new (strlen (ssid)); + g_byte_array_append (wireless->ssid, (guint8 *) ssid, strlen (ssid)); + + wireless->mode = g_strdup ("infrastructure"); } else nm_warning ("Unhandled device type '%s'", G_OBJECT_CLASS_NAME (device)); diff --git a/src/nm-dbus-nmi.c b/src/nm-dbus-nmi.c index 60c4ff5236..a1b3087490 100644 --- a/src/nm-dbus-nmi.c +++ b/src/nm-dbus-nmi.c @@ -203,7 +203,7 @@ nm_dbus_get_user_key_for_network (NMDevice *dev, pcall = nm_dbus_send_with_callback (dbus_connection, message, (DBusPendingCallNotifyFunction) nm_dbus_get_user_key_for_network_cb, - req, + info, user_key_info_destroy, __func__); if (pcall) diff --git a/src/nm-device-802-11-wireless.c b/src/nm-device-802-11-wireless.c index 6bd84204db..a7dd82aff1 100644 --- a/src/nm-device-802-11-wireless.c +++ b/src/nm-device-802-11-wireless.c @@ -951,7 +951,11 @@ nm_device_802_11_wireless_set_activation_ap (NMDevice80211Wireless *self, g_assert (app_data); /* FIXME: handle essid everywhere as GByteArray */ - essid = (char *) ssid->data; + { + essid = g_new (char, ssid->len + 1); + memcpy (essid, ssid->data, ssid->len); + essid[ssid->len] = '\0'; + } nm_debug ("Forcing AP '%s'", essid); @@ -997,6 +1001,9 @@ nm_device_802_11_wireless_set_activation_ap (NMDevice80211Wireless *self, security = nm_ap_security_new (nm_ap_get_capabilities (ap), nm_ap_get_encrypted (ap)); } + + g_free (essid); + g_assert (security); nm_ap_set_security (ap, security); nm_ap_add_capabilities_from_security (ap, security);