From: Matthew Jordan Date: Mon, 25 Jun 2012 19:24:55 +0000 (+0000) Subject: Tweak CDR change in r369351 X-Git-Tag: 1.8.15.0-rc1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a77cbe00c4cc2fa10218c454ebb1f05a1f7ae90;p=thirdparty%2Fasterisk.git Tweak CDR change in r369351 As Tilghman pointed out on review 1996, the check to see if a CDR end time has been set is sufficient to know whether or not the duration value can be used. The check-in done for r369351 forgot to include this change. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@369366 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/cdr.c b/main/cdr.c index 8a738d14fb..b73ed2ad7a 100644 --- a/main/cdr.c +++ b/main/cdr.c @@ -294,7 +294,7 @@ void ast_cdr_getvar(struct ast_cdr *cdr, const char *name, char **ret, char *wor else if (!strcasecmp(name, "end")) cdr_get_tv(cdr->end, raw ? NULL : fmt, workspace, workspacelen); else if (!strcasecmp(name, "duration")) { - snprintf(workspace, workspacelen, "%ld", cdr->duration || !ast_tvzero(cdr->end) ? cdr->duration : (long)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000); + snprintf(workspace, workspacelen, "%ld", cdr->end.tv_sec != 0 ? cdr->duration : (long)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000); } else if (!strcasecmp(name, "billsec")) snprintf(workspace, workspacelen, "%ld", cdr->billsec || cdr->answer.tv_sec == 0 ? cdr->billsec : (long)ast_tvdiff_ms(ast_tvnow(), cdr->answer) / 1000); else if (!strcasecmp(name, "disposition")) {