27#define LWS_RECOMMENDED_MIN_HEADER_SPACE 2048
65#if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) || defined(LWS_ROLE_H3)
67lws_find_mount(
struct lws *wsi,
const char *uri_ptr,
int uri_len);
90 const char *other_headers,
int other_headers_len);
155typedef const char *(*lws_process_html_state_cb)(
void *data,
int index);
236#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
237 WSI_TOKEN_OPTIONS_URI,
243#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL)
247#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL)
248 WSI_TOKEN_EXTENSIONS,
256#if defined(LWS_ROLE_H2) || defined(LWS_ROLE_H3) || defined(LWS_HTTP_HEADERS_ALL)
257 WSI_TOKEN_HTTP2_SETTINGS,
260#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
261 WSI_TOKEN_HTTP_AC_REQUEST_HEADERS,
275#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
276 WSI_TOKEN_HTTP_REFERER,
278#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL)
283#if defined(LWS_ROLE_H2) || defined(LWS_ROLE_H3) || defined(LWS_HTTP_HEADERS_ALL)
284 WSI_TOKEN_HTTP_COLON_AUTHORITY,
285 WSI_TOKEN_HTTP_COLON_METHOD,
286 WSI_TOKEN_HTTP_COLON_PATH,
287 WSI_TOKEN_HTTP_COLON_SCHEME,
288 WSI_TOKEN_HTTP_COLON_STATUS,
291#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
292 WSI_TOKEN_HTTP_ACCEPT_CHARSET,
295#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
296 WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN,
315#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
316 WSI_TOKEN_HTTP_MAX_FORWARDS,
317 WSI_TOKEN_HTTP_PROXY_AUTHENTICATE,
318 WSI_TOKEN_HTTP_PROXY_AUTHORIZATION,
324#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
325 WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY,
328#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
329 WSI_TOKEN_HTTP_USER_AGENT,
332 WSI_TOKEN_HTTP_WWW_AUTHENTICATE,
334#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
337 WSI_TOKEN_DELETE_URI,
341#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
343 WSI_TOKEN_HTTP_X_REAL_IP,
349#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
351 WSI_TOKEN_REPLAY_NONCE,
353#if defined(LWS_ROLE_H2) || defined(LWS_ROLE_H3) || defined(LWS_HTTP_HEADERS_ALL)
354 WSI_TOKEN_COLON_PROTOCOL,
379#if defined(LWS_WITH_CUSTOM_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
380 WSI_TOKEN_UNKNOWN_VALUE_PART,
712#define LWS_LOGIN_HDR_STATE "x-lws-login-state"
713#define LWS_LOGIN_HDR_ADMIN "x-lws-login-admin"
714#define LWS_LOGIN_HDR_GRANT_LEVEL "x-lws-login-grant-level"
715#define LWS_LOGIN_HDR_SUB "x-lws-login-sub"
756#define LWSAHH_CODE_MASK ((1 << 16) - 1)
757#define LWSAHH_FLAG_NO_SERVER_NAME (1 << 30)
775 unsigned int code,
unsigned char **p,
802 const unsigned char *value,
int length,
803 unsigned char **p,
unsigned char *end);
822 const unsigned char *value,
int length,
823 unsigned char **p,
unsigned char *end);
837 unsigned char **p,
unsigned char *end);
873 unsigned char **p,
unsigned char *end);
875#define LWS_ILLEGAL_HTTP_CONTENT_LEN ((lws_filepos_t)-1ll)
906 unsigned char **p,
unsigned char *end);
1045 const char *html_body);
1061 unsigned char **p,
unsigned char *end);
1140 unsigned char **p,
unsigned char *end,
char decomp);
1201 char *buf,
size_t *max);
1235 const char *value,
const char *domain,
1236 unsigned long long max_age,
const char *expires);
1246#define lws_http_client_http_resp_is_error(code) (!(code < 400))
1273#define LWS_H2_STREAM_SID -1
@ LWS_LOGIN_STATE_NO_GRANT
@ LWS_LOGIN_STATE_APP_ADMIN
@ LWS_LOGIN_STATE_GLOBAL_ADMIN
#define LWS_WARN_UNUSED_RESULT
unsigned long long lws_filepos_t
LWS_VISIBLE LWS_EXTERN const char * lws_get_mimetype(const char *file, const struct lws_http_mount *m)
LWS_VISIBLE LWS_EXTERN int lws_http_compression_apply(struct lws *wsi, const char *name, unsigned char **p, unsigned char *end, char decomp)
LWS_VISIBLE LWS_EXTERN int lws_http_mark_sse(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_http_date_parse_unix(const char *b, size_t len, time_t *t)
LWS_VISIBLE LWS_EXTERN int lws_serve_http_file_fragment(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_http_check_retry_after(struct lws *wsi, lws_usec_t *us_interval_in_out)
LWS_VISIBLE LWS_EXTERN int lws_chunked_html_process(struct lws_process_html_args *args, struct lws_process_html_state *s)
lws_process_html_state_cb replace
LWS_VISIBLE LWS_EXTERN uint32_t lws_h2_get_peer_rst_status(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len, unsigned char **p, unsigned char *end)
LWS_VISIBLE LWS_EXTERN int lws_h2_get_peer_txcredit_estimate(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_http_cookie_compose(char *buf, size_t len, const char *name, const char *value, const char *domain, unsigned long long max_age, const char *expires)
LWS_VISIBLE LWS_EXTERN int lws_http_date_render_from_unix(char *buf, size_t len, const time_t *t)
LWS_VISIBLE LWS_EXTERN int lws_urldecode(char *string, const char *escaped, int len)
@ H2_ERR_COMPRESSION_ERROR
@ H2_ERR_FLOW_CONTROL_ERROR
@ H2_ERR_HTTP_1_1_REQUIRED
@ H2_ERR_FRAME_SIZE_ERROR
@ H2_ERR_ENHANCE_YOUR_CALM
@ H2_ERR_INADEQUATE_SECURITY
@ H2_ERR_SETTINGS_TIMEOUT
LWS_VISIBLE LWS_EXTERN const char * lws_urlencode(char *escaped, const char *string, int len)
LWS_VISIBLE LWS_EXTERN int lws_h2_update_peer_txcredit(struct lws *wsi, unsigned int sid, int bump)
LWS_VISIBLE LWS_EXTERN int lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type, const char *other_headers, int other_headers_len)
LWS_VISIBLE LWS_EXTERN int lws_http_cookie_get_nth(struct lws *wsi, const char *name, int n, char *buf, size_t *max)
@ HTTP_STATUS_EXPECTATION_FAILED
@ HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE
@ HTTP_STATUS_NOT_ACCEPTABLE
@ HTTP_STATUS_REQ_URI_TOO_LONG
@ HTTP_STATUS_INTERNAL_SERVER_ERROR
@ HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE
@ HTTP_STATUS_REQUEST_TIMEOUT
@ HTTP_STATUS_PROXY_AUTH_REQUIRED
@ HTTP_STATUS_BAD_REQUEST
@ HTTP_STATUS_METHOD_NOT_ALLOWED
@ HTTP_STATUS_NOT_MODIFIED
@ HTTP_STATUS_MOVED_PERMANENTLY
@ HTTP_STATUS_PARTIAL_CONTENT
@ HTTP_STATUS_REQ_ENTITY_TOO_LARGE
@ HTTP_STATUS_SERVICE_UNAVAILABLE
@ HTTP_STATUS_LENGTH_REQUIRED
@ HTTP_STATUS_PRECONDITION_FAILED
@ HTTP_STATUS_BAD_GATEWAY
@ HTTP_STATUS_NOT_IMPLEMENTED
@ HTTP_STATUS_UNAUTHORIZED
@ HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED
@ HTTP_STATUS_GATEWAY_TIMEOUT
@ HTTP_STATUS_PAYMENT_REQUIRED
LWS_VISIBLE LWS_EXTERN int lws_return_http_status(struct lws *wsi, unsigned int code, const char *html_body)
LWS_VISIBLE LWS_EXTERN int lws_http_is_redirected_to_get(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_transaction_completed(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_http_cookie_get(struct lws *wsi, const char *name, char *buf, size_t *max)
LWS_VISIBLE LWS_EXTERN int lws_http_headers_detach(struct lws *wsi)
const char *(* lws_process_html_state_cb)(void *data, int index)
LWS_VISIBLE LWS_EXTERN int lws_h2_client_stream_long_poll_rxonly(struct lws *wsi)