libwebsockets
Lightweight C library for HTML5 websockets
lws-secure-streams-serialization.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lws_txp_path_client
 
struct  lws_txp_path_proxy
 
struct  lws_transport_client_ops
 
struct  lws_transport_proxy_ops
 
struct  lws_transport_mux_ch
 
struct  lws_transport_info
 
struct  lws_transport_mux
 
struct  lws_txp_mux_parse_cbs
 

Macros

#define LWSSSS_VERSION   1
 
#define LWS_MUCH_RANGE   256
 
#define LWS_TRANSPORT_MUXCH_MAGIC   LWS_FOURCC('T', 'm', 'C', 'h')
 
#define assert_is_tmch(_tm)   lws_assert_fourcc(_tm->magic, LWS_TRANSPORT_MUXCH_MAGIC)
 
#define LWSTMINFO_SERVER   (1 << 0)
 
#define LWS_TRANSPORT_MUX_MAGIC   LWS_FOURCC('I', 's', 'T', 'M')
 
#define assert_is_tm(_tm)   lws_assert_fourcc(_tm->magic, LWS_TRANSPORT_MUX_MAGIC)
 
#define lws_transport_path_client_dump(_a, _b)
 
#define lws_transport_path_proxy_dump(_a, _b)
 

Typedefs

typedef void * lws_transport_priv_t
 
typedef struct lws_txp_path_client lws_txp_path_client_t
 
typedef struct lws_txp_path_proxy lws_txp_path_proxy_t
 
typedef struct lws_transport_client_ops lws_transport_client_ops_t
 
typedef struct lws_transport_proxy_ops lws_transport_proxy_ops_t
 
typedef uint8_t lws_mux_ch_idx_t
 
typedef struct lws_transport_mux_ch lws_transport_mux_ch_t
 
typedef struct lws_transport_info lws_transport_info_t
 
typedef struct lws_transport_mux lws_transport_mux_t
 
typedef struct lws_txp_mux_parse_cbs lws_txp_mux_parse_cbs_t
 

Enumerations

enum  lws_sss_cmds_t {
  LWSSS_SER_RXPRE_RX_PAYLOAD = 0x55 , LWSSS_SER_RXPRE_CREATE_RESULT , LWSSS_SER_RXPRE_CONNSTATE , LWSSS_SER_RXPRE_TXCR_UPDATE ,
  LWSSS_SER_RXPRE_METADATA , LWSSS_SER_RXPRE_TLSNEG_ENCLAVE_SIGN , LWSSS_SER_RXPRE_PERF , LWSSS_SER_TXPRE_STREAMTYPE = 0xaa ,
  LWSSS_SER_TXPRE_ONWARD_CONNECT , LWSSS_SER_TXPRE_DESTROYING , LWSSS_SER_TXPRE_TX_PAYLOAD , LWSSS_SER_TXPRE_METADATA ,
  LWSSS_SER_TXPRE_TXCR_UPDATE , LWSSS_SER_TXPRE_TIMEOUT_UPDATE , LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT , LWSSS_SER_TXPRE_TLSNEG_ENCLAVE_SIGNED ,
  LWSSS_SER_TXPRE_LINK_VALIDITY_PROBE
}
 
enum  lws_ss_conn_states_t {
  LPCSPROX_WAIT_INITIAL_TX = 1 , LPCSPROX_REPORTING_FAIL , LPCSPROX_REPORTING_OK , LPCSPROX_OPERATIONAL ,
  LPCSPROX_DESTROYED , LPCSCLI_SENDING_INITIAL_TX , LPCSCLI_WAITING_CREATE_RESULT , LPCSCLI_LOCAL_CONNECTED ,
  LPCSCLI_ONWARD_CONNECT , LPCSCLI_OPERATIONAL
}
 
enum  {
  LWSSSS_LLM_CHANNEL_REQ = 0xf0 , LWSSSS_LLM_CHANNEL_ACK , LWSSSS_LLM_CHANNEL_NACK , LWSSSS_LLM_CHANNEL_CLOSE ,
  LWSSSS_LLM_CHANNEL_CLOSE_ACK , LWSSSS_LLM_MUX , LWSSSS_LLM_PING , LWSSSS_LLM_PONG ,
  LWSSSS_LLM_PONGACK , LWSSSS_LLM_RESET_TRANSPORT
}
 
