|
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