Apache2
tls_util.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

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 char * tls_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]))

◆ 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)
#define APLOG_MARK
Definition: http_log.h:283
apr_bucket_brigade * bb
Definition: mod_dav.h:555
apr_size_t tls_util_bb_print(char *buffer, apr_size_t bmax, const char *tag, const char *sep, apr_bucket_brigade *bb)

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

Typedef Documentation

◆ tls_data_t

typedef struct tls_data_t tls_data_t

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

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.

◆ 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.

◆ tls_data_from_str()

tls_data_t tls_data_from_str ( const char *  s)

Return a tls_data_t for a string.

◆ 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.

◆ 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.

◆ 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.

◆ 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

◆ 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>.

◆ 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.

◆ 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>.

◆ 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

◆ 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.

◆ 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().

◆ 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.