Apache HTTPD
Macros | Functions | Variables
tls_conf.c File Reference
module tls_module
#include <assert.h>
#include <apr_lib.h>
#include <apr_strings.h>
#include <apr_version.h>
#include <httpd.h>
#include <http_core.h>
#include <http_config.h>
#include <http_log.h>
#include <http_main.h>
#include <ap_socache.h>
#include <rustls.h>
#include "tls_cert.h"
#include "tls_proto.h"
#include "tls_conf.h"
#include "tls_util.h"
#include "tls_var.h"
#include "tls_cache.h"

Go to the source code of this file.

Macros

#define CONF_S_NAME(s)   (s && s->server_hostname? s->server_hostname : "default")
 
#define MERGE_INT(base, add, field)    (add->field == TLS_FLAG_UNSET)? base->field : add->field;
 

Functions

static tls_conf_global_tconf_global_get_or_make (apr_pool_t *pool, server_rec *s)
 
tls_conf_server_ttls_conf_server_get (server_rec *s)
 
void * tls_conf_create_svr (apr_pool_t *pool, server_rec *s)
 
void * tls_conf_merge_svr (apr_pool_t *pool, void *basev, void *addv)
 
tls_conf_dir_ttls_conf_dir_get (request_rec *r)
 
tls_conf_dir_ttls_conf_dir_server_get (server_rec *s)
 
void * tls_conf_create_dir (apr_pool_t *pool, char *dir)
 
static int same_proxy_settings (tls_conf_dir_t *a, tls_conf_dir_t *b)
 
static void dir_assign_merge (tls_conf_dir_t *dest, apr_pool_t *pool, tls_conf_dir_t *base, tls_conf_dir_t *add)
 
void * tls_conf_merge_dir (apr_pool_t *pool, void *basev, void *addv)
 
static void tls_conf_dir_set_options_defaults (apr_pool_t *pool, tls_conf_dir_t *dc)
 
apr_status_t tls_conf_server_apply_defaults (tls_conf_server_t *sc, apr_pool_t *p)
 
apr_status_t tls_conf_dir_apply_defaults (tls_conf_dir_t *dc, apr_pool_t *p)
 
tls_conf_proxy_ttls_conf_proxy_make (apr_pool_t *p, tls_conf_dir_t *dc, tls_conf_global_t *gc, server_rec *s)
 
int tls_proxy_section_post_config (apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s, ap_conf_vector_t *section_config)
 
static const charcmd_check_file (cmd_parms *cmd, const char *fpath)
 
static const chartls_conf_add_engine (cmd_parms *cmd, void *dc, const char *v)
 
static int flag_value (const char *arg)
 
static const charflag_err (cmd_parms *cmd, const char *v)
 
static const chartls_conf_add_certificate (cmd_parms *cmd, void *dc, const char *cert_file, const char *pkey_file)
 
static const charparse_ciphers (cmd_parms *cmd, tls_conf_global_t *gc, const char *nop_name, int argc, char *const argv[], apr_array_header_t *ciphers)
 
static const chartls_conf_set_preferred_ciphers (cmd_parms *cmd, void *dc, int argc, char *const argv[])
 
static const chartls_conf_set_suppressed_ciphers (cmd_parms *cmd, void *dc, int argc, char *const argv[])
 
static const chartls_conf_set_honor_client_order (cmd_parms *cmd, void *dc, const char *v)
 
static const chartls_conf_set_strict_sni (cmd_parms *cmd, void *dc, const char *v)
 
static const charget_min_protocol (cmd_parms *cmd, const char *v, int *pmin)
 
static const chartls_conf_set_protocol (cmd_parms *cmd, void *dc, const char *v)
 
static const chartls_conf_set_options (cmd_parms *cmd, void *dcv, int argc, char *const argv[])
 
static const chartls_conf_set_session_cache (cmd_parms *cmd, void *dc, const char *value)
 
static const chartls_conf_set_proxy_engine (cmd_parms *cmd, void *dir_conf, int flag)
 
static const chartls_conf_set_proxy_ca (cmd_parms *cmd, void *dir_conf, const char *proxy_ca)
 
static const chartls_conf_set_proxy_protocol (cmd_parms *cmd, void *dir_conf, const char *v)
 
static const chartls_conf_set_proxy_preferred_ciphers (cmd_parms *cmd, void *dir_conf, int argc, char *const argv[])
 
