http.c File Reference
#include "libavutil/avstring.h"
#include "avformat.h"
#include <unistd.h>
#include "internal.h"
#include "network.h"
#include "http.h"
#include "os_support.h"
#include "httpauth.h"
#include "url.h"
#include "libavutil/opt.h"

Go to the source code of this file.

Data Structures

struct  HTTPContext

Macros

#define BUFFER_SIZE   1024
#define MAX_REDIRECTS   8
#define OFFSET(x)   offsetof(HTTPContext, x)
#define D   AV_OPT_FLAG_DECODING_PARAM
#define E   AV_OPT_FLAG_ENCODING_PARAM
#define HTTP_CLASS(flavor)

Functions

 HTTP_CLASS (http)
 HTTP_CLASS (https)
static int http_connect (URLContext *h, const char *path, const char *local_path, const char *hoststr, const char *auth, const char *proxyauth, int *new_location)
void ff_http_init_auth_state (URLContext *dest, const URLContext *src)
 Initialize the authentication state based on another HTTP URLContext.
static int http_open_cnx (URLContext *h)
static int http_open (URLContext *h, const char *uri, int flags)
static int http_getc (HTTPContext *s)
static int http_get_line (HTTPContext *s, char *line, int line_size)
static int process_line (URLContext *h, char *line, int line_count, int *new_location)
static int has_header (const char *str, const char *header)
static int http_buf_read (URLContext *h, uint8_t *buf, 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)

Variables

static const AVOption options []

Macro Definition Documentation

#define BUFFER_SIZE   1024

Definition at line 37 of file http.c.

Referenced by http_getc(), and http_seek().

Definition at line 57 of file http.c.

Definition at line 58 of file http.c.

#define HTTP_CLASS (   flavor)
Value:
static const AVClass flavor ## _context_class = {\
.class_name = #flavor,\
.item_name = av_default_item_name,\
.option = options,\
.version = LIBAVUTIL_VERSION_INT,\
}

Definition at line 64 of file http.c.

#define MAX_REDIRECTS   8

Definition at line 38 of file http.c.

Referenced by http_open_cnx().

#define OFFSET (   x)    offsetof(HTTPContext, x)

Definition at line 56 of file http.c.

Function Documentation

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.

Parameters
destURL context whose authentication state gets updated
srcURL context whose authentication state gets copied

Definition at line 79 of file http.c.

static int has_header ( const char *  str,
const char *  header 
)
inlinestatic

Definition at line 313 of file http.c.

Referenced by http_connect().

static int http_buf_read ( URLContext h,
uint8_t *  buf,
int  size 
)
static

Definition at line 418 of file http.c.

Referenced by http_read().

HTTP_CLASS ( http  )
HTTP_CLASS ( https  )
static int http_close ( URLContext h)
static

Definition at line 497 of file http.c.

static int http_connect ( URLContext h,
const char *  path,
const char *  local_path,
const char *  hoststr,
const char *  auth,
const char *  proxyauth,
int *  new_location 
)
static

Definition at line 321 of file http.c.

Referenced by http_open_cnx().

static int http_get_file_handle ( URLContext h)
static

Definition at line 551 of file http.c.

static int http_get_line ( HTTPContext s,
char *  line,
int  line_size 
)
static

Definition at line 214 of file http.c.

Referenced by http_connect(), and http_read().

static int http_getc ( HTTPContext s)
static

Definition at line 197 of file http.c.

Referenced by http_get_line().

static int http_open ( URLContext h,
const char *  uri,
int  flags 
)
static

Definition at line 180 of file http.c.

static int http_open_cnx ( URLContext h)
static

Definition at line 89 of file http.c.

Referenced by http_open(), and http_seek().

static int http_read ( URLContext h,
uint8_t *  buf,
int  size 
)
static

Definition at line 442 of file http.c.

static int64_t http_seek ( URLContext h,
int64_t  off,
int  whence 
)
static

Definition at line 514 of file http.c.

static int http_write ( URLContext h,
const uint8_t *  buf,
int  size 
)
static

Definition at line 471 of file http.c.

static int process_line ( URLContext h,
char *  line,
int  line_count,
int *  new_location 
)
static

Definition at line 238 of file http.c.

Referenced by http_connect().

Variable Documentation

const AVOption options[]
static
Initial value:
{
{"chunked_post", "use chunked transfer-encoding for posts", OFFSET(chunked_post), AV_OPT_TYPE_INT, {.dbl = 1}, 0, 1, E },
{"headers", "custom HTTP headers, can override built in default headers", OFFSET(headers), AV_OPT_TYPE_STRING, { 0 }, 0, 0, D|E },
}

Definition at line 59 of file http.c.