On Tue, 2022-03-08 at 08:35 +0200, Emmanuel Grumbach via networkmanager-list wrote: > I realized I am missing a piece before this. > I need to be able to get and handle nl80211 events, which means that > I > need a thread or event loop or something that listens to the nl80211 > channel and parses events. The event I need is the end of the > connection from the CSME side. This brings to the fundamental > question > of the threading model in NetworkManager. > Do we have a sort of event loop? Looks like the NetworkManager runs > on > an event loop and very few things run in a different thread, but I > couldn't really see any clear information about it.
Hi, we use a glib mainloop. Read https://tecnocode.co.uk/2014/03/27/what-is-gmaincontext/ There is only one thread (except, that GDBus spawns a worker thread internally and that we might do a blocking write to sysctl on a thread, but NM itself is for the most case single threadded). In this case, you would poll on the file descriptor. So use `nm_g_unix_fd_add_source()`. best, Thomas > > Thoughts? > > Thanks :) > > Emmanuel Grumbach > egrumb...@gmail.com > > On Mon, Mar 7, 2022 at 5:00 PM Emmanuel Grumbach > <egrumb...@gmail.com> wrote: > > > > Hi, > > > > Next steps about the CSME integration :) > > Now the flow I need is to do the following in case os_owner is > > false: > > List all the connections configured on wifi > > * If none match what we got from CSME - we do nothing and wait > > until CSME will remove the rfkill > > * If there is a match, we need pick that connection but > > connect > > to the same bssid as CSME was connected to > > Then we can ask for ownership > > > > I saw there is nm_setting_wireless_get_bssid which will tell us if > > the > > connection has a bssid (not sure I am correct here) and if there is > > a > > bssid, we'll connect to that same AP. Is that something I can use? > > > > Maybe I should create another connection with a specific bssid and > > "disable" all the others? not sure what's the right way to go here. > > Another thing we'll need is to limit the scan on the channel on > > which > > the AP we look for is working. We don't want to waste time to scan > > all > > the channels. The supplicant has a configuration for that. > > > > Any guidance will be appreciated :) > > > > I'll continue digging anyway. > > > > Thanks! > > > > Emmanuel Grumbach > > egrumb...@gmail.com > _______________________________________________ > networkmanager-list mailing list > networkmanager-list@gnome.org > https://mail.gnome.org/mailman/listinfo/networkmanager-list > _______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org https://mail.gnome.org/mailman/listinfo/networkmanager-list