Merged revisions 281052 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Thu, 5 Aug 2010 13:19:52 +0000 (13:19 +0000)
committerRussell Bryant <russell@russellbryant.com>
Thu, 5 Aug 2010 13:19:52 +0000 (13:19 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r281052 | russell | 2010-08-05 08:16:11 -0500 (Thu, 05 Aug 2010) | 16 lines

  Merged revisions 281051 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ........
    r281051 | russell | 2010-08-05 08:11:32 -0500 (Thu, 05 Aug 2010) | 9 lines

    Cleanup default option value handling for cdr.conf [general].

    The default values would differ depending on whether or not cdr.conf exists.
    That is no longer the case.

    Apply a default value to the unanswered option.

    Define all default values as named constants.
  ........
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@281054 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/cdr.c

index a609697..c9b5823 100644 (file)
@@ -84,18 +84,26 @@ static struct sched_context *sched;
 static int cdr_sched = -1;
 static pthread_t cdr_thread = AST_PTHREADT_NULL;
 
-#define BATCH_SIZE_DEFAULT 100
-#define BATCH_TIME_DEFAULT 300
-#define BATCH_SCHEDULER_ONLY_DEFAULT 0
-#define BATCH_SAFE_SHUTDOWN_DEFAULT 1
+static int enabled;
+static const int ENABLED_DEFAULT = 1;
 
-static int enabled;            /*! Is the CDR subsystem enabled ? */
-static int unanswered;
 static int batchmode;
+static const int BATCHMODE_DEFAULT = 0;
+
+static int unanswered;
+static const int UNANSWERED_DEFAULT = 0;
+
 static int batchsize;
+static const int BATCH_SIZE_DEFAULT = 100;
+
 static int batchtime;
+static const int BATCH_TIME_DEFAULT = 300;
+
 static int batchscheduleronly;
+static const int BATCH_SCHEDULER_ONLY_DEFAULT = 0;
+
 static int batchsafeshutdown;
+static const int BATCH_SAFE_SHUTDOWN_DEFAULT = 1;
 
 AST_MUTEX_DEFINE_STATIC(cdr_batch_lock);
 
@@ -1492,22 +1500,27 @@ static int do_reload(int reload)
        int res=0;
        struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
 
-       if ((config = ast_config_load2("cdr.conf", "cdr", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
-               return 0;
-       if (config == CONFIG_STATUS_FILEMISSING || config == CONFIG_STATUS_FILEUNCHANGED || config == CONFIG_STATUS_FILEINVALID) {
+       if ((config = ast_config_load2("cdr.conf", "cdr", config_flags)) == CONFIG_STATUS_FILEUNCHANGED) {
                return 0;
        }
 
        ast_mutex_lock(&cdr_batch_lock);
 
+       was_enabled = enabled;
+       was_batchmode = batchmode;
+
        batchsize = BATCH_SIZE_DEFAULT;
        batchtime = BATCH_TIME_DEFAULT;
        batchscheduleronly = BATCH_SCHEDULER_ONLY_DEFAULT;
        batchsafeshutdown = BATCH_SAFE_SHUTDOWN_DEFAULT;
-       was_enabled = enabled;
-       was_batchmode = batchmode;
-       enabled = 1;
-       batchmode = 0;
+       enabled = ENABLED_DEFAULT;
+       batchmode = BATCHMODE_DEFAULT;
+       unanswered = UNANSWERED_DEFAULT;
+
+       if (config == CONFIG_STATUS_FILEMISSING || config == CONFIG_STATUS_FILEINVALID) {
+               ast_mutex_unlock(&cdr_batch_lock);
+               return 0;
+       }
 
        /* don't run the next scheduled CDR posting while reloading */
        AST_SCHED_DEL(sched, cdr_sched);