Skip to content

Network scenarios

rgaudin edited this page Mar 26, 2025 · 1 revision

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

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.

Kiwix Hotspot

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.

Starting CONNECTED-ON

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

CONNECTED-ON ➡️ NOT-CONNECTED

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)

CONNECTED-ON ➡️ CONNECTED-OFF

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)

Starting CONNECTED-OFF

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)

CONNECTED-OFF ➡️ NOT-CONNECTED

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)

CONNECTED-OFF ➡️ CONNECTED-ON

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

Starting NOT-CONNECTED

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)

NOT-CONNECTED ➡️ CONNECTED-OFF

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)

NOT-CONNECTED ➡️ CONNECTED-ON

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

Clone this wiki locally