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