aboutsummaryrefslogtreecommitdiffstats
path: root/cdr.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-15 21:59:08 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-15 21:59:08 +0000
commit850de97f71be44f10f017398e054f2d419e0f40d (patch)
tree2c48c2b8b7629644b523604c204fc242f9678dd1 /cdr.c
parentf2b299b22ebf792120665fb0fe4c2442c2259a8f (diff)
don't calculate a duration if the CDR wasn't started, as it will result in a
totally bogus value. Thanks, Luigi! :) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@13132 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'cdr.c')
-rw-r--r--cdr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/cdr.c b/cdr.c
index 95cc898d4..0aa7ddba8 100644
--- a/cdr.c
+++ b/cdr.c
@@ -653,11 +653,12 @@ void ast_cdr_end(struct ast_cdr *cdr)
chan = !ast_strlen_zero(cdr->channel) ? cdr->channel : "<unknown>";
if (ast_test_flag(cdr, AST_CDR_FLAG_POSTED))
ast_log(LOG_WARNING, "CDR on channel '%s' already posted\n", chan);
- if (ast_tvzero(cdr->start))
- ast_log(LOG_WARNING, "CDR on channel '%s' has not started\n", chan);
if (ast_tvzero(cdr->end))
cdr->end = ast_tvnow();
- cdr->duration = cdr->end.tv_sec - cdr->start.tv_sec;
+ if (ast_tvzero(cdr->start))
+ ast_log(LOG_WARNING, "CDR on channel '%s' has not started\n", chan);
+ else
+ cdr->duration = cdr->end.tv_sec - cdr->start.tv_sec;
if (!ast_tvzero(cdr->answer))
cdr->billsec = cdr->end.tv_sec - cdr->answer.tv_sec;
else