Captive Network websheet failing when proxy enabled

Hi there,


I'm seeing an assertion failure in the iPhone Captive Network WebSheet when a Wi-Fi network is set up with an automatic Proxy PAC URL.


The result is that the web sheet doesn't even make a request to the identified captive network redirect page (we can see this from the server side) and shows a blank screen to the user, followed eventually by an alert saying "Error Opening Page / Hotspot login could not open the page because the server stopped responding."


We also see no request to the Proxy PAC URL during this process.


I've enclosed the relevant logs below and also raised this as rdar://21356077 (and https://openradar.appspot.com/21356077 )

Anyone have any clues?

Thanks!

Adam


The assertion failure appears in the iPhone logs as follows (assertion failure on line #12)


Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: [CNInfoNetworkActive:1744] en0: SSID 'tc-te-24' not making interface primary (no cache entry)
Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: CNPluginHandler en0: Evaluating
Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: en0: Probing 'tc-te-24'
Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: [async_http_read_stream:387] kCFStreamEventErrorOccurred kCFErrorDomainCFNetwork/2: The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)
Jun 12 11:58:49 iPhone Preferences[271] <Warning>: -[APNetworksController isVisible]: _visible(0), _formSheetVisibile(0)
Jun 12 11:58:49 iPhone Preferences[271] <Warning>: -[APNetworksController isVisible]: _visible(1), _formSheetVisibile(0)
Jun 12 11:58:49 iPhone configd[32] <Notice>: network changed: v4(pdp_ip0:10.223.187.168) DNS* Proxy
Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: en0: Redirect detected on 'tc-te-24'
Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: CNPluginHandler en0: Authenticating (__BUILTIN__)
Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: CNPluginHandler en0: PresentingUI (__BUILTIN__)
Jun 12 11:58:49 iPhone configd[32] <Notice>: Captive: en0: Launching Websheet on SSID tc-te-24 with URL "http://www.airport.us/czK80lCdu07/9icMgUvr5jS.html"
Jun 12 11:58:49 iPhone WebSheet[426] <Error>: assertion failed: 12F70: libxpc.dylib + 71768 [B870B51D-AA85-3686-A7D9-ACD48C5FE153]: 0x7d
Jun 12 11:58:49 iPhone Unknown[426] <Error>:
Jun 12 11:58:51 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:58:56 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:01 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:06 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:10 iPhone kernel[0] <Notice>: 008539.181410 wlan0.A[1535] AppleBCMWLANNetManager::updateLinkQualityMetrics(): Report LQM to User Land 100, fAverageRSSI -66
Jun 12 11:59:11 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:16 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:21 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:26 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:26 iPhone locationd[61] <Notice>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0
Jun 12 11:59:31 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:36 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:41 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:46 iPhone CLTM[20] <Error>: CLTM: _subscription 0x0, _subscribedChannels 0x0
Jun 12 11:59:50 iPhone WebSheet[426] <Warning>: WebSheet: did fail loading with error: {
     NSErrorFailingURLKey = "http://www.airport.us/czK80lCdu07/9icMgUvr5jS.html";
     NSErrorFailingURLStringKey = "http://www.airport.us/czK80lCdu07/9icMgUvr5jS.html";
     NSLocalizedDescription = "The request timed out.";
     NSUnderlyingError = "Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"The request timed out.\" UserInfo=0x17407b440 {NSErrorFailingURLStringKey=http://www.airport.us/czK80lCdu07/9icMgUvr5jS.html, NSLocalizedDescription=The request timed out., NSErrorFailingURLKey=http://www.airport.us/czK80lCdu07/9icMgUvr5jS.html}";
  }



The web server logs during this process show the CaptiveNetworkSupport agent probing the captive portal and receiving a redirect (twice), but there is no request from the web sheet itself, nor any requests to the Proxy PAC URL:


10.5.160.204 - - [12/Jun/2015:10:58:04 +0000] "GET http://www.airport.us/czK80lCdu07/9icMgUvr5jS.html HTTP/1.1" 303 - "-" "CaptiveNetworkSupport-306.20.1 wispr"
10.10.1.5 - - [12/Jun/2015:10:58:04 +0000] "GET /service-platform/mac-splash/?tcurl=http%3A%2F%2Fwww.airport.us%2FczK80lCdu07%2F9icMgUvr5jS.html HTTP/1.0" 200 5596 "-" "CaptiveNetworkSupport-306.20.1 wispr"
10.5.160.204 - - [12/Jun/2015:10:58:14 +0000] "GET http://www.airport.us/czK80lCdu07/9icMgUvr5jS.html HTTP/1.1" 303 - "-" "CaptiveNetworkSupport-306.20.1 wispr"
10.10.1.5 - - [12/Jun/2015:10:58:14 +0000] "GET /service-platform/mac-splash/?tcurl=http%3A%2F%2Fwww.airport.us%2FczK80lCdu07%2F9icMgUvr5jS.html HTTP/1.0" 200 5596 "-" "CaptiveNetworkSupport-306.20.1 wispr"

I fail in opening Splash Page.

I have a raspberry-like linux machine with HostApd delivering captive portal wifi.

Did you get success ?


My machine proivide a free-password Wifi hotspot.

All request (DNS, IP) are redirected to the linux-rasp-like local website.

But no splash/popup page are displayed, nor opened.


How do I open the iOS Captive Portal Splash Screen when the device connects to my Wi-Fi hotspot?

BTW what are specs for such a page implementation ?

Thanks for help.

Captive Network websheet failing when proxy enabled
 
 
Q