aboutsummaryrefslogtreecommitdiffstats
path: root/main/cdr.c
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-21 22:41:05 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-06-21 22:41:05 +0000
commitbdbc3c31dd2554fb9086269d1f598f83c4f0d62b (patch)
treee79ea47bfcb25a3ed1cc50974481544b5c021ba8 /main/cdr.c
parent92dc7fb75d777afd6303871b86b6fb822aebf353 (diff)
Merged revisions 70949 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r70949 | murf | 2007-06-21 16:34:41 -0600 (Thu, 21 Jun 2007) | 9 lines Merged revisions 70948 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r70948 | murf | 2007-06-21 16:29:50 -0600 (Thu, 21 Jun 2007) | 1 line This little fix is in response to bug 10016, but may not cure it. The code is wrong, clearly. In a situation where you set the CDR's amaflags, and then ForkCDR, and then set the new CDR's amaflags to some other value, you will see that all CDRs have had their amaflags changed. This is not good. So I fixed it. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@70951 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/cdr.c')
-rw-r--r--main/cdr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/main/cdr.c b/main/cdr.c
index d19f6a8ad..11dbc56a9 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -848,8 +848,11 @@ int ast_cdr_setamaflags(struct ast_channel *chan, const char *flag)
struct ast_cdr *cdr;
int newflag = ast_cdr_amaflags2int(flag);
if (newflag) {
- for (cdr = chan->cdr; cdr; cdr = cdr->next)
- cdr->amaflags = newflag;
+ for (cdr = chan->cdr; cdr; cdr = cdr->next) {
+ if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) {
+ cdr->amaflags = newflag;
+ }
+ }
}
return 0;