|
10 | 10 | * Written by Peter Eisentraut <peter_e@gmx.net>. |
11 | 11 | * |
12 | 12 | * IDENTIFICATION |
13 | | - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.441 2008/04/02 14:42:56 mha Exp $ |
| 13 | + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.442 2008/04/03 09:21:15 mha Exp $ |
14 | 14 | * |
15 | 15 | *-------------------------------------------------------------------- |
16 | 16 | */ |
@@ -135,8 +135,8 @@ static const char *assign_log_destination(const char *value, |
135 | 135 | #ifdef HAVE_SYSLOG |
136 | 136 | static int syslog_facility = LOG_LOCAL0; |
137 | 137 |
|
138 | | -static const char *assign_syslog_facility(const char *facility, |
139 | | - bool doit, GucSource source); |
| 138 | +static bool assign_syslog_facility(int newval, |
| 139 | + bool doit, GucSource source); |
140 | 140 | static const char *assign_syslog_ident(const char *ident, |
141 | 141 | bool doit, GucSource source); |
142 | 142 | #endif |
@@ -229,6 +229,18 @@ static const struct config_enum_entry session_replication_role_options[] = { |
229 | 229 | {NULL, 0} |
230 | 230 | }; |
231 | 231 |
|
| 232 | +static const struct config_enum_entry syslog_facility_options[] = { |
| 233 | + {"local0", LOG_LOCAL0}, |
| 234 | + {"local1", LOG_LOCAL1}, |
| 235 | + {"local2", LOG_LOCAL2}, |
| 236 | + {"local3", LOG_LOCAL3}, |
| 237 | + {"local4", LOG_LOCAL4}, |
| 238 | + {"local5", LOG_LOCAL5}, |
| 239 | + {"local6", LOG_LOCAL6}, |
| 240 | + {"local7", LOG_LOCAL7}, |
| 241 | + {NULL, 0} |
| 242 | +}; |
| 243 | + |
232 | 244 |
|
233 | 245 | /* |
234 | 246 | * GUC option variables that are exported from this module |
@@ -283,7 +295,6 @@ int tcp_keepalives_count; |
283 | 295 | static char *log_destination_string; |
284 | 296 |
|
285 | 297 | #ifdef HAVE_SYSLOG |
286 | | -static char *syslog_facility_str; |
287 | 298 | static char *syslog_ident_str; |
288 | 299 | #endif |
289 | 300 | static bool phony_autocommit; |
@@ -2231,15 +2242,6 @@ static struct config_string ConfigureNamesString[] = |
2231 | 2242 | }, |
2232 | 2243 |
|
2233 | 2244 | #ifdef HAVE_SYSLOG |
2234 | | - { |
2235 | | - {"syslog_facility", PGC_SIGHUP, LOGGING_WHERE, |
2236 | | - gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."), |
2237 | | - gettext_noop("Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, " |
2238 | | - "LOCAL4, LOCAL5, LOCAL6, LOCAL7.") |
2239 | | - }, |
2240 | | - &syslog_facility_str, |
2241 | | - "LOCAL0", assign_syslog_facility, NULL |
2242 | | - }, |
2243 | 2245 | { |
2244 | 2246 | {"syslog_ident", PGC_SIGHUP, LOGGING_WHERE, |
2245 | 2247 | gettext_noop("Sets the program name used to identify PostgreSQL " |
@@ -2488,6 +2490,18 @@ static struct config_enum ConfigureNamesEnum[] = |
2488 | 2490 | LOGSTMT_NONE, log_statement_options, NULL, NULL |
2489 | 2491 | }, |
2490 | 2492 |
|
| 2493 | +#ifdef HAVE_SYSLOG |
| 2494 | + { |
| 2495 | + {"syslog_facility", PGC_SIGHUP, LOGGING_WHERE, |
| 2496 | + gettext_noop("Sets the syslog \"facility\" to be used when syslog enabled."), |
| 2497 | + gettext_noop("Valid values are LOCAL0, LOCAL1, LOCAL2, LOCAL3, " |
| 2498 | + "LOCAL4, LOCAL5, LOCAL6, LOCAL7.") |
| 2499 | + }, |
| 2500 | + &syslog_facility, |
| 2501 | + LOG_LOCAL0, syslog_facility_options, assign_syslog_facility, NULL |
| 2502 | + }, |
| 2503 | +#endif |
| 2504 | + |
2491 | 2505 | { |
2492 | 2506 | {"regex_flavor", PGC_USERSET, COMPAT_OPTIONS_PREVIOUS, |
2493 | 2507 | gettext_noop("Sets the regular expression \"flavor\"."), |
@@ -6860,38 +6874,14 @@ assign_log_destination(const char *value, bool doit, GucSource source) |
6860 | 6874 |
|
6861 | 6875 | #ifdef HAVE_SYSLOG |
6862 | 6876 |
|
6863 | | -static const char * |
6864 | | -assign_syslog_facility(const char *facility, bool doit, GucSource source) |
| 6877 | +static bool |
| 6878 | +assign_syslog_facility(int newval, bool doit, GucSource source) |
6865 | 6879 | { |
6866 | | - int syslog_fac; |
6867 | | - |
6868 | | - if (pg_strcasecmp(facility, "LOCAL0") == 0) |
6869 | | - syslog_fac = LOG_LOCAL0; |
6870 | | - else if (pg_strcasecmp(facility, "LOCAL1") == 0) |
6871 | | - syslog_fac = LOG_LOCAL1; |
6872 | | - else if (pg_strcasecmp(facility, "LOCAL2") == 0) |
6873 | | - syslog_fac = LOG_LOCAL2; |
6874 | | - else if (pg_strcasecmp(facility, "LOCAL3") == 0) |
6875 | | - syslog_fac = LOG_LOCAL3; |
6876 | | - else if (pg_strcasecmp(facility, "LOCAL4") == 0) |
6877 | | - syslog_fac = LOG_LOCAL4; |
6878 | | - else if (pg_strcasecmp(facility, "LOCAL5") == 0) |
6879 | | - syslog_fac = LOG_LOCAL5; |
6880 | | - else if (pg_strcasecmp(facility, "LOCAL6") == 0) |
6881 | | - syslog_fac = LOG_LOCAL6; |
6882 | | - else if (pg_strcasecmp(facility, "LOCAL7") == 0) |
6883 | | - syslog_fac = LOG_LOCAL7; |
6884 | | - else |
6885 | | - return NULL; /* reject */ |
6886 | | - |
6887 | 6880 | if (doit) |
6888 | | - { |
6889 | | - syslog_facility = syslog_fac; |
6890 | 6881 | set_syslog_parameters(syslog_ident_str ? syslog_ident_str : "postgres", |
6891 | | - syslog_facility); |
6892 | | - } |
| 6882 | + newval); |
6893 | 6883 |
|
6894 | | - return facility; |
| 6884 | + return true; |
6895 | 6885 | } |
6896 | 6886 |
|
6897 | 6887 | static const char * |
|
0 commit comments