Hi James,

Thanks for the clarification.  It sounds like there is no way to pass WFA
WPS certification with the current connman code base, since this behavior
makes it impossible to connect to an open network via WPS.  Honestly, it
doesn't make a lot of sense to use WPS on an open network if you can
display a list of networks for the user to choose from.  It makes a lot of
sense for a headless unit, where the only way to connect is by WPS push
button.

Indeed, but that's a certification: it's not meant to make sense :)

Do you have recommendations for how to modify connman to support a scenario
where the button can be pushed before  selecting a network to connect to?
And a level of effort required?

There would be 2 ways:

1) if you have a physical wps pbc button on your device, this can be tight to wpa_supplicant (how? I don't know. Could be an event directly handled form the wifi chip, or a gpio event?). Anyway, the remaining work would be to make connman following wpa_supplicant's decision on the following connection once WPS ran successfully. Afaik, wpa_supplicant's DBus API should tell that wps is running. Once it connects,
I believe it also tells about it.
So you would need to verify first such behavior and see if ConnMan follows (run
connman lime: CONNMAN_SUPPLICANT_DEBUG=1 connmand -nd for the proper logs)
If it just works, then fine. If not, it would probably require some work on plugins/wifi.c
probably not much. A 1 man week of work at most?

2) You add an function to ConnMan's DBus API to run such WPS PBC. So this would create a pure software button. However, since it again does not get along with the usual connecton procedure you would have a bit more work than 1) here as you would need to call wpa_supplicant's wps process to start (so you probably need to make the right interface function in gsupplicant's part) and then again to handle the results properly as in 1). However, form design point of view, you'll have a hard time to make it clean, since ConnMan's DBus API has its logic: I guess the "easiest" way is to add such feature through
technology.c, on wifi only.

In any case, 1) is by far the best option here.

Tomasz
_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to