static const chartls_conf_set_proxy_suppressed_ciphers (cmd_parms *cmd, void *dir_conf, int argc, char *const argv[])
 
static const chartls_conf_add_proxy_machine_certificate (cmd_parms *cmd, void *dir_conf, const char *cert_file, const char *pkey_file)
 

Variables

static int *const aplog_module_index = &( tls_module.module_index)
 
const command_rec tls_conf_cmds []
 

Macro Definition Documentation

◆ CONF_S_NAME

#define CONF_S_NAME (   s)    (s && s->server_hostname? s->server_hostname : "default")

Definition at line 76 of file tls_conf.c.

◆ MERGE_INT

#define MERGE_INT (   base,
  add,
  field 
)     (add->field == TLS_FLAG_UNSET)? base->field : add->field;

Definition at line 96 of file tls_conf.c.

Function Documentation

◆ cmd_check_file()

static const char * cmd_check_file ( cmd_parms cmd,
const char fpath 
)
static

Definition at line 279 of file tls_conf.c.

◆ conf_global_get_or_make()

static tls_conf_global_t * conf_global_get_or_make ( apr_pool_t pool,
server_rec s 
)
static

Definition at line 41 of file tls_conf.c.

◆ dir_assign_merge()

static void dir_assign_merge ( tls_conf_dir_t dest,
apr_pool_t pool,
tls_conf_dir_t base,
tls_conf_dir_t add 
)
static

Definition at line 159 of file tls_conf.c.

◆ flag_err()

static const char * flag_err ( cmd_parms cmd,
const char v 
)
static

Definition at line 371 of file tls_conf.c.

◆ flag_value()

static int flag_value ( const char arg)
static

Definition at line 359 of file tls_conf.c.

◆ get_min_protocol()

static const char * get_min_protocol ( cmd_parms cmd,
const char v,
int pmin 
)
static

Definition at line 497 of file tls_conf.c.

◆ parse_ciphers()

static const char * parse_ciphers ( cmd_parms cmd,
tls_conf_global_t gc,
const char nop_name,
int  argc,
char *const  argv[],
apr_array_header_t ciphers 
)
static

Definition at line 411 of file tls_conf.c.

◆ same_proxy_settings()

static int same_proxy_settings ( tls_conf_dir_t a,
tls_conf_dir_t b 
)
static

Definition at line 154 of file tls_conf.c.

◆ tls_conf_add_certificate()

static const char * tls_conf_add_certificate ( cmd_parms cmd,
void *  dc,
const char cert_file,
const char pkey_file 
)
static

Definition at line 378 of file tls_conf.c.

◆ tls_conf_add_engine()

static const char * tls_conf_add_engine ( cmd_parms cmd,
void *  dc,
const char v 
)
static

Definition at line 300 of file tls_conf.c.

◆ tls_conf_add_proxy_machine_certificate()

static const char * tls_conf_add_proxy_machine_certificate ( cmd_parms cmd,
void *  dir_conf,
const char cert_file,
const char pkey_file 
)
static

Definition at line 701 of file tls_conf.c.

◆ tls_conf_create_dir()

void * tls_conf_create_dir ( apr_pool_t pool,
char dir 
)

Definition at line 138 of file tls_conf.c.

◆ tls_conf_create_svr()

void * tls_conf_create_svr ( apr_pool_t pool,
server_rec s 
)

Definition at line 78 of file tls_conf.c.

◆ tls_conf_dir_apply_defaults()

apr_status_t tls_conf_dir_apply_defaults ( tls_conf_dir_t dc,
apr_pool_t p 
)

Definition at line 214 of file tls_conf.c.

◆ tls_conf_dir_get()

tls_conf_dir_t * tls_conf_dir_get ( request_rec r)

Definition at line 124 of file tls_conf.c.

◆ tls_conf_dir_server_get()

tls_conf_dir_t * tls_conf_dir_server_get ( server_rec s)

Definition at line 131 of file tls_conf.c.

◆ tls_conf_dir_set_options_defaults()

static void tls_conf_dir_set_options_defaults ( apr_pool_t pool,
tls_conf_dir_t dc 
)
static

Definition at line 196 of file tls_conf.c.

◆ tls_conf_merge_dir()

void * tls_conf_merge_dir ( apr_pool_t pool,
void *  basev,
void *  addv 
)

Definition at line 187 of file tls_conf.c.

◆ tls_conf_merge_svr()

