[svn-commits] seanbright: branch seanbright/cdr-syslog r197811 - in /team/seanbright/cdr-sy...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu May 28 16:25:07 CDT 2009
Author: seanbright
Date: Thu May 28 16:24:59 2009
New Revision: 197811
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=197811
Log:
Commit work in progress on cdr_syslog (issue 12876)
Added:
team/seanbright/cdr-syslog/cdr/cdr_syslog.c (with props)
team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample (with props)
Modified:
team/seanbright/cdr-syslog/build_tools/menuselect-deps.in
team/seanbright/cdr-syslog/configure
team/seanbright/cdr-syslog/configure.ac
team/seanbright/cdr-syslog/include/asterisk/autoconfig.h.in
Modified: team/seanbright/cdr-syslog/build_tools/menuselect-deps.in
URL: http://svn.asterisk.org/svn-view/asterisk/team/seanbright/cdr-syslog/build_tools/menuselect-deps.in?view=diff&rev=197811&r1=197810&r2=197811
==============================================================================
--- team/seanbright/cdr-syslog/build_tools/menuselect-deps.in (original)
+++ team/seanbright/cdr-syslog/build_tools/menuselect-deps.in Thu May 28 16:24:59 2009
@@ -48,6 +48,7 @@
SS7=@PBX_SS7@
OPENSSL=@PBX_OPENSSL@
SUPPSERV=@PBX_SUPPSERV@
+SYSLOG=@PBX_SYSLOG@
TONEZONE=@PBX_TONEZONE@
UNIXODBC=@PBX_UNIXODBC@
USB=@PBX_USB@
Added: team/seanbright/cdr-syslog/cdr/cdr_syslog.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/seanbright/cdr-syslog/cdr/cdr_syslog.c?view=auto&rev=197811
==============================================================================
--- team/seanbright/cdr-syslog/cdr/cdr_syslog.c (added)
+++ team/seanbright/cdr-syslog/cdr/cdr_syslog.c Thu May 28 16:24:59 2009
@@ -1,0 +1,404 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
+ * Copyright (C) 2009, Sean Bright
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*! \file
+ *
+ * \brief syslog CDR logger
+ *
+ * See also
+ * \arg \ref Config_cdr
+ * \ingroup cdr_drivers
+ */
+
+/*** MODULEINFO
+ <depend>syslog</depend>
+ ***/
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
+#include "asterisk/module.h"
+#include "asterisk/lock.h"
+#include "asterisk/cdr.h"
+#include "asterisk/pbx.h"
+
+#include <syslog.h>
+
+#define CONFIG "cdr_syslog.conf"
+
+AST_THREADSTORAGE(syslog_buf);
+
+static const char name[] = "cdr-syslog";
+
+struct cdr_config {
+ AST_DECLARE_STRING_FIELDS(
+ AST_STRING_FIELD(ident);
+ AST_STRING_FIELD(format);
+ );
+ int facility;
+ int level;
+ ast_mutex_t lock;
+ AST_LIST_ENTRY(cdr_config) list;
+};
+
+static AST_RWLIST_HEAD_STATIC(sinks, cdr_config);
+
+struct name_to_id_map {
+ const char * const name;
+ int value;
+};
+
+static const int INVALID_NAME = ~0;
+
+static const struct name_to_id_map facilities[] = {
+#if defined(HAVE_SYSLOG_FACILITY_LOG_AUTH)
+ { "auth", LOG_AUTH },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_AUTHPRIV)
+ { "authpriv", LOG_AUTHPRIV },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_CRON)
+ { "cron", LOG_CRON },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_DAEMON)
+ { "daemon", LOG_DAEMON },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_FTP)
+ { "ftp", LOG_FTP },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_KERN)
+ { "kern", LOG_KERN },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL0)
+ { "local0", LOG_LOCAL0 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL1)
+ { "local1", LOG_LOCAL1 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL2)
+ { "local2", LOG_LOCAL2 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL3)
+ { "local3", LOG_LOCAL3 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL4)
+ { "local4", LOG_LOCAL4 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL5)
+ { "local5", LOG_LOCAL5 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL6)
+ { "local6", LOG_LOCAL6 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LOCAL7)
+ { "local7", LOG_LOCAL7 },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_LPR)
+ { "lpr", LOG_LPR },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_MAIL)
+ { "mail", LOG_MAIL },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_NEWS)
+ { "news", LOG_NEWS },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_SYSLOG)
+ { "syslog", LOG_SYSLOG },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_USER)
+ { "user", LOG_USER },
+#endif
+#if defined(HAVE_SYSLOG_FACILITY_LOG_UUCP)
+ { "uucp", LOG_UUCP },
+#endif
+};
+
+static const struct name_to_id_map levels[] = {
+#if defined(HAVE_SYSLOG_LEVEL_LOG_EMERG)
+ { "emerg", LOG_EMERG },
+#endif
+#if defined(HAVE_SYSLOG_LEVEL_LOG_ALERT)
+ { "alert", LOG_ALERT },
+#endif
+#if defined(HAVE_SYSLOG_LEVEL_LOG_CRIT)
+ { "crit", LOG_CRIT },
+#endif
+#if defined(HAVE_SYSLOG_LEVEL_LOG_ERR)
+ { "err", LOG_ERR },
+#endif
+#if defined(HAVE_SYSLOG_LEVEL_LOG_WARNING)
+ { "warning", LOG_WARNING },
+#endif
+#if defined(HAVE_SYSLOG_LEVEL_LOG_NOTICE)
+ { "notice", LOG_NOTICE },
+#endif
+#if defined(HAVE_SYSLOG_LEVEL_LOG_INFO)
+ { "info", LOG_INFO },
+#endif
+#if defined(HAVE_SYSLOG_LEVEL_LOG_DEBUG)
+ { "debug", LOG_DEBUG },
+#endif
+};
+
+static int map_facility_name(const char *facility)
+{
+ size_t i;
+ for (i = 0; i < ARRAY_LEN(facilities); i++) {
+ if (!strcasecmp(facility, facilities[i].name)) {
+ return facilities[i].value;
+ }
+ }
+ return INVALID_NAME;
+}
+
+static const char *map_facility_value(int facility)
+{
+ size_t i;
+ for (i = 0; i < ARRAY_LEN(facilities); i++) {
+ if (facility == facilities[i].value) {
+ return facilities[i].name;
+ }
+ }
+ return NULL;
+}
+
+static int map_level_name(const char *level)
+{
+ size_t i;
+ for (i = 0; i < ARRAY_LEN(levels); i++) {
+ if (!strcasecmp(level, levels[i].name)) {
+ return levels[i].value;
+ }
+ }
+ return INVALID_NAME;
+}
+
+static const char *map_level_value(int level)
+{
+ size_t i;
+ for (i = 0; i < ARRAY_LEN(levels); i++) {
+ if (level == levels[i].value) {
+ return levels[i].name;
+ }
+ }
+ return NULL;
+}
+
+static void free_config(void)
+{
+ struct cdr_config *sink;
+ while ((sink = AST_RWLIST_REMOVE_HEAD(&sinks, list))) {
+ ast_mutex_destroy(&sink->lock);
+ ast_free(sink);
+ }
+}
+
+static int syslog_log(struct ast_cdr *cdr)
+{
+ struct ast_channel *dummy;
+ struct ast_str *str;
+ struct cdr_config *sink;
+
+ /* Batching saves memory management here. Otherwise, it's the same as doing an allocation and free each time. */
+ if (!(str = ast_str_thread_get(&syslog_buf, 16))) {
+ return -1;
+ }
+
+ dummy = ast_channel_alloc(0, 0, "", "", "", "", "", 0, "Substitution/%p", cdr);
+
+ if (!dummy) {
+ ast_log(AST_LOG_ERROR, "Unable to allocate channel for variable substitution.\n");
+ return -1;
+ }
+
+ /* We need to dup here since the cdr actually belongs to the other channel,
+ so when we release this channel we don't want the CDR getting cleaned
+ up prematurely. */
+ dummy->cdr = ast_cdr_dup(cdr);
+
+ AST_RWLIST_RDLOCK(&sinks);
+
+ AST_LIST_TRAVERSE(&sinks, sink, list) {
+
+ ast_str_substitute_variables(&str, 0, dummy, sink->format);
+
+ /* Even though we have a lock on the list, we could be being chased by
+ another thread and this lock ensures that we won't step on anyone's
+ toes. Once each CDR backend gets it's own thread, this lock can be
+ removed. */
+ ast_mutex_lock(&sink->lock);
+
+ openlog(sink->ident, LOG_CONS, sink->facility);
+ syslog(sink->level, "%s", ast_str_buffer(str));
+ closelog();
+
+ ast_mutex_unlock(&sink->lock);
+ }
+
+ AST_RWLIST_UNLOCK(&sinks);
+
+ ast_channel_release(dummy);
+
+ return 0;
+}
+
+static int load_config(void)
+{
+ struct ast_config *cfg;
+ struct ast_flags config_flags = { 0 };
+ int default_facility = LOG_LOCAL4;
+ int default_level = LOG_INFO;
+ int res = 0;
+ const char *catg, *tmp;
+
+ cfg = ast_config_load(CONFIG, config_flags);
+ if (!cfg || cfg == CONFIG_STATUS_FILEINVALID) {
+ ast_log(AST_LOG_ERROR, "Unable to load " CONFIG ". Not logging custom CSV CDRs to syslog.\n");
+ return -1;
+ }
+
+ if (!(ast_strlen_zero(tmp = ast_variable_retrieve(cfg, "general", "facility")))) {
+ int facility = map_facility_name(tmp); if (facility == INVALID_NAME) {
+ ast_log(AST_LOG_WARNING, "Invalid facility '%s' specified, defaulting to '%s'\n",
+ tmp,
+ map_facility_value(default_facility));
+ } else {
+ default_facility = facility;
+ }
+ }
+
+ if (!(ast_strlen_zero(tmp = ast_variable_retrieve(cfg, "general", "level")))) {
+ int level = map_level_name(tmp);
+ if (level == INVALID_NAME) {
+ ast_log(AST_LOG_WARNING, "Invalid level '%s' specified, defaulting to '%s'\n",
+ tmp,
+ map_level_value(default_level));
+ } else {
+ default_level = level;
+ }
+ }
+
+ for (catg = ast_category_browse(cfg, NULL); catg; catg = ast_category_browse(cfg, catg)) {
+ struct ast_variable *var;
+ struct cdr_config *sink;
+
+ if (!strcasecmp(catg, "general")) {
+ continue;
+ }
+
+ if (!(var = ast_variable_browse(cfg, catg))) {
+ continue;
+ }
+
+ if (ast_strlen_zero(tmp = ast_variable_retrieve(cfg, catg, "template"))) {
+ ast_log(AST_LOG_WARNING, "No 'template' parameter found for '%s'. Skipping.\n", catg);
+ continue;
+ }
+
+ sink = ast_calloc_with_stringfields(1, struct cdr_config, 1024);
+
+ if (!sink) {
+ ast_log(AST_LOG_ERROR, "Unable to allocate memory for configuration settings.\n");
+ free_config();
+ break;
+ }
+
+ ast_string_field_set(sink, ident, catg);
+ ast_string_field_set(sink, format, tmp);
+
+ if (ast_strlen_zero(tmp = ast_variable_retrieve(cfg, catg, "facility"))) {
+ sink->facility = default_facility;
+ } else {
+ int facility = map_facility_name(tmp);
+ if (facility == INVALID_NAME) {
+ ast_log(AST_LOG_WARNING, "Invalid facility '%s' specified for '%s,' defaulting to '%s'\n",
+ tmp,
+ catg,
+ map_facility_value(default_facility));
+ } else {
+ sink->facility = facility;
+ }
+ }
+
+ if (ast_strlen_zero(tmp = ast_variable_retrieve(cfg, catg, "level"))) {
+ sink->level = default_level;
+ } else {
+ int level = map_level_name(tmp);
+ if (level == INVALID_NAME) {
+ ast_log(AST_LOG_WARNING, "Invalid level '%s' specified for '%s,' defaulting to '%s'\n",
+ tmp,
+ catg,
+ map_level_value(default_level));
+ } else {
+ sink->level = level;
+ }
+ }
+
+ AST_RWLIST_INSERT_TAIL(&sinks, sink, list);
+ }
+
+ ast_config_destroy(cfg);
+
+ return res;
+}
+
+static int unload_module(void)
+{
+ ast_cdr_unregister(name);
+
+ if (AST_RWLIST_WRLOCK(&sinks)) {
+ ast_cdr_register(name, ast_module_info->description, syslog_log);
+ ast_log(AST_LOG_ERROR, "Unable to lock sink list. Unload failed.\n");
+ return -1;
+ }
+
+ free_config();
+ AST_RWLIST_UNLOCK(&sinks);
+ return 0;
+}
+
+static enum ast_module_load_result load_module(void)
+{
+ if (AST_RWLIST_WRLOCK(&sinks)) {
+ ast_log(AST_LOG_ERROR, "Unable to lock sink list. Load failed.\n");
+ return AST_MODULE_LOAD_FAILURE;
+ }
+
+ load_config();
+ AST_RWLIST_UNLOCK(&sinks);
+ ast_cdr_register(name, ast_module_info->description, syslog_log);
+ return AST_MODULE_LOAD_SUCCESS;
+}
+
+static int reload(void)
+{
+ if (AST_RWLIST_WRLOCK(&sinks)) {
+ ast_log(AST_LOG_ERROR, "Unable to lock sink list. Load failed.\n");
+ return AST_MODULE_LOAD_FAILURE;
+ }
+
+ free_config();
+ load_config();
+ AST_RWLIST_UNLOCK(&sinks);
+ return AST_MODULE_LOAD_SUCCESS;
+}
+
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Customizable syslog CDR Backend",
+ .load = load_module,
+ .unload = unload_module,
+ .reload = reload,
+ );
Propchange: team/seanbright/cdr-syslog/cdr/cdr_syslog.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: team/seanbright/cdr-syslog/cdr/cdr_syslog.c
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: team/seanbright/cdr-syslog/cdr/cdr_syslog.c
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample
URL: http://svn.asterisk.org/svn-view/asterisk/team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample?view=auto&rev=197811
==============================================================================
--- team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample (added)
+++ team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample Thu May 28 16:24:59 2009
@@ -1,0 +1,60 @@
+;
+; Syslog mappings for custom CDR logging
+;
+; The cdr_syslog module sends CDR records to syslog
+;
+; XXX: Documentation will be finished before commit. You should be able to do
+; something like this in /etc/syslog.conf:
+;
+; local0.info /var/log/asterisk-cdr.log
+;
+; And uncomment the [cdr-master] section and be good to go.
+;
+
+[general]
+; The syslog 'facility' to use when logging messages. This can be any of the
+; following:
+;
+; auth
+; authpriv
+; cron
+; daemon
+; ftp
+; kern
+; local0, local1, local2, local3, local4, local5, local6, local7
+; lpr
+; mail
+; news
+; syslog
+; user
+; uucp
+;
+; The default is 'daemon'
+;
+;facility=local0
+
+;
+; The level signifies the importance of the logged message, but we consider
+; these informational (info) messages by default. We allow customization so that
+; your syslog.conf settings can more easily filter CDR logging. This can be any
+; of the following:
+;
+; emerg
+; alert
+; crit
+; error
+; warning
+; notice
+; info
+; debug
+;
+; The default is 'info'
+;level=warn
+
+;[cdr-master]
+;facility = local0
+;level = info
+;template = "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration)}","${CDR(billsec)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}"
+
+;[cdr-simple]
+;template = "${EPOCH}","${CDR(src)}","${CDR(dst)}"
Propchange: team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: team/seanbright/cdr-syslog/configs/cdr_syslog.conf.sample
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: team/seanbright/cdr-syslog/configure.ac
URL: http://svn.asterisk.org/svn-view/asterisk/team/seanbright/cdr-syslog/configure.ac?view=diff&rev=197811&r1=197810&r2=197811
==============================================================================
--- team/seanbright/cdr-syslog/configure.ac (original)
+++ team/seanbright/cdr-syslog/configure.ac Thu May 28 16:24:59 2009
@@ -1748,6 +1748,45 @@
AC_SUBST([GENERIC_ODBC_INCLUDE])
AC_SUBST([PBX_GENERIC_ODBC])
+PBX_SYSLOG=0
+
+if test "${ac_cv_header_syslog_h}" = "yes"; then
+ # syslog facilities
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_AUTH], [LOG_AUTH], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_AUTHPRIV], [LOG_AUTHPRIV], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_CRON], [LOG_CRON], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_DAEMON], [LOG_DAEMON], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_FTP], [LOG_FTP], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_KERN], [LOG_KERN], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL0], [LOG_LOCAL0], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL1], [LOG_LOCAL1], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL2], [LOG_LOCAL2], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL3], [LOG_LOCAL3], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL4], [LOG_LOCAL4], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL5], [LOG_LOCAL5], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL6], [LOG_LOCAL6], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LOCAL7], [LOG_LOCAL7], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LPR], [LOG_LPR], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_MAIL], [LOG_MAIL], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_NEWS], [LOG_NEWS], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_SYSLOG], [LOG_SYSLOG], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_USER], [LOG_USER], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_UUCP], [LOG_UUCP], [syslog.h])
+
+ # syslog levels
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_EMERG], [LOG_EMERG], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_ALERT], [LOG_ALERT], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_CRIT], [LOG_CRIT], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_ERR], [LOG_ERR], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_WARNING], [LOG_WARNING], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_NOTICE], [LOG_NOTICE], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_INFO], [LOG_INFO], [syslog.h])
+ AST_C_DEFINE_CHECK([SYSLOG_LEVEL_LOG_DEBUG], [LOG_DEBUG], [syslog.h])
+ PBX_SYSLOG=1
+fi
+
+AC_SUBST([PBX_SYSLOG])
+
AC_CONFIG_FILES([build_tools/menuselect-deps makeopts channels/h323/Makefile])
AST_CHECK_MANDATORY
Modified: team/seanbright/cdr-syslog/include/asterisk/autoconfig.h.in
URL: http://svn.asterisk.org/svn-view/asterisk/team/seanbright/cdr-syslog/include/asterisk/autoconfig.h.in?view=diff&rev=197811&r1=197810&r2=197811
==============================================================================
--- team/seanbright/cdr-syslog/include/asterisk/autoconfig.h.in (original)
+++ team/seanbright/cdr-syslog/include/asterisk/autoconfig.h.in Thu May 28 16:24:59 2009
@@ -1009,8 +1009,176 @@
/* Define to 1 if your system has sysinfo support */
#undef HAVE_SYSINFO
+/* Define if your system has the SYSLOG_FACILITY_LOG_AUTH headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_AUTH
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_AUTHPRIV headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_AUTHPRIV
+
+/* Define SYSLOG_FACILITY_LOG_AUTHPRIV headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_AUTHPRIV_VERSION
+
+/* Define SYSLOG_FACILITY_LOG_AUTH headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_AUTH_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_CRON headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_CRON
+
+/* Define SYSLOG_FACILITY_LOG_CRON headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_CRON_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_DAEMON headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_DAEMON
+
+/* Define SYSLOG_FACILITY_LOG_DAEMON headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_DAEMON_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_FTP headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_FTP
+
+/* Define SYSLOG_FACILITY_LOG_FTP headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_FTP_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_KERN headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_KERN
+
+/* Define SYSLOG_FACILITY_LOG_KERN headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_KERN_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL0 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL0
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL0 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL0_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL1 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL1
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL1 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL1_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL2 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL2
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL2 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL2_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL3 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL3
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL3 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL3_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL4 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL4
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL4 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL4_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL5 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL5
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL5 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL5_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL6 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL6
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL6 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL6_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LOCAL7 headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL7
+
+/* Define SYSLOG_FACILITY_LOG_LOCAL7 headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LOCAL7_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_LPR headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_LPR
+
+/* Define SYSLOG_FACILITY_LOG_LPR headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_LPR_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_MAIL headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_MAIL
+
+/* Define SYSLOG_FACILITY_LOG_MAIL headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_MAIL_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_NEWS headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_NEWS
+
+/* Define SYSLOG_FACILITY_LOG_NEWS headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_NEWS_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_SYSLOG headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_SYSLOG
+
+/* Define SYSLOG_FACILITY_LOG_SYSLOG headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_SYSLOG_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_USER headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_USER
+
+/* Define SYSLOG_FACILITY_LOG_USER headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_USER_VERSION
+
+/* Define if your system has the SYSLOG_FACILITY_LOG_UUCP headers. */
+#undef HAVE_SYSLOG_FACILITY_LOG_UUCP
+
+/* Define SYSLOG_FACILITY_LOG_UUCP headers version */
+#undef HAVE_SYSLOG_FACILITY_LOG_UUCP_VERSION
+
/* Define to 1 if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_ALERT headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_ALERT
+
+/* Define SYSLOG_LEVEL_LOG_ALERT headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_ALERT_VERSION
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_CRIT headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_CRIT
+
+/* Define SYSLOG_LEVEL_LOG_CRIT headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_CRIT_VERSION
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_DEBUG headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_DEBUG
+
+/* Define SYSLOG_LEVEL_LOG_DEBUG headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_DEBUG_VERSION
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_EMERG headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_EMERG
+
+/* Define SYSLOG_LEVEL_LOG_EMERG headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_EMERG_VERSION
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_ERR headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_ERR
+
+/* Define SYSLOG_LEVEL_LOG_ERR headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_ERR_VERSION
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_INFO headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_INFO
+
+/* Define SYSLOG_LEVEL_LOG_INFO headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_INFO_VERSION
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_NOTICE headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_NOTICE
+
+/* Define SYSLOG_LEVEL_LOG_NOTICE headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_NOTICE_VERSION
+
+/* Define if your system has the SYSLOG_LEVEL_LOG_WARNING headers. */
+#undef HAVE_SYSLOG_LEVEL_LOG_WARNING
+
+/* Define SYSLOG_LEVEL_LOG_WARNING headers version */
+#undef HAVE_SYSLOG_LEVEL_LOG_WARNING_VERSION
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
More information about the svn-commits
mailing list