cel_pgsl: Add support for GMT timestamps
authorMatthew Jordan <mjordan@digium.com>
Wed, 8 Apr 2015 11:35:53 +0000 (11:35 +0000)
committerMatthew Jordan <mjordan@digium.com>
Wed, 8 Apr 2015 11:35:53 +0000 (11:35 +0000)
This patch adds a new option to cel_pgsl, "usegmtime", which causes timestamps
to be logged in GMT.

Review: https://reviewboard.asterisk.org/r/4571/

ASTERISK-23186 #close
Reported by: Rodrigo Ramirez Norambuena
patches:
  cel_pgsql.c_add_usegmtime2.patch submitted by Rodrigo Ramirez Norambuena (License 6577)

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

CHANGES
cel/cel_pgsql.c
configs/samples/cel_pgsql.conf.sample

diff --git a/CHANGES b/CHANGES
index f3ab90d..e36af4a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -106,6 +106,15 @@ res_musiconhold
    over the channel-set musicclass. This allows separate hold-music from
    application (e.g. Queue or Dial) specified music.
 
+
+CEL Backends
+------------------
+
+cel_pgsql
+------------------
+* Added a new option, 'usegmtime', which causes timestamps in CEL events
+  to be logged in GMT.
+
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
 ------------------------------------------------------------------------------
index f9c098f..56a6069 100644 (file)
@@ -72,6 +72,7 @@ static char *table;
 
 static int connected = 0;
 static int maxsize = 512, maxsize2 = 512;
+static int usegmtime = 0;
 
 /*! \brief show_user_def is off by default */
 #define CEL_SHOW_USERDEF_DEFAULT       0
@@ -166,7 +167,7 @@ static void pgsql_log(struct ast_event *event)
 
        ast_mutex_lock(&pgsql_lock);
 
-       ast_localtime(&record.event_time, &tm, NULL);
+       ast_localtime(&record.event_time, &tm, usegmtime ? "GMT" : NULL);
        ast_strftime(timestr, sizeof(timestr), DATE_FORMAT, &tm);
 
        if ((!connected) && pghostname && pgdbuser && pgpassword && pgdbname) {
@@ -215,7 +216,7 @@ static void pgsql_log(struct ast_event *event)
                                } else {
                                        /* char, hopefully */
                                        LENGTHEN_BUF2(31);
-                                       ast_localtime(&record.event_time, &tm, NULL);
+                                       ast_localtime(&record.event_time, &tm, usegmtime ? "GMT" : NULL);
                                        ast_strftime(buf, sizeof(buf), DATE_FORMAT, &tm);
                                        ast_str_append(&sql2, 0, "%s'%s'", SEP, buf);
                                }
@@ -515,6 +516,11 @@ static int process_my_load_module(struct ast_config *cfg)
        if ((tmp = ast_variable_retrieve(cfg, "global", "show_user_defined"))) {
                cel_show_user_def = ast_true(tmp) ? 1 : 0;
        }
+       if ((tmp = ast_variable_retrieve(cfg, "global", "usegmtime"))) {
+               usegmtime = ast_true(tmp);
+       } else {
+               usegmtime = 0;
+       }
        if (option_debug) {
                if (ast_strlen_zero(pghostname)) {
                        ast_debug(3, "cel_pgsql: using default unix socket\n");
index 2298b2d..30c789e 100644 (file)
 ;
 ;show_user_defined=yes
 
+; Log date/time in GMT. The default of this option is 'no'.
+;usegmtime=yes
+
 ;hostname=localhost
 ;port=5432
 ;dbname=asterisk
 ;password=password
 ;user=postgres
 ;table=cel             ;SQL table where CEL's will be inserted
-;appname=asterisk   ; Postgres application_name support (optional). Whitespace not allowed.
\ No newline at end of file
+;appname=asterisk   ; Postgres application_name support (optional). Whitespace not allowed.