enum  lwstmc_parser {
  LWSTMCPAR_CMD , LWSTMCPAR_CHIDX_DONE , LWSTMCPAR_CHIDX , LWSTMCPAR_PLENH ,
  LWSTMCPAR_PLENL , LWSTMCPAR_PAY , LWSTMCPAR_T64_1 , LWSTMCPAR_T64_2
}
 
enum  {
  LWSTMC_PENDING_CREATE_CHANNEL , LWSTMC_AWAITING_CREATE_CHANNEL_ACK , LWSTMC_PENDING_CREATE_CHANNEL_NACK , LWSTMC_PENDING_CREATE_CHANNEL_ACK ,
  LWSTMC_OPERATIONAL , LWSTMC_PENDING_CLOSE_CHANNEL , LWSTMC_AWAITING_CLOSE_CHANNEL_ACK , LWSTMC_PENDING_CLOSE_CHANNEL_ACK
}
 
enum  { LWSTM_TRANSPORT_DOWN , LWSTM_OPERATIONAL }
 

Functions

lws_transport_mux_tlws_transport_mux_create (struct lws_context *cx, lws_transport_info_t *info, void *txp_handle)
 
void lws_transport_mux_destroy (lws_transport_mux_t **tm)
 
void lws_transport_mux_request_tx (lws_transport_mux_t *tm)
 
int lws_transport_mux_rx_parse (lws_transport_mux_t *tm, const uint8_t *buf, size_t len, const lws_txp_mux_parse_cbs_t *cbs)
 
int lws_transport_mux_pending (lws_transport_mux_t *tm, uint8_t *buf, size_t *len, const lws_txp_mux_parse_cbs_t *cbs)
 

Variables

const lws_transport_client_ops_t lws_transport_mux_client_ops
 
const lws_transport_proxy_ops_t lws_transport_mux_proxy_ops
 
const lws_transport_client_ops_t lws_txp_inside_sspc
 
const lws_transport_proxy_ops_t lws_txp_inside_proxy
 

Data Structure Documentation

◆ lws_txp_path_client

struct lws_txp_path_client

Definition at line 335 of file lws-secure-streams-serialization.h.

+ Collaboration diagram for lws_txp_path_client:
Data Fields
const struct lws_transport_client_ops * ops_in
lws_transport_priv_t priv_in
const struct lws_transport_client_ops * ops_onw
lws_transport_priv_t priv_onw
struct lws_transport_mux * mux

◆ lws_txp_path_proxy

struct lws_txp_path_proxy

Definition at line 343 of file lws-secure-streams-serialization.h.

+ Collaboration diagram for lws_txp_path_proxy:
Data Fields
const struct lws_transport_proxy_ops * ops_in
lws_transport_priv_t priv_in
const struct lws_transport_proxy_ops * ops_onw
lws_transport_priv_t priv_onw
struct lws_transport_mux * mux

◆ lws_transport_mux_ch

struct lws_transport_mux_ch

Definition at line 483 of file lws-secure-streams-serialization.h.

+ Collaboration diagram for lws_transport_mux_ch:
Data Fields
lws_dll2_t list
lws_dll2_t list_pending_tx
lws_transport_priv_t priv
lws_sorted_usec_list_t sul
void * opaque
lws_mux_ch_idx_t ch_idx
uint8_t state
uint8_t server:1

◆ lws_transport_info

struct lws_transport_info

Definition at line 504 of file lws-secure-streams-serialization.h.

+ Collaboration diagram for lws_transport_info:
Data Fields
uint32_t ping_interval_us

us inbetween transport mux sending pings on transport

uint32_t pong_grace_us

us we should wait for pong before assuming transport down

lws_txp_path_client_t txp_cpath
lws_txp_path_proxy_t txp_ppath
struct lws_transport_info * onward_txp_info
uint32_t flags

◆ lws_transport_mux

struct lws_transport_mux

Definition at line 518 of file lws-secure-streams-serialization.h.

+ Collaboration diagram for lws_transport_mux:
Data Fields
struct lws_context * cx
lws_transport_info_t info
lws_sorted_usec_list_t sul_ping
void * txp_handle
void * txp_aux
uint64_t us_ping_in
uint64_t us_ping_out
uint64_t us_unixtime_peer
uint64_t us_unixtime_peer_loc
uint64_t mp_time
uint64_t mp_time1
enum lwstmc_parser mp_state
uint32_t mp_pay
uint8_t mp_cmd
lws_mux_ch_idx_t mp_idx
uint8_t mp_ctr
uint32_t _open[LWS_MUCH_RANGE/32]
uint32_t fin[LWS_MUCH_RANGE/32]
lws_dll2_owner_t pending_tx
lws_dll2_owner_t owner
uint8_t link_state
uint8_t issue_ping:1
uint8_t issue_pong:1
uint8_t issue_pongack:1
uint8_t awaiting_pong:1

