Apache HTTPD
Classes | Macros | Typedefs | Enumerations | Functions | Variables
mod_charset_lite.c File Reference
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"
#include "http_log.h"
#include "http_main.h"
#include "http_protocol.h"
#include "http_request.h"
#include "util_charset.h"
#include "apr_buckets.h"
#include "util_filter.h"
#include "apr_strings.h"
#include "apr_lib.h"
#include "apr_xlate.h"
#include "apr_want.h"

Go to the source code of this file.

Classes

struct  charset_dir_t
 
struct  charset_filter_ctx_t
 
struct  charset_req_t
 

Macros

#define APR_WANT_STRFUNC
 
#define OUTPUT_XLATE_BUF_SIZE   (16*1024) /* size of translation buffer used on output */
 
#define INPUT_XLATE_BUF_SIZE   (8*1024) /* size of translation buffer used on input */
 
#define XLATE_MIN_BUFF_LEFT
 
#define FATTEST_CHAR
 
#define XLATEOUT_FILTER_NAME   "XLATEOUT"
 
#define XLATEIN_FILTER_NAME   "XLATEIN"
 

Typedefs

typedef struct charset_dir_t charset_dir_t
 
typedef struct charset_filter_ctx_t charset_filter_ctx_t
 
typedef struct charset_req_t charset_req_t
 

Enumerations

enum  ees_t {
  EES_INIT = 0 , EES_LIMIT , EES_INCOMPLETE_CHAR , EES_BUCKET_READ ,
  EES_DOWNSTREAM , EES_BAD_INPUT
}
 

Functions

static void * create_charset_dir_conf (apr_pool_t *p, char *dummy)
 
static void * merge_charset_dir_conf (apr_pool_t *p, void *basev, void *overridesv)
 
static const charadd_charset_source (cmd_parms *cmd, void *in_dc, const char *name)
 
static const charadd_charset_default (cmd_parms *cmd, void *in_dc, const char *name)
 
static const charadd_charset_options (cmd_parms *cmd, void *in_dc, const char *flag)
 
static int find_code_page (request_rec *r)
 
static int configured_in_list (request_rec *r, const char *filter_name, struct ap_filter_t *filter_list)
 
static int configured_on_input (request_rec *r, const char *filter_name)
 
static int configured_on_output (request_rec *r, const char *filter_name)
 
static void xlate_insert_filter (request_rec *r)
 
static apr_status_t send_bucket_downstream (ap_filter_t *f, apr_bucket *b)
 
static apr_status_t send_downstream (ap_filter_t *f, const char *tmp, apr_size_t len)
 
static apr_status_t send_eos (ap_filter_t *f)
 
static apr_status_t set_aside_partial_char (charset_filter_ctx_t *ctx, const char *partial, apr_size_t partial_len)
 
static apr_status_t finish_partial_char (charset_filter_ctx_t *ctx, const char **cur_str, apr_size_t *cur_len, char **out_str, apr_size_t *out_len)
 
static void log_xlate_error (ap_filter_t *f, apr_status_t rv)
 
static void chk_filter_chain (ap_filter_t *f)
 
static apr_status_t xlate_brigade (charset_filter_ctx_t *ctx, apr_bucket_brigade *bb, char *buffer, apr_size_t *buffer_avail, int *hit_eos)
 
