-
Notifications
You must be signed in to change notification settings - Fork 2
Network scenarios
Following base-image 1.3.1 release, here are the expected behaviors based on the identified network scenarios.
Important
This describes the default behavior of a Kiwix Hotspot. One can tweak offspot.yaml resulting in different behaviors.
| Scenario | Description | Behavior Summary |
|---|---|---|
CONNECTED-ON |
Ethernet is plugged-in and there is Internet connectivity | Captive portal, Hotspot and transparent Internet access for clients. |
CONNECTED-OFF |
Ethernet is plugged-in and there is no Internet connectivity | Captive portal and Hotspot. External websites are captured. |
NOT-CONNECTED |
Ethernet is not plugged-in | Captive portal and Hotspot. External websites are captured. |
Captured means that instead of the external website being displayed, the confirmation page from the captive portal is shown, inviting the user to go back to the Hotspot's main page.

If the website's URL is an HTTPS one, the browser will display a warning prior to showing the capture page because the Hotspot's self-signed certificate is impersonating the website's certificate.
In case the browser has prior knowledge that the target website uses HSTS, it might (Firefox on Android does, Safari on iOS doesn't) prevent the capture altogether.
Below are the tests matrix.
Note
We only test from the starting scenario to the other scenario. So S1->S2 and S1->S3 but not the S1->S2->S3 for instance. That's a limitation that is considered acceptable at this stage.
| Test | Result |
|---|---|
| Android CP | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | OK |
| Android https://google.com/ | OK |
| iOS CP | OK |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | OK |
| iOS https://google.com/ | OK |
| Test | Result |
|---|---|
| CP new device | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | captured |
| Android https://google.com/ | error (captured w/cert-exp after browser restart) |
| Android https://yahoo.com/ | error (HSTS) |
| Android https://yeleman.com/ | captured (cert-exception) |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | captured (link) |
| iOS https://google.com/ | error (captured w/cert-exp after browser cache removal) |
| iOS https://yahoo.com/ | captured (cert-exception) |
| iOS https://yeleman.com/ | captured (cert-exception) |
| Test | Result |
|---|---|
| CP new device | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | captured (refresh) |
| Android https://google.com/ | error (captured w/cert-exp after browser restart) |
| Android https://yahoo.com/ | error (HSTS) |
| Android https://yeleman.com/ | captured (cert-exception) |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | captured (refresh) |
| iOS https://google.com/ | error (captured w/cert-exp after browser cache removal) |
| iOS https://yahoo.com/ | captured (cert-exception) |
| iOS https://yeleman.com/ | captured (cert-exception) |
| Test | Result |
|---|---|
| Android CP | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | captured |
| Android https://google.com/ | captured (cert-exception) |
| iOS CP | OK |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | captured |
| iOS https://google.com/ | captured (cert-exception) |
| Test | Result |
|---|---|
| CP new device | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | captured |
| Android https://google.com/ | captured |
| Android https://yahoo.com/ | error (HSTS) |
| Android https://yeleman.com/ | captured (cert-exception) |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | captured |
| iOS https://google.com/ | captured |
| iOS https://yahoo.com/ | captured (cert-exception) |
| iOS https://yeleman.com/ | captured (cert-exception) |
| Test | Result |
|---|---|
| CP new device | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | OK |
| Android https://google.com/ | OK |
| Android https://yahoo.com/ | OK |
| Android https://yeleman.com/ | OK |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | OK |
| iOS https://google.com/ | OK |
| iOS https://yahoo.com/ | OK |
| iOS https://yeleman.com/ | OK |
| Test | Result |
|---|---|
| Android CP | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | captured |
| Android https://google.com/ | captured (cert-exception) |
| iOS CP | OK |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | captured |
| iOS https://google.com/ | captured (cert-exception) |
| Test | Result |
|---|---|
| CP new device | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | captured |
| Android https://google.com/ | captured |
| Android https://yahoo.com/ | captured (cert-exception) |
| Android https://yeleman.com/ | captured (cert-exception) |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | captured |
| iOS https://google.com/ | captured |
| iOS https://yahoo.com/ | captured (cert-exception) |
| iOS https://yeleman.com/ | captured (cert-exception) |
| Test | Result |
|---|---|
| CP new device | OK |
| Android http://kiwix.hotspot/ | OK |
| Android http://httpforever.com/ | OK (refresh) |
| Android https://google.com/ | OK |
| Android https://yahoo.com/ | OK |
| Android https://yeleman.com/ | OK |
| iOS http://kiwix.hotspot/ | OK |
| iOS http://httpforever.com/ | OK |
| iOS https://google.com/ | OK |
| iOS https://yahoo.com/ | OK |
| iOS https://yeleman.com/ | OK |