void * tls_conf_merge_svr ( apr_pool_t pool,
void *  basev,
void *  addv 
)

Definition at line 99 of file tls_conf.c.

◆ tls_conf_proxy_make()

tls_conf_proxy_t * tls_conf_proxy_make ( apr_pool_t p,
tls_conf_dir_t dc,
tls_conf_global_t gc,
server_rec s 
)

Definition at line 223 of file tls_conf.c.

◆ tls_conf_server_apply_defaults()

apr_status_t tls_conf_server_apply_defaults ( tls_conf_server_t sc,
apr_pool_t p 
)

Definition at line 203 of file tls_conf.c.

◆ tls_conf_server_get()

tls_conf_server_t * tls_conf_server_get ( server_rec s)

Definition at line 68 of file tls_conf.c.

◆ tls_conf_set_honor_client_order()

static const char * tls_conf_set_honor_client_order ( cmd_parms cmd,
void *  dc,
const char v 
)
static

Definition at line 473 of file tls_conf.c.

◆ tls_conf_set_options()

static const char * tls_conf_set_options ( cmd_parms cmd,
void *  dcv,
int  argc,
char *const  argv[] 
)
static

Definition at line 533 of file tls_conf.c.

◆ tls_conf_set_preferred_ciphers()

static const char * tls_conf_set_preferred_ciphers ( cmd_parms cmd,
void *  dc,
int  argc,
char *const  argv[] 
)
static

Definition at line 441 of file tls_conf.c.

◆ tls_conf_set_protocol()

static const char * tls_conf_set_protocol ( cmd_parms cmd,
void *  dc,
const char v 
)
static

Definition at line 525 of file tls_conf.c.

◆ tls_conf_set_proxy_ca()

static const char * tls_conf_set_proxy_ca ( cmd_parms cmd,
void *  dir_conf,
const char proxy_ca 
)
static

Definition at line 600 of file tls_conf.c.

◆ tls_conf_set_proxy_engine()

static const char * tls_conf_set_proxy_engine ( cmd_parms cmd,
void *  dir_conf,
int  flag 
)
static

Definition at line 592 of file tls_conf.c.

◆ tls_conf_set_proxy_preferred_ciphers()

static const char * tls_conf_set_proxy_preferred_ciphers ( cmd_parms cmd,
void *  dir_conf,
int  argc,
char *const  argv[] 
)
static

Definition at line 619 of file tls_conf.c.

◆ tls_conf_set_proxy_protocol()

static const char * tls_conf_set_proxy_protocol ( cmd_parms cmd,
void *  dir_conf,
const char v 
)
static

Definition at line 612 of file tls_conf.c.

◆ tls_conf_set_proxy_suppressed_ciphers()

static const char * tls_conf_set_proxy_suppressed_ciphers ( cmd_parms cmd,
void *  dir_conf,
int  argc,
char *const  argv[] 
)
static

Definition at line 635 of file tls_conf.c.

◆ tls_conf_set_session_cache()

static const char * tls_conf_set_session_cache ( cmd_parms cmd,
void *  dc,
const char value 
)
static

< Forbidden in <VirtualHost>

< Forbidden in <Limit>

< Forbidden in <Directory>

< Forbidden in <Location>

< Forbidden in <Files> or <If>

< Forbidden in <Proxy>

Definition at line 578 of file tls_conf.c.

◆ tls_conf_set_strict_sni()

static const char * tls_conf_set_strict_sni ( cmd_parms cmd,
void *  dc,
const char v 
)
static

Definition at line 485 of file tls_conf.c.

◆ tls_conf_set_suppressed_ciphers()

static const char * tls_conf_set_suppressed_ciphers ( cmd_parms cmd,
void *  dc,
int  argc,
char *const  argv[] 
)
static

Definition at line 457 of file tls_conf.c.

◆ tls_proxy_section_post_config()

int tls_proxy_section_post_config ( apr_pool_t p,
apr_pool_t plog,
apr_pool_t ptemp,
server_rec s,
ap_conf_vector_t section_config 
)

< Module has handled this stage.

Definition at line 238 of file tls_conf.c.

Variable Documentation

◆ aplog_module_index

int* const aplog_module_index = &( tls_module.module_index)
static

Definition at line 39 of file tls_conf.c.

◆ tls_conf_cmds

const command_rec tls_conf_cmds[]

Definition at line 736 of file tls_conf.c.