VLC 4.0.0-dev
|
Go to the source code of this file.
Data Structures | |
struct | vlc_http_stream_cbs |
HTTP stream callbacks. More... | |
struct | vlc_http_stream |
HTTP stream. More... | |
Functions | |
struct vlc_http_msg * | vlc_http_req_create (const char *method, const char *scheme, const char *authority, const char *path) VLC_USED |
Creates an HTTP request. | |
struct vlc_http_msg * | vlc_http_resp_create (unsigned status) VLC_USED |
Creates an HTTP response. | |
void | vlc_http_msg_destroy (struct vlc_http_msg *) |
Destroys an HTTP message. | |
int | vlc_http_msg_add_header (struct vlc_http_msg *, const char *name, const char *fmt,...) VLC_FORMAT(3 |
Formats a header field. | |
int char * | vlc_http_authority (const char *host, unsigned port) |
Formats an authority. | |
int | vlc_http_msg_add_agent (struct vlc_http_msg *, const char *) |
Sets the agent field. | |
const char * | vlc_http_msg_get_agent (const struct vlc_http_msg *) |
Gets the agent field. | |
time_t | vlc_http_msg_get_time (const struct vlc_http_msg *msg, const char *name) |
Parses a timestamp header field. | |
int | vlc_http_msg_add_time (struct vlc_http_msg *msg, const char *name, const time_t *t) |
Adds a timestamp header field. | |
int | vlc_http_msg_add_atime (struct vlc_http_msg *) |
Adds a Date header field. | |
time_t | vlc_http_msg_get_atime (const struct vlc_http_msg *) |
Gets message date. | |
time_t | vlc_http_msg_get_mtime (const struct vlc_http_msg *) |
Gets resource date. | |
unsigned | vlc_http_msg_get_retry_after (const struct vlc_http_msg *) |
Gets retry timeout. | |
void | vlc_http_msg_get_cookies (const struct vlc_http_msg *, struct vlc_http_cookie_jar_t *, const char *host, const char *path) |
int | vlc_http_msg_add_cookies (struct vlc_http_msg *, struct vlc_http_cookie_jar_t *) |
char * | vlc_http_msg_get_basic_realm (const struct vlc_http_msg *) |
int | vlc_http_msg_add_creds_basic (struct vlc_http_msg *msg, bool proxy, const char *username, const char *password) |
Adds Basic credentials. | |
const char * | vlc_http_msg_get_header (const struct vlc_http_msg *, const char *name) |
Looks up an header field. | |
int | vlc_http_msg_get_status (const struct vlc_http_msg *m) |
Gets response status code. | |
const char * | vlc_http_msg_get_method (const struct vlc_http_msg *) |
Gets request method. | |
const char * | vlc_http_msg_get_scheme (const struct vlc_http_msg *) |
Gets request scheme. | |
const char * | vlc_http_msg_get_authority (const struct vlc_http_msg *) |
Gets request authority. | |
const char * | vlc_http_msg_get_path (const struct vlc_http_msg *) |
Gets request absolute path. | |
const char * | vlc_http_msg_get_token (const struct vlc_http_msg *msg, const char *field, const char *token) |
Looks up a token in a header field. | |
const char * | vlc_http_next_token (const char *) |
Finds next token. | |
uintmax_t | vlc_http_msg_get_size (const struct vlc_http_msg *) |
Gets HTTP payload length. | |
struct vlc_http_msg * | vlc_http_msg_iterate (struct vlc_http_msg *) VLC_USED |
Gets next response headers. | |
struct vlc_http_msg * | vlc_http_msg_get_final (struct vlc_http_msg *) VLC_USED |
Gets final response headers. | |
block_t * | vlc_http_msg_read (struct vlc_http_msg *) VLC_USED |
Receives HTTP data. | |
int | vlc_http_msg_write (struct vlc_http_msg *msg, block_t *b, bool eos) |
Sends HTTP data. | |
void | vlc_http_msg_attach (struct vlc_http_msg *m, struct vlc_http_stream *s) |
struct vlc_http_msg * | vlc_http_msg_get_initial (struct vlc_http_stream *s) VLC_USED |
static struct vlc_http_msg * | vlc_http_stream_read_headers (struct vlc_http_stream *s) |
Reads one message header. | |
static ssize_t | vlc_http_stream_write (struct vlc_http_stream *s, const void *base, size_t length, bool eos) |
Write message payload data. | |
static block_t * | vlc_http_stream_read (struct vlc_http_stream *s) |
Reads message payload data. | |
static void | vlc_http_stream_close (struct vlc_http_stream *s, bool abort) |
Closes an HTTP stream. | |
char * | vlc_http_msg_format (const struct vlc_http_msg *m, size_t *restrict lenp, bool proxied, bool chunked) VLC_USED VLC_MALLOC |
Formats an HTTP 1.1 message header. | |
struct vlc_http_msg * | vlc_http_msg_headers (const char *msg) VLC_USED |
Parses an HTTP 1.1 message header. | |
struct vlc_h2_frame * | vlc_http_msg_h2_frame (const struct vlc_http_msg *m, uint_fast32_t stream_id, bool eos) |
Formats an HTTP 2.0 HEADER frame. | |
struct vlc_http_msg * | vlc_http_msg_h2_headers (unsigned count, const char *const headers[][2]) |
Parses an HTTP 2.0 header table. | |
Variables | |
void *const | vlc_http_error |
Error pointer value. | |
char * vlc_http_msg_format | ( | const struct vlc_http_msg * | m, |
size_t *restrict | lenp, | ||
bool | proxied, | ||
bool | chunked | ||
) |
Formats an HTTP 1.1 message header.
Formats an message header in HTTP 1.x format, using HTTP version 1.1.
m | message to format/serialize |
lenp | location to write the length of the formatted message in bytes [OUT] |
proxied | whether the message is meant for sending to a proxy rather than an origin (only relevant for requests) |
chunked | whether to append a chunked transfer encoding header line |
References vlc_http_msg::authority, vlc_http_msg::count, vlc_http_msg::headers, vlc_http_msg::method, vlc_http_msg::path, vlc_http_msg::scheme, vlc_http_msg::status, vlc_memstream::stream, vlc_memstream_close(), vlc_memstream_open(), vlc_memstream_printf(), and vlc_memstream_puts().
Referenced by vlc_h1_stream_open().
struct vlc_h2_frame * vlc_http_msg_h2_frame | ( | const struct vlc_http_msg * | m, |
uint_fast32_t | stream_id, | ||
bool | eos | ||
) |
Formats an HTTP 2.0 HEADER frame.
References ARRAY_SIZE, vlc_http_msg::authority, vlc_http_msg::count, vlc_http_msg::headers, vlc_http_msg::method, vlc_http_msg::path, vlc_http_msg::scheme, vlc_http_msg::status, strcasecmp(), unlikely, vlc_alloc(), VLC_H2_DEFAULT_MAX_FRAME, and vlc_h2_frame_headers().
Referenced by vlc_h2_stream_open().
struct vlc_http_msg * vlc_http_msg_h2_headers | ( | unsigned | count, |
const char *const | headers[][2] | ||
) |
Parses an HTTP 2.0 header table.
References vlc_http_msg::authority, vlc_http_msg::method, name, vlc_http_msg::path, vlc_http_msg::scheme, vlc_http_msg::status, strdup(), unlikely, vlc_http_msg_add_header(), vlc_http_msg_destroy(), and vlc_http_resp_create().
Referenced by vlc_h2_stream_headers().
struct vlc_http_msg * vlc_http_msg_headers | ( | const char * | msg | ) |
Parses an HTTP 1.1 message header.
References name, strndup(), unlikely, vlc_http_msg_add_header(), vlc_http_msg_destroy(), and vlc_http_resp_create().
Referenced by vlc_h1_stream_wait().