diff options
-rwxr-xr-x | asterisk.c | 9 | ||||
-rwxr-xr-x | pbx.c | 13 |
2 files changed, 19 insertions, 3 deletions
diff --git a/asterisk.c b/asterisk.c index 8e64773f6..37efe8029 100755 --- a/asterisk.c +++ b/asterisk.c @@ -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) @@ -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; |