[asterisk-commits] branch crichter/0.3.0 r9040 - in /team/crichter/0.3.0/channels: ./ misdn/

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Feb 1 08:43:52 MST 2006


Author: crichter
Date: Wed Feb  1 09:43:49 2006
New Revision: 9040

URL: http://svn.digium.com/view/asterisk?rev=9040&view=rev
Log:
still NT Mode issues, mISDNuser is not reentrant, so we need to take care


Modified:
    team/crichter/0.3.0/channels/chan_misdn.c
    team/crichter/0.3.0/channels/misdn/isdn_lib.c

Modified: team/crichter/0.3.0/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/crichter/0.3.0/channels/chan_misdn.c?rev=9040&r1=9039&r2=9040&view=diff
==============================================================================
--- team/crichter/0.3.0/channels/chan_misdn.c (original)
+++ team/crichter/0.3.0/channels/chan_misdn.c Wed Feb  1 09:43:49 2006
@@ -2705,6 +2705,10 @@
 	{
 		struct chan_list *ch=find_chan_by_bc(cl_te, bc);
 		if (!ch) ch=find_chan_by_l3id (cl_te, bc->l3_id);
+		if (!ch)  {
+			chan_misdn_log(0, bc->port, "release_chan: Ch not found!\n");
+			return;
+		}
 		
 		release_lock;
 		if (ch->ast) {

Modified: team/crichter/0.3.0/channels/misdn/isdn_lib.c
URL: http://svn.digium.com/view/asterisk/team/crichter/0.3.0/channels/misdn/isdn_lib.c?rev=9040&r1=9039&r2=9040&view=diff
==============================================================================
--- team/crichter/0.3.0/channels/misdn/isdn_lib.c (original)
+++ team/crichter/0.3.0/channels/misdn/isdn_lib.c Wed Feb  1 09:43:49 2006
@@ -1693,10 +1693,12 @@
 		case CC_RELEASE|CONFIRM:
 		{
 			struct misdn_bchannel *bc=find_bc_by_l3id(stack, hh->dinfo);
-			cb_log(4, stack->port, " --> RELEASE CONFIRM, sending RELEASE_COMPLETE\n");
 			if (bc) misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
-		}
-		hh->prim=CC_RELEASE|INDICATION;
+			cb_log(3, stack->port, " --> RELEASE CONFIRM, doing nothin\n");
+
+			free_msg(msg);
+			return 0;
+		}
 		break;  
 		case CC_RELEASE|INDICATION:
 			break;
@@ -2817,9 +2819,7 @@
 		break;
 		
 	case EVENT_RELEASE_COMPLETE:
-		empty_chan_in_stack(stack,bc->channel);
-		empty_bc(bc);
-		clean_up_bc(bc);
+		/*we do the cleanup in EVENT_CLEANUP*/
 		break;
     
 	case EVENT_CONNECT_ACKNOWLEDGE:
@@ -2843,11 +2843,8 @@
 	}
   
 	/* Later we should think about sending bchannel data directly to misdn. */
-	
 	msg = isdn_msg_build_event(msgs_g, bc, event, stack->nt);
-
 	msg_queue_tail(&stack->downqueue, msg);
-
 	sem_post(&glob_mgr->new_msg);
   
 	return 0;
@@ -3049,18 +3046,14 @@
 		     stack;
 		     stack=stack->next ) { 
 			while ( (msg=msg_dequeue(&stack->downqueue)) ) {
-				
-				if (stack->nt ){
+				if (stack->nt ) {
 					if (stack->nst.manager_l3(&stack->nst, msg))
 						cb_log(-1, stack->port, "Error@ Sending Message in NT-Stack.\n");
 	  
 				} else {
-					if (msg) {
-						iframe_t *frm = (iframe_t *)msg->data;
-						struct misdn_bchannel *bc = find_bc_by_l3id(stack, frm->dinfo);
-	    
-						if (bc) send_msg(glob_mgr->midev, bc, msg);
-					}
+					iframe_t *frm = (iframe_t *)msg->data;
+					struct misdn_bchannel *bc = find_bc_by_l3id(stack, frm->dinfo);
+					if (bc) send_msg(glob_mgr->midev, bc, msg);
 				}
 			}
 		}



More information about the asterisk-commits mailing list