1*1c60b9acSAndroid Build Coastguard Worker# lws minimal secure streams server
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard WorkerThe application sets up a tls + ws server on https://localhost:7681
4*1c60b9acSAndroid Build Coastguard Worker
5*1c60b9acSAndroid Build Coastguard WorkerIt does it using Secure Streams... information about how the server should
6*1c60b9acSAndroid Build Coastguard Workeroperate is held in JSON policy in main.c
7*1c60b9acSAndroid Build Coastguard Worker
8*1c60b9acSAndroid Build Coastguard WorkerVisiting the server in a modern browser will fetch some html + JS, the JS will
9*1c60b9acSAndroid Build Coastguard Workercreate a ws link back to the server and the server will spam an incrementing
10*1c60b9acSAndroid Build Coastguard Workernumber that is displayed in the browser every 100ms.
11*1c60b9acSAndroid Build Coastguard Worker
12*1c60b9acSAndroid Build Coastguard WorkerThe app also has a SS client that works, but it's disabled by default since
13*1c60b9acSAndroid Build Coastguard Workerwe're interested in server.
14*1c60b9acSAndroid Build Coastguard Worker
15*1c60b9acSAndroid Build Coastguard Worker## build
16*1c60b9acSAndroid Build Coastguard Worker
17*1c60b9acSAndroid Build Coastguard Worker```
18*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make
19*1c60b9acSAndroid Build Coastguard Worker```
20*1c60b9acSAndroid Build Coastguard Worker
21*1c60b9acSAndroid Build Coastguard Worker## usage
22*1c60b9acSAndroid Build Coastguard Worker
23*1c60b9acSAndroid Build Coastguard WorkerCommandline option|Meaning
24*1c60b9acSAndroid Build Coastguard Worker---|---
25*1c60b9acSAndroid Build Coastguard Worker-d <loglevel>|Debug verbosity in decimal, eg, -d15
26*1c60b9acSAndroid Build Coastguard Worker
27*1c60b9acSAndroid Build Coastguard Worker```
28*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:04:8994] U: LWS Secure Streams Server
29*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:04:9440] N: LWS: 4.0.99-v4.0.0-245-ge6eb4417a, loglevel 1031
30*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:04:9444] N: NET CLI SRV H1 H2 WS MQTT SS-JSON-POL SSPROX ASYNC_DNS IPv6-absent
31*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:1685] N: lws_adopt_descriptor_vhost2: wsi 0x5317d30, vhost system ss_handle (nil)
32*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:1753] N: lws_adopt_descriptor_vhost2: wsi 0x53182c0, vhost system ss_handle (nil)
33*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:2129] N: lws_ss_policy_parser_cb: server 'self_localhost' keep 52 0x5318cc0
34*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:2134] N: lws_ss_policy_parser_cb: server 'self_localhost_key' keep 53 0x5318cf8
35*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:2192] N: lws_ss_policy_ref_trust_store: le_via_isrg trust store initial 'isrg_root_x1'
36*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:7804] N: smd_cb: creating server stream
37*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:7851] N:  Vhost 'myserver' using TLS mode
38*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:05:8660] N:  SSL ECDH curve 'prime256v1'
39*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:06:1035] N:    vhost myserver: cert expiry: 729599d
40*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:06:1039] N: lws_ss_create: created server myserver
41*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:11:8650] N: lws_adopt_descriptor_vhost2: wsi 0x5b046e0, vhost myserver ss_handle 0x56e2be0
42*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:11:8672] U: myss_srv_state: 0x5b52f60 LWSSSCS_CREATING, ord 0x0
43*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:11:8693] U: myss_srv_state: 0x5b52f60 LWSSSCS_CONNECTING, ord 0x0
44*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:11:8696] U: myss_srv_state: 0x5b52f60 LWSSSCS_CONNECTED, ord 0x0
45*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:11:9743] U: myss_srv_state: 0x5ba2bd0 LWSSSCS_CREATING, ord 0x0
46*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:11:9747] U: myss_srv_state: 0x5ba2bd0 LWSSSCS_CONNECTING, ord 0x0
47*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:11:9747] U: myss_srv_state: 0x5ba2bd0 LWSSSCS_CONNECTED, ord 0x0
48*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0192] U: myss_srv_state: 0x5bad0a0 LWSSSCS_CREATING, ord 0x0
49*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0193] U: myss_srv_state: 0x5bad0a0 LWSSSCS_CONNECTING, ord 0x0
50*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0194] U: myss_srv_state: 0x5bad0a0 LWSSSCS_CONNECTED, ord 0x0
51*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0306] N: secstream_h1: LWS_CALLBACK_HTTP
52*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0329] U: myss_srv_state: 0x5bad0a0 LWSSSCS_SERVER_TXN, ord 0x0
53*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0481] N: lws_h2_ws_handshake: Server SS 0x5ba2bd0 .wsi 0x5ba27b0 switching to ws protocol
54*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0484] U: myss_srv_state: 0x5ba2bd0 LWSSSCS_SERVER_UPGRADE, ord 0x0
55*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:0541] U: myss_srv_state: 0x5ba2bd0 LWSSSCS_CONNECTED, ord 0x0
56*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:1222] U: myss_srv_state: 0x5bd1100 LWSSSCS_CREATING, ord 0x0
57*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:1222] U: myss_srv_state: 0x5bd1100 LWSSSCS_CONNECTING, ord 0x0
58*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:1223] U: myss_srv_state: 0x5bd1100 LWSSSCS_CONNECTED, ord 0x0
59*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:1242] N: lws_h2_ws_handshake: Server SS 0x5bd1100 .wsi 0x5bd0ce0 switching to ws protocol
60*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:1243] U: myss_srv_state: 0x5bd1100 LWSSSCS_SERVER_UPGRADE, ord 0x0
61*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:12:1246] U: myss_srv_state: 0x5bd1100 LWSSSCS_CONNECTED, ord 0x0
62*1c60b9acSAndroid Build Coastguard Worker^C[2020/07/27 10:51:15:2809] U: myss_srv_state: 0x5bad0a0 LWSSSCS_DISCONNECTED, ord 0x0
63*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:2838] U: myss_srv_state: 0x5bad0a0 LWSSSCS_DESTROYING, ord 0x0
64*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:2938] U: myss_srv_state: 0x5ba2bd0 LWSSSCS_DISCONNECTED, ord 0x0
65*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:2946] U: myss_srv_state: 0x5ba2bd0 LWSSSCS_DESTROYING, ord 0x0
66*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:2952] U: myss_srv_state: 0x5bd1100 LWSSSCS_DISCONNECTED, ord 0x0
67*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:2953] U: myss_srv_state: 0x5bd1100 LWSSSCS_DESTROYING, ord 0x0
68*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:2960] U: myss_srv_state: 0x5b52f60 LWSSSCS_DISCONNECTED, ord 0x0
69*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:2961] U: myss_srv_state: 0x5b52f60 LWSSSCS_DESTROYING, ord 0x0
70*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:3042] U: myss_srv_state: 0x56e2be0 LWSSSCS_DESTROYING, ord 0x0
71*1c60b9acSAndroid Build Coastguard Worker[2020/07/27 10:51:15:3378] U: Completed: OK
72*1c60b9acSAndroid Build Coastguard Worker```
73