diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-03-26 21:47:24 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-03-26 21:47:24 +0100 |
commit | 15e9803aefdf8996a9b4bdb0388500adef9577ed (patch) | |
tree | a5b9b088d07daf2012bc0f80c5f378481b94bf93 /src | |
parent | 610964c498aa86bed1086abafabdd2496ebafbc9 (diff) | |
download | connman-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.c | 20 |
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, |