Apache HTTPD
Classes | Typedefs | Enumerations | Functions | Variables
mod_brotli.c File Reference
#include "httpd.h"
#include "http_core.h"
#include "http_log.h"
#include "apr_strings.h"
#include <brotli/encode.h>

Go to the source code of this file.

Classes

struct  brotli_server_config_t
 
struct  brotli_ctx_t
 

Typedefs

typedef struct brotli_server_config_t brotli_server_config_t
 
typedef struct brotli_ctx_t brotli_ctx_t
 

Enumerations

enum  etag_mode_e { ETAG_MODE_ADDSUFFIX = 0 , ETAG_MODE_NOCHANGE = 1 , ETAG_MODE_REMOVE = 2 }
 

Functions

static void * create_server_config (apr_pool_t *p, server_rec *s)
 
static const charset_filter_note (cmd_parms *cmd, void *dummy, const char *arg1, const char *arg2)
 
static const charset_compression_quality (cmd_parms *cmd, void *dummy, const char *arg)
 
static const charset_compression_lgwin (cmd_parms *cmd, void *dummy, const char *arg)
 
static const charset_compression_lgblock (cmd_parms *cmd, void *dummy, const char *arg)
 
static const charset_etag_mode (cmd_parms *cmd, void *dummy, const char *arg)
 
static void * alloc_func (void *opaque, size_t size)
 
static void free_func (void *opaque, void *block)
 
static apr_status_t cleanup_ctx (void *data)
 
static brotli_ctx_tcreate_ctx (int quality, int lgwin, int lgblock, apr_bucket_alloc_t *alloc, apr_pool_t *pool)
 
static apr_status_t process_chunk (brotli_ctx_t *ctx, const void *data, apr_size_t len, ap_filter_t *f)
 
static apr_status_t flush (brotli_ctx_t *ctx, BrotliEncoderOperation op, ap_filter_t *f)
 
static const charget_content_encoding (request_rec *r)
 
static apr_status_t compress_filter (ap_filter_t *f, apr_bucket_brigade *bb)
 
static void register_hooks (apr_pool_t *p)
 

Variables

static const command_rec cmds []
 
static int *const aplog_module_index = &( brotli_module.module_index)
 

Typedef Documentation

◆ brotli_ctx_t

◆ brotli_server_config_t

Enumeration Type Documentation

◆ etag_mode_e

Enumerator
ETAG_MODE_ADDSUFFIX 
ETAG_MODE_NOCHANGE 
ETAG_MODE_REMOVE 

Definition at line 26 of file mod_brotli.c.

Function Documentation

◆ alloc_func()

static void * alloc_func ( void *  opaque,
size_t  size 
)
static

Definition at line 168 of file mod_brotli.c.

◆ cleanup_ctx()

static apr_status_t cleanup_ctx ( void *  data)
static

Definition at line 180 of file mod_brotli.c.

◆ compress_filter()

static apr_status_t compress_filter ( ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 330 of file mod_brotli.c.

◆ create_ctx()

static brotli_ctx_t * create_ctx ( int  quality,
int  lgwin,
int  lgblock,
apr_bucket_alloc_t alloc,
apr_pool_t pool 
)
static

Definition at line 189 of file mod_brotli.c.

◆ create_server_config()

static void * create_server_config ( apr_pool_t p,
server_rec s 
)
static

Definition at line 42 of file mod_brotli.c.

◆ flush()

static apr_status_t flush ( brotli_ctx_t ctx,
BrotliEncoderOperation  op,
ap_filter_t f 
)
static

Definition at line 263 of file mod_brotli.c.

◆ free_func()

static void free_func ( void *  opaque,
void *  block 
)
static

Definition at line 173 of file mod_brotli.c.

◆ get_content_encoding()

static const char * get_content_encoding ( request_rec r)
static

Definition at line 304 of file mod_brotli.c.

◆ process_chunk()

static apr_status_t process_chunk ( brotli_ctx_t ctx,
const void *  data,
apr_size_t  len,
ap_filter_t f 
)
static

Definition at line 210 of file mod_brotli.c.

◆ register_hooks()

static void register_hooks ( apr_pool_t p)
static

Definition at line 571 of file mod_brotli.c.

◆ set_compression_lgblock()

static const char * set_compression_lgblock ( cmd_parms cmd,
void *  dummy,
const char arg 
)
static

Definition at line 124 of file mod_brotli.c.

◆ set_compression_lgwin()

static const char * set_compression_lgwin ( cmd_parms cmd,
void *  dummy,
const char arg 
)
static

Definition at line 109 of file mod_brotli.c.

◆ set_compression_quality()

static const char * set_compression_quality ( cmd_parms cmd,
void *  dummy,
const char arg 
)
static

Definition at line 94 of file mod_brotli.c.

◆ set_etag_mode()

static const char * set_etag_mode ( cmd_parms cmd,
void *  dummy,
const char arg 
)
static

Definition at line 139 of file mod_brotli.c.

◆ set_filter_note()

static const char * set_filter_note ( cmd_parms cmd,
void *  dummy,
const char arg1,
const char arg2 
)
static

Definition at line 66 of file mod_brotli.c.

Variable Documentation

◆ aplog_module_index

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

Definition at line 600 of file mod_brotli.c.

◆ cmds

const command_rec cmds[]
static
Initial value:
= {
{ "BrotliFilterNote" , set_filter_note , NULL , 128 , TAKE12, "Set a note to report on compression ratio" },
{ "BrotliCompressionQuality" , set_compression_quality , NULL , 128 , TAKE1, "Compression quality between 0 and 11 (higher quality means " "slower compression)" },
{ "BrotliCompressionWindow" , set_compression_lgwin , NULL , 128 , TAKE1, "Sliding window size between 10 and 24 (larger windows can " "improve compression, but require more memory)" },
{ "BrotliCompressionMaxInputBlock" , set_compression_lgblock , NULL , 128 , TAKE1, "Maximum input block size between 16 and 24 (larger block " "sizes require more memory)" },
{ "BrotliAlterETag" , set_etag_mode , NULL , 128 , TAKE1, "Set how mod_brotli should modify ETag response headers: " "'AddSuffix' (default), 'NoChange', 'Remove'" },
{NULL}
}
@ TAKE12
Definition http_config.h:61
@ TAKE1
Definition http_config.h:51
static const char * set_compression_lgblock(cmd_parms *cmd, void *dummy, const char *arg)
Definition mod_brotli.c:124
static const char * set_filter_note(cmd_parms *cmd, void *dummy, const char *arg1, const char *arg2)
Definition mod_brotli.c:66
static const char * set_compression_quality(cmd_parms *cmd, void *dummy, const char *arg)
Definition mod_brotli.c:94
static const char * set_compression_lgwin(cmd_parms *cmd, void *dummy, const char *arg)
Definition mod_brotli.c:109
static const char * set_etag_mode(cmd_parms *cmd, void *dummy, const char *arg)
Definition mod_brotli.c:139
return NULL
Definition mod_so.c:359

Definition at line 577 of file mod_brotli.c.