VLC 4.0.0-dev
|
Functions | |
struct vlc_http_conn * | vlc_h1_conn_create (void *ctx, struct vlc_tls *, bool proxy) |
struct vlc_http_stream * | vlc_chunked_open (struct vlc_http_stream *, struct vlc_tls *) |
ssize_t | vlc_https_chunked_write (struct vlc_tls *, const void *base, size_t len, bool eos) |
struct vlc_http_stream * | vlc_h1_request (void *ctx, const char *hostname, unsigned port, bool proxy, const struct vlc_http_msg *req, bool idempotent, bool has_data, struct vlc_http_conn **restrict connp) |
Sends an HTTP/1.x request through a new connection. More... | |
struct vlc_http_stream * vlc_chunked_open | ( | struct vlc_http_stream * | parent, |
struct vlc_tls * | tls | ||
) |
struct vlc_http_conn * vlc_h1_conn_create | ( | void * | ctx, |
struct vlc_tls * | tls, | ||
bool | proxy | ||
) |
References vlc_http_conn::cbs, vlc_h1_conn::conn, vlc_h1_conn::proxy, vlc_http_conn::tls, unlikely, vlc_h1_conn_callbacks, and vlc_h1_stream_callbacks.
Referenced by vlc_h1_request(), vlc_https_connect_proxy(), and vlc_https_request().
struct vlc_http_stream * vlc_h1_request | ( | void * | ctx, |
const char * | hostname, | ||
unsigned | port, | ||
bool | proxy, | ||
const struct vlc_http_msg * | req, | ||
bool | idempotent, | ||
bool | has_data, | ||
struct vlc_http_conn **restrict | connp | ||
) |
Sends an HTTP/1.x request through a new connection.
This function resolves a the specified HTTP server hostname, establishes a connection to specified TCP port of the server, then sends an HTTP request. The connection is not protected with TLS.
All those operations are combined in a single function call in order to support TCP Fast Open. That can save one round-trip when establishing a new HTTP connection.
ctx | opaque context pointer for the HTTP connection |
hostname | HTTP server or proxy hostname to connect to |
port | TCP port number to connect to |
proxy | true of the hostname and port correspond to an HTTP proxy, or false if they correspond to an HTTP origin server |
req | HTTP request message |
idempotent | whether the HTTP request is idempotent (e.g. GET), or not (e.g. POST) |
has_data | whether the HTTP request will have a request payload |
connp | pointer to storage space for the established HTTP connection (or NULL if the connection is not to be reused) [OUT] can be NULL if the connection is not meant to be reused |
References p, unlikely, vlc_getaddrinfo_i11e(), vlc_h1_conn_create(), vlc_http_conn_release(), vlc_http_dbg(), vlc_http_err(), vlc_http_stream_open(), vlc_strerror_c(), vlc_tls_SessionDelete(), and vlc_tls_SocketOpenAddrInfo().
Referenced by vlc_http_request().
ssize_t vlc_https_chunked_write | ( | struct vlc_tls * | tls, |
const void * | base, | ||
size_t | len, | ||
bool | eos | ||
) |
References vlc_tls_Write().
Referenced by vlc_h1_stream_write().