From 79b63cf518c2e19356aeca2ec61c9c6bef4e8882 Mon Sep 17 00:00:00 2001 From: murf Date: Wed, 20 Aug 2008 17:30:58 +0000 Subject: Merged revisions 139083 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r139083 | murf | 2008-08-20 11:25:07 -0600 (Wed, 20 Aug 2008) | 20 lines Merged revisions 139074 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r139074 | murf | 2008-08-20 11:14:55 -0600 (Wed, 20 Aug 2008) | 12 lines (closes issue #13263) Reported by: brainy Tested by: murf The specialized reset routine is tromping on the flags field of the CDR. I made a change to not reset the DISABLED bit. This should get rid of this problem. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@139104 f38db490-d61c-443f-a65b-d21fe96a405b --- main/cdr.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'main') diff --git a/main/cdr.c b/main/cdr.c index 16279a840..cabf3fc7a 100644 --- a/main/cdr.c +++ b/main/cdr.c @@ -1079,14 +1079,17 @@ void ast_cdr_specialized_reset(struct ast_cdr *cdr, struct ast_flags *_flags) { struct ast_flags flags = { 0 }; - if (_flags) - ast_copy_flags(&flags, _flags, AST_FLAGS_ALL); - if (_flags) ast_copy_flags(&flags, _flags, AST_FLAGS_ALL); /* Reset to initial state */ - ast_clear_flag(cdr, AST_FLAGS_ALL); + if (ast_test_flag(cdr, AST_CDR_FLAG_POST_DISABLED)) { /* But do NOT lose the NoCDR() setting */ + ast_clear_flag(cdr, AST_FLAGS_ALL); + ast_set_flag(cdr, AST_CDR_FLAG_POST_DISABLED); + } else { + ast_clear_flag(cdr, AST_FLAGS_ALL); + } + memset(&cdr->start, 0, sizeof(cdr->start)); memset(&cdr->end, 0, sizeof(cdr->end)); memset(&cdr->answer, 0, sizeof(cdr->answer)); -- cgit v1.2.3