Go to the documentation of this file.
24 #ifndef XINE_INPUT_TLS_H
25 #define XINE_INPUT_TLS_H
Definition: xine_internal.h:80
xine_stream_t * stream
Definition: tls_openssl.c:52
static void tls_register_config_keys(config_values_t *config)
Definition: xine_tls_plugin.h:60
xine_module_t * _x_find_module(xine_t *xine, const char *type, const char *id, unsigned sub_type, const void *params)
Definition: load_plugins.c:1769
#define LOG_MODULE
Definition: tls_openssl.c:38
ssize_t _x_tls_read_line(xine_tls_t *t, char *buf, size_t buf_size)
Definition: xine_tls.c:92
static int _bio_read(BIO *b, char *buf, int len)
Definition: tls_openssl.c:76
Definition: xine_internal.h:123
off_t _x_io_tcp_write(xine_stream_t *stream, int s, const void *wbuf_gen, off_t todo)
Definition: io_helper.c:607
int _x_io_tcp_read_line(xine_stream_t *stream, int sock, char *str, int size)
Definition: io_helper.c:714
const plugin_info_t xine_plugin_info[] EXPORTED
Definition: tls_openssl.c:376
ssize_t _x_tls_read(xine_tls_t *, void *data, size_t len)
Definition: xine_tls.c:84
xine_t * xine
Definition: tls_openssl.c:53
static int _bio_destroy(BIO *b)
Definition: tls_openssl.c:126
xine_stream_t * stream
Definition: xine_tls_plugin.h:35
Definition: xine_module.h:62
int enabled
Definition: xine_tls.c:46
const plugin_info_t xine_plugin_info[] EXPORTED
Definition: tls_gnutls.c:537
static void _gnutls_dispose(xine_module_t *this_gen)
Definition: tls_gnutls.c:462
static int _openssl_handshake(tls_plugin_t *this_gen, const char *host, int verify)
Definition: tls_openssl.c:244
ssize_t _x_tls_part_read(xine_tls_t *t, void *buf, size_t min, size_t max)
Definition: xine_tls.c:76
void *(* xine_fast_memcpy)(void *to, const void *from, size_t len)
Definition: memcpy.c:60
xine_stream_t * stream
Definition: tls_gnutls.c:63
int _x_io_select(xine_stream_t *stream, int fd, int state, int timeout_msec)
Definition: io_helper.c:356
void _x_free_module(xine_t *xine, xine_module_t **pmodule)
Definition: load_plugins.c:1807
Definition: xine_module.h:29
static int _bio_puts(BIO *b, const char *str)
Definition: tls_openssl.c:96
static int _bio_write(BIO *b, const char *buf, int len)
Definition: tls_openssl.c:86
xine_t * xine
Definition: tls_gnutls.c:64
static void _gnutls_shutdown(tls_plugin_t *this_gen)
Definition: tls_gnutls.c:335
static int _bio_create(BIO *b)
Definition: tls_openssl.c:112
void _x_tls_close(xine_tls_t **pt)
Definition: xine_tls.c:139
Definition: xine_tls_plugin.h:41
static BIO * _bio_new(tls_openssl_t *this)
Definition: tls_openssl.c:132
ssize_t _x_tls_write(xine_tls_t *t, const void *buf, size_t len)
Definition: xine_tls.c:68
void _x_tls_deinit(xine_tls_t **pt)
Definition: xine_tls.c:154
static ssize_t _openssl_write(tls_plugin_t *this_gen, const void *buf, size_t len)
Definition: tls_openssl.c:173
int _x_tls_handshake(xine_tls_t *t, const char *host, int verify)
Definition: xine_tls.c:198
static ssize_t gnutls_tcp_pull(gnutls_transport_ptr_t tp, void *buf, size_t len)
Definition: tls_gnutls.c:81
tls_plugin_t * tls
Definition: xine_tls.c:44
SSL_CTX * ctx
Definition: tls_openssl.c:57
static ssize_t _gnutls_read(tls_plugin_t *this_gen, void *buf, size_t len)
Definition: tls_gnutls.c:177
static void _openssl_class_dispose(xine_module_class_t *cls_gen)
Definition: tls_openssl.c:338
int fd
Definition: xine_tls_plugin.h:36
xine_t * xine
Definition: xine_tls.c:42
int inited
Definition: tls_openssl.c:69
static const xine_module_info_t module_info_gnutls
Definition: tls_gnutls.c:532
NULL
Definition: xine_plugin.c:78
#define xine_small_memcpy(xsm_to, xsm_from, xsm_len)
Definition: xineutils.h:201
#define XIO_WRITE_READY
Definition: io_helper.h:31
tls_plugin_t tls_plugin
Definition: tls_gnutls.c:61
#define XIO_READY
Definition: io_helper.h:34
#define XINE_VERBOSITY_LOG
Definition: xine.h:425
#define _x_assert(exp)
Definition: xineutils.h:550
static void * gnutls_init_class(xine_t *xine, const void *data)
Definition: tls_gnutls.c:511
static void _x_freep(void *ptr)
Definition: xineutils.h:263
SSL * ssl
Definition: tls_openssl.c:58
pthread_mutex_t lock
Definition: tls_openssl.c:68
xine_module_t *(* get_instance)(xine_module_class_t *, const void *params)
Definition: xine_module.h:35
#define XIO_READ_READY
Definition: io_helper.h:30
config_values_t * config
Definition: xine_internal.h:82
int _x_query_network_timeout(xine_t *xine_gen)
Definition: xine.c:2625
Definition: tls_gnutls.c:60
#define XINE_VERSION_CODE
Definition: xine_internal.h:57
int priority
Definition: xine_plugin.h:104
static void _openssl_dispose(xine_module_t *this_gen)
Definition: tls_openssl.c:298
static ssize_t _gnutls_part_read(tls_plugin_t *this_gen, void *buf, size_t min, size_t max)
Definition: tls_gnutls.c:206
Definition: configfile.h:83
void _x_tls_deinit(xine_tls_t **tlsp)
Definition: xine_tls.c:154
xine_tls_t * _x_tls_init(xine_t *xine, xine_stream_t *stream, int fd)
Definition: xine_tls.c:166
#define LOG_MODULE
Definition: tls_gnutls.c:50
xine_stream_t * stream
Definition: xine_tls.c:43
ssize_t(* write)(tls_plugin_t *, const void *buf, size_t len)
Definition: xine_tls_plugin.h:48
void _x_tls_close(xine_tls_t **tlsp)
Definition: xine_tls.c:139
size_t buf_got
Definition: tls_gnutls.c:72
void _x_tls_shutdown(xine_tls_t *)
Definition: xine_tls.c:128
static xine_module_t * _openssl_get_instance(xine_module_class_t *cls_gen, const void *params_gen)
Definition: tls_openssl.c:304
ssize_t _x_tls_write(xine_tls_t *, const void *data, size_t len)
Definition: xine_tls.c:68
static int _gnutls_load_certs(tls_gnutls_t *this, const char *dirname)
Definition: tls_gnutls.c:235
int _x_tls_handshake(xine_tls_t *, const char *host, int verify)
Definition: xine_tls.c:198
static int tls_get_verify_tls_cert(config_values_t *config)
Definition: xine_tls_plugin.h:70
static void * _openssl_init_class(xine_t *xine, const void *data)
Definition: tls_openssl.c:345
#define XINE_GNUTLS_INIT_FLAGS
Definition: tls_gnutls.c:40
#define XINE_VERBOSITY_DEBUG
Definition: xine.h:426
ssize_t _x_tls_read_line(xine_tls_t *, char *buf, size_t buf_size)
Definition: xine_tls.c:92
static ssize_t _gnutls_write(tls_plugin_t *this_gen, const void *buf, size_t len)
Definition: tls_gnutls.c:148
Definition: xine_tls_plugin.h:33
int _x_tls_get_verify_tls_cert(config_values_t *)
Definition: xine_tls.c:225
static tls_plugin_t * _x_find_tls_plugin(xine_t *xine, tls_plugin_params_t *params)
Definition: xine_tls.c:53
int fd
Definition: tls_openssl.c:55
xine_tls_t * _x_tls_connect(xine_t *xine, xine_stream_t *stream, const char *host, int port)
Definition: xine_tls.c:180
static void _x_free_tls_plugin(xine_t *xine, tls_plugin_t **tls)
Definition: xine_tls.c:58
static void _openssl_shutdown(tls_plugin_t *this_gen)
Definition: tls_openssl.c:223
static xine_module_t * gnutls_get_instance(xine_module_class_t *cls_gen, const void *params_gen)
Definition: tls_gnutls.c:471
static long _bio_ctrl(BIO *b, int cmd, long num, void *ptr)
Definition: tls_openssl.c:101
#define LOG_MODULE
Definition: xine_tls.c:27
ssize_t _x_tls_part_read(xine_tls_t *, void *data, size_t min, size_t max)
Definition: xine_tls.c:76
Definition: tls_openssl.c:65
gnutls_session_t session
Definition: tls_gnutls.c:69
Definition: xine_tls.c:41
int _x_tls_available(xine_t *xine)
Definition: xine_tls.c:230
Definition: xine_plugin.h:103
tls_plugin_t tls_plugin
Definition: tls_openssl.c:50
int need_shutdown
Definition: tls_gnutls.c:67
#define PLUGIN_NONE
Definition: xine_plugin.h:29
ssize_t(* read)(tls_plugin_t *, void *buf, size_t len)
Definition: xine_tls_plugin.h:47
Definition: tls_openssl.c:49
int fd
Definition: tls_gnutls.c:66
xine_t * xine
Definition: xine_tls_plugin.h:34
int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port)
Definition: io_helper.c:159
void(* shutdown)(tls_plugin_t *)
Definition: xine_tls_plugin.h:45
ssize_t _x_io_tcp_part_read(xine_stream_t *stream, int s, void *buf_gen, size_t min, size_t max)
Definition: io_helper.c:558
static ssize_t gnutls_tcp_push(gnutls_transport_ptr_t tp, const void *buf, size_t len)
Definition: tls_gnutls.c:118
static const xine_module_info_t module_info_openssl
Definition: tls_openssl.c:371
int _x_tls_get_verify_tls_cert(config_values_t *config)
Definition: xine_tls.c:225
int fd
Definition: xine_tls.c:45
xine_tls_t * _x_tls_connect(xine_t *xine, xine_stream_t *stream, const char *host, int port)
Definition: xine_tls.c:180
static ssize_t _openssl_part_read(tls_plugin_t *this_gen, void *buf, size_t min, size_t max)
Definition: tls_openssl.c:205
int _x_io_tcp_close(xine_stream_t *stream, int fd)
Definition: io_helper.c:740
static int _gnutls_handshake(tls_plugin_t *this_gen, const char *host, int verify)
Definition: tls_gnutls.c:362
void _x_tls_shutdown(xine_tls_t *t)
Definition: xine_tls.c:128
#define PLUGIN_XINE_MODULE
Definition: xine_plugin.h:41
xine_tls_t * _x_tls_init(xine_t *xine, xine_stream_t *stream, int fd)
Definition: xine_tls.c:166
Definition: xine_plugin.h:55
int _x_tls_available(xine_t *xine)
Definition: xine_tls.c:230
int(* handshake)(tls_plugin_t *, const char *host, int verify)
Definition: xine_tls_plugin.h:44
#define xprintf(xine, verbose,...)
Definition: xineutils.h:664
gnutls_certificate_credentials_t cred
Definition: tls_gnutls.c:70
ssize_t(* part_read)(tls_plugin_t *, void *buf, size_t min, size_t max)
Definition: xine_tls_plugin.h:49
#define N_(String)
Definition: xineintl.h:47
ssize_t _x_tls_read(xine_tls_t *t, void *buf, size_t len)
Definition: xine_tls.c:84
xine_module_class_t module_class
Definition: tls_openssl.c:66
static ssize_t _openssl_read(tls_plugin_t *this_gen, void *buf, size_t len)
Definition: tls_openssl.c:189
off_t _x_io_tcp_read(xine_stream_t *stream, int s, void *buf_gen, off_t todo)
Definition: io_helper.c:524