![]() |
libwebsockets
Lightweight C library for HTML5 websockets
|
Functions | |
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_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) |
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT | lws_add_http_header_content_length (struct lws *wsi, unsigned long content_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) |
These apis allow you to create HTTP response headers in a way compatible with both HTTP/1.x and HTTP/2.
They each append to a buffer taking care about the buffer end, which is passed in as a pointer. When data is written to the buffer, the current position p is updated accordingly.
All of these apis are LWS_WARN_UNUSED_RESULT as they can run out of space and fail with nonzero return.
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 | ||
) |
#include <lib/libwebsockets.h>
lws_add_http_header_by_name() - append named header and value
wsi | the connection to check |
name | the hdr name, like "my-header" |
value | the value after the = for this header |
length | the length of the value |
p | pointer to current position in buffer pointer |
end | pointer to end of buffer |
Appends name: value to the headers
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 | ||
) |
#include <lib/libwebsockets.h>
lws_add_http_header_by_token() - append given header and value
wsi | the connection to check |
token | the token index for the hdr |
value | the value after the = for this header |
length | the length of the value |
p | pointer to current position in buffer pointer |
end | pointer to end of buffer |
Appends name=value to the headers, but is able to take advantage of better HTTP/2 coding mechanisms where possible.
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_content_length | ( | struct lws * | wsi, |
unsigned long | content_length, | ||
unsigned char ** | p, | ||
unsigned char * | end | ||
) |
#include <lib/libwebsockets.h>
lws_add_http_header_by_name() - append content-length helper
wsi | the connection to check |
content_length | the content length to use |
p | pointer to current position in buffer pointer |
end | pointer to end of buffer |
Appends content-length: content_length to the headers
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 | ||
) |
#include <lib/libwebsockets.h>
lws_add_http_header_status() - add the HTTP response status code
wsi | the connection to check |
code | an HTTP code like 200, 404 etc (see enum http_status) |
p | pointer to current position in buffer pointer |
end | pointer to end of buffer |
Adds the initial response code, so should be called first
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_http_header | ( | struct lws * | wsi, |
unsigned char ** | p, | ||
unsigned char * | end | ||
) |
#include <lib/libwebsockets.h>
lws_finalize_http_header() - terminate header block
wsi | the connection to check |
p | pointer to current position in buffer pointer |
end | pointer to end of buffer |
Indicates no more headers will be added