[asterisk-commits] seanbright: branch seanbright/cdr-syslog r197811 - in /team/seanbright/cdr-sy...

SVN commits to the Asterisk project asterisk-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 asterisk-commits mailing list