[asterisk-commits] seanbright: branch seanbright/cdr-syslog r203669 - /team/seanbright/cdr-syslo...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jun 26 12:09:14 CDT 2009
Author: seanbright
Date: Fri Jun 26 12:09:11 2009
New Revision: 203669
URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=203669
Log:
Updates based on Russell and Mark's feedback as well as some other things I noticed addressing those.
Modified:
team/seanbright/cdr-syslog/cdr/cdr_syslog.c
Modified: 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=diff&rev=203669&r1=203668&r2=203669
==============================================================================
--- team/seanbright/cdr-syslog/cdr/cdr_syslog.c (original)
+++ team/seanbright/cdr-syslog/cdr/cdr_syslog.c Fri Jun 26 12:09:11 2009
@@ -43,7 +43,7 @@
#include "asterisk/syslog.h"
-#define CONFIG "cdr_syslog.conf"
+static const char CONFIG[] = "cdr_syslog.conf";
AST_THREADSTORAGE(syslog_buf);
@@ -53,7 +53,7 @@
AST_DECLARE_STRING_FIELDS(
AST_STRING_FIELD(ident);
AST_STRING_FIELD(format);
- );
+ );
int facility;
int priority;
ast_mutex_t lock;
@@ -125,13 +125,12 @@
struct ast_flags config_flags = { 0 };
int default_facility = LOG_LOCAL4;
int default_priority = LOG_INFO;
- int res = 0;
- const char *catg, *tmp;
+ const char *catg = NULL, *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");
+ "Unable to load %s. Not logging custom CSV CDRs to syslog.\n", CONFIG);
return -1;
}
@@ -157,17 +156,10 @@
}
}
- for (catg = ast_category_browse(cfg, NULL);
- catg;
- catg = ast_category_browse(cfg, catg)) {
- struct ast_variable *var;
+ while ((catg = ast_category_browse(cfg, catg))) {
struct cdr_config *sink;
if (!strcasecmp(catg, "general")) {
- continue;
- }
-
- if (!(var = ast_variable_browse(cfg, catg))) {
continue;
}
@@ -186,6 +178,7 @@
break;
}
+ ast_mutex_init(&sink->lock);
ast_string_field_set(sink, ident, catg);
ast_string_field_set(sink, format, tmp);
@@ -220,7 +213,11 @@
ast_config_destroy(cfg);
- return res;
+ if (AST_RWLIST_EMPTY(&sinks)) {
+ return -1;
+ }
+
+ return 0;
}
static int unload_module(void)
@@ -240,27 +237,36 @@
static enum ast_module_load_result load_module(void)
{
+ int res;
+
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);
+ return AST_MODULE_LOAD_DECLINE;
+ }
+
+ res = load_config();
+ AST_RWLIST_UNLOCK(&sinks);
+ if (res) {
+ return AST_MODULE_LOAD_DECLINE;
+ }
ast_cdr_register(name, ast_module_info->description, syslog_log);
return AST_MODULE_LOAD_SUCCESS;
}
static int reload(void)
{
+ int res;
if (AST_RWLIST_WRLOCK(&sinks)) {
ast_log(AST_LOG_ERROR, "Unable to lock sink list. Load failed.\n");
- return AST_MODULE_LOAD_FAILURE;
+ return AST_MODULE_LOAD_DECLINE;
}
free_config();
- load_config();
- AST_RWLIST_UNLOCK(&sinks);
+ res = load_config();
+ AST_RWLIST_UNLOCK(&sinks);
+ if (res) {
+ return AST_MODULE_LOAD_DECLINE;
+ }
return AST_MODULE_LOAD_SUCCESS;
}
@@ -268,4 +274,4 @@
.load = load_module,
.unload = unload_module,
.reload = reload,
- );
+);
More information about the asterisk-commits
mailing list