1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-08 15:02:10 +03:00

replace duplicate code with new function ap_parse_log_level()

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@905454 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stefan Fritsch
2010-02-01 23:27:32 +00:00
parent 5314f77c08
commit 60821a3b74
6 changed files with 36 additions and 83 deletions

View File

@@ -212,6 +212,7 @@
* to proxy_ftp_dir_conf(mod_proxy_ftp)
* 20091230.1 (2.3.5-dev) add util_ldap_state_t.opTimeout
* 20091230.2 (2.3.5-dev) add ap_get_server_name_for_url()
* 20091230.3 (2.3.6-dev) add ap_parse_log_level()
*
*/
@@ -220,7 +221,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20091230
#endif
#define MODULE_MAGIC_NUMBER_MINOR 2 /* 0...n */
#define MODULE_MAGIC_NUMBER_MINOR 3 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a

View File

@@ -490,6 +490,14 @@ AP_DECLARE_NONSTD(const char *) ap_set_int_slot(cmd_parms *cmd,
void *struct_ptr,
const char *arg);
/**
* Parsing function for log level
* @param str The string to parse
* @param val The parsed log level
* @return An error string or NULL on success
*/
AP_DECLARE(const char *) ap_parse_log_level(const char *str, int *val);
/**
* Return true if the specified method is limited by being listed in
* a <Limit> container, or by *not* being listed in a <LimitExcept>

View File

@@ -244,34 +244,9 @@ static const char *set_loglevel(cmd_parms *cmd, void *dummy, const char *arg)
}
if ((str = ap_getword_conf(cmd->pool, &arg))) {
if (!strcasecmp(str, "emerg")) {
ptr->loglevel = APLOG_EMERG;
}
else if (!strcasecmp(str, "alert")) {
ptr->loglevel = APLOG_ALERT;
}
else if (!strcasecmp(str, "crit")) {
ptr->loglevel = APLOG_CRIT;
}
else if (!strcasecmp(str, "error")) {
ptr->loglevel = APLOG_ERR;
}
else if (!strcasecmp(str, "warn")) {
ptr->loglevel = APLOG_WARNING;
}
else if (!strcasecmp(str, "notice")) {
ptr->loglevel = APLOG_NOTICE;
}
else if (!strcasecmp(str, "info")) {
ptr->loglevel = APLOG_INFO;
}
else if (!strcasecmp(str, "debug")) {
ptr->loglevel = APLOG_DEBUG;
}
else {
return "DumpIOLogLevel requires level keyword: one of "
"emerg/alert/crit/error/warn/notice/info/debug";
}
err = ap_parse_log_level(str, &ptr->loglevel);
if (err != NULL)
return err;
}
else {
return "DumpIOLogLevel requires level keyword";

View File

@@ -2626,34 +2626,9 @@ static const char *set_loglevel(cmd_parms *cmd, void *dummy, const char *arg)
}
if ((str = ap_getword_conf(cmd->pool, &arg))) {
if (!strcasecmp(str, "emerg")) {
cmd->server->loglevel = APLOG_EMERG;
}
else if (!strcasecmp(str, "alert")) {
cmd->server->loglevel = APLOG_ALERT;
}
else if (!strcasecmp(str, "crit")) {
cmd->server->loglevel = APLOG_CRIT;
}
else if (!strcasecmp(str, "error")) {
cmd->server->loglevel = APLOG_ERR;
}
else if (!strcasecmp(str, "warn")) {
cmd->server->loglevel = APLOG_WARNING;
}
else if (!strcasecmp(str, "notice")) {
cmd->server->loglevel = APLOG_NOTICE;
}
else if (!strcasecmp(str, "info")) {
cmd->server->loglevel = APLOG_INFO;
}
else if (!strcasecmp(str, "debug")) {
cmd->server->loglevel = APLOG_DEBUG;
}
else {
return "LogLevel requires level keyword: one of "
"emerg/alert/crit/error/warn/notice/info/debug";
}
err = ap_parse_log_level(arg, &cmd->server->loglevel);
if (err != NULL)
return err;
}
else {
return "LogLevel requires level keyword";

View File

@@ -1127,6 +1127,25 @@ AP_DECLARE(void) ap_close_piped_log(piped_log *pl)
apr_pool_cleanup_run(pl->p, pl, piped_log_cleanup);
}
AP_DECLARE(const char *) ap_parse_log_level(const char *str, int *val)
{
char *err = "Loglevel keyword must be one of emerg/alert/crit/error/warn/"
"notice/info/debug";
int i = 0;
if (str == NULL)
return err;
while (priorities[i].t_name != NULL) {
if (!strcasecmp(str, priorities[i].t_name)) {
*val = priorities[i].t_val;
return NULL;
}
i++;
}
return err;
}
AP_IMPLEMENT_HOOK_VOID(error_log,
(const char *file, int line, int level,
apr_status_t status, const server_rec *s,

View File

@@ -530,33 +530,8 @@ int main(int argc, const char * const argv[])
break;
case 'e':
if (strcasecmp(optarg, "emerg") == 0) {
ap_default_loglevel = APLOG_EMERG;
}
else if (strcasecmp(optarg, "alert") == 0) {
ap_default_loglevel = APLOG_ALERT;
}
else if (strcasecmp(optarg, "crit") == 0) {
ap_default_loglevel = APLOG_CRIT;
}
else if (strncasecmp(optarg, "err", 3) == 0) {
ap_default_loglevel = APLOG_ERR;
}
else if (strncasecmp(optarg, "warn", 4) == 0) {
ap_default_loglevel = APLOG_WARNING;
}
else if (strcasecmp(optarg, "notice") == 0) {
ap_default_loglevel = APLOG_NOTICE;
}
else if (strcasecmp(optarg, "info") == 0) {
ap_default_loglevel = APLOG_INFO;
}
else if (strcasecmp(optarg, "debug") == 0) {
ap_default_loglevel = APLOG_DEBUG;
}
else {
if (ap_parse_log_level(optarg, &ap_default_loglevel) != NULL)
usage(process);
}
break;
case 'E':