Add ${TIMESTAMP} (bug #607) and don't ever ast_log from within handler
authorMark Spencer <markster@digium.com>
Mon, 1 Dec 2003 02:47:19 +0000 (02:47 +0000)
committerMark Spencer <markster@digium.com>
Mon, 1 Dec 2003 02:47:19 +0000 (02:47 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1805 65c4cc65-6c06-0410-ace0-fbb531ad65f3

asterisk.c
pbx.c

index 8e64773..37efe80 100755 (executable)
@@ -333,8 +333,9 @@ static void urg_handler(int num)
 {
        /* Called by soft_hangup to interrupt the select, read, or other
           system call.  We don't actually need to do anything though.  */
+       /* Cannot EVER ast_log from within a signal handler */
        if (option_debug) 
-               ast_log(LOG_DEBUG, "Urgent handler\n");
+               printf("Urgent handler\n");
        signal(num, urg_handler);
        return;
 }
@@ -342,12 +343,14 @@ static void urg_handler(int num)
 static void hup_handler(int num)
 {
        if (option_verbose > 1) 
-               ast_verbose(VERBOSE_PREFIX_2 "Received HUP signal -- Reloading configs\n");
+               printf("Received HUP signal -- Reloading configs\n");
+       /* XXX This could deadlock XXX */
        ast_module_reload();
 }
 
 static void child_handler(int sig)
 {
+       /* Must not ever ast_log or ast_verbose within signal handler */
        int n, status;
 
        /*
@@ -356,7 +359,7 @@ static void child_handler(int sig)
        for (n = 0; wait4(-1, &status, WNOHANG, NULL) > 0; n++)
                ;
        if (n == 0 && option_debug)     
-               ast_log(LOG_DEBUG, "Huh?  Child handler, but nobody there?\n");
+               printf("Huh?  Child handler, but nobody there?\n");
 }
 
 static void set_title(char *text)
diff --git a/pbx.c b/pbx.c
index ccc42c9..8c4d1ca 100755 (executable)
--- a/pbx.c
+++ b/pbx.c
@@ -859,6 +859,19 @@ static void pbx_substitute_variables_temp(struct ast_channel *c,const char *var,
                   brokentime.tm_sec
                   );
          *ret = workspace;
+       } else if (c && !strcmp(var, "TIMESTAMP")) {
+         thistime=time(NULL);
+         localtime_r(&thistime, &brokentime);
+               /* 20031130-150612 */
+         snprintf(workspace, workspacelen -1, "%04d%02d%02d-%02d%02d%02d",
+                  brokentime.tm_year+1900,
+                  brokentime.tm_mon+1,
+                  brokentime.tm_mday,
+                  brokentime.tm_hour,
+                  brokentime.tm_min,
+                  brokentime.tm_sec
+                  );
+         *ret = workspace;
        } else if (c && !strcmp(var, "UNIQUEID")) {
          snprintf(workspace, workspacelen -1, "%s", c->uniqueid);
          *ret = workspace;