Comment 40 for bug 1480877

Revision history for this message
Tony Espy (awe) wrote :

A bit more info...

After a deeper look at some DBus traces on a vanilla krillin OTA6 image, I noticed a few more things.

After a ScanDone signal gets sent by NM, you typically see 3-5 PropertiesChanged signals for new APs that include all of the properties. Then, you see a PropertiesChanged from Device.Wireless which includes an array of the current APs. Then you usually see a PropertiesChanged signal for every AP except current ( AP=0 ), with the property 'LastSeen'. These signals all typically have the same value for last-seen, although if the list is long, there might be variation of maybe +1-2 across all the signals.

What's unusual, is I'm then seeing what looks like a second set of PropertiesChanged signals for all of the current APs.

Digging deeper in the trace, it turns out wpa_supplicant actually generates two PropertiesChanged signals every time an object changes. It first uses the new ( more correct ) 'org.freedesktop.DBus.Properties' interface, then sends the signal *again* using the deprecated 'fi.w1.wpa_supplicant1.Interface'! I think this is what in turn triggers the second signal for each AP from NM. I haven't proven this 100% yet, but it certainly explains the behavior of NM.

I'll continue to test.

I also had a discussion with one of our location service engineers, and we think that it might be possible to get rid of the 'LastSeen' PropertiesChanged signals altogether and just use the Device.Wireless 'AccessPoints' property, which gets updated after every scan completes.