27 typedef int (*plugin_auth_status_cb)(
struct lws_ss_handle *ss,
int status);
54 #if defined(LWS_WITH_SSPLUGINS)
55 typedef struct lws_ss_plugin {
56 struct lws_ss_plugin *next;
60 int (*create)(
struct lws_ss_handle *ss,
void *info,
61 plugin_auth_status_cb status);
67 int (*destroy)(
struct lws_ss_handle *ss);
71 int (*munge)(
struct lws_ss_handle *ss,
char *path,
108 LWSSSPOLF_OPPORTUNISTIC = (1 << 0),
110 LWSSSPOLF_NAILED_UP = (1 << 1),
112 LWSSSPOLF_URGENT_TX = (1 << 2),
114 LWSSSPOLF_URGENT_RX = (1 << 3),
116 LWSSSPOLF_TLS = (1 << 4),
118 LWSSSPOLF_LONG_POLL = (1 << 5),
120 LWSSSPOLF_AUTH_BEARER = (1 << 6),
122 LWSSSPOLF_HTTP_NO_CONTENT_LENGTH = (1 << 7),
124 LWSSSPOLF_QUIRK_NGHTTP2_END_STREAM = (1 << 8),
126 LWSSSPOLF_H2_QUIRK_OVERFLOWS_TXCR = (1 << 9),
128 LWSSSPOLF_H2_QUIRK_UNCLEAN_HPACK_STATE = (1 << 10),
130 LWSSSPOLF_HTTP_MULTIPART = (1 << 11),
136 LWSSSPOLF_HTTP_X_WWW_FORM_URLENCODED = (1 << 12),
138 LWSSSPOLF_LOCAL_SINK = (1 << 13),
140 LWSSSPOLF_WAKE_SUSPEND__VALIDITY = (1 << 14),
144 LWSSSPOLF_SERVER = (1 << 15),
146 LWSSSPOLF_ALLOW_REDIRECTS = (1 << 16),
148 LWSSSPOLF_HTTP_MULTIPART_IN = (1 << 17),
151 LWSSSPOLF_ATTR_LOW_LATENCY = (1 << 18),
153 LWSSSPOLF_ATTR_HIGH_THROUGHPUT = (1 << 19),
155 LWSSSPOLF_ATTR_HIGH_RELIABILITY = (1 << 20),
157 LWSSSPOLF_ATTR_LOW_COST = (1 << 21),
159 LWSSSPOLF_PERF = (1 << 22),
161 LWSSSPOLF_DIRECT_PROTO_STR = (1 << 23),
163 LWSSSPOLF_HTTP_CACHE_COOKIES = (1 << 24),
165 LWSSSPOLF_PRIORITIZE_READS = (1 << 25),
202 void *value__may_own_heap;
205 uint8_t value_length;
206 uint8_t value_is_http_token;
207 #if defined(LWS_WITH_SS_DIRECT_PROTOCOL_STR)
208 uint8_t name_on_lws_heap:1;
210 uint8_t value_on_lws_heap:1;
211 #if defined(LWS_WITH_SECURE_STREAMS_PROXY_API)
212 uint8_t pending_onward:1;
232 const char *streamtype;
257 const char *payload_fmt;
258 const char *socks5_proxy;
267 #if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) || defined(LWS_ROLE_WS)
278 const char *multipart_name;
279 const char *multipart_filename;
280 const char *multipart_content_type;
282 const char *blob_header[_LWSSS_HBI_COUNT];
283 const char *auth_preamble;
293 const char *subprotocol;
299 uint16_t resp_expect;
300 uint8_t count_respmap;
301 uint8_t fail_redirect:1;
306 #if defined(LWS_ROLE_MQTT)
310 const char *subscribe;
312 const char *will_topic;
313 const char *will_message;
315 const char *birth_topic;
316 const char *birth_message;
324 uint8_t birth_retain;
335 #if defined(LWS_WITH_SSPLUGINS)
337 struct lws_ss_plugin *plugins[2];
338 const void *plugins_info[2];
341 #if defined(LWS_WITH_SECURE_STREAMS_AUTH_SIGV4)
343 const char *aws_region;
344 const char *aws_service;
367 uint32_t proxy_buflen_rxflow_on_above;
368 uint32_t proxy_buflen_rxflow_off_below;
371 uint32_t client_buflen_rxflow_on_above;
372 uint32_t client_buflen_rxflow_off_below;
389 #if !defined(LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY)
395 LWS_VISIBLE LWS_EXTERN
int
396 lws_ss_policy_parse_begin(
struct lws_context *context,
int overlay);
398 LWS_VISIBLE LWS_EXTERN
int
399 lws_ss_policy_parse_abandon(
struct lws_context *context);
401 LWS_VISIBLE LWS_EXTERN
int
402 lws_ss_policy_parse(
struct lws_context *context,
const uint8_t *buf,
size_t len);
404 LWS_VISIBLE LWS_EXTERN
int
405 lws_ss_policy_overlay(
struct lws_context *context,
const char *overlay);
413 lws_ss_policy_get(
struct lws_context *context);
416 lws_ss_auth_get(
struct lws_context *context);
Definition: lws-secure-streams-policy.h:82
uint32_t us_decay_unit
Definition: lws-secure-streams-policy.h:93
uint8_t min_contributors
Definition: lws-secure-streams-policy.h:95
uint64_t us_schedule
Definition: lws-secure-streams-policy.h:90
const char * report
Definition: lws-secure-streams-policy.h:87
Definition: lws-retry.h:25
Definition: lws-secure-streams-policy.h:227
Definition: lws-secure-streams-policy.h:216
Definition: lws-secure-streams-policy.h:249
uint32_t flags
Definition: lws-secure-streams-policy.h:377
uint8_t metadata_count
Definition: lws-secure-streams-policy.h:381
uint32_t timeout_ms
Definition: lws-secure-streams-policy.h:375
const lws_ss_x509_t * cert
Definition: lws-secure-streams-policy.h:357
const char * streamtype
Definition: lws-secure-streams-policy.h:251
const char * rideshare_streamtype
Definition: lws-secure-streams-policy.h:254
uint8_t client_cert
Definition: lws-secure-streams-policy.h:383
const char * endpoint
Definition: lws-secure-streams-policy.h:253
const lws_ss_trust_store_t * store
Definition: lws-secure-streams-policy.h:353
const lws_retry_bo_t * retry_bo
Definition: lws-secure-streams-policy.h:364
uint16_t port
Definition: lws-secure-streams-policy.h:379
uint8_t protocol
Definition: lws-secure-streams-policy.h:382
uint32_t client_buflen
Definition: lws-secure-streams-policy.h:370
const lws_ss_x509_t * key
Definition: lws-secure-streams-policy.h:359
uint32_t proxy_buflen
Definition: lws-secure-streams-policy.h:366
Definition: lws-secure-streams-policy.h:170
Definition: lws-secure-streams-policy.h:99
uint8_t keep
Definition: lws-secure-streams-policy.h:104
size_t ca_der_len
Definition: lws-secure-streams-policy.h:103
const uint8_t * ca_der
Definition: lws-secure-streams-policy.h:102
const char * vhost_name
Definition: lws-secure-streams-policy.h:101