libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
lws-http.h
Go to the documentation of this file.
1/*
2 * libwebsockets - small server side websockets and web server implementation
3 *
4 * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com>
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22 * IN THE SOFTWARE.
23 */
24
25/* minimal space for typical headers and CSP stuff */
26
27#define LWS_RECOMMENDED_MIN_HEADER_SPACE 2048
28
34
41
53LWS_VISIBLE LWS_EXTERN const char *
54lws_get_mimetype(const char *file, const struct lws_http_mount *m);
55
75lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,
76 const char *other_headers, int other_headers_len);
77
81
82
121
131
133 char *p;
134 int len;
136 int final;
139};
140
141typedef const char *(*lws_process_html_state_cb)(void *data, int index);
142
144 char *start;
145 char swallow[16];
146 int pos;
147 void *data;
148 const char * const *vars;
150
153};
154
161 struct lws_process_html_state *s);
163
197
205 unsigned char *token;
206 int len;
207};
208
209/* enum lws_token_indexes
210 * these have to be kept in sync with lextable.h / minilex.c
211 *
212 * NOTE: These public enums are part of the abi. If you want to add one,
213 * add it at where specified so existing users are unaffected.
214 */
218#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
219 WSI_TOKEN_OPTIONS_URI,
220#endif
225#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL)
226 WSI_TOKEN_DRAFT,
227#endif
229#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL)
230 WSI_TOKEN_EXTENSIONS,
231 WSI_TOKEN_KEY1, /* 10 */
232 WSI_TOKEN_KEY2,
233 WSI_TOKEN_PROTOCOL,
234 WSI_TOKEN_ACCEPT,
235 WSI_TOKEN_NONCE,
236#endif
238#if defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
239 WSI_TOKEN_HTTP2_SETTINGS, /* 16 */
240#endif
242#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
243 WSI_TOKEN_HTTP_AC_REQUEST_HEADERS,
244#endif
257#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
258 WSI_TOKEN_HTTP_REFERER,
259#endif
260#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL)
261 WSI_TOKEN_KEY,
262 WSI_TOKEN_VERSION,
263 WSI_TOKEN_SWORIGIN,
264#endif
265#if defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
266 WSI_TOKEN_HTTP_COLON_AUTHORITY,
267 WSI_TOKEN_HTTP_COLON_METHOD,
268 WSI_TOKEN_HTTP_COLON_PATH,
269 WSI_TOKEN_HTTP_COLON_SCHEME,
270 WSI_TOKEN_HTTP_COLON_STATUS,
271#endif
272
273#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
274 WSI_TOKEN_HTTP_ACCEPT_CHARSET,
275#endif
277#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
278 WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN,
279#endif
297#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
298 WSI_TOKEN_HTTP_MAX_FORWARDS,
299 WSI_TOKEN_HTTP_PROXY_AUTHENTICATE,
300 WSI_TOKEN_HTTP_PROXY_AUTHORIZATION,
301#endif
306#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
307 WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY,
308#endif
310#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
311 WSI_TOKEN_HTTP_USER_AGENT,
312 WSI_TOKEN_HTTP_VARY,
313 WSI_TOKEN_HTTP_VIA,
314 WSI_TOKEN_HTTP_WWW_AUTHENTICATE,
315#endif
316#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
317 WSI_TOKEN_PATCH_URI,
318 WSI_TOKEN_PUT_URI,
319 WSI_TOKEN_DELETE_URI,
320#endif
321
323#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
324 WSI_TOKEN_PROXY,
325 WSI_TOKEN_HTTP_X_REAL_IP,
326#endif
331#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
332 WSI_TOKEN_TE,
333 WSI_TOKEN_REPLAY_NONCE, /* ACME */
334#endif
335#if defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL)
336 WSI_TOKEN_COLON_PROTOCOL,
337#endif
340
341 /****** add new things just above ---^ ******/
342
343 /* use token storage to stash these internally, not for
344 * user use */
345
355
356 /* always last real token index*/
358
359 /* parser state additions, no storage associated */
361#if defined(LWS_WITH_CUSTOM_HEADERS) || defined(LWS_HTTP_HEADERS_ALL)
362 WSI_TOKEN_UNKNOWN_VALUE_PART,
363#endif
368};
369
371 unsigned short token_limit[WSI_TOKEN_COUNT];
372};
373
386
392LWS_VISIBLE LWS_EXTERN const unsigned char *
394
405
417 int frag_idx);
418
434lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h);
435
454lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len,
455 enum lws_token_indexes h, int frag_idx);
456
474lws_hdr_custom_length(struct lws *wsi, const char *name, int nlen);
475
495lws_hdr_custom_copy(struct lws *wsi, char *dst, int len, const char *name,
496 int nlen);
497
498typedef void (*lws_hdr_custom_fe_cb_t)(const char *name, int nlen, void *opaque);
516lws_hdr_custom_name_foreach(struct lws *wsi, lws_hdr_custom_fe_cb_t cb, void *opaque);
517
540lws_get_urlarg_by_name_safe(struct lws *wsi, const char *name, char *buf, int len);
541
559LWS_VISIBLE LWS_EXTERN const char *
560lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len)
561/* LWS_WARN_DEPRECATED */;
563
579
580#define LWSAHH_CODE_MASK ((1 << 16) - 1)
581#define LWSAHH_FLAG_NO_SERVER_NAME (1 << 30)
582
599 unsigned int code, unsigned char **p,
600 unsigned char *end);
614lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name,
615 const unsigned char *value, int length,
616 unsigned char **p, unsigned char *end);
632 const unsigned char *value, int length,
633 unsigned char **p, unsigned char *end);
646 lws_filepos_t content_length,
647 unsigned char **p, unsigned char *end);
658lws_finalize_http_header(struct lws *wsi, unsigned char **p,
659 unsigned char *end);
660
673lws_finalize_write_http_header(struct lws *wsi, unsigned char *start,
674 unsigned char **p, unsigned char *end);
675
676#define LWS_ILLEGAL_HTTP_CONTENT_LEN ((lws_filepos_t)-1ll)
677
705lws_add_http_common_headers(struct lws *wsi, unsigned int code,
706 const char *content_type, lws_filepos_t content_len,
707 unsigned char **p, unsigned char *end);
708
709enum {
719};
720
733
735lws_http_get_uri_and_method(struct lws *wsi, char **puri_ptr, int *puri_len);
736
738
749
760LWS_VISIBLE LWS_EXTERN const char *
761lws_urlencode(char *escaped, const char *string, int len);
762
763/*
764 * URLDECODE 1 / 2
765 *
766 * This simple urldecode only operates until the first '\0' and requires the
767 * data to exist all at once
768 */
785lws_urldecode(char *string, const char *escaped, int len);
787
799lws_http_date_render_from_unix(char *buf, size_t len, const time_t *t);
800
812lws_http_date_parse_unix(const char *b, size_t len, time_t *t);
813
833lws_http_check_retry_after(struct lws *wsi, lws_usec_t *us_interval_in_out);
834
845lws_return_http_status(struct lws *wsi, unsigned int code,
846 const char *html_body);
847
861lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len,
862 unsigned char **p, unsigned char *end);
863
874
883lws_http_headers_detach(struct lws *wsi);
884
894lws_http_mark_sse(struct lws *wsi);
895
913
940lws_http_compression_apply(struct lws *wsi, const char *name,
941 unsigned char **p, unsigned char *end, char decomp);
942
953
972lws_http_cookie_get(struct lws *wsi, const char *name, char *buf, size_t *max);
973
982#define lws_http_client_http_resp_is_error(code) (!(code < 400))
983
1009#define LWS_H2_STREAM_SID -1
1011lws_h2_update_peer_txcredit(struct lws *wsi, unsigned int sid, int bump);
1012
1013
1027
1029
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_write_http_header(struct lws *wsi, unsigned char *start, unsigned char **p, unsigned char *end)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_status(struct lws *wsi, unsigned int code, unsigned char **p, unsigned char *end)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name, const unsigned char *value, int length, unsigned char **p, unsigned char *end)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_http_header(struct lws *wsi, unsigned char **p, unsigned char *end)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_common_headers(struct lws *wsi, unsigned int code, const char *content_type, lws_filepos_t content_len, unsigned char **p, unsigned char *end)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_get_uri_and_method(struct lws *wsi, char **puri_ptr, int *puri_len)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_content_length(struct lws *wsi, lws_filepos_t content_length, unsigned char **p, unsigned char *end)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_token(struct lws *wsi, enum lws_token_indexes token, const unsigned char *value, int length, unsigned char **p, unsigned char *end)
@ LWSHUMETH_CONNECT
Definition lws-http.h:716
@ LWSHUMETH_HEAD
Definition lws-http.h:717
@ LWSHUMETH_OPTIONS
Definition lws-http.h:712
@ LWSHUMETH_COLON_PATH
Definition lws-http.h:718
@ LWSHUMETH_PATCH
Definition lws-http.h:714
@ LWSHUMETH_PUT
Definition lws-http.h:713
@ LWSHUMETH_GET
Definition lws-http.h:710
@ LWSHUMETH_POST
Definition lws-http.h:711
@ LWSHUMETH_DELETE
Definition lws-http.h:715
unsigned short token_limit[WSI_TOKEN_COUNT]
Definition lws-http.h:371
unsigned char * token
Definition lws-http.h:205
LWS_VISIBLE LWS_EXTERN int lws_hdr_custom_copy(struct lws *wsi, char *dst, int len, const char *name, int nlen)
LWS_VISIBLE LWS_EXTERN int lws_hdr_custom_name_foreach(struct lws *wsi, lws_hdr_custom_fe_cb_t cb, void *opaque)
LWS_VISIBLE LWS_EXTERN int lws_get_urlarg_by_name_safe(struct lws *wsi, const char *name, char *buf, int len)
void(* lws_hdr_custom_fe_cb_t)(const char *name, int nlen, void *opaque)
Definition lws-http.h:498
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_fragment_length(struct lws *wsi, enum lws_token_indexes h, int frag_idx)
LWS_VISIBLE LWS_EXTERN int lws_hdr_custom_length(struct lws *wsi, const char *name, int nlen)
LWS_VISIBLE LWS_EXTERN int lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h)
lws_token_indexes
Definition lws-http.h:215
LWS_VISIBLE LWS_EXTERN const char * lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len)
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_total_length(struct lws *wsi, enum lws_token_indexes h)
LWS_VISIBLE LWS_EXTERN int lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len, enum lws_token_indexes h, int frag_idx)
LWS_VISIBLE LWS_EXTERN const unsigned char * lws_token_to_string(enum lws_token_indexes token)
lws_h2_settings
Definition lws-http.h:374
@ WSI_TOKEN_HTTP_LAST_MODIFIED
Definition lws-http.h:294
@ WSI_TOKEN_HTTP_CONTENT_LENGTH
Definition lws-http.h:253
@ WSI_TOKEN_HTTP_CONTENT_LANGUAGE
Definition lws-http.h:284
@ _WSI_TOKEN_CLIENT_ALPN
Definition lws-http.h:354
@ _WSI_TOKEN_CLIENT_SENT_PROTOCOLS
Definition lws-http.h:346
@ WSI_TOKEN_HTTP_EXPECT
Definition lws-http.h:288
@ _WSI_TOKEN_CLIENT_LOCALPORT
Definition lws-http.h:353
@ WSI_TOKEN_HTTP_FROM
Definition lws-http.h:290
@ WSI_TOKEN_DSS_SIGNATURE
Definition lws-http.h:339
@ _WSI_TOKEN_CLIENT_URI
Definition lws-http.h:348
@ WSI_TOKEN_HTTP_ETAG
Definition lws-http.h:287
@ _WSI_TOKEN_CLIENT_HOST
Definition lws-http.h:349
@ WSI_TOKEN_HTTP_CONTENT_DISPOSITION
Definition lws-http.h:282
@ WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE
Definition lws-http.h:293
@ _WSI_TOKEN_CLIENT_METHOD
Definition lws-http.h:351
@ WSI_TOKEN_HTTP_IF_MATCH
Definition lws-http.h:291
@ WSI_TOKEN_HTTP_ACCEPT
Definition lws-http.h:241
@ WSI_INIT_TOKEN_MUXURL
Definition lws-http.h:367
@ WSI_PARSING_COMPLETE
Definition lws-http.h:366
@ WSI_TOKEN_HTTP_SET_COOKIE
Definition lws-http.h:305
@ WSI_TOKEN_X_AUTH_TOKEN
Definition lws-http.h:338
@ WSI_TOKEN_HTTP_LINK
Definition lws-http.h:295
@ WSI_TOKEN_HTTP_ACCEPT_LANGUAGE
Definition lws-http.h:248
@ WSI_TOKEN_HTTP_SERVER
Definition lws-http.h:304
@ WSI_TOKEN_HTTP_CONTENT_ENCODING
Definition lws-http.h:283
@ WSI_TOKEN_HTTP_IF_NONE_MATCH
Definition lws-http.h:246
@ WSI_TOKEN_HTTP_IF_RANGE
Definition lws-http.h:292
@ _WSI_TOKEN_CLIENT_PEER_ADDRESS
Definition lws-http.h:347
@ WSI_TOKEN_HTTP_ALLOW
Definition lws-http.h:281
@ WSI_TOKEN_HTTP_CONTENT_LOCATION
Definition lws-http.h:285
@ WSI_TOKEN_HTTP_ACCEPT_RANGES
Definition lws-http.h:276
@ WSI_TOKEN_HOST
Definition lws-http.h:221
@ WSI_TOKEN_HTTP_TRANSFER_ENCODING
Definition lws-http.h:309
@ WSI_TOKEN_HTTP
Definition lws-http.h:237
@ WSI_TOKEN_HTTP_URI_ARGS
Definition lws-http.h:322
@ WSI_TOKEN_POST_URI
Definition lws-http.h:217
@ WSI_TOKEN_HTTP_RETRY_AFTER
Definition lws-http.h:303
@ WSI_TOKEN_HTTP_EXPIRES
Definition lws-http.h:289
@ WSI_TOKEN_HTTP_IF_MODIFIED_SINCE
Definition lws-http.h:245
@ WSI_TOKEN_HEAD_URI
Definition lws-http.h:330
@ WSI_TOKEN_COUNT
Definition lws-http.h:357
@ WSI_TOKEN_HTTP_COOKIE
Definition lws-http.h:252
@ WSI_TOKEN_HTTP_CONTENT_RANGE
Definition lws-http.h:286
@ WSI_TOKEN_HTTP_CACHE_CONTROL
Definition lws-http.h:250
@ WSI_TOKEN_SKIPPING_SAW_CR
Definition lws-http.h:365
@ WSI_TOKEN_HTTP_REFRESH
Definition lws-http.h:302
@ WSI_TOKEN_HTTP_RANGE
Definition lws-http.h:256
@ _WSI_TOKEN_CLIENT_ORIGIN
Definition lws-http.h:350
@ WSI_TOKEN_NAME_PART
Definition lws-http.h:360
@ WSI_TOKEN_UPGRADE
Definition lws-http.h:223
@ WSI_TOKEN_X_FORWARDED_FOR
Definition lws-http.h:328
@ WSI_TOKEN_SKIPPING
Definition lws-http.h:364
@ WSI_TOKEN_CONNECT
Definition lws-http.h:329
@ WSI_TOKEN_CONNECTION
Definition lws-http.h:222
@ WSI_TOKEN_HTTP_ACCEPT_ENCODING
Definition lws-http.h:247
@ WSI_TOKEN_ORIGIN
Definition lws-http.h:224
@ WSI_TOKEN_HTTP_CONTENT_TYPE
Definition lws-http.h:254
@ WSI_TOKEN_HTTP_LOCATION
Definition lws-http.h:296
@ WSI_TOKEN_HTTP_AUTHORIZATION
Definition lws-http.h:251
@ WSI_TOKEN_GET_URI
Definition lws-http.h:216
@ WSI_TOKEN_HTTP_AGE
Definition lws-http.h:280
@ WSI_TOKEN_HTTP_DATE
Definition lws-http.h:255
@ WSI_TOKEN_HTTP_PRAGMA
Definition lws-http.h:249
@ WSI_TOKEN_CHALLENGE
Definition lws-http.h:228
@ WSI_TOKEN_HTTP1_0
Definition lws-http.h:327
@ _WSI_TOKEN_CLIENT_IFACE
Definition lws-http.h:352
@ H2SET_MAX_HEADER_LIST_SIZE
Definition lws-http.h:380
@ H2SET_HEADER_TABLE_SIZE
Definition lws-http.h:375
@ H2SET_MAX_CONCURRENT_STREAMS
Definition lws-http.h:377
@ H2SET_INITIAL_WINDOW_SIZE
Definition lws-http.h:378
@ H2SET_ENABLE_PUSH
Definition lws-http.h:376
@ H2SET_MAX_FRAME_SIZE
Definition lws-http.h:379
@ H2SET_COUNT
Definition lws-http.h:384
@ H2SET_ENABLE_CONNECT_PROTOCOL
Definition lws-http.h:382
@ H2SET_RESERVED7
Definition lws-http.h:381
#define LWS_EXTERN
int64_t lws_usec_t
#define LWS_WARN_UNUSED_RESULT
#define LWS_VISIBLE
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)
const char *const * vars
Definition lws-http.h:148
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
Definition lws-http.h:151
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_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)
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)
http_status
Definition lws-http.h:83
@ HTTP_STATUS_EXPECTATION_FAILED
Definition lws-http.h:112
@ HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE
Definition lws-http.h:110
@ HTTP_STATUS_NOT_ACCEPTABLE
Definition lws-http.h:101
@ HTTP_STATUS_REQ_URI_TOO_LONG
Definition lws-http.h:109
@ HTTP_STATUS_INTERNAL_SERVER_ERROR
Definition lws-http.h:114
@ HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE
Definition lws-http.h:111
@ HTTP_STATUS_REQUEST_TIMEOUT
Definition lws-http.h:103
@ HTTP_STATUS_PROXY_AUTH_REQUIRED
Definition lws-http.h:102
@ HTTP_STATUS_FORBIDDEN
Definition lws-http.h:98
@ HTTP_STATUS_BAD_REQUEST
Definition lws-http.h:95
@ HTTP_STATUS_FOUND
Definition lws-http.h:91
@ HTTP_STATUS_METHOD_NOT_ALLOWED
Definition lws-http.h:100
@ HTTP_STATUS_GONE
Definition lws-http.h:105
@ HTTP_STATUS_NOT_MODIFIED
Definition lws-http.h:93
@ HTTP_STATUS_CONFLICT
Definition lws-http.h:104
@ HTTP_STATUS_MOVED_PERMANENTLY
Definition lws-http.h:90
@ HTTP_STATUS_PARTIAL_CONTENT
Definition lws-http.h:88
@ HTTP_STATUS_REQ_ENTITY_TOO_LARGE
Definition lws-http.h:108
@ HTTP_STATUS_SERVICE_UNAVAILABLE
Definition lws-http.h:117
@ HTTP_STATUS_LENGTH_REQUIRED
Definition lws-http.h:106
@ HTTP_STATUS_PRECONDITION_FAILED
Definition lws-http.h:107
@ HTTP_STATUS_BAD_GATEWAY
Definition lws-http.h:116
@ HTTP_STATUS_NOT_IMPLEMENTED
Definition lws-http.h:115
@ HTTP_STATUS_NO_CONTENT
Definition lws-http.h:87
@ HTTP_STATUS_OK
Definition lws-http.h:86
@ HTTP_STATUS_CONTINUE
Definition lws-http.h:84
@ HTTP_STATUS_UNAUTHORIZED
Definition lws-http.h:96
@ HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED
Definition lws-http.h:119
@ HTTP_STATUS_SEE_OTHER
Definition lws-http.h:92
@ HTTP_STATUS_GATEWAY_TIMEOUT
Definition lws-http.h:118
@ HTTP_STATUS_NOT_FOUND
Definition lws-http.h:99
@ HTTP_STATUS_PAYMENT_REQUIRED
Definition lws-http.h:97
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)
Definition lws-http.h:141
LWS_VISIBLE LWS_EXTERN int lws_h2_client_stream_long_poll_rxonly(struct lws *wsi)