[asterisk-commits] file: branch 1.6.0 r195702 - in /branches/1.6.0: ./ main/features.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed May 20 12:33:53 CDT 2009


Author: file
Date: Wed May 20 12:33:49 2009
New Revision: 195702

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=195702
Log:
Merged revisions 195698 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r195698 | file | 2009-05-20 14:33:02 -0300 (Wed, 20 May 2009) | 12 lines
  
  Merged revisions 195688 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r195688 | file | 2009-05-20 14:30:25 -0300 (Wed, 20 May 2009) | 5 lines
    
    Fix some code that wrongly assumed a pointer would always be non-NULL when dealing with CDRs after a bridge.
    
    (closes issue #15079)
    Reported by: barryf
  ........
................

Modified:
    branches/1.6.0/   (props changed)
    branches/1.6.0/main/features.c

Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.0/main/features.c
URL: http://svn.asterisk.org/svn-view/asterisk/branches/1.6.0/main/features.c?view=diff&rev=195702&r1=195701&r2=195702
==============================================================================
--- branches/1.6.0/main/features.c (original)
+++ branches/1.6.0/main/features.c Wed May 20 12:33:49 2009
@@ -2289,15 +2289,21 @@
 		   hears nothing but ringing while the macro does its thing. */
 		if (peer_cdr && !ast_tvzero(peer_cdr->answer)) {
 			bridge_cdr->answer = peer_cdr->answer;
-			chan_cdr->answer = peer_cdr->answer;
 			bridge_cdr->disposition = peer_cdr->disposition;
-			chan_cdr->disposition = peer_cdr->disposition;
+			if (chan_cdr) {
+				chan_cdr->answer = peer_cdr->answer;
+				chan_cdr->disposition = peer_cdr->disposition;
+			}
 		} else {
 			ast_cdr_answer(bridge_cdr);
-			ast_cdr_answer(chan_cdr); /* for the sake of cli status checks */
-		}
-		if (ast_test_flag(chan,AST_FLAG_BRIDGE_HANGUP_DONT)) {
-			ast_set_flag(chan_cdr, AST_CDR_FLAG_BRIDGED);
+			if (chan_cdr) {
+				ast_cdr_answer(chan_cdr); /* for the sake of cli status checks */
+			}
+		}
+		if (ast_test_flag(chan,AST_FLAG_BRIDGE_HANGUP_DONT) && (chan_cdr || peer_cdr)) {
+			if (chan_cdr) {
+				ast_set_flag(chan_cdr, AST_CDR_FLAG_BRIDGED);
+			}
 			if (peer_cdr) {
 				ast_set_flag(peer_cdr, AST_CDR_FLAG_BRIDGED);
 			}




More information about the asterisk-commits mailing list