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