diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index fad78ce351..77dc6308cc 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.441 2008/04/02 14:42:56 mha Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.442 2008/04/03 09:21:15 mha Exp $ * *-------------------------------------------------------------------- */ @@ -135,8 +135,8 @@ static const char *assign_log_destination(const char *value, #ifdef HAVE_SYSLOG static int syslog_facility = LOG_LOCAL0; -static const char *assign_syslog_facility(const char *facility, - bool doit, GucSource source); +static bool assign_syslog_facility(int newval, + bool doit, GucSource source); static const char *assign_syslog_ident(const char *ident, bool doit, GucSource source); #endif @@ -229,6 +229,18 @@ static const struct config_enum_entry session_replication_role_options[] = { {NULL, 0} }; +static const struct config_enum_entry syslog_facility_options[] = { + {"local0", LOG_LOCAL0}, + {"local1", LOG_LOCAL1}, + {"local2", LOG_LOCAL2}, + {"local3", LOG_LOCAL3}, + {"local4", LOG_LOCAL4}, + {"local5", LOG_LOCAL5}, + {"local6", LOG_LOCAL6}, + {"local7", LOG_LOCAL7}, + {NULL, 0} +}; + /* * GUC option variables that are exported from this module @@ -283,7 +295,6 @@ int tcp_keepalives_count; static char *log_destination_string; #ifdef HAVE_SYSLOG -static char *syslog_facility_str; static char *syslog_ident_str; #endif static bool phony_autocommit; @@ -2231,15 +2242,6 @@ static struct config_string ConfigureNamesString[] = }, #ifdef HAVE_SYSLOG - { - {"syslog_facility", PGC_SIGHUP, LOGGING_WHERE, - gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."), - gettext_noop("Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, " - "LOCAL4, LOCAL5, LOCAL6, LOCAL7.") - }, - &syslog_facility_str, - "LOCAL0", assign_syslog_facility, NULL - }, { {"syslog_ident", PGC_SIGHUP, LOGGING_WHERE, gettext_noop("Sets the program name used to identify PostgreSQL " @@ -2488,6 +2490,18 @@ static struct config_enum ConfigureNamesEnum[] = LOGSTMT_NONE, log_statement_options, NULL, NULL }, +#ifdef HAVE_SYSLOG + { + {"syslog_facility", PGC_SIGHUP, LOGGING_WHERE, + gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."), + gettext_noop("Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, " + "LOCAL4, LOCAL5, LOCAL6, LOCAL7.") + }, + &syslog_facility, + LOG_LOCAL0, syslog_facility_options, assign_syslog_facility, NULL + }, +#endif + { {"regex_flavor", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS, gettext_noop("Sets the regular expression \"flavor\"."), @@ -6860,38 +6874,14 @@ assign_log_destination(const char *value, bool doit, GucSource source) #ifdef HAVE_SYSLOG -static const char * -assign_syslog_facility(const char *facility, bool doit, GucSource source) +static bool +assign_syslog_facility(int newval, bool doit, GucSource source) { - int syslog_fac; - - if (pg_strcasecmp(facility, "LOCAL0") == 0) - syslog_fac = LOG_LOCAL0; - else if (pg_strcasecmp(facility, "LOCAL1") == 0) - syslog_fac = LOG_LOCAL1; - else if (pg_strcasecmp(facility, "LOCAL2") == 0) - syslog_fac = LOG_LOCAL2; - else if (pg_strcasecmp(facility, "LOCAL3") == 0) - syslog_fac = LOG_LOCAL3; - else if (pg_strcasecmp(facility, "LOCAL4") == 0) - syslog_fac = LOG_LOCAL4; - else if (pg_strcasecmp(facility, "LOCAL5") == 0) - syslog_fac = LOG_LOCAL5; - else if (pg_strcasecmp(facility, "LOCAL6") == 0) - syslog_fac = LOG_LOCAL6; - else if (pg_strcasecmp(facility, "LOCAL7") == 0) - syslog_fac = LOG_LOCAL7; - else - return NULL; /* reject */ - if (doit) - { - syslog_facility = syslog_fac; set_syslog_parameters(syslog_ident_str ? syslog_ident_str : "postgres", - syslog_facility); - } + newval); - return facility; + return true; } static const char *