1*1c60b9acSAndroid Build Coastguard Worker# lws minimal http client captive portal detect
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard WorkerThis demonstrates how to perform captive portal detection integrated
4*1c60b9acSAndroid Build Coastguard Workerwith `lws_system` states.
5*1c60b9acSAndroid Build Coastguard Worker
6*1c60b9acSAndroid Build Coastguard WorkerAfter reaching the `lws_system` DHCP state, the application tries to
7*1c60b9acSAndroid Build Coastguard Workerconnect through to `http://connectivitycheck.android.com/generate_204`
8*1c60b9acSAndroid Build Coastguard Workerover http... if it succeeds, it will get a 204 response and set the
9*1c60b9acSAndroid Build Coastguard Workercaptive portal detection state to `LWS_CPD_INTERNET_OK` and perform
10*1c60b9acSAndroid Build Coastguard Workera GET from warmcat.com.
11*1c60b9acSAndroid Build Coastguard Worker
12*1c60b9acSAndroid Build Coastguard WorkerIf there is a problem detected, the captive portal detection state is
13*1c60b9acSAndroid Build Coastguard Workerset accordingly and the app will respond by exiting without trying the
14*1c60b9acSAndroid Build Coastguard Workerread from warmcat.com.
15*1c60b9acSAndroid Build Coastguard Worker
16*1c60b9acSAndroid Build Coastguard WorkerThe captive portal detection scheme is implemented in the user code
17*1c60b9acSAndroid Build Coastguard Workerand can be modified according to the strategy that's desired for
18*1c60b9acSAndroid Build Coastguard Workercaptive portal detection.
19*1c60b9acSAndroid Build Coastguard Worker
20*1c60b9acSAndroid Build Coastguard Worker## build
21*1c60b9acSAndroid Build Coastguard Worker
22*1c60b9acSAndroid Build Coastguard Worker```
23*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make
24*1c60b9acSAndroid Build Coastguard Worker```
25*1c60b9acSAndroid Build Coastguard Worker
26*1c60b9acSAndroid Build Coastguard Worker## usage
27*1c60b9acSAndroid Build Coastguard Worker
28*1c60b9acSAndroid Build Coastguard Worker```
29*1c60b9acSAndroid Build Coastguard Worker$ ./bin/lws-minimal-http-client-captive-portal
30*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:4519] U: LWS minimal http client captive portal detect
31*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:4519] N: lws_create_context: using ss proxy bind '(null)', port 0, ads '(null)'
32*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:5022] U: callback_cpd_http: established with resp 204
33*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:5023] U: app_system_state_nf: OPERATIONAL, cpd 1
34*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:5896] U: Connected to 46.105.127.147, http response: 200
35*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:5931] U: RECEIVE_CLIENT_HTTP_READ: read 4087
36*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:5931] U: RECEIVE_CLIENT_HTTP_READ: read 4096
37*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:6092] U: RECEIVE_CLIENT_HTTP_READ: read 4087
38*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:6092] U: RECEIVE_CLIENT_HTTP_READ: read 4096
39*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:6112] U: RECEIVE_CLIENT_HTTP_READ: read 4087
40*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:6113] U: RECEIVE_CLIENT_HTTP_READ: read 4096
41*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:6113] U: RECEIVE_CLIENT_HTTP_READ: read 2657
42*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:6113] U: LWS_CALLBACK_COMPLETED_CLIENT_HTTP
43*1c60b9acSAndroid Build Coastguard Worker[2020/03/11 13:07:07:6119] U: main: finished OK
44*1c60b9acSAndroid Build Coastguard Worker```
45*1c60b9acSAndroid Build Coastguard Worker
46