FFmpeg
|
#include "config.h"
#include "config_components.h"
#include <time.h>
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/getenv_utf8.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "avformat.h"
#include "http.h"
#include "httpauth.h"
#include "internal.h"
#include "network.h"
#include "os_support.h"
#include "url.h"
#include "version.h"
Go to the source code of this file.
Data Structures | |
struct | HTTPContext |
Macros | |
#define | BUFFER_SIZE (MAX_URL_SIZE + HTTP_HEADERS_SIZE) |
#define | MAX_REDIRECTS 8 |
#define | MAX_CACHED_REDIRECTS 32 |
#define | HTTP_SINGLE 1 |
#define | HTTP_MUTLI 2 |
#define | MAX_EXPIRY 19 |
#define | WHITESPACES " \n\t\r" |
#define | OFFSET(x) offsetof(HTTPContext, x) |
#define | D AV_OPT_FLAG_DECODING_PARAM |
#define | E AV_OPT_FLAG_ENCODING_PARAM |
#define | DEFAULT_USER_AGENT "Lavf/" AV_STRINGIFY(LIBAVFORMAT_VERSION) |
#define | NEEDS_ESCAPE(ch) |
#define | HTTP_CLASS(flavor) |
Enumerations | |
enum | HandshakeState { LOWER_PROTO, READ_HEADERS, WRITE_REPLY_HEADERS, FINISH } |
Functions | |
static int | http_connect (URLContext *h, const char *path, const char *local_path, const char *hoststr, const char *auth, const char *proxyauth) |
static int | http_read_header (URLContext *h) |
static int | http_shutdown (URLContext *h, int flags) |
void | ff_http_init_auth_state (URLContext *dest, const URLContext *src) |
Initialize the authentication state based on another HTTP URLContext. More... | |
static int | http_open_cnx_internal (URLContext *h, AVDictionary **options) |
static int | http_should_reconnect (HTTPContext *s, int err) |
static char * | redirect_cache_get (HTTPContext *s) |
static int | redirect_cache_set (HTTPContext *s, const char *source, const char *dest, int64_t expiry) |
static int | http_open_cnx (URLContext *h, AVDictionary **options) |
int | ff_http_do_new_request (URLContext *h, const char *uri) |
Send a new HTTP request, reusing the old connection. More... | |
int | ff_http_do_new_request2 (URLContext *h, const char *uri, AVDictionary **opts) |
Send a new HTTP request, reusing the old connection. More... | |
int | ff_http_averror (int status_code, int default_averror) |
static int | http_write_reply (URLContext *h, int status_code) |
static void | handle_http_errors (URLContext *h, int error) |
static int | http_handshake (URLContext *c) |
static int | http_listen (URLContext *h, const char *uri, int flags, AVDictionary **options) |
static int | http_open (URLContext *h, const char *uri, int flags, AVDictionary **options) |
static int | http_accept (URLContext *s, URLContext **c) |
static int | http_getc (HTTPContext *s) |
static int | http_get_line (HTTPContext *s, char *line, int line_size) |
static int | check_http_code (URLContext *h, int http_code, const char *end) |
static int | parse_location (HTTPContext *s, const char *p) |
static void | parse_content_range (URLContext *h, const char *p) |
static int | parse_content_encoding (URLContext *h, const char *p) |
static int | parse_icy (HTTPContext *s, const char *tag, const char *p) |
static int | parse_set_cookie_expiry_time (const char *exp_str, struct tm *buf) |
static int | parse_set_cookie (const char *set_cookie, AVDictionary **dict) |
static int | parse_cookie (HTTPContext *s, const char *p, AVDictionary **cookies) |
static int | cookie_string (AVDictionary *dict, char **cookies) |
static void | parse_expires (HTTPContext *s, const char *p) |
static void | parse_cache_control (HTTPContext *s, const char *p) |
static int | process_line (URLContext *h, char *line, int line_count) |
static int | get_cookies (HTTPContext *s, char **cookies, const char *path, const char *domain) |
Create a string containing cookie values for use as a HTTP cookie header field value for a particular path and domain from the cookie values stored in the HTTP protocol context. More... | |
static int | has_header (const char *str, const char *header) |
static void | bprint_escaped_path (AVBPrint *bp, const char *path) |
Escape unsafe characters in path in order to pass them safely to the HTTP request. More... | |
static int | http_buf_read (URLContext *h, uint8_t *buf, int size) |
static int64_t | http_seek_internal (URLContext *h, int64_t off, int whence, int force_reconnect) |
static int | http_read_stream (URLContext *h, uint8_t *buf, int size) |
static int | http_read_stream_all (URLContext *h, uint8_t *buf, int size) |
static void | update_metadata (URLContext *h, char *data) |
static int | store_icy (URLContext *h, int size) |
static int | http_read (URLContext *h, uint8_t *buf, int size) |
static int | http_write (URLContext *h, const uint8_t *buf, int size) |
static int | http_close (URLContext *h) |
static int64_t | http_seek (URLContext *h, int64_t off, int whence) |
static int | http_get_file_handle (URLContext *h) |
static int | http_get_short_seek (URLContext *h) |
Variables | |
static const AVOption | options [] |
#define BUFFER_SIZE (MAX_URL_SIZE + HTTP_HEADERS_SIZE) |
#define OFFSET | ( | x | ) | offsetof(HTTPContext, x) |
#define D AV_OPT_FLAG_DECODING_PARAM |
#define E AV_OPT_FLAG_ENCODING_PARAM |
#define DEFAULT_USER_AGENT "Lavf/" AV_STRINGIFY(LIBAVFORMAT_VERSION) |
#define NEEDS_ESCAPE | ( | ch | ) |
#define HTTP_CLASS | ( | flavor | ) |
enum HandshakeState |
|
static |
Definition at line 1400 of file http.c.
Referenced by http_open_cnx_internal().
|
static |
Definition at line 1330 of file http.c.
Referenced by http_connect(), http_handshake(), and http_read_stream().
|
static |
Definition at line 1846 of file http.c.
Referenced by ff_http_do_new_request2(), and http_close().
void ff_http_init_auth_state | ( | URLContext * | dest, |
const URLContext * | src | ||
) |
Initialize the authentication state based on another HTTP URLContext.
This can be used to pre-initialize the authentication parameters if they are known beforehand, to avoid having to do an initial failing request just to get the parameters.
dest | URL context whose authentication state gets updated |
src | URL context whose authentication state gets copied |
|
static |
Definition at line 201 of file http.c.
Referenced by http_open_cnx().
|
static |
Definition at line 278 of file http.c.
Referenced by http_open_cnx().
|
static |
Definition at line 311 of file http.c.
Referenced by http_open_cnx().
|
static |
Definition at line 335 of file http.c.
Referenced by http_open_cnx().
|
static |
Definition at line 353 of file http.c.
Referenced by ff_http_do_new_request2(), http_open(), and http_seek_internal().
int ff_http_do_new_request | ( | URLContext * | h, |
const char * | uri | ||
) |
Send a new HTTP request, reusing the old connection.
h | pointer to the resource |
uri | uri used to perform the request |
Definition at line 453 of file http.c.
Referenced by dashenc_io_open(), hlsenc_io_open(), and rtmp_http_send_cmd().
int ff_http_do_new_request2 | ( | URLContext * | h, |
const char * | uri, | ||
AVDictionary ** | options | ||
) |
Send a new HTTP request, reusing the old connection.
h | pointer to the resource |
uri | uri used to perform the request |
options | A dictionary filled with HTTP options. On return this parameter will be destroyed and replaced with a dict containing options that were not found. May be NULL. |
Definition at line 457 of file http.c.
Referenced by ff_http_do_new_request(), and open_url_keepalive().
Definition at line 517 of file http.c.
Referenced by check_http_code(), ff_rtsp_averror(), http_open_cnx(), and process_line().
|
static |
Definition at line 534 of file http.c.
Referenced by handle_http_errors(), and http_handshake().
|
static |
Definition at line 608 of file http.c.
Referenced by http_handshake().
|
static |
Definition at line 614 of file http.c.
Referenced by http_listen().
|
static |
Definition at line 650 of file http.c.
Referenced by http_open().
|
static |
|
static |
|
static |
Definition at line 759 of file http.c.
Referenced by http_get_line().
|
static |
Definition at line 776 of file http.c.
Referenced by http_buf_read(), and http_read_header().
|
static |
Definition at line 800 of file http.c.
Referenced by process_line().
|
static |
Definition at line 815 of file http.c.
Referenced by process_line().
|
static |
Definition at line 828 of file http.c.
Referenced by process_line().
|
static |
Definition at line 843 of file http.c.
Referenced by process_line().
|
static |
Definition at line 877 of file http.c.
Referenced by process_line().
|
static |
Definition at line 899 of file http.c.
Referenced by get_cookies(), parse_cookie(), and parse_expires().
|
static |
Definition at line 924 of file http.c.
Referenced by get_cookies(), and parse_cookie().
|
static |
Definition at line 961 of file http.c.
Referenced by get_cookies(), and process_line().
|
static |
Definition at line 1023 of file http.c.
Referenced by http_read_header().
|
static |
Definition at line 1046 of file http.c.
Referenced by process_line().
|
static |
Definition at line 1055 of file http.c.
Referenced by process_line().
|
static |
Definition at line 1082 of file http.c.
Referenced by http_read_header(), and init_filter().
|
static |
Create a string containing cookie values for use as a HTTP cookie header field value for a particular path and domain from the cookie values stored in the HTTP protocol context.
The cookie string is stored in *cookies, and may be NULL if there are no valid cookies.
Definition at line 1238 of file http.c.
Referenced by http_connect().
|
inlinestatic |
Definition at line 1322 of file http.c.
Referenced by http_connect().
|
static |
Escape unsafe characters in path in order to pass them safely to the HTTP request.
Insipred by the algorithm in GNU wget:
Definition at line 1376 of file http.c.
Referenced by http_connect().
|
static |
Definition at line 1560 of file http.c.
Referenced by http_read_stream().
|
static |
Definition at line 1899 of file http.c.
Referenced by http_read_stream(), and http_seek().
|
static |
Definition at line 1669 of file http.c.
Referenced by http_read(), and http_read_stream_all().
|
static |
Definition at line 1725 of file http.c.
Referenced by store_icy().
|
static |
Definition at line 1737 of file http.c.
Referenced by store_icy().
|
static |
Definition at line 1765 of file http.c.
Referenced by http_read().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 147 of file http.c.
Referenced by ff_http_do_new_request2(), http_listen(), http_open(), http_open_cnx(), http_open_cnx_internal(), and http_seek_internal().