[asterisk-commits] tilghman: branch tilghman/config_mtime_cache r79506 - in /team/tilghman/confi...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Aug 14 23:35:33 CDT 2007
Author: tilghman
Date: Tue Aug 14 23:35:32 2007
New Revision: 79506
URL: http://svn.digium.com/view/asterisk?view=rev&rev=79506
Log:
Convert the rest of the files and also permit no attempted caching (like for voicemail meta files)
Modified:
team/tilghman/config_mtime_cache/apps/app_alarmreceiver.c
team/tilghman/config_mtime_cache/apps/app_amd.c
team/tilghman/config_mtime_cache/apps/app_directory.c
team/tilghman/config_mtime_cache/apps/app_festival.c
team/tilghman/config_mtime_cache/apps/app_followme.c
team/tilghman/config_mtime_cache/apps/app_minivm.c
team/tilghman/config_mtime_cache/apps/app_playback.c
team/tilghman/config_mtime_cache/apps/app_privacy.c
team/tilghman/config_mtime_cache/apps/app_queue.c
team/tilghman/config_mtime_cache/apps/app_voicemail.c
team/tilghman/config_mtime_cache/cdr/cdr_adaptive_odbc.c
team/tilghman/config_mtime_cache/cdr/cdr_csv.c
team/tilghman/config_mtime_cache/cdr/cdr_custom.c
team/tilghman/config_mtime_cache/cdr/cdr_manager.c
team/tilghman/config_mtime_cache/cdr/cdr_odbc.c
team/tilghman/config_mtime_cache/cdr/cdr_tds.c
team/tilghman/config_mtime_cache/channels/chan_agent.c
team/tilghman/config_mtime_cache/channels/chan_h323.c
team/tilghman/config_mtime_cache/channels/chan_iax2.c
team/tilghman/config_mtime_cache/channels/chan_mgcp.c
team/tilghman/config_mtime_cache/channels/chan_sip.c
team/tilghman/config_mtime_cache/channels/chan_skinny.c
team/tilghman/config_mtime_cache/channels/chan_zap.c
team/tilghman/config_mtime_cache/channels/iax2-provision.c
team/tilghman/config_mtime_cache/codecs/codec_adpcm.c
team/tilghman/config_mtime_cache/codecs/codec_alaw.c
team/tilghman/config_mtime_cache/codecs/codec_g722.c
team/tilghman/config_mtime_cache/codecs/codec_g726.c
team/tilghman/config_mtime_cache/codecs/codec_gsm.c
team/tilghman/config_mtime_cache/codecs/codec_lpc10.c
team/tilghman/config_mtime_cache/codecs/codec_ulaw.c
team/tilghman/config_mtime_cache/funcs/func_odbc.c
team/tilghman/config_mtime_cache/include/asterisk/config.h
team/tilghman/config_mtime_cache/main/asterisk.c
team/tilghman/config_mtime_cache/main/cdr.c
team/tilghman/config_mtime_cache/main/config.c
team/tilghman/config_mtime_cache/main/dnsmgr.c
team/tilghman/config_mtime_cache/main/enum.c
team/tilghman/config_mtime_cache/main/http.c
team/tilghman/config_mtime_cache/main/loader.c
team/tilghman/config_mtime_cache/main/logger.c
team/tilghman/config_mtime_cache/main/manager.c
team/tilghman/config_mtime_cache/main/rtp.c
team/tilghman/config_mtime_cache/main/udptl.c
team/tilghman/config_mtime_cache/pbx/pbx_config.c
team/tilghman/config_mtime_cache/res/res_indications.c
team/tilghman/config_mtime_cache/res/res_musiconhold.c
team/tilghman/config_mtime_cache/res/res_odbc.c
team/tilghman/config_mtime_cache/res/res_smdi.c
Modified: team/tilghman/config_mtime_cache/apps/app_alarmreceiver.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_alarmreceiver.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_alarmreceiver.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_alarmreceiver.c Tue Aug 14 23:35:32 2007
@@ -714,10 +714,11 @@
{
struct ast_config *cfg;
const char *p;
+ struct ast_flags config_flags = { 0 };
/* Read in the config file */
- cfg = ast_config_load(ALMRCV_CONFIG);
+ cfg = ast_config_load(ALMRCV_CONFIG, config_flags);
if(!cfg){
Modified: team/tilghman/config_mtime_cache/apps/app_amd.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_amd.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_amd.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_amd.c Tue Aug 14 23:35:32 2007
@@ -317,16 +317,18 @@
return 0;
}
-static void load_config(void)
+static void load_config(int reload)
{
struct ast_config *cfg = NULL;
char *cat = NULL;
struct ast_variable *var = NULL;
-
- if (!(cfg = ast_config_load("amd.conf"))) {
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
+
+ if (!(cfg = ast_config_load("amd.conf", config_flags))) {
ast_log(LOG_ERROR, "Configuration file amd.conf missing.\n");
return;
- }
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return;
cat = ast_category_browse(cfg, NULL);
@@ -377,13 +379,13 @@
static int load_module(void)
{
- load_config();
+ load_config(0);
return ast_register_application(app, amd_exec, synopsis, descrip);
}
static int reload(void)
{
- load_config();
+ load_config(1);
return 0;
}
Modified: team/tilghman/config_mtime_cache/apps/app_directory.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_directory.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_directory.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_directory.c Tue Aug 14 23:35:32 2007
@@ -364,9 +364,10 @@
const char *fullname;
const char *hidefromdir;
char tmp[100];
+ struct ast_flags config_flags = { 0 };
/* Load flat file config. */
- cfg = ast_config_load(VOICEMAIL_CONFIG);
+ cfg = ast_config_load(VOICEMAIL_CONFIG, config_flags);
if (!cfg) {
/* Loading config failed. */
@@ -597,6 +598,7 @@
int fromappvm = 0;
const char *dirintro;
char *parse;
+ struct ast_flags config_flags = { 0 };
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(vmcontext);
AST_APP_ARG(dialcontext);
@@ -630,7 +632,7 @@
return -1;
}
- ucfg = ast_config_load("users.conf");
+ ucfg = ast_config_load("users.conf", config_flags);
dirintro = ast_variable_retrieve(cfg, args.vmcontext, "directoryintro");
if (ast_strlen_zero(dirintro))
Modified: team/tilghman/config_mtime_cache/apps/app_festival.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_festival.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_festival.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_festival.c Tue Aug 14 23:35:32 2007
@@ -306,6 +306,7 @@
char *data;
struct ast_config *cfg;
char *newfestivalcommand;
+ struct ast_flags config_flags = { 0 };
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(text);
AST_APP_ARG(interrupt);
@@ -316,7 +317,7 @@
return -1;
}
- cfg = ast_config_load(FESTIVAL_CONFIG);
+ cfg = ast_config_load(FESTIVAL_CONFIG, config_flags);
if (!cfg) {
ast_log(LOG_WARNING, "No such configuration file %s\n", FESTIVAL_CONFIG);
return -1;
@@ -520,7 +521,8 @@
static int load_module(void)
{
- struct ast_config *cfg = ast_config_load(FESTIVAL_CONFIG);
+ struct ast_flags config_flags = { 0 };
+ struct ast_config *cfg = ast_config_load(FESTIVAL_CONFIG, config_flags);
if (!cfg) {
ast_log(LOG_WARNING, "No such configuration file %s\n", FESTIVAL_CONFIG);
return AST_MODULE_LOAD_DECLINE;
Modified: team/tilghman/config_mtime_cache/apps/app_followme.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_followme.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_followme.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_followme.c Tue Aug 14 23:35:32 2007
@@ -275,7 +275,7 @@
}
/*! \brief Reload followme application module */
-static int reload_followme(void)
+static int reload_followme(int reload)
{
struct call_followme *f;
struct ast_config *cfg;
@@ -289,11 +289,13 @@
const char *takecallstr;
const char *declinecallstr;
const char *tmpstr;
-
- if (!(cfg = ast_config_load("followme.conf"))) {
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
+
+ if (!(cfg = ast_config_load("followme.conf", config_flags))) {
ast_log(LOG_WARNING, "No follow me config file (followme.conf), so no follow me\n");
return 0;
- }
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
AST_RWLIST_WRLOCK(&followmes);
@@ -1051,7 +1053,7 @@
static int load_module(void)
{
- if(!reload_followme())
+ if(!reload_followme(0))
return AST_MODULE_LOAD_DECLINE;
return ast_register_application(app, app_exec, synopsis, descrip);
@@ -1059,7 +1061,7 @@
static int reload(void)
{
- reload_followme();
+ reload_followme(1);
return 0;
}
Modified: team/tilghman/config_mtime_cache/apps/app_minivm.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_minivm.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_minivm.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_minivm.c Tue Aug 14 23:35:32 2007
@@ -2349,7 +2349,7 @@
}
/*! \brief Load minivoicemail configuration */
-static int load_config(void)
+static int load_config(int reload)
{
struct ast_config *cfg;
struct ast_variable *var;
@@ -2357,8 +2357,12 @@
const char *chanvar;
int error = 0;
struct minivm_template *template;
-
- cfg = ast_config_load(VOICEMAIL_CONFIG);
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
+
+ cfg = ast_config_load(VOICEMAIL_CONFIG, config_flags);
+ if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
+
ast_mutex_lock(&minivmlock);
/* Destroy lists to reconfigure */
@@ -3039,7 +3043,7 @@
if (res)
return(res);
- if ((res = load_config()))
+ if ((res = load_config(0)))
return(res);
ast_cli_register_multiple(cli_minivm, sizeof(cli_minivm)/sizeof(cli_minivm[0]));
@@ -3053,7 +3057,7 @@
/*! \brief Reload mini voicemail module */
static int reload(void)
{
- return(load_config());
+ return(load_config(1));
}
/*! \brief Reload cofiguration */
Modified: team/tilghman/config_mtime_cache/apps/app_playback.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_playback.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_playback.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_playback.c Tue Aug 14 23:35:32 2007
@@ -470,12 +470,17 @@
static int reload(void)
{
struct ast_variable *v;
+ struct ast_flags config_flags = { CONFIG_FLAG_FILEUNCHANGED };
+ struct ast_config *newcfg;
+
+ if ((newcfg = ast_config_load("say.conf", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
if (say_cfg) {
ast_config_destroy(say_cfg);
ast_log(LOG_NOTICE, "Reloading say.conf\n");
- }
- say_cfg = ast_config_load("say.conf");
+ say_cfg = newcfg;
+ }
if (say_cfg) {
for (v = ast_variable_browse(say_cfg, "general"); v ; v = v->next) {
@@ -510,8 +515,9 @@
static int load_module(void)
{
struct ast_variable *v;
-
- say_cfg = ast_config_load("say.conf");
+ struct ast_flags config_flags = { 0 };
+
+ say_cfg = ast_config_load("say.conf", config_flags);
if (say_cfg) {
for (v = ast_variable_browse(say_cfg, "general"); v ; v = v->next) {
if (ast_extension_match(v->name, "mode")) {
Modified: team/tilghman/config_mtime_cache/apps/app_privacy.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_privacy.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_privacy.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_privacy.c Tue Aug 14 23:35:32 2007
@@ -83,6 +83,7 @@
char phone[30];
struct ast_config *cfg = NULL;
char *parse = NULL;
+ struct ast_flags config_flags = { 0 };
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(maxretries);
AST_APP_ARG(minlength);
@@ -122,7 +123,7 @@
if (!x)
{
/*Read in the config file*/
- cfg = ast_config_load(PRIV_CONFIG);
+ cfg = ast_config_load(PRIV_CONFIG, config_flags);
if (cfg && (s = ast_variable_retrieve(cfg, "general", "maxretries"))) {
if (sscanf(s, "%d", &x) == 1)
Modified: team/tilghman/config_mtime_cache/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_queue.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_queue.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_queue.c Tue Aug 14 23:35:32 2007
@@ -3947,7 +3947,7 @@
.read = queue_function_queuememberlist,
};
-static int reload_queues(void)
+static int reload_queues(int reload)
{
struct call_queue *q;
struct ast_config *cfg;
@@ -3960,16 +3960,18 @@
char *interface;
char *membername;
int penalty;
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(interface);
AST_APP_ARG(penalty);
AST_APP_ARG(membername);
);
- if (!(cfg = ast_config_load("queues.conf"))) {
+ if (!(cfg = ast_config_load("queues.conf", config_flags))) {
ast_log(LOG_NOTICE, "No call queueing config file (queues.conf), so no call queues\n");
return 0;
- }
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
AST_LIST_LOCK(&queues);
use_weight=0;
/* Mark all queues as dead for the moment */
@@ -4766,7 +4768,7 @@
int res;
struct ast_context *con;
- if (!reload_queues())
+ if (!reload_queues(0))
return AST_MODULE_LOAD_DECLINE;
con = ast_context_find("app_queue_gosub_virtual_context");
@@ -4810,7 +4812,7 @@
static int reload(void)
{
- reload_queues();
+ reload_queues(1);
return 0;
}
Modified: team/tilghman/config_mtime_cache/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/apps/app_voicemail.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/apps/app_voicemail.c (original)
+++ team/tilghman/config_mtime_cache/apps/app_voicemail.c Tue Aug 14 23:35:32 2007
@@ -260,7 +260,7 @@
AST_APP_OPTION_ARG('a', OPT_AUTOPLAY, OPT_ARG_PLAYFOLDER),
});
-static int load_config(void);
+static int load_config(int reload);
/*! \page vmlang Voicemail Language Syntaxes Supported
@@ -1427,6 +1427,7 @@
const char *category = "";
struct ast_config *cfg=NULL;
struct odbc_obj *obj;
+ struct ast_flags config_flags = { CONFIG_FLAG_NOCACHE };
delete_file(dir, msgnum);
obj = ast_odbc_request_obj(odbc_database, 0);
@@ -1443,7 +1444,7 @@
else
ast_copy_string(fn, dir, sizeof(fn));
snprintf(full_fn, sizeof(full_fn), "%s.txt", fn);
- cfg = ast_config_load(full_fn);
+ cfg = ast_config_load(full_fn, config_flags);
snprintf(full_fn, sizeof(full_fn), "%s.%s", fn, fmt);
fd = open(full_fn, O_RDWR);
if (fd < 0) {
@@ -3975,6 +3976,7 @@
int cmd = 0;
int retries = 0;
signed char zero_gain = 0;
+ struct ast_flags config_flags = { CONFIG_FLAG_NOCACHE };
while ((cmd >= 0) && (cmd != 't') && (cmd != '*')) {
if (cmd)
@@ -3995,7 +3997,7 @@
*duration = 0;
/* if we can't read the message metadata, stop now */
- if (!(msg_cfg = ast_config_load(textfile))) {
+ if (!(msg_cfg = ast_config_load(textfile, config_flags))) {
cmd = 0;
break;
}
@@ -4733,6 +4735,7 @@
char filename[256], *cid;
const char *origtime, *context, *category, *duration;
struct ast_config *msg_cfg;
+ struct ast_flags config_flags = { CONFIG_FLAG_NOCACHE };
vms->starting = 0;
make_file(vms->fn, sizeof(vms->fn), vms->curdir, vms->curmsg);
@@ -4782,7 +4785,7 @@
make_file(vms->fn2, sizeof(vms->fn2), vms->curdir, vms->curmsg);
snprintf(filename, sizeof(filename), "%s.txt", vms->fn2);
RETRIEVE(vms->curdir, vms->curmsg, vmu->mailbox, vmu->context);
- msg_cfg = ast_config_load(filename);
+ msg_cfg = ast_config_load(filename, config_flags);
if (!msg_cfg) {
ast_log(LOG_WARNING, "No message attribute file?!! (%s)\n", filename);
return 0;
@@ -7847,7 +7850,7 @@
return RESULT_SUCCESS;
}
-static int load_config(void)
+static int load_config(int reload)
{
struct ast_vm_user *cur;
struct vm_zone *zcur;
@@ -7860,6 +7863,17 @@
char *q, *stringp;
int x;
int tmpadsi[4];
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
+
+ if ((cfg = ast_config_load(VOICEMAIL_CONFIG, config_flags)) == CONFIG_STATUS_FILEUNCHANGED) {
+ if ((ucfg = ast_config_load("users.conf", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
+ ast_clear_flag(&config_flags, CONFIG_FLAG_FILEUNCHANGED);
+ cfg = ast_config_load(VOICEMAIL_CONFIG, config_flags);
+ } else {
+ ast_clear_flag(&config_flags, CONFIG_FLAG_FILEUNCHANGED);
+ ucfg = ast_config_load("users.conf", config_flags);
+ }
/* set audio control prompts */
strcpy(listen_control_forward_key,DEFAULT_LISTEN_CONTROL_FORWARD_KEY);
@@ -7868,8 +7882,6 @@
strcpy(listen_control_restart_key,DEFAULT_LISTEN_CONTROL_RESTART_KEY);
strcpy(listen_control_stop_key,DEFAULT_LISTEN_CONTROL_STOP_KEY);
- cfg = ast_config_load(VOICEMAIL_CONFIG);
-
AST_LIST_LOCK(&users);
while ((cur = AST_LIST_REMOVE_HEAD(&users, list))) {
ast_set_flag(cur, VM_ALLOCED);
@@ -8256,7 +8268,7 @@
if ((val = ast_variable_retrieve(cfg, "general", "pollmailboxes")))
poll_mailboxes = ast_true(val);
- if ((ucfg = ast_config_load("users.conf"))) {
+ if (ucfg) {
for (cat = ast_category_browse(ucfg, NULL); cat ; cat = ast_category_browse(ucfg, cat)) {
if (!ast_true(ast_config_option(ucfg, cat, "hasvoicemail")))
continue;
@@ -8424,13 +8436,15 @@
} else {
AST_LIST_UNLOCK(&users);
ast_log(LOG_WARNING, "Failed to load configuration file.\n");
+ if (ucfg)
+ ast_config_destroy(ucfg);
return 0;
}
}
static int reload(void)
{
- return load_config();
+ return load_config(1);
}
static int unload_module(void)
@@ -8461,7 +8475,7 @@
/* compute the location of the voicemail spool directory */
snprintf(VM_SPOOL_DIR, sizeof(VM_SPOOL_DIR), "%s/voicemail/", ast_config_AST_SPOOL_DIR);
- if ((res = load_config()))
+ if ((res = load_config(0)))
return res;
res = ast_register_application(app, vm_exec, synopsis_vm, descrip_vm);
@@ -8552,6 +8566,7 @@
const char *origtime, *context;
char *cid, *name, *num;
int retries = 0;
+ struct ast_flags config_flags = { CONFIG_FLAG_NOCACHE };
vms->starting = 0;
#ifdef IMAP_STORAGE
@@ -8602,7 +8617,7 @@
make_file(vms->fn2, sizeof(vms->fn2), vms->curdir, vms->curmsg);
snprintf(filename,sizeof(filename), "%s.txt", vms->fn2);
RETRIEVE(vms->curdir, vms->curmsg, vmu->mailbox, vmu->context);
- msg_cfg = ast_config_load(filename);
+ msg_cfg = ast_config_load(filename, config_flags);
DISPOSE(vms->curdir, vms->curmsg);
if (!msg_cfg) {
ast_log(LOG_WARNING, "No message attribute file?!! (%s)\n", filename);
Modified: team/tilghman/config_mtime_cache/cdr/cdr_adaptive_odbc.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/cdr/cdr_adaptive_odbc.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/cdr/cdr_adaptive_odbc.c (original)
+++ team/tilghman/config_mtime_cache/cdr/cdr_adaptive_odbc.c Tue Aug 14 23:35:32 2007
@@ -95,8 +95,9 @@
SQLLEN sqlptr;
int res = 0;
SQLHSTMT stmt = NULL;
-
- cfg = ast_config_load(CONFIG);
+ struct ast_flags config_flags = { 0 }; /* Part of our config comes from the database */
+
+ cfg = ast_config_load(CONFIG, config_flags);
if (!cfg) {
ast_log(LOG_WARNING, "Unable to load " CONFIG ". No adaptive ODBC CDRs.\n");
return -1;
Modified: team/tilghman/config_mtime_cache/cdr/cdr_csv.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/cdr/cdr_csv.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/cdr/cdr_csv.c (original)
+++ team/tilghman/config_mtime_cache/cdr/cdr_csv.c Tue Aug 14 23:35:32 2007
@@ -95,22 +95,24 @@
static FILE *mf = NULL;
-static int load_config(void)
+static int load_config(int reload)
{
struct ast_config *cfg;
struct ast_variable *var;
const char *tmp;
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
usegmtime = 0;
loguniqueid = 0;
loguserfield = 0;
- cfg = ast_config_load(config);
+ cfg = ast_config_load(config, config_flags);
if (!cfg) {
ast_log(LOG_WARNING, "unable to load config: %s\n", config);
return 0;
- }
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
var = ast_variable_browse(cfg, "csv");
if (!var) {
@@ -316,7 +318,7 @@
{
int res;
- if(!load_config())
+ if(!load_config(0))
return AST_MODULE_LOAD_DECLINE;
res = ast_cdr_register(name, ast_module_info->description, csv_log);
@@ -330,7 +332,7 @@
static int reload(void)
{
- load_config();
+ load_config(1);
return 0;
}
Modified: team/tilghman/config_mtime_cache/cdr/cdr_custom.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/cdr/cdr_custom.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/cdr/cdr_custom.c (original)
+++ team/tilghman/config_mtime_cache/cdr/cdr_custom.c Tue Aug 14 23:35:32 2007
@@ -68,12 +68,16 @@
{
struct ast_config *cfg;
struct ast_variable *var;
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
int res = -1;
+
+ if ((cfg = ast_config_load("cdr_custom.conf", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
strcpy(format, "");
strcpy(master, "");
ast_mutex_lock(&lock);
- if((cfg = ast_config_load("cdr_custom.conf"))) {
+ if (cfg) {
var = ast_variable_browse(cfg, "mappings");
while(var) {
if (!ast_strlen_zero(var->name) && !ast_strlen_zero(var->value)) {
Modified: team/tilghman/config_mtime_cache/cdr/cdr_manager.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/cdr/cdr_manager.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/cdr/cdr_manager.c (original)
+++ team/tilghman/config_mtime_cache/cdr/cdr_manager.c Tue Aug 14 23:35:32 2007
@@ -52,15 +52,22 @@
static int enablecdr = 0;
struct ast_str *customfields;
-static int load_config(void)
+static int load_config(int reload)
{
char *cat = NULL;
struct ast_config *cfg;
struct ast_variable *v;
-
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
+
+ cfg = ast_config_load(CONF_FILE, config_flags);
+ if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
+
+ if (reload && customfields) {
+ ast_free(customfields);
+ }
customfields = NULL;
- cfg = ast_config_load(CONF_FILE);
if (!cfg) {
/* Standard configuration */
ast_log(LOG_WARNING, "Failed to load configuration file. Module not activated.\n");
@@ -174,7 +181,7 @@
int res;
/* Configuration file */
- if (!load_config())
+ if (!load_config(0))
return AST_MODULE_LOAD_DECLINE;
res = ast_cdr_register(name, "Asterisk Manager Interface CDR Backend", manager_log);
@@ -187,12 +194,7 @@
static int reload(void)
{
- if (customfields) {
- ast_free(customfields);
- }
-
- load_config();
- return 0;
+ return load_config(1);
}
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Asterisk Manager Interface CDR Backend",
Modified: team/tilghman/config_mtime_cache/cdr/cdr_odbc.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/cdr/cdr_odbc.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/cdr/cdr_odbc.c (original)
+++ team/tilghman/config_mtime_cache/cdr/cdr_odbc.c Tue Aug 14 23:35:32 2007
@@ -226,123 +226,123 @@
return 0;
}
-static int odbc_load_module(void)
+static int odbc_load_module(int reload)
{
int res = 0;
struct ast_config *cfg;
struct ast_variable *var;
const char *tmp;
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
ast_mutex_lock(&odbc_lock);
- cfg = ast_config_load(config);
- if (!cfg) {
- ast_log(LOG_WARNING, "cdr_odbc: Unable to load config for ODBC CDR's: %s\n", config);
- res = AST_MODULE_LOAD_DECLINE;
- goto out;
- }
+ do {
+ cfg = ast_config_load(config, config_flags);
+ if (!cfg) {
+ ast_log(LOG_WARNING, "cdr_odbc: Unable to load config for ODBC CDR's: %s\n", config);
+ res = AST_MODULE_LOAD_DECLINE;
+ break;
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ break;
- var = ast_variable_browse(cfg, "global");
- if (!var) {
- /* nothing configured */
- goto out;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","dsn");
- if (tmp == NULL) {
- ast_log(LOG_WARNING,"cdr_odbc: dsn not specified. Assuming asteriskdb\n");
- tmp = "asteriskdb";
- }
- dsn = strdup(tmp);
- if (dsn == NULL) {
- ast_log(LOG_ERROR,"cdr_odbc: Out of memory error.\n");
- res = -1;
- goto out;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","dispositionstring");
- if (tmp) {
- dispositionstring = ast_true(tmp);
- } else {
- dispositionstring = 0;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","username");
- if (tmp) {
- username = strdup(tmp);
- if (username == NULL) {
- ast_log(LOG_ERROR,"cdr_odbc: Out of memory error.\n");
+ var = ast_variable_browse(cfg, "global");
+ if (!var) {
+ /* nothing configured */
+ break;
+ }
+
+ if ((tmp = ast_variable_retrieve(cfg, "global", "dsn")) == NULL) {
+ ast_log(LOG_WARNING, "cdr_odbc: dsn not specified. Assuming asteriskdb\n");
+ tmp = "asteriskdb";
+ }
+ if (dsn)
+ ast_free(dsn);
+ dsn = ast_strdup(tmp);
+ if (dsn == NULL) {
res = -1;
- goto out;
- }
- }
-
- tmp = ast_variable_retrieve(cfg,"global","password");
- if (tmp) {
- password = strdup(tmp);
- if (password == NULL) {
- ast_log(LOG_ERROR,"cdr_odbc: Out of memory error.\n");
+ break;
+ }
+
+ if ((tmp = ast_variable_retrieve(cfg, "global", "dispositionstring")))
+ dispositionstring = ast_true(tmp);
+ else
+ dispositionstring = 0;
+
+ if ((tmp = ast_variable_retrieve(cfg, "global", "username"))) {
+ if (username)
+ ast_free(username);
+ username = ast_strdup(tmp);
+ if (username == NULL) {
+ res = -1;
+ break;
+ }
+ }
+
+ if ((tmp = ast_variable_retrieve(cfg, "global", "password"))) {
+ if (password)
+ ast_free(password);
+ password = ast_strdup(tmp);
+ if (password == NULL) {
+ res = -1;
+ break;
+ }
+ }
+
+ if ((tmp = ast_variable_retrieve(cfg, "global", "loguniqueid"))) {
+ loguniqueid = ast_true(tmp);
+ if (loguniqueid) {
+ ast_debug(1, "cdr_odbc: Logging uniqueid\n");
+ } else {
+ ast_debug(1, "cdr_odbc: Not logging uniqueid\n");
+ }
+ } else {
+ ast_debug(1, "cdr_odbc: Not logging uniqueid\n");
+ loguniqueid = 0;
+ }
+
+ if ((tmp = ast_variable_retrieve(cfg, "global", "usegmtime"))) {
+ usegmtime = ast_true(tmp);
+ if (usegmtime) {
+ ast_debug(1, "cdr_odbc: Logging in GMT\n");
+ } else {
+ ast_debug(1, "cdr_odbc: Not logging in GMT\n");
+ }
+ } else {
+ ast_debug(1, "cdr_odbc: Not logging in GMT\n");
+ usegmtime = 0;
+ }
+
+ if ((tmp = ast_variable_retrieve(cfg, "global", "table")) == NULL) {
+ ast_log(LOG_WARNING, "cdr_odbc: table not specified. Assuming cdr\n");
+ tmp = "cdr";
+ }
+ if (table)
+ ast_free(table);
+ table = ast_strdup(tmp);
+ if (table == NULL) {
res = -1;
- goto out;
- }
- }
-
- tmp = ast_variable_retrieve(cfg,"global","loguniqueid");
- if (tmp) {
- loguniqueid = ast_true(tmp);
- if (loguniqueid) {
- ast_debug(1,"cdr_odbc: Logging uniqueid\n");
- } else {
- ast_debug(1,"cdr_odbc: Not logging uniqueid\n");
- }
- } else {
- ast_debug(1,"cdr_odbc: Not logging uniqueid\n");
- loguniqueid = 0;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","usegmtime");
- if (tmp) {
- usegmtime = ast_true(tmp);
- if (usegmtime) {
- ast_debug(1,"cdr_odbc: Logging in GMT\n");
- } else {
- ast_debug(1,"cdr_odbc: Not logging in GMT\n");
- }
- } else {
- ast_debug(1,"cdr_odbc: Not logging in GMT\n");
- usegmtime = 0;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","table");
- if (tmp == NULL) {
- ast_log(LOG_WARNING,"cdr_odbc: table not specified. Assuming cdr\n");
- tmp = "cdr";
- }
- table = strdup(tmp);
- if (table == NULL) {
- ast_log(LOG_ERROR,"cdr_odbc: Out of memory error.\n");
- res = -1;
- goto out;
- }
-
- ast_verb(3, "cdr_odbc: dsn is %s\n",dsn);
- if (username) {
- ast_verb(3, "cdr_odbc: username is %s\n",username);
- ast_verb(3, "cdr_odbc: password is [secret]\n");
- } else
- ast_verb(3, "cdr_odbc: retreiving username and password from odbc config\n");
- ast_verb(3, "cdr_odbc: table is %s\n",table);
-
- res = odbc_init();
- if (res < 0) {
- ast_log(LOG_ERROR, "cdr_odbc: Unable to connect to datasource: %s\n", dsn);
- ast_verb(3, "cdr_odbc: Unable to connect to datasource: %s\n", dsn);
- }
- res = ast_cdr_register(name, ast_module_info->description, odbc_log);
- if (res) {
- ast_log(LOG_ERROR, "cdr_odbc: Unable to register ODBC CDR handling\n");
- }
-out:
+ break;
+ }
+
+ ast_verb(3, "cdr_odbc: dsn is %s\n", dsn);
+ if (username) {
+ ast_verb(3, "cdr_odbc: username is %s\n", username);
+ ast_verb(3, "cdr_odbc: password is [secret]\n");
+ } else
+ ast_verb(3, "cdr_odbc: retrieving username and password from odbc config\n");
+ ast_verb(3, "cdr_odbc: table is %s\n", table);
+
+ res = odbc_init();
+ if (res < 0) {
+ ast_log(LOG_ERROR, "cdr_odbc: Unable to connect to datasource: %s\n", dsn);
+ ast_verb(3, "cdr_odbc: Unable to connect to datasource: %s\n", dsn);
+ }
+ res = ast_cdr_register(name, ast_module_info->description, odbc_log);
+ if (res) {
+ ast_log(LOG_ERROR, "cdr_odbc: Unable to register ODBC CDR handling\n");
+ }
+ } while (0);
+
if (cfg)
ast_config_destroy(cfg);
ast_mutex_unlock(&odbc_lock);
@@ -418,7 +418,7 @@
static int load_module(void)
{
- return odbc_load_module();
+ return odbc_load_module(0);
}
static int unload_module(void)
@@ -428,8 +428,7 @@
static int reload(void)
{
- odbc_unload_module();
- return odbc_load_module();
+ return odbc_load_module(1);
}
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "ODBC CDR Backend",
Modified: team/tilghman/config_mtime_cache/cdr/cdr_tds.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/cdr/cdr_tds.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/cdr/cdr_tds.c (original)
+++ team/tilghman/config_mtime_cache/cdr/cdr_tds.c Tue Aug 14 23:35:32 2007
@@ -422,95 +422,106 @@
return 0;
}
-static int tds_load_module(void)
+static int tds_load_module(int reload)
{
int res = 0;
struct ast_config *cfg;
struct ast_variable *var;
const char *ptr = NULL;
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
#ifdef FREETDS_PRE_0_62
TDS_INT result_type;
#endif
- cfg = ast_config_load(config);
+ cfg = ast_config_load(config, config_flags);
if (!cfg) {
ast_log(LOG_NOTICE, "Unable to load config for MSSQL CDR's: %s\n", config);
return 0;
- }
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
var = ast_variable_browse(cfg, "global");
if (!var) /* nothing configured */
return 0;
ptr = ast_variable_retrieve(cfg, "global", "hostname");
+ if (ptr) {
+ if (hostname)
+ ast_free(hostname);
+ hostname = ast_strdup(ptr);
+ } else
+ ast_log(LOG_ERROR, "Database server hostname not specified.\n");
+
+ ptr = ast_variable_retrieve(cfg, "global", "dbname");
+ if (ptr) {
+ if (dbname)
+ ast_free(dbname);
+ dbname = ast_strdup(ptr);
+ } else
+ ast_log(LOG_ERROR, "Database dbname not specified.\n");
+
+ ptr = ast_variable_retrieve(cfg, "global", "user");
+ if (ptr) {
+ if (dbuser)
+ ast_free(dbuser);
+ dbuser = ast_strdup(ptr);
+ } else
+ ast_log(LOG_ERROR, "Database dbuser not specified.\n");
+
+ ptr = ast_variable_retrieve(cfg, "global", "password");
+ if (ptr) {
+ if (password)
+ ast_free(password);
+ password = ast_strdup(ptr);
+ } else
+ ast_log(LOG_ERROR,"Database password not specified.\n");
+
+ ptr = ast_variable_retrieve(cfg, "global", "charset");
+ if (charset)
+ ast_free(charset);
if (ptr)
- hostname = strdup(ptr);
+ charset = ast_strdup(ptr);
else
- ast_log(LOG_ERROR,"Database server hostname not specified.\n");
-
- ptr = ast_variable_retrieve(cfg, "global", "dbname");
- if (ptr)
- dbname = strdup(ptr);
- else
- ast_log(LOG_ERROR,"Database dbname not specified.\n");
-
- ptr = ast_variable_retrieve(cfg, "global", "user");
- if (ptr)
- dbuser = strdup(ptr);
- else
- ast_log(LOG_ERROR,"Database dbuser not specified.\n");
-
- ptr = ast_variable_retrieve(cfg, "global", "password");
- if (ptr)
- password = strdup(ptr);
- else
- ast_log(LOG_ERROR,"Database password not specified.\n");
-
- ptr = ast_variable_retrieve(cfg, "global", "charset");
- if (ptr)
- charset = strdup(ptr);
- else
- charset = strdup("iso_1");
-
+ charset = ast_strdup("iso_1");
+
+ if (language)
+ ast_free(language);
ptr = ast_variable_retrieve(cfg, "global", "language");
if (ptr)
- language = strdup(ptr);
+ language = ast_strdup(ptr);
else
- language = strdup("us_english");
-
- ptr = ast_variable_retrieve(cfg,"global","table");
+ language = ast_strdup("us_english");
+
+ ptr = ast_variable_retrieve(cfg, "global", "table");
if (ptr == NULL) {
- ast_debug(1,"cdr_tds: table not specified. Assuming cdr\n");
+ ast_debug(1, "cdr_tds: table not specified. Assuming cdr\n");
ptr = "cdr";
}
- table = strdup(ptr);
+ if (table)
+ ast_free(table);
+ table = ast_strdup(ptr);
ast_config_destroy(cfg);
+ ast_mutex_lock(&tds_lock);
+ mssql_disconnect();
mssql_connect();
-
- /* Register MSSQL CDR handler */
- res = ast_cdr_register(name, ast_module_info->description, tds_log);
- if (res)
- {
- ast_log(LOG_ERROR, "Unable to register MSSQL CDR handling\n");
- }
+ ast_mutex_unlock(&tds_lock);
return res;
}
static int reload(void)
{
- tds_unload_module();
- return tds_load_module();
+ return tds_load_module(1);
}
static int load_module(void)
{
- if(!tds_load_module())
+ if (!tds_load_module(0))
return AST_MODULE_LOAD_DECLINE;
- else
- return AST_MODULE_LOAD_SUCCESS;
+ ast_cdr_register(name, ast_module_info->description, tds_log);
+ return AST_MODULE_LOAD_SUCCESS;
}
static int unload_module(void)
Modified: team/tilghman/config_mtime_cache/channels/chan_agent.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/channels/chan_agent.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/channels/chan_agent.c (original)
+++ team/tilghman/config_mtime_cache/channels/chan_agent.c Tue Aug 14 23:35:32 2007
@@ -986,7 +986,7 @@
const char *catname;
const char *hasagent;
int genhasagent;
- struct ast_flags config_flags = { reload ? OPT_FILEUNCHANGED : 0 };
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
group = 0;
autologoff = 0;
@@ -997,7 +997,7 @@
if (!cfg) {
ast_log(LOG_NOTICE, "No agent configuration found -- agent support disabled\n");
return 0;
- } else if (cfg == FILEUNCHANGED)
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
return -1;
AST_LIST_LOCK(&agents);
AST_LIST_TRAVERSE(&agents, p, list) {
@@ -1083,7 +1083,7 @@
}
v = v->next;
}
- if ((ucfg = ast_config_load("users.conf", config_flags)) && ucfg != FILEUNCHANGED) {
+ if ((ucfg = ast_config_load("users.conf", config_flags)) && ucfg != CONFIG_STATUS_FILEUNCHANGED) {
genhasagent = ast_true(ast_variable_retrieve(ucfg, "general", "hasagent"));
catname = ast_category_browse(ucfg, NULL);
while(catname) {
Modified: team/tilghman/config_mtime_cache/channels/chan_h323.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/channels/chan_h323.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/channels/chan_h323.c (original)
+++ team/tilghman/config_mtime_cache/channels/chan_h323.c Tue Aug 14 23:35:32 2007
@@ -2812,13 +2812,23 @@
int is_user, is_peer, is_alias;
char _gatekeeper[100];
int gk_discover, gk_disable, gk_changed;
-
- cfg = ast_config_load(config);
+ struct ast_flags config_flags = { is_reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
+
+ cfg = ast_config_load(config, config_flags);
/* We *must* have a config file otherwise stop immediately */
if (!cfg) {
ast_log(LOG_NOTICE, "Unable to load config %s, H.323 disabled\n", config);
return 1;
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED) {
+ ucfg = ast_config_load("users.conf", config_flags);
+ if (ucfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
+ ast_clear_flag(&config_flags, CONFIG_FLAG_FILEUNCHANGED);
+ cfg = ast_config_load(config, config_flags);
+ } else {
+ ast_clear_flag(&config_flags, CONFIG_FLAG_FILEUNCHANGED);
+ ucfg = ast_config_load("users.conf", config_flags);
}
/* fire up the H.323 Endpoint */
@@ -2851,8 +2861,6 @@
/* Copy the default jb config over global_jbconf */
memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
- /* Load configuration from users.conf */
- ucfg = ast_config_load("users.conf");
if (ucfg) {
struct ast_variable *gen;
int genhas_h323;
Modified: team/tilghman/config_mtime_cache/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/tilghman/config_mtime_cache/channels/chan_iax2.c?view=diff&rev=79506&r1=79505&r2=79506
==============================================================================
--- team/tilghman/config_mtime_cache/channels/chan_iax2.c (original)
+++ team/tilghman/config_mtime_cache/channels/chan_iax2.c Tue Aug 14 23:35:32 2007
@@ -9770,30 +9770,26 @@
struct iax2_user *user;
struct iax2_peer *peer;
struct ast_netsock *ns;
- struct ast_flags config_flags = { reload ? OPT_FILEUNCHANGED : 0 };
+ struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
#if 0
static unsigned short int last_port=0;
#endif
- for (x = 0; x < 2; x++) {
+ cfg = ast_config_load(config_file, config_flags);
+
+ if (!cfg) {
+ ast_log(LOG_ERROR, "Unable to load config %s\n", config_file);
+ return -1;
+ } else if (cfg == CONFIG_STATUS_FILEUNCHANGED) {
+ ucfg = ast_config_load("users.conf", config_flags);
+ if (ucfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
+ /* Otherwise we need to reread both files */
+ ast_clear_flag(&config_flags, CONFIG_FLAG_FILEUNCHANGED);
cfg = ast_config_load(config_file, config_flags);
-
- if (!cfg) {
- ast_log(LOG_ERROR, "Unable to load config %s\n", config_file);
- return -1;
- } else if (cfg == FILEUNCHANGED) {
- ucfg = ast_config_load("users.conf", config_flags);
- if (ucfg == FILEUNCHANGED)
- return 0;
- /* Otherwise we need to reread both files */
- ast_config_destroy(ucfg);
- ast_clear_flag(&config_flags, OPT_FILEUNCHANGED);
- continue;
- } else { /* iax.conf changed, gotta reread users.conf, too */
- ast_clear_flag(&config_flags, OPT_FILEUNCHANGED);
- ucfg = ast_config_load("users.conf", config_flags);
- }
- break;
+ } else { /* iax.conf changed, gotta reread users.conf, too */
[... 1482 lines stripped ...]
More information about the asterisk-commits
mailing list