Macro Definition Documentation

◆ LWSSSS_VERSION

#define LWSSSS_VERSION   1

Definition at line 38 of file lws-secure-streams-serialization.h.

◆ LWS_MUCH_RANGE

#define LWS_MUCH_RANGE   256

Definition at line 463 of file lws-secure-streams-serialization.h.

◆ LWS_TRANSPORT_MUXCH_MAGIC

#define LWS_TRANSPORT_MUXCH_MAGIC   LWS_FOURCC('T', 'm', 'C', 'h')

Definition at line 480 of file lws-secure-streams-serialization.h.

◆ assert_is_tmch

#define assert_is_tmch (   _tm)    lws_assert_fourcc(_tm->magic, LWS_TRANSPORT_MUXCH_MAGIC)

Definition at line 481 of file lws-secure-streams-serialization.h.

◆ LWSTMINFO_SERVER

#define LWSTMINFO_SERVER   (1 << 0)

Definition at line 502 of file lws-secure-streams-serialization.h.

◆ LWS_TRANSPORT_MUX_MAGIC

#define LWS_TRANSPORT_MUX_MAGIC   LWS_FOURCC('I', 's', 'T', 'M')

Definition at line 515 of file lws-secure-streams-serialization.h.

◆ assert_is_tm

#define assert_is_tm (   _tm)    lws_assert_fourcc(_tm->magic, LWS_TRANSPORT_MUX_MAGIC)

Definition at line 516 of file lws-secure-streams-serialization.h.

◆ lws_transport_path_client_dump

#define lws_transport_path_client_dump (   _a,
  _b 
)

Definition at line 565 of file lws-secure-streams-serialization.h.

◆ lws_transport_path_proxy_dump

#define lws_transport_path_proxy_dump (   _a,
  _b 
)

Definition at line 566 of file lws-secure-streams-serialization.h.

Typedef Documentation

◆ lws_transport_priv_t

typedef void* lws_transport_priv_t

Definition at line 314 of file lws-secure-streams-serialization.h.

◆ lws_txp_path_client_t

◆ lws_txp_path_proxy_t

◆ lws_transport_client_ops_t

◆ lws_transport_proxy_ops_t

◆ lws_mux_ch_idx_t

typedef uint8_t lws_mux_ch_idx_t

Definition at line 462 of file lws-secure-streams-serialization.h.

◆ lws_transport_mux_ch_t

◆ lws_transport_info_t

◆ lws_transport_mux_t

◆ lws_txp_mux_parse_cbs_t

Enumeration Type Documentation

◆ lws_sss_cmds_t

Enumerator
LWSSS_SER_RXPRE_RX_PAYLOAD 
LWSSS_SER_RXPRE_CREATE_RESULT 
LWSSS_SER_RXPRE_CONNSTATE 
LWSSS_SER_RXPRE_TXCR_UPDATE 
LWSSS_SER_RXPRE_METADATA 
LWSSS_SER_RXPRE_TLSNEG_ENCLAVE_SIGN 
LWSSS_SER_RXPRE_PERF 
LWSSS_SER_TXPRE_STREAMTYPE 
LWSSS_SER_TXPRE_ONWARD_CONNECT 
LWSSS_SER_TXPRE_DESTROYING 
LWSSS_SER_TXPRE_TX_PAYLOAD 
LWSSS_SER_TXPRE_METADATA 
LWSSS_SER_TXPRE_TXCR_UPDATE 
LWSSS_SER_TXPRE_TIMEOUT_UPDATE 
LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT 
LWSSS_SER_TXPRE_TLSNEG_ENCLAVE_SIGNED 
LWSSS_SER_TXPRE_LINK_VALIDITY_PROBE 

Definition at line 40 of file lws-secure-streams-serialization.h.

