On Tue, Jul 3, 2012 at 11:04 AM, Thomas Bächler <thomas@archlinux.org> wrote:
Am 02.07.2012 23:07, schrieb Henrik Hallberg:
Hi,
A couple of patches that speeds up connecting to wireless networks. Connecting to my home WPA DHCP, I went from ~12s to ~8s, the meat of which in patch 0004.
Henrik Hallberg (4): Include timestamp in DEBUG message Remove extra start_wpa/stop_wpa when not scanning Lower latency in timeout_wait Wait actively in {start,stop}_wpa
src/8021x | 17 +++++++++++------ src/connections/wireless | 17 +++++++++-------- src/globals | 5 +++-- 3 files changed, 23 insertions(+), 16 deletions(-)
I found that whole method confusing all the time. You first scan for the network's existence, then connect to it or fail.
Instead, why not remodel this to use the same logic as net-auto-wireless? Create the right wpa_supplicant configuration, start wpa_s and let wpa_actiond bring up the interface? This seems much better than hardcoded timeouts and wait loops inside shell scripts. And you do not have to write much new code, everything's there.
In that case, we should depend on and maintain wpa_actiond, which is not a bash script. I think it is possible to rewrite connections/wireless in a more netcfg way, that is: using plain scripting. Ideally, I see netcfg as just that: a collection of scripts to automate networking routines based on simple profile definitions. If you need speed, power, interfaces or what not, you should consider one of the many alternatives (ConnMan, Wicd, NetworkManager, ...). If you need simplicity in an "I know what I'm doing" fashion ("The Arch Way"?), go with netcfg. The current code might not be all that bad, just cluttered and with the wrong decisions or logic here and there. - Jouke