My Project
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
Macros | Functions | Variables
sslops.c File Reference
#include "webserver/sslops.h"
#include "webserver/webserver.h"
#include "logging.h"
#include <pthread.h>
#include <openssl/err.h>

Go to the source code of this file.

Macros

#define UNUSED
 
#define print_request_error(...)
 
#define print_ssl_error(ssl, rtn)
 Explains an SSL error. More...
 
#define CHECK_SSL_WANTS(ssl, rtn)
 

Functions

static void crypto_locking_callback (int mode, int n, const char *file, int line)
 
static unsigned long crypto_id_function (void)
 
void init_ssl_locks (void)
 
void kill_ssl_locks (void)
 
int init_ssl_context (void)
 
int load_ssl_certificate (char *cert_file, char *key_file)
 
SSL * init_ssl_connection (int fd)
 
int accept_ssl (SSL *ssl)
 
int read_ssl (SSL *ssl, char *buf, int *buf_size)
 
int write_ssl (SSL *ssl, char *buf, int *buf_size)
 
int close_ssl (SSL *ssl)
 

Variables

static pthread_mutex_t * lockarray
 
SSL_CTX * ssl_ctx = NULL
 

Macro Definition Documentation

#define CHECK_SSL_WANTS (   ssl,
  rtn 
)
Value:
do { \
int err = SSL_get_error(ssl, rtn); \
if (err != SSL_ERROR_WANT_READ && err != SSL_ERROR_WANT_WRITE) { \
print_ssl_error(ssl, rtn); \
return WS_ERROR; \
} else if ( err == SSL_ERROR_WANT_READ) { \
} else if ( err == SSL_ERROR_WANT_WRITE) { \
} \
} while (0);
#define WS_INCOMPLETE_READ
Definition: webserver.h:25
#define WS_INCOMPLETE_WRITE
Definition: webserver.h:26
#define print_ssl_error(ssl, rtn)
Explains an SSL error.
Definition: sslops.c:89
#define WS_ERROR
Definition: webserver.h:27

Definition at line 182 of file sslops.c.

#define print_request_error (   ...)

Definition at line 38 of file sslops.c.

#define print_ssl_error (   ssl,
  rtn 
)

Explains an SSL error.

Written as a macro so we have traceability in the log_error statements

Definition at line 89 of file sslops.c.

#define UNUSED

Definition at line 29 of file sslops.c.

Function Documentation

int accept_ssl ( SSL *  ssl)

Definition at line 195 of file sslops.c.

int close_ssl ( SSL *  ssl)

Definition at line 241 of file sslops.c.

static unsigned long crypto_id_function ( void  )
static

Definition at line 103 of file sslops.c.

static void crypto_locking_callback ( int  mode,
int  n,
const char *  file,
int  line 
)
static

Definition at line 94 of file sslops.c.

SSL* init_ssl_connection ( int  fd)

Definition at line 176 of file sslops.c.

int init_ssl_context ( void  )

Definition at line 134 of file sslops.c.

void init_ssl_locks ( void  )

Definition at line 107 of file sslops.c.

void kill_ssl_locks ( void  )

Definition at line 122 of file sslops.c.

int load_ssl_certificate ( char *  cert_file,
char *  key_file 
)

Definition at line 160 of file sslops.c.

int read_ssl ( SSL *  ssl,
char *  buf,
int *  buf_size 
)

Definition at line 211 of file sslops.c.

int write_ssl ( SSL *  ssl,
char *  buf,
int *  buf_size 
)

Definition at line 224 of file sslops.c.

Variable Documentation

pthread_mutex_t* lockarray
static

Definition at line 92 of file sslops.c.

SSL_CTX* ssl_ctx = NULL

Definition at line 120 of file sslops.c.