Apache HTTPD
Classes | Macros | Typedefs | Functions
tls_util.h File Reference

Go to the source code of this file.

Classes

struct  tls_data_t
 

Macros

#define TLS_DIM(a)   (sizeof(a)/sizeof(a[0]))
 
#define tls_util_bb_log(c, level, tag, bb)
 

Typedefs

typedef struct tls_data_t tls_data_t
 

Functions

tls_data_t tls_data_from_str (const char *s)
 
tls_data_ttls_data_copy (apr_pool_t *p, const tls_data_t *d)
 
tls_data_t tls_data_assign_copy (apr_pool_t *p, const tls_data_t *d)
 
const chartls_data_to_str (apr_pool_t *p, const tls_data_t *d)
 
int tls_util_is_file (apr_pool_t *p, const char *fpath)
 
apr_status_t tls_util_rustls_error (apr_pool_t *p, rustls_result rr, const char **perr_descr)
 
apr_status_t tls_util_file_load (apr_pool_t *p, const char *fpath, size_t min_len, size_t max_len, tls_data_t *data)
 
int tls_util_array_uint16_contains (const apr_array_header_t *a, apr_uint16_t n)
 
const apr_array_header_ttls_util_array_uint16_remove (apr_pool_t *pool, const apr_array_header_t *from, const apr_array_header_t *others)
 
apr_status_t tls_util_brigade_transfer (apr_bucket_brigade *dest, apr_bucket_brigade *src, apr_off_t length, apr_off_t *pnout)
 
apr_status_t tls_util_brigade_copy (apr_bucket_brigade *dest, apr_bucket_brigade *src, apr_off_t length, apr_off_t *pnout)
 
apr_status_t tls_util_brigade_split_line (apr_bucket_brigade *dest, apr_bucket_brigade *src, apr_read_type_e block, apr_off_t length, apr_off_t *pnout)
 
int tls_util_name_matches_server (const char *name, server_rec *s)
 
apr_size_t tls_util_bucket_print (char *buffer, apr_size_t bmax, apr_bucket *b, const char *sep)
 
apr_size_t tls_util_bb_print (char *buffer, apr_size_t bmax, const char *tag, const char *sep, apr_bucket_brigade *bb)
 

Macro Definition Documentation

◆ TLS_DIM

#define TLS_DIM (   a)    (sizeof(a)/sizeof(a[0]))

Definition at line 19 of file tls_util.h.

◆ tls_util_bb_log

#define tls_util_bb_log (   c,
  level,
  tag,
  bb 
)
Value:
do { \
char buffer[4 * 1024]; \
const char *line = "(null)"; \
apr_size_t len, bmax = sizeof(buffer)/sizeof(buffer[0]); \
len = tls_util_bb_print(buffer, bmax, (tag), "", (bb)); \
ap_log_cerror(APLOG_MARK, level, 0, (c), "bb_dump(%ld): %s", \
((c)->master? (c)->master->id : (c)->id), (len? buffer : line)); \
} while(0)
const char apr_size_t len
Definition ap_regex.h:187
#define APLOG_MARK
Definition http_log.h:283
apr_size_t size
char * buffer
apr_vformatter_buff_t * c
Definition apr_lib.h:175
const char apr_uint32_t * id
apr_size_t tls_util_bb_print(char *buffer, apr_size_t bmax, const char *tag, const char *sep, apr_bucket_brigade *bb)
Definition tls_util.c:338

Logs the bucket brigade (which bucket types with what length) to the log at the given level.

Parameters
cthe connection to log for
sidthe stream identifier this brigade belongs to
levelthe log level (as in APLOG_*)
taga short message text about the context
bbthe brigade to log

Definition at line 145 of file tls_util.h.

Typedef Documentation

◆ tls_data_t

Simple struct to hold a range of bytes and its length together.

Definition at line 25 of file tls_util.h.

Function Documentation

◆ tls_data_assign_copy()

tls_data_t tls_data_assign_copy ( apr_pool_t p,
const tls_data_t d 
)

Return a copy of a tls_data_t bytes allocated from pool.

Definition at line 43 of file tls_util.c.

◆ tls_data_copy()

tls_data_t * tls_data_copy ( apr_pool_t p,
const tls_data_t d 
)

