if ( rule->flags & M_NEWLINE ) { lflags |= AP_REG_NEWLINE; } rule->from.r = ap_pregcomp(cmd->pool, from, lflags) ; } else { lflags = (rule->flags & M_NOCASE) ? 0 : 1 ; rule->length = strlen(from) ; rule->from.s = apr_strmatch_precompile(cmd->pool, from, lflags) ; } return NULL; } static const command_rec line_edit_cmds[] = { AP_INIT_TAKE12("LELineEnd", line_edit_lineend, NULL, OR_ALL, "Use line ending: UNIX|MAC|DOS|ANY|NONE|CUSTOM [char]") , AP_INIT_TAKE23("LERewriteRule", line_edit_rewriterule, NULL, OR_ALL, "Line-oriented text rewrite rule: From-pattern, To-pattern [, Flags]") , {NULL} } ; static void* line_edit_cr_cfg(apr_pool_t* pool, char* x) { line_edit_cfg* ret = apr_palloc(pool, sizeof(line_edit_cfg)) ; ret->lineend = LINEEND_UNSET; ret->rewriterules = apr_array_make(pool, 8, sizeof(rewriterule)) ; ret->lechar = 0; return ret ; } static void* line_edit_merge(apr_pool_t* pool, void* BASE, void* ADD) { line_edit_cfg* base = (line_edit_cfg*) BASE ; line_edit_cfg* add = (line_edit_cfg*) ADD ; line_edit_cfg* conf = apr_palloc(pool, sizeof(line_edit_cfg)) ; conf->lineend = (add->lineend == LINEEND_UNSET)
return conf; } static const command_rec filter_cmds[] = { AP_INIT_TAKE12("FilterDeclare", filter_declare, NULL, OR_OPTIONS, "filter-name [filter-type]"), AP_INIT_TAKE3("FilterProvider", filter_provider, NULL, OR_OPTIONS, "filter-name provider-name match-expression"), AP_INIT_ITERATE("FilterChain", filter_chain, NULL, OR_OPTIONS, "list of filter names with optional [+-=!@]"), AP_INIT_TAKE2("FilterTrace", filter_debug, NULL, RSRC_CONF | ACCESS_CONF, "filter-name debug-level"), AP_INIT_TAKE_ARGV("AddOutputFilterByType", filter_bytype, NULL, OR_FILEINFO, "output filter name followed by one or more content-types"), #ifndef NO_PROTOCOL AP_INIT_TAKE23("FilterProtocol", filter_protocol, NULL, OR_OPTIONS, "filter-name [provider-name] protocol-args"), #endif { NULL } }; AP_DECLARE_MODULE(filter) = { STANDARD20_MODULE_STUFF, filter_config, filter_merge, NULL, NULL, filter_cmds, filter_hooks };
return add_custom_log(cmd, dummy, fn, "%{Cookie}n \"%r\" %t", NULL); } static const char *set_buffered_logs_on(cmd_parms *parms, void *dummy, int flag) { buffered_logs = flag; if (buffered_logs) { ap_log_set_writer_init(ap_buffered_log_writer_init); ap_log_set_writer(ap_buffered_log_writer); } return NULL; } static const command_rec config_log_cmds[] = { AP_INIT_TAKE23("CustomLog", add_custom_log, NULL, RSRC_CONF, "a file name, a custom log format string or format name, " "and an optional \"env=\" clause (see docs)"), AP_INIT_TAKE1("TransferLog", set_transfer_log, NULL, RSRC_CONF, "the filename of the access log"), AP_INIT_TAKE12("LogFormat", log_format, NULL, RSRC_CONF, "a log format string (see docs) and an optional format name"), AP_INIT_TAKE1("CookieLog", set_cookie_log, NULL, RSRC_CONF, "the filename of the cookie log"), AP_INIT_FLAG("BufferedLogs", set_buffered_logs_on, NULL, RSRC_CONF, "Enable Buffered Logging (experimental)"), {NULL} }; static config_log_state *open_config_log(server_rec *s, apr_pool_t *p, config_log_state *cls, apr_array_header_t *default_format)