{ directive, { .take2=func }, mconfig, where, TAKE2, help }
# define AP_INIT_TAKE12(directive, func, mconfig, where, help) \
{ directive, { .take2=func }, mconfig, where, TAKE12, help }
+# define AP_INIT_TAKE23(directive, func, mconfig, where, help) \
+ { directive, { .take3=func }, mconfig, where, TAKE23, help }
# define AP_INIT_FLAG(directive, func, mconfig, where, help) \
{ directive, { .flag=func }, mconfig, where, FLAG, help }
*/
typedef struct {
- char *default_format_string;
+ const char *default_format_string;
ap_array_header_t *default_format;
ap_array_header_t *config_logs;
ap_array_header_t *server_config_logs;
*/
typedef struct {
- char *fname;
- char *format_string;
+ const char *fname;
+ const char *format_string;
ap_array_header_t *format;
ap_file_t *log_fd;
char *condition_var;
/*
* Set the default logfile format, or define a nickname for a format string.
*/
-static const char *log_format(cmd_parms *cmd, void *dummy, char *fmt,
- char *name)
+static const char *log_format(cmd_parms *cmd, void *dummy, const char *fmt,
+ const char *name)
{
const char *err_string = NULL;
multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
}
-static const char *add_custom_log(cmd_parms *cmd, void *dummy, char *fn,
- char *fmt, char *envclause)
+static const char *add_custom_log(cmd_parms *cmd, void *dummy, const char *fn,
+ const char *fmt, const char *envclause)
{
const char *err_string = NULL;
multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
return err_string;
}
-static const char *set_transfer_log(cmd_parms *cmd, void *dummy, char *fn)
+static const char *set_transfer_log(cmd_parms *cmd, void *dummy,
+ const char *fn)
{
return add_custom_log(cmd, dummy, fn, NULL, NULL);
}
-static const char *set_cookie_log(cmd_parms *cmd, void *dummy, char *fn)
+static const char *set_cookie_log(cmd_parms *cmd, void *dummy, const char *fn)
{
return add_custom_log(cmd, dummy, fn, "%{Cookie}n \"%r\" %t", NULL);
}
static const command_rec config_log_cmds[] =
{
- {"CustomLog", add_custom_log, NULL, RSRC_CONF, TAKE23,
+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)"},
- {"TransferLog", set_transfer_log, NULL, RSRC_CONF, TAKE1,
- "the filename of the access log"},
- {"LogFormat", log_format, NULL, RSRC_CONF, TAKE12,
- "a log format string (see docs) and an optional format name"},
- {"CookieLog", set_cookie_log, NULL, RSRC_CONF, TAKE1,
- "the filename of the cookie log"},
+ "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"),
{NULL}
};
typedef struct {
ap_table_t *vars;
- char *unsetenv;
+ const char *unsetenv;
int vars_present;
} env_dir_config_rec;
return new;
}
-static const char *add_env_module_vars_passed(cmd_parms *cmd,
- env_dir_config_rec *sconf,
+static const char *add_env_module_vars_passed(cmd_parms *cmd, void *sconf_,
const char *arg)
{
+ env_dir_config_rec *sconf=sconf_;
ap_table_t *vars = sconf->vars;
char *env_var;
char *name_ptr;
return NULL;
}
-static const char *add_env_module_vars_set(cmd_parms *cmd,
- env_dir_config_rec *sconf,
+static const char *add_env_module_vars_set(cmd_parms *cmd, void *sconf_,
const char *arg)
{
+ env_dir_config_rec *sconf=sconf_;
ap_table_t *vars = sconf->vars;
char *name, *value;
return NULL;
}
-static const char *add_env_module_vars_unset(cmd_parms *cmd,
- env_dir_config_rec *sconf,
- char *arg)
+static const char *add_env_module_vars_unset(cmd_parms *cmd, void *sconf_,
+ const char *arg)
{
+ env_dir_config_rec *sconf=sconf_;
+
sconf->unsetenv = sconf->unsetenv ?
ap_pstrcat(cmd->pool, sconf->unsetenv, " ", arg, NULL) :
arg;
static const command_rec env_module_cmds[] =
{
- {"PassEnv", add_env_module_vars_passed, NULL,
- OR_FILEINFO, RAW_ARGS, "a list of environment variables to pass to CGI."},
- {"SetEnv", add_env_module_vars_set, NULL,
- OR_FILEINFO, RAW_ARGS, "an environment variable name and a value to pass to CGI."},
- {"UnsetEnv", add_env_module_vars_unset, NULL,
- OR_FILEINFO, RAW_ARGS, "a list of variables to remove from the CGI environment."},
+AP_INIT_RAW_ARGS("PassEnv", add_env_module_vars_passed, NULL,
+ OR_FILEINFO, "a list of environment variables to pass to CGI."),
+AP_INIT_RAW_ARGS("SetEnv", add_env_module_vars_set, NULL,
+ OR_FILEINFO, "an environment variable name and a value to pass to CGI."),
+AP_INIT_RAW_ARGS("UnsetEnv", add_env_module_vars_unset, NULL,
+ OR_FILEINFO, "a list of variables to remove from the CGI environment."),
{NULL},
};