40module AP_MODULE_DECLARE_DATA log_forensic_module;
85 "couldn't spawn forensic log pipe %s", cfg->
logname);
98 "could not open forensic log file %s.",
fname);
109 for ( ;
s ;
s =
s->next) {
153 for (
n = 0 ; *
p ; ++
p, ++
n)
185 &log_forensic_module);
215 h.pos += strlen(
h.pos);
236 &log_forensic_module);
238 &log_forensic_module);
243 if (!cfg->
fd ||
id ==
NULL) {
258 &log_forensic_module);
267 "the filename of the forensic log"),
273 static const char *
const pre[] = {
"mod_unique_id.c",
NULL };
apr_uint32_t apr_atomic_inc32(volatile apr_uint32_t *mem)
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
#define ap_get_module_config(v, m)
#define AP_DECLARE_MODULE(foo)
void ap_hook_open_logs(ap_HOOK_open_logs_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
char * ap_server_root_relative(apr_pool_t *p, const char *fname)
#define ap_set_module_config(v, m, val)
apr_file_t * ap_piped_log_write_fd(piped_log *pl)
piped_log * ap_open_piped_log(apr_pool_t *p, const char *program)
void ap_hook_log_transaction(ap_HOOK_log_transaction_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_post_read_request(ap_HOOK_post_read_request_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define APR_HOOK_REALLY_FIRST
#define APR_HOOK_REALLY_LAST
#define HTTP_INTERNAL_SERVER_ERROR
#define STANDARD20_MODULE_STUFF
void ap_bin2hex(const void *src, apr_size_t srclen, char *dest)
const char apr_uint32_t * id
#define apr_pcalloc(p, size)
static int open_log(server_rec *s, apr_pool_t *p)
static const char * set_forensic_log(cmd_parms *cmd, void *dummy, const char *fn)
static apr_uint32_t next_id
static int log_init(apr_pool_t *pc, apr_pool_t *p, apr_pool_t *pt, server_rec *s)
static const command_rec forensic_log_cmds[]
static int log_after(request_rec *r)
static char * log_escape(char *q, const char *e, const char *p)
static void register_hooks(apr_pool_t *p)
static void * make_forensic_log_scfg(apr_pool_t *p, server_rec *s)
static int count_headers(void *h_, const char *key, const char *value)
static void * merge_forensic_log_scfg(apr_pool_t *p, void *parent, void *new)
static apr_size_t count_string(const char *p)
static int log_headers(void *h_, const char *key, const char *value)
static int log_before(request_rec *r)
#define T_ESCAPE_FORENSIC
The piped logging structure.
A structure that represents the current request.
struct ap_conf_vector_t * request_config
apr_table_t * subprocess_env
A structure to store information for each virtual server.
struct ap_conf_vector_t * module_config