I'm working on my wifi-wand command line utility that manages wifi on the Mac (https://github.com/keithrbennett/wifiwand), and am trying to better understand how captive portals are managed in Mac OS. I want to implement a test for captive portal success that will fail quickly.
I read at x that one way to test that the portal access has succeeded is to test http://www.apple.com/library/test/success.html for the string "Success":
/usr/local/bin/lynx --dump http://www.apple.com/library/test/success.html
The problem is when I am connected to a wifi network with a portal, but have not yet gotten through the portal,
lynx seems to ignore my timeout settings (as documented in
/usr/local/bin/lynx --connect_timeout=3 --read_timeout=3 --dump http://www.apple.com/library/test/success.html
I believe it's not just
lynx; in my Ruby code when I set an HTTP timeout (sending a GET to different URL's), it seems to be ignored there too.
What's going on and how can I fix it?
[Edit #1: I am aware that the current recommended URL to use for this test is http://captive.apple.com/hotspot-detect.html.]
[Edit #2: The timeout period is 60 seconds (the system default, I presume). I verified that the error raised by Ruby is a timeout error.]