summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-03-26 21:47:24 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-03-26 21:47:24 +0100
commit15e9803aefdf8996a9b4bdb0388500adef9577ed (patch)
treea5b9b088d07daf2012bc0f80c5f378481b94bf93 /src
parent610964c498aa86bed1086abafabdd2496ebafbc9 (diff)
downloadconnman-15e9803aefdf8996a9b4bdb0388500adef9577ed.tar.gz
connman-15e9803aefdf8996a9b4bdb0388500adef9577ed.tar.bz2
connman-15e9803aefdf8996a9b4bdb0388500adef9577ed.zip
Add workaround for my D-Link access point
Diffstat (limited to 'src')
-rw-r--r--src/iface.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/iface.c b/src/iface.c
index 3632a685..6a9aa847 100644
--- a/src/iface.c
+++ b/src/iface.c
@@ -360,7 +360,8 @@ void connman_iface_indicate_station(struct connman_iface *iface,
const char *name, int strength, int security)
{
DBusMessage *signal;
- char *passphrase;
+ char *ssid, *passphrase;
+ int len;
DBG("iface %p security %d name %s", iface, security, name);
@@ -380,12 +381,21 @@ void connman_iface_indicate_station(struct connman_iface *iface,
if (iface->state != CONNMAN_IFACE_STATE_SCANNING)
return;
- passphrase = __connman_iface_find_passphrase(iface, name);
+ len = strlen(name);
+ ssid = strdup(name);
+ if (ssid == NULL)
+ return;
+
+ /* The D-Link access points return a 0x05 at the end of the SSID */
+ if (ssid[len - 1] == '\05')
+ ssid[len - 1] = '\0';
+
+ passphrase = __connman_iface_find_passphrase(iface, ssid);
if (passphrase != NULL) {
- DBG("network %s passphrase %s", name, passphrase);
+ DBG("network %s passphrase %s", ssid, passphrase);
g_free(iface->network.identifier);
- iface->network.identifier = g_strdup(name);
+ iface->network.identifier = g_strdup(ssid);
g_free(iface->network.passphrase);
iface->network.passphrase = passphrase;
@@ -395,6 +405,8 @@ void connman_iface_indicate_station(struct connman_iface *iface,
state_changed(iface);
}
}
+
+ free(ssid);
}
int connman_iface_get_ipv4(struct connman_iface *iface,