Merged revisions 139074 via svnmerge from
authorSteve Murphy <murf@digium.com>
Wed, 20 Aug 2008 17:25:07 +0000 (17:25 +0000)
committerSteve Murphy <murf@digium.com>
Wed, 20 Aug 2008 17:25:07 +0000 (17:25 +0000)
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: https://origsvn.digium.com/svn/asterisk/trunk@139083 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/cdr.c

index 23003e5..6bf60b8 100644 (file)
@@ -1081,12 +1081,15 @@ void ast_cdr_specialized_reset(struct ast_cdr *cdr, struct ast_flags *_flags)
 
        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));