33 #if defined(STANDALONE)
35 #define lws_context lws_context_standalone
38 #define LWSSSS_VERSION 1
316 struct lws_sss_proxy_conn;
319 struct lws_sspc_handle;
359 struct lws_sspc_handle *h);
362 struct lws_sspc_handle *h,
int disposition);
370 const uint8_t *buf,
size_t len);
381 size_t metadata_limit);
400 const char *bind,
int port);
407 #if defined(LWS_WITH_SYS_FAULT_INJECTION)
408 const lws_fi_ctx_t *fic,
410 struct lws_sss_proxy_conn **conn,
414 struct lws_ss_handle *h);
420 #if defined(LWS_WITH_SYS_FAULT_INJECTION)
421 ,
const lws_fi_ctx_t *fic
430 struct lws_sss_proxy_conn *conn);
432 #if defined(LWS_WITH_SYS_FAULT_INJECTION)
439 const uint8_t *buf,
size_t len);
463 #define LWS_MUCH_RANGE 256
480 #define LWS_TRANSPORT_MUXCH_MAGIC LWS_FOURCC('T', 'm', 'C', 'h')
481 #define assert_is_tmch(_tm) lws_assert_fourcc(_tm->magic, LWS_TRANSPORT_MUXCH_MAGIC)
502 #define LWSTMINFO_SERVER (1 << 0)
515 #define LWS_TRANSPORT_MUX_MAGIC LWS_FOURCC('I', 's', 'T', 'M')
516 #define assert_is_tm(_tm) lws_assert_fourcc(_tm->magic, LWS_TRANSPORT_MUX_MAGIC)
522 struct lws_context *
cx;
565 #define lws_transport_path_client_dump(_a, _b)
566 #define lws_transport_path_proxy_dump(_a, _b)
596 #if defined(STANDALONE)
enum lws_ss_state_return lws_ss_state_return_t
uint64_t us_unixtime_peer
uint32_t _open[LWS_MUCH_RANGE/32]
@ LPCSCLI_WAITING_CREATE_RESULT
@ LPCSCLI_SENDING_INITIAL_TX
@ LPCSPROX_REPORTING_FAIL
@ LPCSPROX_WAIT_INITIAL_TX
@ LPCSCLI_LOCAL_CONNECTED
lws_sorted_usec_list_t sul
int lws_transport_mux_pending(lws_transport_mux_t *tm, uint8_t *buf, size_t *len, const lws_txp_mux_parse_cbs_t *cbs)
struct lws_txp_mux_parse_cbs lws_txp_mux_parse_cbs_t
lws_transport_priv_t priv_onw
const struct lws_transport_client_ops * ops_onw
lws_transport_priv_t priv
@ LWSTMC_AWAITING_CLOSE_CHANNEL_ACK
@ LWSTMC_PENDING_CREATE_CHANNEL
@ LWSTMC_PENDING_CLOSE_CHANNEL_ACK
@ LWSTMC_PENDING_CLOSE_CHANNEL
@ LWSTMC_PENDING_CREATE_CHANNEL_NACK
@ LWSTMC_AWAITING_CREATE_CHANNEL_ACK
@ LWSTMC_PENDING_CREATE_CHANNEL_ACK
@ LWSSS_SER_RXPRE_CREATE_RESULT
@ LWSSS_SER_RXPRE_TLSNEG_ENCLAVE_SIGN
@ LWSSS_SER_TXPRE_TXCR_UPDATE
@ LWSSS_SER_TXPRE_DESTROYING
@ LWSSS_SER_RXPRE_RX_PAYLOAD
@ LWSSS_SER_TXPRE_STREAMTYPE
@ LWSSS_SER_RXPRE_METADATA
@ LWSSS_SER_TXPRE_LINK_VALIDITY_PROBE
@ LWSSS_SER_TXPRE_METADATA
@ LWSSS_SER_TXPRE_TLSNEG_ENCLAVE_SIGNED
@ LWSSS_SER_TXPRE_TX_PAYLOAD
@ LWSSS_SER_TXPRE_ONWARD_CONNECT
@ LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT
@ LWSSS_SER_RXPRE_CONNSTATE
@ LWSSS_SER_RXPRE_TXCR_UPDATE
@ LWSSS_SER_TXPRE_TIMEOUT_UPDATE
lws_dll2_t list_pending_tx
uint32_t ping_interval_us
lws_dll2_owner_t pending_tx
lws_txp_path_proxy_t txp_ppath
struct lws_transport_client_ops lws_transport_client_ops_t
lws_transport_priv_t priv_onw
uint64_t us_unixtime_peer_loc
struct lws_transport_info lws_transport_info_t
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)
void lws_transport_mux_request_tx(lws_transport_mux_t *tm)
lws_transport_info_t info
struct lws_transport_mux lws_transport_mux_t
struct lws_transport_proxy_ops lws_transport_proxy_ops_t
lws_transport_priv_t priv_in
struct lws_transport_info * onward_txp_info
uint32_t fin[LWS_MUCH_RANGE/32]
struct lws_transport_mux * mux
const struct lws_transport_proxy_ops * ops_in
struct lws_txp_path_client lws_txp_path_client_t
#define lws_transport_path_proxy_dump(_a, _b)
lws_transport_mux_t * lws_transport_mux_create(struct lws_context *cx, lws_transport_info_t *info, void *txp_handle)
const struct lws_transport_client_ops * ops_in
void lws_transport_mux_destroy(lws_transport_mux_t **tm)
lws_transport_priv_t priv_in
enum lwstmc_parser mp_state
lws_txp_path_client_t txp_cpath
struct lws_transport_mux * mux
void * lws_transport_priv_t
#define lws_transport_path_client_dump(_a, _b)
struct lws_txp_path_proxy lws_txp_path_proxy_t
const struct lws_transport_proxy_ops * ops_onw
const lws_transport_proxy_ops_t lws_transport_mux_proxy_ops
const lws_transport_proxy_ops_t lws_txp_inside_proxy
const lws_transport_client_ops_t lws_txp_inside_sspc
const lws_transport_client_ops_t lws_transport_mux_client_ops
lws_sorted_usec_list_t sul_ping
@ LWSSSS_LLM_CHANNEL_CLOSE
@ LWSSSS_LLM_RESET_TRANSPORT
@ LWSSSS_LLM_CHANNEL_NACK
@ LWSSSS_LLM_CHANNEL_CLOSE_ACK
struct lws_transport_mux_ch lws_transport_mux_ch_t
void(* req_write)(lws_transport_priv_t priv)
int(* event_retry_connect)(lws_txp_path_client_t *path, struct lws_sspc_handle *h)
lws_ss_state_return_t(* event_can_write)(struct lws_sspc_handle *h, size_t metadata_limit)
void(* event_client_up)(lws_transport_priv_t priv)
void(* lost_coherence)(lws_transport_priv_t priv)
void(* event_stream_up)(lws_transport_priv_t priv)
lws_ss_state_return_t(* event_read)(lws_transport_priv_t priv, const uint8_t *buf, size_t len)
lws_ss_state_return_t(* event_closed)(lws_transport_priv_t priv)
void(* _close)(lws_transport_priv_t priv)
int(* _write)(lws_transport_priv_t priv, uint8_t *buf, size_t len)
lws_ss_state_return_t(* event_connect_disposition)(struct lws_sspc_handle *h, int disposition)
void(* event_client_up)(lws_transport_priv_t priv)
lws_ss_state_return_t(* event_new_conn)(struct lws_context *cx, const struct lws_transport_proxy_ops *txp_ops_inward, lws_transport_priv_t txp_priv_inward, struct lws_sss_proxy_conn **conn, lws_transport_priv_t txp_priv)
void(* proxy_req_write)(lws_transport_priv_t priv)
int(* proxy_check_write_more)(lws_transport_priv_t priv)
lws_ss_state_return_t(* event_close_conn)(struct lws_sss_proxy_conn *conn)
lws_ss_state_return_t(* event_proxy_can_write)(lws_transport_priv_t priv)
void(* event_onward_bind)(lws_transport_priv_t priv, struct lws_ss_handle *h)
lws_ss_state_return_t(* close_conn)(struct lws_sss_proxy_conn *conn)
int(* init_proxy_server)(struct lws_context *context, const struct lws_transport_proxy_ops *txp_ops_inward, lws_transport_priv_t txp_priv_inward, lws_txp_path_proxy_t *txp_ppath, const void *aux, const char *bind, int port)
lws_ss_state_return_t(* proxy_read)(lws_transport_priv_t priv, const uint8_t *buf, size_t len)
int(* proxy_write)(lws_transport_priv_t priv, uint8_t *buf, size_t *len)
int(* destroy_proxy_server)(struct lws_context *context)
int(* txp_can_write)(lws_transport_mux_ch_t *tmc)
int(* ch_opens)(lws_transport_mux_ch_t *tmc, int determination)
int(* ch_closes)(lws_transport_mux_ch_t *tmc)
int(* payload)(lws_transport_mux_ch_t *tmc, const uint8_t *buf, size_t len)
void(* txp_req_write)(lws_transport_mux_t *tm)