How to handle multiple SSIDs with the same BSS

Marcel Holtmann marcel at holtmann.org
Sun Dec 27 21:43:48 EST 2009


Hi Jouni,

> > > Actually, now that I added a preliminary implementation of BSS table
> > > management into wpa_supplicant, I do have a unique identifier (unsigned
> > > int) for each BSS. In other words, there should be no need to
> > > concatenate BSSID and SSID in hex here and we could just use that new
> > > identifier and make D-Bus code use the BSS table as the source of the
> > > information.
> > 
> > sounds great. This should make things work smoothly soon.
> 
> I converted the new D-Bus API to use the BSS table instead of scan
> results. This will hopefully resolve the multi-SSID issue you mentioned
> earlier. I did only minimal testing with the wpas-dbus-new.py script and
> d-feet, so please let me know if I missed something in the changes.

be careful with the D-Bus object path. If you give invalid characters
then it will crash.

#0  0x000000391e8326b5 in raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x000000391e833e95 in abort () at abort.c:92
#2  0x0000003924c2a795 in _dbus_abort () at dbus-sysdeps.c:88
#3  0x0000003924c26665 in _dbus_warn_check_failed (
    format=0x3924c33740 "arguments to %s() were incorrect, assertion \"%s\" failed in file %s line %d.\nThis is normally a bug in some application usi
ng the D-Bus library.\n")
    at dbus-internals.c:283
#4  0x0000003924c0c66c in dbus_connection_unregister_object_path (connection=0xa64ba0, 
    path=0xa64eb0 "(null)/BSSs/76") at dbus-connection.c:5607
#5  0x000000000042d9ac in wpa_dbus_unregister_object_per_iface (
    ctrl_iface=<value optimized out>, path=<value optimized out>)
    at dbus/dbus_new_helpers.c:1497
#6  0x000000000042f760 in wpas_dbus_unregister_bss (wpa_s=0xa67880, 
    bssid=<value optimized out>, id=<value optimized out>) at dbus/dbus_new.c:1272
#7  0x000000000040a310 in wpas_notify_bss_removed (wpa_s=0xa67880, bssid=0xa83940 "", id=76)
    at notify.c:258
#8  0x000000000040aa32 in wpa_bss_remove (wpa_s=0xa67880, bss=0xa83910) at bss.c:63
#9  0x000000000040aa7b in wpa_bss_deinit (wpa_s=0xa67880) at bss.c:264
#10 0x00000000004387ed in wpa_supplicant_cleanup (wpa_s=<value optimized out>)
    at wpa_supplicant.c:402
#11 wpa_supplicant_deinit_iface (wpa_s=<value optimized out>) at wpa_supplicant.c:2117
#12 0x00000000004388b5 in wpa_supplicant_remove_iface (global=<value optimized out>, 
    wpa_s=0xa67880) at wpa_supplicant.c:2220
#13 0x0000000000438910 in wpa_supplicant_deinit (global=0xa637c0) at wpa_supplicant.c:2393
#14 0x000000000043dbac in main (argc=<value optimized out>, argv=<value optimized out>)
    at main.c:276

This happens when shutting down wpa_supplicant. See the (null) in the
object path on unregister.

Regards

Marcel




More information about the HostAP mailing list