Create a copy of a tls_data_t using the given pool.

Definition at line 51 of file tls_util.c.

◆ tls_data_from_str()

tls_data_t tls_data_from_str ( const char s)

Return a tls_data_t for a string.

Definition at line 35 of file tls_util.c.

◆ tls_data_to_str()

const char * tls_data_to_str ( apr_pool_t p,
const tls_data_t d 
)

Convert the data bytes in d into a NUL-terminated string. There is no check if the data bytes already contain NUL.

Definition at line 59 of file tls_util.c.

◆ tls_util_array_uint16_contains()

int tls_util_array_uint16_contains ( const apr_array_header_t a,
apr_uint16_t  n 
)

Return != 0 iff the array of apr_uint16_t contains value n.

Definition at line 141 of file tls_util.c.

◆ tls_util_array_uint16_remove()

const apr_array_header_t * tls_util_array_uint16_remove ( apr_pool_t pool,
const apr_array_header_t from,
const apr_array_header_t others 
)

Remove all apr_uint16_t in others from array from. Returns the new array or, if no overlap was found, the from array unchanged.

Definition at line 150 of file tls_util.c.

◆ tls_util_bb_print()

apr_size_t tls_util_bb_print ( char buffer,
apr_size_t  bmax,
const char tag,
const char sep,
apr_bucket_brigade bb 
)

Prints the brigade bucket types and lengths into the given buffer up to bmax.

Returns
number of characters printed

Definition at line 338 of file tls_util.c.

◆ tls_util_brigade_copy()

apr_status_t tls_util_brigade_copy ( apr_bucket_brigade dest,
apr_bucket_brigade src,
apr_off_t  length,
apr_off_t pnout 
)

Copy up to <length> bytes from <src> to <dest>, including all encountered meta data buckets. <src> remains semantically unchaanged, meaning there might have been buckets split or changed while reading their content. Return the actual byte count copied in <pnout>.

Definition at line 219 of file tls_util.c.

◆ tls_util_brigade_split_line()

apr_status_t tls_util_brigade_split_line ( apr_bucket_brigade dest,
apr_bucket_brigade src,
apr_read_type_e  block,
apr_off_t  length,
apr_off_t pnout 
)

Get a line of max length bytes from src into dest. Return the number of bytes transferred in pnout.

Definition at line 265 of file tls_util.c.

◆ tls_util_brigade_transfer()

apr_status_t tls_util_brigade_transfer ( apr_bucket_brigade dest,
apr_bucket_brigade src,
apr_off_t  length,
apr_off_t pnout 
)

Transfer up to <length> bytes from <src> to <dest>, including all encountered meta data buckets. The transferred buckets/data are removed from <src>. Return the actual byte count transferred in <pnout>.

Definition at line 175 of file tls_util.c.

◆ tls_util_bucket_print()

apr_size_t tls_util_bucket_print ( char buffer,
apr_size_t  bmax,
apr_bucket b,
const char sep 
)

Print a bucket's meta data (type and length) to the buffer.

Returns
number of characters printed

Definition at line 316 of file tls_util.c.

◆ tls_util_file_load()

apr_status_t tls_util_file_load ( apr_pool_t p,
const char fpath,
size_t  min_len,
size_t  max_len,
tls_data_t data 
)

Load up to max_len bytes into a buffer allocated from the pool.

Returns
ARP_SUCCESS on successful load. APR_EINVAL when the file was not a regular file or is too large.

◆ tls_util_is_file()

int tls_util_is_file ( apr_pool_t p,
const char fpath 
)

Return != 0 if fpath is a 'real' file.

< Type

< Size of the file

Definition at line 79 of file tls_util.c.

◆ tls_util_name_matches_server()

int tls_util_name_matches_server ( const char name,
server_rec s 
)

Return != 0 iff the given <name> matches the configured 'ServerName' or one of the 'ServerAlias' name of , including wildcard patterns as understood by ap_strcasecmp_match().

Definition at line 292 of file tls_util.c.

◆ tls_util_rustls_error()

apr_status_t tls_util_rustls_error ( apr_pool_t p,
rustls_result  rr,
const char **  perr_descr 
)

Inspect a 'rustls_result', retrieve the error description for it and return the apr_status_t to use as our error status.

Definition at line 66 of file tls_util.c.