summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2014-02-07 19:40:23 +0000
committerMatthew Jordan <mjordan@digium.com>2014-02-07 19:40:23 +0000
commit5fd63e2d0beeae4e118a7567716b586899166090 (patch)
tree9a8edef0b718a809904501c5e4667f68c52dd7c8
parent6f38887cb7d40679a75ebb51ff56eb4268df709a (diff)
funcs/func_cdr: Handle empty time values when extracting parsed values
When extracting timestamps that are parsed, time stamp values that are not set (time values of 0.000000) should not actually result in a parsed string. The value should be skipped, and the result of the CDR function should be an empty string. Prior to this patch, the result was fed to the time formatting, which would result in an output of a date/time in 1969. ........ Merged revisions 407747 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@407748 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--funcs/func_cdr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/funcs/func_cdr.c b/funcs/func_cdr.c
index ce5a12686..0116eee7f 100644
--- a/funcs/func_cdr.c
+++ b/funcs/func_cdr.c
@@ -291,9 +291,13 @@ static void cdr_read_callback(void *data, struct stasis_subscription *sub, struc
args.variable, tempbuf, ast_channel_name(payload->chan));
return;
}
- fmt_time.tv_usec = tv_usec;
- ast_localtime(&fmt_time, &tm, NULL);
- ast_strftime(tempbuf, sizeof(tempbuf), "%Y-%m-%d %T", &tm);
+ if (fmt_time.tv_sec) {
+ fmt_time.tv_usec = tv_usec;
+ ast_localtime(&fmt_time, &tm, NULL);
+ ast_strftime(tempbuf, sizeof(tempbuf), "%Y-%m-%d %T", &tm);
+ } else {
+ tempbuf[0] = '\0';
+ }
} else if (!strcasecmp("disposition", args.variable)) {
int disposition;