40 {
41 /*
42 * This is the Serialized Serure Streams framing. It's sufficient to
43 * carry all SS API actions over a point-to-point bytestream between
44 * an SSPC client and an SS oroxy, in both directions.
45 *
46 * These serialized streams may be multiplexed by the transport (eg,
47 * for unix domain sockets transport, each SS opens its own UDS socket
48 * to the proxy) or via lws_transport_mux framing encapsulation.
49 *
50 *
51 * Framing for Proxy -> Client direction
52 */
53
55 /*
56 * Proxied rx
57 *
58 * - 0: LWSSS_SER_RXPRE_RX_PAYLOAD
59 * - 1: 2 byte MSB-first rest-of-frame length
60 * - 3: 4-byte MSB-first flags
61 * - 7: 4-byte MSB-first us between inbound read and wrote to client
62 * - 11: 8-byte MSB-first us resolution unix time proxy wrote to client
63 * - 17: (rideshare name len + rideshare name if flags &
64 * LWSSS_FLAG_RIDESHARE) payload
65 */
67 /*
68 * Proxied connection setup result
69 *
70 * - 0: LWSSS_SER_RXPRE_CREATE_RESULT
71 * - 1: 2 byte MSB-first rest-of-frame length (usually 00, 03)
72 * - 3: 1 byte result, 0 = success. On failure, proxy will close
73 * connection.
74 * - 4: 4 byte client dsh allocation recommended for stream type,
75 * from policy (introduced in SSSv1)
76 * - 8: 2 byte MSB-first initial tx credit
77 * - 10: if present, comma-sep list of rideshare types from policy
78 */
80 /*
81 * Proxied state (8 or 11 byte packet)
82 *
83 * - 0: LWSSS_SER_RXPRE_CONNSTATE
84 * - 1: 00, 05 if state < 256, else 00, 08
85 * - 3: 1 byte state index if state < 256, else 4-byte MSB-first
86 * state index
87 * - 4 or 7: 4-byte MSB-first ordinal
88 */
90 /*
91 * Proxied tx credit
92 *
93 * - 0: LWSSS_SER_RXPRE_TXCR_UPDATE
94 * - 1: 00, 04
95 * - 3: 4-byte MSB-first addition tx credit bytes
96 */
98 /*
99 * Proxied rx metadata
100 *
101 * - 0: LWSSS_SER_RXPRE_METADATA
102 * - 1: 2-byte MSB-first rest-of-frame length
103 * - 3: 1-byte metadata name length
104 * - 4: metadata name
105 * - ...: metadata value (for rest of packet)
106 */
108 /* reserved */
110 /*
111 * Proxied performance information
112 *
113 * - 0: LWSSS_SER_RXPRE_PERF
114 * - 1: 2-byte MSB-first rest-of-frame length
115 * - 3: ... performance JSON (for rest of packet)
116 */
117
118 /*
119 * Framing for Client -> Proxy direction
120 */
121
123 /*
124 * Proxied connection setup
125 *
126 * - 0: LWSSS_SER_TXPRE_STREAMTYPE
127 * - 1: 2-byte MSB-first rest-of-frame length
128 * - 3: 1-byte Client SSS protocol version (introduced in SSSv1)
129 * - 4: 4-byte Client PID (introduced in SSSv1)
130 * - 8: 4-byte MSB-first initial tx credit
131 * - 12: the streamtype name with no NUL
132 */
134 /*
135 * Proxied request for onward connection
136 *
137 * - 0: LWSSS_SER_TXPRE_ONWARD_CONNECT
138 * - 1: 00, 00
139 */
141 /*
142 * Proxied secure stream destroy
143 *
144 * - 0: LWSSS_SER_TXPRE_DESTROYING
145 * - 1: 00, 00
146 */
148 /*
149 * Proxied tx
150 *
151 * - 0: LWSSS_SER_TXPRE_TX_PAYLOAD
152 * - 1: 2 byte MSB-first rest-of-frame length
153 * - 3: 4-byte MSB-first flags
154 * - 7: 4-byte MSB-first us between client requested write and wrote
155 * to proxy
156 * - 11: 8-byte MSB-first us resolution unix time client wrote to proxy
157 * - 19: ...payload (for rest of packet)
158 */
160 /*
161 * Proxied metadata - sent when one metadata item set clientside
162 *
163 * - 0: LWSSS_SER_TXPRE_METADATA
164 * - 1: 2-byte MSB-first rest-of-frame length
165 * - 3: 1-byte metadata name length
166 * - 4: metadata name
167 * - ...: metadata value (for rest of packet)
168 */
170 /*
171 * TX credit management - sent when using tx credit apis, cf METADATA
172 *
173 * - 0: LWSSS_SER_TXPRE_TXCR_UPDATE
174 * - 1: 2-byte MSB-first rest-of-frame length 00, 04
175 * - 3: 4-byte additional tx credit adjust value
176 */
178 /*
179 * Stream timeout management - forwarded when user applying or
180 * cancelling t.o.
181 *
182 * - 0: LWSSS_SER_TXPRE_TIMEOUT_UPDATE
183 * - 1: 2-byte MSB-first rest-of-frame length 00, 04
184 * - 3: 4-byte MSB-first unsigned 32-bit timeout,
185 * 0 = use policy, -1 = cancel
186 */
188 /*
189 * Passing up payload length hint
190 *
191 * - 0: LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT
192 * - 1: 2-byte MSB-first rest-of-frame length 00, 04
193 * - 3: 4-byte MSB-first unsigned 32-bit payload length hint
194 */
196 /* reserved */
@ LWSSS_SER_RXPRE_TLSNEG_ENCLAVE_SIGN
@ LWSSS_SER_TXPRE_LINK_VALIDITY_PROBE
@ LWSSS_SER_TXPRE_TLSNEG_ENCLAVE_SIGNED
@ LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT

◆ lws_ss_conn_states_t

Enumerator
LPCSPROX_WAIT_INITIAL_TX 
LPCSPROX_REPORTING_FAIL 
LPCSPROX_REPORTING_OK 
LPCSPROX_OPERATIONAL 
LPCSPROX_DESTROYED 
LPCSCLI_SENDING_INITIAL_TX 
LPCSCLI_WAITING_CREATE_RESULT 
LPCSCLI_LOCAL_CONNECTED 
LPCSCLI_ONWARD_CONNECT 
LPCSCLI_OPERATIONAL 

Definition at line 202 of file lws-secure-streams-serialization.h.

202 {
203 LPCSPROX_WAIT_INITIAL_TX = 1, /* after connect, must send streamtype */
204 LPCSPROX_REPORTING_FAIL, /* stream creation failed, wait to to tell */
205 LPCSPROX_REPORTING_OK, /* stream creation succeeded, wait to to tell */
206 LPCSPROX_OPERATIONAL, /* ready for payloads */
208
209 LPCSCLI_SENDING_INITIAL_TX, /* after connect, must send streamtype */
210 LPCSCLI_WAITING_CREATE_RESULT, /* wait to hear if proxy ss create OK */
211 LPCSCLI_LOCAL_CONNECTED, /* we are in touch with the proxy */
212 LPCSCLI_ONWARD_CONNECT, /* request onward ss connection */
213 LPCSCLI_OPERATIONAL, /* ready for payloads */
214

◆ anonymous enum

anonymous enum
Enumerator
LWSSSS_LLM_CHANNEL_REQ 

Either side proposes to open a new mux channel

  • 0: LWSSSS_LLM_CHANNEL_REQ
  • 1: 1-byte mux channel index, client initiated: first free from zero up, server initiated: first free from 0xff down
LWSSSS_LLM_CHANNEL_ACK 

Positive response to earlier LWSSSS_LLM_CHANNEL_REQ

  • 0: LWSSSS_LLM_CHANNEL_ACK
  • 1: 1-byte mux channel index, from the reqyuest
LWSSSS_LLM_CHANNEL_NACK 

Negative response to earlier LWSSSS_LLM_CHANNEL_REQ. This also acts as a FIN if one arrives on a channel unsolicited.

  • 0: LWSSSS_LLM_CHANNEL_NACK
  • 1: 1-byte mux channel index, from the reqyuest
LWSSSS_LLM_CHANNEL_CLOSE 

Either side informs peer it is closing a mux channel

  • 0: LWSSSS_LLM_CHANNEL_CLOSE
  • 1: 1-byte mux channel index
LWSSSS_LLM_CHANNEL_CLOSE_ACK 

Peer acknowledges closing a mux channel, so it can be reused

  • 0: LWSSSS_LLM_CHANNEL_CLOSE_ACK
  • 1: 1-byte mux channel index
LWSSSS_LLM_MUX 

Encapsulate data on an open mux channel

  • 0: LWSSSS_LLM_MUX
  • 1: 1-byte mux channel index
  • 2: 2-byte MSB-first rest-of-frame length
  • 4... mux payload
LWSSSS_LLM_PING 

Either side wants to validate communication on mux transport

  • 0: LWSSSS_LLM_PING
  • 1: 8-byte MSB-first us resolution unix time this was issued
LWSSSS_LLM_PONG 

Either side responds to peer's PING.

  • 0: LWSSSS_LLM_PONG
  • 1: 8-byte MSB-first us resolution unix time from PING
  • 9: 8-byte MSB-first us resolution unix time this PONG sent
LWSSSS_LLM_PONGACK 

When the original PING sender receives a PONG, it immediately sends a PINGACK, which is not replied to. This allows the other side to also know the connection is valid in both directions, with only one side needing to issue PINGs.

It also synchronizes both sides' understanding of the transport validity in one transaction.

  • 0: LWSSSS_LLM_PONGACK
  • 1: 8-byte MSB-first us resolution unix time from PING
LWSSSS_LLM_RESET_TRANSPORT 

Either side can issue this to indicate they no longer trust the transport link. They should close all their channels and enter a state trying to resync using 3-way PINGs

Definition at line 231 of file lws-secure-streams-serialization.h.

◆ lwstmc_parser

Enumerator
LWSTMCPAR_CMD 
LWSTMCPAR_CHIDX_DONE 
LWSTMCPAR_CHIDX 
LWSTMCPAR_PLENH 
LWSTMCPAR_PLENL 
LWSTMCPAR_PAY 
LWSTMCPAR_T64_1 
LWSTMCPAR_T64_2 

Definition at line 449 of file lws-secure-streams-serialization.h.

◆ anonymous enum

anonymous enum
Enumerator
LWSTMC_PENDING_CREATE_CHANNEL 
LWSTMC_AWAITING_CREATE_CHANNEL_ACK 
LWSTMC_PENDING_CREATE_CHANNEL_NACK 
LWSTMC_PENDING_CREATE_CHANNEL_ACK 
LWSTMC_OPERATIONAL 
LWSTMC_PENDING_CLOSE_CHANNEL 
LWSTMC_AWAITING_CLOSE_CHANNEL_ACK 
LWSTMC_PENDING_CLOSE_CHANNEL_ACK 

Definition at line 467 of file lws-secure-streams-serialization.h.

467 {
468 /* lws_transport_mux_ch_t created */
469 LWSTMC_PENDING_CREATE_CHANNEL, /* waiting to send create channel */
470 LWSTMC_AWAITING_CREATE_CHANNEL_ACK, /* sent create ch, awaiting ack */
471 LWSTMC_PENDING_CREATE_CHANNEL_NACK, /* waiting to send create ch ack */
472 LWSTMC_PENDING_CREATE_CHANNEL_ACK, /* waiting to send create ch ack */
473 LWSTMC_OPERATIONAL, /* had ack, we are operational */
474 LWSTMC_PENDING_CLOSE_CHANNEL, /* waiting to send close channel */
475 LWSTMC_AWAITING_CLOSE_CHANNEL_ACK, /* sent close ch, awaiting ack */
476 LWSTMC_PENDING_CLOSE_CHANNEL_ACK, /* waiting to send close ch ack */
477 /* lws_transport_mux_ch_t destroyed */
478};
@ LWSTMC_PENDING_CREATE_CHANNEL_NACK
@ LWSTMC_AWAITING_CREATE_CHANNEL_ACK

◆ anonymous enum

anonymous enum
Enumerator
LWSTM_TRANSPORT_DOWN 
LWSTM_OPERATIONAL 

Definition at line 497 of file lws-secure-streams-serialization.h.

497 { /* states of the transport */
500};

Function Documentation

◆ lws_transport_mux_create()

lws_transport_mux_t * lws_transport_mux_create ( struct lws_context *  cx,
lws_transport_info_t info,
void *  txp_handle 
)

◆ lws_transport_mux_destroy()

void lws_transport_mux_destroy ( lws_transport_mux_t **  tm)

◆ lws_transport_mux_request_tx()

void lws_transport_mux_request_tx ( lws_transport_mux_t tm)

◆ lws_transport_mux_rx_parse()

int lws_transport_mux_rx_parse ( lws_transport_mux_t tm,
const uint8_t *  buf,
size_t  len,
const lws_txp_mux_parse_cbs_t cbs 
)

◆ lws_transport_mux_pending()

int lws_transport_mux_pending ( lws_transport_mux_t tm,
uint8_t *  buf,
size_t *  len,
const lws_txp_mux_parse_cbs_t cbs 
)

Variable Documentation

◆ lws_transport_mux_client_ops

const lws_transport_client_ops_t lws_transport_mux_client_ops
extern

◆ lws_transport_mux_proxy_ops

const lws_transport_proxy_ops_t lws_transport_mux_proxy_ops
extern

◆ lws_txp_inside_sspc

const lws_transport_client_ops_t lws_txp_inside_sspc
extern

◆ lws_txp_inside_proxy

const lws_transport_proxy_ops_t lws_txp_inside_proxy
extern