FFmpeg  4.0
Data Structures | Macros | Functions | Variables
tls_openssl.c File Reference
#include "avformat.h"
#include "internal.h"
#include "network.h"
#include "os_support.h"
#include "url.h"
#include "tls.h"
#include "libavcodec/internal.h"
#include "libavutil/avstring.h"
#include "libavutil/avutil.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "libavutil/thread.h"
#include <openssl/bio.h>
#include <openssl/ssl.h>
#include <openssl/err.h>

Go to the source code of this file.

Data Structures

struct  TLSContext
 

Macros

#define GET_BIO_DATA(x)   (x)->ptr
 

Functions

int ff_openssl_init (void)
 
void ff_openssl_deinit (void)
 
static int print_tls_error (URLContext *h, int ret)
 
static int tls_close (URLContext *h)
 
static int url_bio_create (BIO *b)
 
static int url_bio_destroy (BIO *b)
 
static int url_bio_bread (BIO *b, char *buf, int len)
 
static int url_bio_bwrite (BIO *b, const char *buf, int len)
 
static long url_bio_ctrl (BIO *b, int cmd, long num, void *ptr)
 
static int url_bio_bputs (BIO *b, const char *str)
 
static int tls_open (URLContext *h, const char *uri, int flags, AVDictionary **options)
 
static int tls_read (URLContext *h, uint8_t *buf, int size)
 
static int tls_write (URLContext *h, const uint8_t *buf, int size)
 
static int tls_get_file_handle (URLContext *h)
 

Variables

static int openssl_init
 
static BIO_METHOD url_bio_method
 
static const AVOption options []
 
static const AVClass tls_class
 
const URLProtocol ff_tls_protocol
 

Macro Definition Documentation

◆ GET_BIO_DATA

#define GET_BIO_DATA (   x)    (x)->ptr

Definition at line 170 of file tls_openssl.c.

Referenced by url_bio_bread(), and url_bio_bwrite().

Function Documentation

◆ ff_openssl_init()

int ff_openssl_init ( void  )

Definition at line 69 of file tls_openssl.c.

Referenced by ff_tls_init(), and tls_open().

◆ ff_openssl_deinit()

void ff_openssl_deinit ( void  )

Definition at line 99 of file tls_openssl.c.

Referenced by ff_tls_deinit(), and tls_close().

◆ print_tls_error()

static int print_tls_error ( URLContext h,
int  ret 
)
static

Definition at line 117 of file tls_openssl.c.

Referenced by tls_open(), tls_read(), and tls_write().

◆ tls_close()

static int tls_close ( URLContext h)
static

Definition at line 129 of file tls_openssl.c.

Referenced by tls_open().

◆ url_bio_create()

static int url_bio_create ( BIO *  b)
static

Definition at line 148 of file tls_openssl.c.

Referenced by tls_open().

◆ url_bio_destroy()

static int url_bio_destroy ( BIO *  b)
static

Definition at line 162 of file tls_openssl.c.

Referenced by tls_open().

◆ url_bio_bread()

static int url_bio_bread ( BIO *  b,
char *  buf,
int  len 
)
static

Definition at line 173 of file tls_openssl.c.

Referenced by tls_open().

◆ url_bio_bwrite()

static int url_bio_bwrite ( BIO *  b,
const char *  buf,
int  len 
)
static

Definition at line 187 of file tls_openssl.c.

Referenced by tls_open(), and url_bio_bputs().

◆ url_bio_ctrl()

static long url_bio_ctrl ( BIO *  b,
int  cmd,
long  num,
void ptr 
)
static

Definition at line 201 of file tls_openssl.c.

Referenced by tls_open().

◆ url_bio_bputs()

static int url_bio_bputs ( BIO *  b,
const char *  str 
)
static

Definition at line 210 of file tls_openssl.c.

Referenced by tls_open().

◆ tls_open()

static int tls_open ( URLContext h,
const char *  uri,
int  flags,
AVDictionary **  options 
)
static

Definition at line 229 of file tls_openssl.c.

◆ tls_read()

static int tls_read ( URLContext h,
uint8_t buf,
int  size 
)
static

Definition at line 312 of file tls_openssl.c.

◆ tls_write()

static int tls_write ( URLContext h,
const uint8_t buf,
int  size 
)
static

Definition at line 327 of file tls_openssl.c.

◆ tls_get_file_handle()

static int tls_get_file_handle ( URLContext h)
static

Definition at line 342 of file tls_openssl.c.

Variable Documentation

◆ openssl_init

int openssl_init
static

Definition at line 39 of file tls_openssl.c.

Referenced by ff_openssl_deinit(), and ff_openssl_init().

◆ url_bio_method

BIO_METHOD url_bio_method
static
Initial value:
= {
.type = BIO_TYPE_SOURCE_SINK,
.name = "urlprotocol bio",
.bwrite = url_bio_bwrite,
.bread = url_bio_bread,
.bputs = url_bio_bputs,
.bgets = NULL,
.ctrl = url_bio_ctrl,
.create = url_bio_create,
.destroy = url_bio_destroy,
}
#define NULL
Definition: coverity.c:32
static int url_bio_bwrite(BIO *b, const char *buf, int len)
Definition: tls_openssl.c:187
static int url_bio_bread(BIO *b, char *buf, int len)
Definition: tls_openssl.c:173
static int url_bio_bputs(BIO *b, const char *str)
Definition: tls_openssl.c:210
static int url_bio_destroy(BIO *b)
Definition: tls_openssl.c:162
static long url_bio_ctrl(BIO *b, int cmd, long num, void *ptr)
Definition: tls_openssl.c:201
static int url_bio_create(BIO *b)
Definition: tls_openssl.c:148

Definition at line 216 of file tls_openssl.c.

Referenced by tls_open().

◆ options

const AVOption options[]
static
Initial value:
= {
{ NULL }
}
#define NULL
Definition: coverity.c:32
#define TLS_COMMON_OPTIONS(pstruct, options_field)
Definition: tls.h:45

Definition at line 348 of file tls_openssl.c.

◆ tls_class

const AVClass tls_class
static
Initial value:
= {
.class_name = "tls",
.item_name = av_default_item_name,
.option = options,
}
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:191
static const AVOption options[]
Definition: tls_openssl.c:348

Definition at line 353 of file tls_openssl.c.

◆ ff_tls_protocol

const URLProtocol ff_tls_protocol
Initial value:
= {
.name = "tls",
.url_open2 = tls_open,
.url_read = tls_read,
.url_write = tls_write,
.url_close = tls_close,
.url_get_file_handle = tls_get_file_handle,
.priv_data_size = sizeof(TLSContext),
.priv_data_class = &tls_class,
}
#define URL_PROTOCOL_FLAG_NETWORK
Definition: url.h:34
static int flags
Definition: log.c:55
static int tls_get_file_handle(URLContext *h)
Definition: tls_openssl.c:342
static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **options)
Definition: tls_openssl.c:229
static const AVClass tls_class
Definition: tls_openssl.c:353
static int tls_write(URLContext *h, const uint8_t *buf, int size)
Definition: tls_openssl.c:327
static int tls_read(URLContext *h, uint8_t *buf, int size)
Definition: tls_openssl.c:312
static int tls_close(URLContext *h)
Definition: tls_openssl.c:129

Definition at line 360 of file tls_openssl.c.