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 man lynx):

/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.]

You must log in to answer this question.

Browse other questions tagged .