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),
195 void *value__may_own_heap;
198 uint8_t value_length;
199 uint8_t value_is_http_token;
200 uint8_t value_on_lws_heap:1;
201 #if defined(LWS_WITH_SECURE_STREAMS_PROXY_API)
202 uint8_t pending_onward:1;
222 const char *streamtype;
247 const char *payload_fmt;
248 const char *socks5_proxy;
257 #if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) || defined(LWS_ROLE_WS)
268 const char *multipart_name;
269 const char *multipart_filename;
270 const char *multipart_content_type;
272 const char *blob_header[_LWSSS_HBI_COUNT];
273 const char *auth_preamble;
283 const char *subprotocol;
289 uint16_t resp_expect;
290 uint8_t count_respmap;
291 uint8_t fail_redirect:1;
296 #if defined(LWS_ROLE_MQTT)
300 const char *subscribe;
302 const char *will_topic;
303 const char *will_message;
319 #if defined(LWS_WITH_SSPLUGINS)
321 struct lws_ss_plugin *plugins[2];
322 const void *plugins_info[2];
325 #if defined(LWS_WITH_SECURE_STREAMS_AUTH_SIGV4)
327 const char *aws_region;
328 const char *aws_service;
351 uint32_t proxy_buflen_rxflow_on_above;
352 uint32_t proxy_buflen_rxflow_off_below;
355 uint32_t client_buflen_rxflow_on_above;
356 uint32_t client_buflen_rxflow_off_below;
373 #if !defined(LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY)
379 LWS_VISIBLE LWS_EXTERN
int
380 lws_ss_policy_parse_begin(
struct lws_context *context,
int overlay);
382 LWS_VISIBLE LWS_EXTERN
int
383 lws_ss_policy_parse_abandon(
struct lws_context *context);
385 LWS_VISIBLE LWS_EXTERN
int
386 lws_ss_policy_parse(
struct lws_context *context,
const uint8_t *buf,
size_t len);
388 LWS_VISIBLE LWS_EXTERN
int
389 lws_ss_policy_overlay(
struct lws_context *context,
const char *overlay);
397 lws_ss_policy_get(
struct lws_context *context);
400 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:217
Definition: lws-secure-streams-policy.h:206
Definition: lws-secure-streams-policy.h:239
uint32_t flags
Definition: lws-secure-streams-policy.h:361
uint8_t metadata_count
Definition: lws-secure-streams-policy.h:365
uint32_t timeout_ms
Definition: lws-secure-streams-policy.h:359
const lws_ss_x509_t * cert
Definition: lws-secure-streams-policy.h:341
const char * streamtype
Definition: lws-secure-streams-policy.h:241
const char * rideshare_streamtype
Definition: lws-secure-streams-policy.h:244
uint8_t client_cert
Definition: lws-secure-streams-policy.h:367
const char * endpoint
Definition: lws-secure-streams-policy.h:243
const lws_ss_trust_store_t * store
Definition: lws-secure-streams-policy.h:337
const lws_retry_bo_t * retry_bo
Definition: lws-secure-streams-policy.h:348
uint16_t port
Definition: lws-secure-streams-policy.h:363
uint8_t protocol
Definition: lws-secure-streams-policy.h:366
uint32_t client_buflen
Definition: lws-secure-streams-policy.h:354
const lws_ss_x509_t * key
Definition: lws-secure-streams-policy.h:343
uint32_t proxy_buflen
Definition: lws-secure-streams-policy.h:350
Definition: lws-secure-streams-policy.h:163
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