static apr_status_t xlate_out_filter (ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t xlate_in_filter (ap_filter_t *f, apr_bucket_brigade *bb, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
 
static void charset_register_hooks (apr_pool_t *p)
 

Variables

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

Macro Definition Documentation

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 41 of file mod_charset_lite.c.

◆ FATTEST_CHAR

#define FATTEST_CHAR
Value:
8 /* we don't handle chars wider than this that straddle
* two buckets
*/

Definition at line 49 of file mod_charset_lite.c.

◆ INPUT_XLATE_BUF_SIZE

#define INPUT_XLATE_BUF_SIZE   (8*1024) /* size of translation buffer used on input */

Definition at line 45 of file mod_charset_lite.c.

◆ OUTPUT_XLATE_BUF_SIZE

#define OUTPUT_XLATE_BUF_SIZE   (16*1024) /* size of translation buffer used on output */

Definition at line 44 of file mod_charset_lite.c.

◆ XLATE_MIN_BUFF_LEFT

#define XLATE_MIN_BUFF_LEFT
Value:
128 /* flush once there is no more than this much
* space left in the translation buffer
*/

Definition at line 47 of file mod_charset_lite.c.

◆ XLATEIN_FILTER_NAME

#define XLATEIN_FILTER_NAME   "XLATEIN"

Definition at line 66 of file mod_charset_lite.c.

◆ XLATEOUT_FILTER_NAME

#define XLATEOUT_FILTER_NAME   "XLATEOUT"

Definition at line 64 of file mod_charset_lite.c.

Typedef Documentation

◆ charset_dir_t

◆ charset_filter_ctx_t

◆ charset_req_t

Enumeration Type Documentation

◆ ees_t

Enumerator
EES_INIT 
EES_LIMIT 
EES_INCOMPLETE_CHAR 
EES_BUCKET_READ 
EES_DOWNSTREAM 
EES_BAD_INPUT 

Definition at line 54 of file mod_charset_lite.c.

Function Documentation

◆ add_charset_default()

static const char * add_charset_default ( cmd_parms cmd,
void *  in_dc,
const char name 
)
static

Definition at line 147 of file mod_charset_lite.c.

◆ add_charset_options()

static const char * add_charset_options ( cmd_parms cmd,
void *  in_dc,
const char flag 
)
static

Definition at line 158 of file mod_charset_lite.c.

◆ add_charset_source()

static const char * add_charset_source ( cmd_parms cmd,
void *  in_dc,
const char name 
)
static

Definition at line 136 of file mod_charset_lite.c.

◆ charset_register_hooks()

static void charset_register_hooks ( apr_pool_t p)
static

Definition at line 1118 of file mod_charset_lite.c.

◆ chk_filter_chain()

static void chk_filter_chain ( ap_filter_t f)
static

Definition at line 540 of file mod_charset_lite.c.

◆ configured_in_list()

static int configured_in_list ( request_rec r,
const char filter_name,
struct ap_filter_t filter_list 
)
static

Definition at line 283 of file mod_charset_lite.c.

◆ configured_on_input()

static int configured_on_input ( request_rec r,
const char filter_name 
)
static

Definition at line 297 of file mod_charset_lite.c.

◆ configured_on_output()

static int configured_on_output ( request_rec r,
const char filter_name 
)
static

Definition at line 302 of file mod_charset_lite.c.

◆ create_charset_dir_conf()

static void * create_charset_dir_conf ( apr_pool_t p,
char dummy 
)
static

Definition at line 106 of file mod_charset_lite.c.

◆ find_code_page()

static int find_code_page ( request_rec r)
static

< Module declines to handle

< Module declines to handle

< Module declines to handle

< Module declines to handle

< Module declines to handle

Definition at line 189 of file mod_charset_lite.c.

◆ finish_partial_char()

static apr_status_t finish_partial_char ( charset_filter_ctx_t ctx,
const char **  cur_str,
apr_size_t cur_len,
char **  out_str,
apr_size_t out_len 
)
static

Definition at line 426 of file mod_charset_lite.c.

◆ log_xlate_error()

static void log_xlate_error ( ap_filter_t f,
apr_status_t  rv 
)
static

Definition at line 468 of file mod_charset_lite.c.

◆ merge_charset_dir_conf()

static void * merge_charset_dir_conf ( apr_pool_t p,
void *  basev,
void *  overridesv 
)
static

Definition at line 113 of file mod_charset_lite.c.

◆ send_bucket_downstream()

static apr_status_t send_bucket_downstream ( ap_filter_t f,
apr_bucket b 
)
static

Definition at line 360 of file mod_charset_lite.c.

◆ send_downstream()

static apr_status_t send_downstream ( ap_filter_t f,
const char tmp,
apr_size_t  len 
)
static

Definition at line 377 of file mod_charset_lite.c.

◆ send_eos()

static apr_status_t send_eos ( ap_filter_t f)
static

Definition at line 387 of file mod_charset_lite.c.

◆ set_aside_partial_char()

static apr_status_t set_aside_partial_char ( charset_filter_ctx_t ctx,
const char partial,
apr_size_t  partial_len 
)
static

Definition at line 406 of file mod_charset_lite.c.

◆ xlate_brigade()

static apr_status_t xlate_brigade ( charset_filter_ctx_t ctx,
apr_bucket_brigade bb,
char buffer,
apr_size_t buffer_avail,
int hit_eos 
)
static

Definition at line 641 of file mod_charset_lite.c.

◆ xlate_in_filter()

static apr_status_t xlate_in_filter ( ap_filter_t f,
apr_bucket_brigade bb,
ap_input_mode_t  mode,
apr_read_type_e  block,
apr_off_t  readbytes 
)
static

Definition at line 970 of file mod_charset_lite.c.

◆ xlate_insert_filter()

static void xlate_insert_filter ( request_rec r)
static

Definition at line 310 of file mod_charset_lite.c.

◆ xlate_out_filter()

static apr_status_t xlate_out_filter ( ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 750 of file mod_charset_lite.c.

Variable Documentation

◆ aplog_module_index

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

Definition at line 1128 of file mod_charset_lite.c.

◆ cmds

const command_rec cmds[]
static
Initial value:
=
{
{ "CharsetSourceEnc" , add_charset_source , NULL , 4 , TAKE1, "source (html,cgi,ssi) file charset" },
{ "CharsetDefault" , add_charset_default , NULL , 4 , TAKE1, "name of default charset" },
{ "CharsetOptions" , add_charset_options , NULL , 4 , ITERATE, "valid options: ImplicitAdd, NoImplicitAdd, TranslateAllMimeTypes, " "NoTranslateAllMimeTypes" },
{NULL}
}
@ TAKE1
Definition http_config.h:51
@ ITERATE
Definition http_config.h:53
static const char * add_charset_source(cmd_parms *cmd, void *in_dc, const char *name)
static const char * add_charset_options(cmd_parms *cmd, void *in_dc, const char *flag)
static const char * add_charset_default(cmd_parms *cmd, void *in_dc, const char *name)
return NULL
Definition mod_so.c:359

Definition at line 1097 of file mod_charset_lite.c.