aboutsummaryrefslogtreecommitdiffstats
path: root/cdr/cdr_sqlite.c
diff options
context:
space:
mode:
Diffstat (limited to 'cdr/cdr_sqlite.c')
-rw-r--r--cdr/cdr_sqlite.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/cdr/cdr_sqlite.c b/cdr/cdr_sqlite.c
index 601e5b245..4a3c9406d 100644
--- a/cdr/cdr_sqlite.c
+++ b/cdr/cdr_sqlite.c
@@ -87,24 +87,26 @@ static char sql_create_table[] = "CREATE TABLE cdr ("
#endif
");";
+static void format_date(char *buffer, size_t length, struct timeval *when)
+{
+ struct ast_tm tm;
+
+ ast_localtime(when, &tm, NULL);
+ ast_strftime(buffer, length, DATE_FORMAT, &tm);
+}
+
static int sqlite_log(struct ast_cdr *cdr)
{
int res = 0;
char *zErr = 0;
- struct ast_tm tm;
char startstr[80], answerstr[80], endstr[80];
int count;
ast_mutex_lock(&sqlite_lock);
- ast_localtime(&cdr->start, &tm, NULL);
- ast_strftime(startstr, sizeof(startstr), DATE_FORMAT, &tm);
-
- ast_localtime(&cdr->answer, &tm, NULL);
- ast_strftime(answerstr, sizeof(answerstr), DATE_FORMAT, &tm);
-
- ast_localtime(&cdr->end, &tm, NULL);
- ast_strftime(endstr, sizeof(endstr), DATE_FORMAT, &tm);
+ format_date(startstr, sizeof(startstr), &cdr->start);
+ format_date(answerstr, sizeof(answerstr), &cdr->answer);
+ format_date(endstr, sizeof(endstr), &cdr->end);
for(count=0; count<5; count++) {
res = sqlite_exec_printf(db,