Skip to content

Latest commit

 

History

History
 
 

ssproxy-custom-transport-uart

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

lws minimal ssproxy UART transport

Operates as a secure streams proxy, with a custom transport for a UART

See ./minimal-examples/embedded/pico/pico-sspc-binance for an RPi pico based device that wants to use the proxy over UART.

build

 $ cmake . && make

usage

Commandline option Meaning
-d Debug verbosity in decimal, eg, -d15
-f Force connecting to the wrong endpoint to check backoff retry flow
-p If not given, proxy listens on a Unix Domain Socket, if given listen on specified tcp port
-i Optionally specify the UDS path (no -p) or network interface to bind to (if -p also given)
[2021/10/04 11:05:55:8347] U: LWS secure streams Proxy [-d<verb>]
[2021/10/04 11:05:55:8348] N: LWS: 4.2.99-v4.2.0-215-g0e30e05c8a, NET CLI SRV H1 H2 WS MQTT SS-JSON-POL SSPROX MbedTLS ConMon IPv6-absent
[2021/10/04 11:05:55:8350] N:  ++ [1316112|wsi|0|pipe] (1)
[2021/10/04 11:05:55:8350] N:  ++ [1316112|vh|0|netlink] (1)
[2021/10/04 11:05:55:8351] N:  ++ [1316112|vh|1|default||-1] (2)
[2021/10/04 11:05:55:8354] N:  ++ [1316112|vh|2|le_via_isrg||-1] (3)
[2021/10/04 11:05:55:8355] N:  ++ [1316112|vh|3|_ss_default||-1] (4)
[2021/10/04 11:05:55:8355] U: cb_proxy_serial_transport: PROTOCOL_INIT default
[2021/10/04 11:05:55:8356] N:  ++ [1316112|wsiSScli|0|captive_portal_detect] (1)
[2021/10/04 11:05:55:8356] N: [1316112|wsiSScli|0|captive_portal_detect]: lws_ss_check_next_state_ss: (unset) -> LWSSSCS_CREATING
[2021/10/04 11:05:55:8356] N: [1316112|wsiSScli|0|captive_portal_detect]: lws_ss_check_next_state_ss: LWSSSCS_CREATING -> LWSSSCS_POLL
[2021/10/04 11:05:55:8356] N: [1316112|wsiSScli|0|captive_portal_detect]: lws_ss_check_next_state_ss: LWSSSCS_POLL -> LWSSSCS_CONNECTING
[2021/10/04 11:05:55:8356] N:  ++ [1316112|wsicli|0|GET/h1/connectivitycheck.android.com/([1316112|wsiSScli|0|captive_portal_det] (1)
[2021/10/04 11:05:55:8452] N: lws_ss_sys_cpd: CPD already ongoing
[2021/10/04 11:05:55:9454] N:  ++ [1316112|wsiSScli|1|fetch_policy] (2)
[2021/10/04 11:05:55:9454] N: [1316112|wsiSScli|1|fetch_policy]: lws_ss_check_next_state_ss: (unset) -> LWSSSCS_CREATING
[2021/10/04 11:05:55:9455] N: [1316112|wsiSScli|1|fetch_policy]: lws_ss_check_next_state_ss: LWSSSCS_CREATING -> LWSSSCS_POLL
[2021/10/04 11:05:55:9455] N: [1316112|wsiSScli|1|fetch_policy]: lws_ss_check_next_state_ss: LWSSSCS_POLL -> LWSSSCS_CONNECTING
[2021/10/04 11:05:55:9455] N:  ++ [1316112|wsicli|1|GET/h1/warmcat.com/([1316112|wsiSScli|1|fetch_policy])] (2)
[2021/10/04 11:05:56:0537] N: [1316112|wsiSScli|0|captive_portal_detect]: lws_ss_check_next_state_ss: LWSSSCS_CONNECTING -> LWSSSCS_CONNECTED
[2021/10/04 11:05:56:0538] N: [1316112|wsiSScli|0|captive_portal_detect]: lws_ss_check_next_state_ss: LWSSSCS_CONNECTED -> LWSSSCS_QOS_ACK_REMOTE
[2021/10/04 11:05:56:0538] N: lws_system_cpd_set: setting CPD result OK
[2021/10/04 11:05:56:0538] N: [1316112|wsiSScli|0|captive_portal_detect]: lws_ss_check_next_state_ss: LWSSSCS_QOS_ACK_REMOTE -> LWSSSCS_DISCONNECTED
[2021/10/04 11:05:56:0538] N: [1316112|wsiSScli|0|captive_portal_detect]: lws_ss_check_next_state_ss: LWSSSCS_DISCONNECTED -> LWSSSCS_DESTROYING
[2021/10/04 11:05:56:0538] N:  -- [1316112|wsiSScli|0|captive_portal_detect] (1) 218.222ms
[2021/10/04 11:05:56:0539] N:  -- [1316112|wsicli|0|GET/h1/connectivitycheck.android.com/([1316112|wsiSScli|0|captive_portal_det] (1) 218.250ms
[2021/10/04 11:05:56:1210] N: [1316112|wsiSScli|1|fetch_policy]: lws_ss_check_next_state_ss: LWSSSCS_CONNECTING -> LWSSSCS_CONNECTED
[2021/10/04 11:05:56:1546] N: [1316112|wsiSScli|1|fetch_policy]: lws_ss_check_next_state_ss: LWSSSCS_CONNECTED -> LWSSSCS_QOS_ACK_REMOTE
[2021/10/04 11:05:56:1546] W: lws_ss_destroy: conn->ss->wsi 0 0
[2021/10/04 11:05:56:1547] N:  -- [1316112|wsicli|1|GET/h1/warmcat.com/([1316112|wsiSScli|1|fetch_policy])] (0) 209.245ms
[2021/10/04 11:05:56:1548] N: [1316112|wsiSScli|1|fetch_policy]: lws_ss_check_next_state_ss: LWSSSCS_QOS_ACK_REMOTE -> LWSSSCS_DISCONNECTED
[2021/10/04 11:05:56:1548] N: [1316112|wsiSScli|1|fetch_policy]: lws_ss_check_next_state_ss: LWSSSCS_DISCONNECTED -> LWSSSCS_DESTROYING
[2021/10/04 11:05:56:1548] N:  -- [1316112|wsiSScli|1|fetch_policy] (0) 209.356ms
[2021/10/04 11:05:56:1548] N:  -- [1316112|vh|2|le_via_isrg||-1] (3) 319.414ms
[2021/10/04 11:05:56:1548] N:  ++ [1316112|vh|4|s3-root-cert||-1] (4)
[2021/10/04 11:05:56:1548] N:  ++ [1316112|vh|5|digicert||-1] (5)
[2021/10/04 11:05:56:1549] N:  ++ [1316112|vh|6|le_via_isrg||-1] (6)
[2021/10/04 11:05:56:1549] N:  ++ [1316112|vh|7|arca1||-1] (7)
[2021/10/04 11:05:56:1549] N:  ++ [1316112|vh|8|mqtt_amz_iot||-1] (8)
[2021/10/04 11:05:56:1549] N:  ++ [1316112|vh|9|avs_via_starfield||-1] (9)
[2021/10/04 11:05:56:1550] N:  ++ [1316112|vh|a|api_amazon_com||-1] (10)
[2021/10/04 11:05:56:1550] U: lws_transport_mux_init_proxy_server: priv_inward (nil)
[2021/10/04 11:05:56:2099] N: open_serial_port: serial port opened 6
[2021/10/04 11:05:56:2099] U: txp_serial_init_proxy_server: txp_priv_inward 0x1c70080
[2021/10/04 11:05:56:2099] N:  ++ [1316112|wsisrv|0|adopted] (1)
[2021/10/04 11:05:56:2099] N: LWS_CALLBACK_RAW_ADOPT_FILE
[2021/10/04 11:05:56:2099] U: txp_serial_init_proxy_server: OK (txp_priv_in 0x1c70080)
[2021/10/04 11:05:56:2099] U: lws_transport_mux_init_proxy_server: OK
[2021/10/04 11:05:56:2099] N: sul_ping_cb: issuing ping
[2021/10/04 11:05:56:2241] N: 
[2021/10/04 11:05:56:2242] N: 0000: F9 F6 00 00 00 00 1F 2F 89 9C F7 00 00 01 27 29    ......./......')
[2021/10/04 11:05:56:2242] N: 0010: 4E A2 7B 00 00 00 00 1F 2F 8A 71                   N.{...../.q     
[2021/10/04 11:05:56:2242] N: 
[2021/10/04 11:05:56:2242] U: lws_transport_mux_rx_parse: got PING
[2021/10/04 11:05:56:2242] U: lws_transport_mux_rx_parse: got PONG
[2021/10/04 11:05:56:2242] U: lws_transport_set_link: ******* transport mux link is UP
[2021/10/04 11:05:56:2400] N: 
[2021/10/04 11:05:56:2400] N: 0000: F8 00 00 00 00 1F 2F C1 12                         ....../..       
[2021/10/04 11:05:56:2400] N: 
[2021/10/04 11:05:56:2400] U: lws_transport_mux_rx_parse: got PONGACK: ustime 523223314
[2021/10/04 11:05:56:7500] N: 
[2021/10/04 11:05:56:7500] N: 0000: F0 FF F0 FE                                        ....            
[2021/10/04 11:05:56:7501] N: 
[2021/10/04 11:05:56:7501] N: ltm_ch_opens
[2021/10/04 11:05:56:7501] N: ltm_ch_opens
[2021/10/04 11:05:56:7659] N: 
[2021/10/04 11:05:56:7659] N: 0000: F5 FF 00 13 AA 00 10 01 FF FF FF FF 1D 64 29 1F    .............d).
[2021/10/04 11:05:56:7659] N: 0010: 62 69 6E 61 6E 63 65 F5 FE 00 17 AA 00 14 01 FF    binance.........
[2021/10/04 11:05:56:7659] N: 0020: FF FF FF 1D C8 CA BB 6D 69 6E 74 65 73 74 2D 6C    .......mintest-l
[2021/10/04 11:05:56:7659] N: 0030: 77 73                                              ws              
[2021/10/04 11:05:56:7659] N: 
[2021/10/04 11:05:56:7659] N: ltm_ch_payload
[2021/10/04 11:05:56:7659] N: lws_transport_path_proxy_dump: ltm_ch_payload: MUX: 0x1c70080, IN: ops txp_inside_proxy, priv (nil), ONW: ops txp_inside_proxy, priv (nil)
[2021/10/04 11:05:56:7659] N:  ++ [1316112|wsiSScli|2|binance|v1|4294967295] (1)
[2021/10/04 11:05:56:7659] N: [1316112|wsiSScli|2|binance|v1|4294967295]: lws_ss_check_next_state_ss: (unset) -> LWSSSCS_CREATING
[2021/10/04 11:05:56:7659] N: lws_sss_proxy_onward_state: [1316112|wsiSScli|2|binance|v1|4294967295]: initializing dsh max len 262144
[2021/10/04 11:05:56:7659] N: [1316112|wsiSScli|2|binance|v1|4294967295]: lws_ss_check_next_state_ss: LWSSSCS_CREATING -> LWSSSCS_CONNECTING
[2021/10/04 11:05:56:7659] N:  ++ [1316112|wsicli|2|WS/h1/fstream.binance.com/([1316112|wsiSScli|2|binance|v1|4294967295])] (1)
[2021/10/04 11:05:56:7675] N: ltm_ch_payload
[2021/10/04 11:05:56:7675] N: lws_transport_path_proxy_dump: ltm_ch_payload: MUX: 0x1c70080, IN: ops txp_inside_proxy, priv (nil), ONW: ops txp_inside_proxy, priv (nil)
[2021/10/04 11:05:56:7675] N:  ++ [1316112|wsiSScli|3|mintest-lws|v1|4294967295] (2)
[2021/10/04 11:05:56:7675] N: [1316112|wsiSScli|3|mintest-lws|v1|4294967295]: lws_ss_check_next_state_ss: (unset) -> LWSSSCS_CREATING
[2021/10/04 11:05:56:7675] N: lws_sss_proxy_onward_state: [1316112|wsiSScli|3|mintest-lws|v1|4294967295]: initializing dsh max len 32768
[2021/10/04 11:05:56:7818] N: 
[2021/10/04 11:05:56:7818] N: 0000: F5 FF 00 03 AB 00 00                               .......         
[2021/10/04 11:05:56:7818] N: 
[2021/10/04 11:05:56:7818] N: ltm_ch_payload
[2021/10/04 11:05:56:7818] N: lws_transport_path_proxy_dump: ltm_ch_payload: MUX: 0x1c70080, IN: ops txp_inside_proxy, priv (nil), ONW: ops txp_inside_proxy, priv (nil)
[2021/10/04 11:05:56:7818] N: lws_ss_proxy_deserialize_parse: ONWARD_CONNECT
[2021/10/04 11:05:57:8864] N: [1316112|wsiSScli|2|binance|v1|4294967295]: lws_ss_check_next_state_ss: LWSSSCS_CONNECTING -> LWSSSCS_CONNECTED
[2021/10/04 11:05:57:8980] N: 
[2021/10/04 11:05:57:8981] N: 0000: F5 FE 00 03 AB 00 00                               .......         
[2021/10/04 11:05:57:8981] N: 
[2021/10/04 11:05:57:8981] N: ltm_ch_payload
[2021/10/04 11:05:57:8981] N: lws_transport_path_proxy_dump: ltm_ch_payload: MUX: 0x1c70080, IN: ops txp_inside_proxy, priv (nil), ONW: ops txp_inside_proxy, priv (nil)
[2021/10/04 11:05:57:8981] N: lws_ss_proxy_deserialize_parse: ONWARD_CONNECT
[2021/10/04 11:05:57:8981] N: [1316112|wsiSScli|3|mintest-lws|v1|4294967295]: lws_ss_check_next_state_ss: LWSSSCS_CREATING -> LWSSSCS_CONNECTING
[2021/10/04 11:05:57:8981] N:  ++ [1316112|wsiSSPonw|0|GET/h1/libwebsockets.org/([1316112|wsiSScli|3|mintest-lws|v1|4294967295])] (1)
[2021/10/04 11:05:57:9173] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 696
[2021/10/04 11:05:57:9309] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 896
[2021/10/04 11:05:57:9513] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 512
[2021/10/04 11:05:57:9663] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 264
[2021/10/04 11:05:57:9860] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 472
[2021/10/04 11:05:58:0126] N: [1316112|wsiSScli|3|mintest-lws|v1|4294967295]: lws_ss_check_next_state_ss: LWSSSCS_CONNECTING -> LWSSSCS_CONNECTED
[2021/10/04 11:05:58:0136] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 1744
[2021/10/04 11:05:58:0136] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 3344
[2021/10/04 11:05:58:0136] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 3720
[2021/10/04 11:05:58:0136] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 5392
[2021/10/04 11:05:58:0136] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 6752
[2021/10/04 11:05:58:0136] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 6840
[2021/10/04 11:05:58:0137] N: [1316112|wsiSScli|3|mintest-lws|v1|4294967295]: lws_ss_check_next_state_ss: LWSSSCS_CONNECTED -> LWSSSCS_QOS_ACK_REMOTE
[2021/10/04 11:05:58:0137] N: [1316112|wsiSScli|3|mintest-lws|v1|4294967295]: lws_ss_check_next_state_ss: LWSSSCS_QOS_ACK_REMOTE -> LWSSSCS_DISCONNECTED
[2021/10/04 11:05:58:0138] N:  -- [1316112|wsiSSPonw|0|GET/h1/libwebsockets.org/([1316112|wsiSScli|3|mintest-lws|v1|4294967295])] (0) 115.696ms
[2021/10/04 11:05:58:0197] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 464
[2021/10/04 11:05:58:0555] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 464
[2021/10/04 11:05:58:0936] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 848
[2021/10/04 11:05:58:1322] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 552
[2021/10/04 11:05:58:1647] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 1016
[2021/10/04 11:05:58:2000] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 448
[2021/10/04 11:05:58:2313] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 888
[2021/10/04 11:05:58:2514] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 264
[2021/10/04 11:05:58:2562] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 464
[2021/10/04 11:05:58:2639] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 952
[2021/10/04 11:05:58:2972] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 2072
[2021/10/04 11:05:58:3304] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 1776
[2021/10/04 11:05:58:3321] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 1976
[2021/10/04 11:05:58:3364] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 1048
[2021/10/04 11:05:58:3464] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 1248
[2021/10/04 11:05:58:3515] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 264
[2021/10/04 11:05:58:3629] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 1088
[2021/10/04 11:05:58:3706] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 272
[2021/10/04 11:05:58:3714] N: lws_ss_serialize_rx_payload: dsh c2p 0, p2c 264
...