diff options
author | Steve Murphy <murf@digium.com> | 2007-06-22 15:15:35 +0000 |
---|---|---|
committer | Steve Murphy <murf@digium.com> | 2007-06-22 15:15:35 +0000 |
commit | 6a2af3c983c9f7f8aa251c9ff6d5fe39faa43e8b (patch) | |
tree | ddd9eecf189aee9b4a098ee86568ff1d9bfacad2 /main/cdr.c | |
parent | 68ac7f76332fd8ca371c4047a60e87073f8ef50a (diff) |
Merged revisions 71063 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r71063 | murf | 2007-06-22 08:10:24 -0600 (Fri, 22 Jun 2007) | 1 line
My conditions for merging amaflags info was naive; DOCUMENTATION is the default, although null is possible; theft of user-settable fields is not good. Just copy them, leave them alone.
This is for bug 10016. (plus a small fix to rtp, to elim a compiler warning (dev mode))
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@71093 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/cdr.c')
-rw-r--r-- | main/cdr.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/main/cdr.c b/main/cdr.c index 11dbc56a9..2c95141eb 100644 --- a/main/cdr.c +++ b/main/cdr.c @@ -579,17 +579,18 @@ void ast_cdr_merge(struct ast_cdr *to, struct ast_cdr *from) ast_copy_string(to->dst, from->dst, sizeof(to->dst)); from->dst[0] = 0; /* theft */ } - if (ast_test_flag(from, AST_CDR_FLAG_LOCKED) || (!to->amaflags && from->amaflags)) { + if (!to->amaflags) + to->amaflags = AST_CDR_DOCUMENTATION; + if (!from->amaflags) + from->amaflags = AST_CDR_DOCUMENTATION; /* make sure both amaflags are set to something (DOC is default) */ + if (ast_test_flag(from, AST_CDR_FLAG_LOCKED) || (to->amaflags == AST_CDR_DOCUMENTATION && from->amaflags != AST_CDR_DOCUMENTATION)) { to->amaflags = from->amaflags; - from->amaflags = 0; /* theft */ } if (ast_test_flag(from, AST_CDR_FLAG_LOCKED) || (ast_strlen_zero(to->accountcode) && !ast_strlen_zero(from->accountcode))) { ast_copy_string(to->accountcode, from->accountcode, sizeof(to->accountcode)); - from->accountcode[0] = 0; /* theft */ } if (ast_test_flag(from, AST_CDR_FLAG_LOCKED) || (ast_strlen_zero(to->userfield) && !ast_strlen_zero(from->userfield))) { ast_copy_string(to->userfield, from->userfield, sizeof(to->userfield)); - from->userfield[0] = 0; /* theft */ } /* flags, varsead, ? */ cdr_merge_vars(from, to); |