mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	find_free_chan_in_stack: cleanup buggy usage
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -826,14 +826,13 @@ static int create_process (int midev, struct misdn_bchannel *bc) { | ||||
| 	int l3_id; | ||||
| 	int i; | ||||
| 	struct misdn_stack *stack=get_stack_by_bc(bc); | ||||
| 	int free_chan; | ||||
|    | ||||
| 	if (stack->nt) { | ||||
| 		free_chan = find_free_chan_in_stack(stack, bc, bc->channel_preselected?bc->channel:0); | ||||
| 		if (!free_chan) return -1; | ||||
| 		if (!find_free_chan_in_stack(stack, bc, bc->channel_preselected ? bc->channel : 0)) | ||||
| 			return -1; | ||||
| 		/*bc->channel=free_chan;*/ | ||||
| 		 | ||||
| 		cb_log(4,stack->port, " -->  found channel: %d\n",free_chan); | ||||
| 		cb_log(4,stack->port, " -->  found channel: %d\n", bc->channel); | ||||
|      | ||||
| 		for (i=0; i <= MAXPROCS; i++) | ||||
| 			if (stack->procids[i]==0) break; | ||||
| @@ -859,10 +858,10 @@ static int create_process (int midev, struct misdn_bchannel *bc) { | ||||
| 	} else {  | ||||
| 		if (stack->ptp || bc->te_choose_channel) { | ||||
| 			/* we know exactly which channels are in use */ | ||||
| 			free_chan = find_free_chan_in_stack(stack, bc, bc->channel_preselected?bc->channel:0); | ||||
| 			if (!free_chan) return -1; | ||||
| 			if (!find_free_chan_in_stack(stack, bc, bc->channel_preselected ? bc->channel : 0)) | ||||
| 				return -1; | ||||
| 			/*bc->channel=free_chan;*/ | ||||
| 			cb_log(2,stack->port, " -->  found channel: %d\n",free_chan); | ||||
| 			cb_log(2,stack->port, " -->  found channel: %d\n", bc->channel); | ||||
| 		} else { | ||||
| 			/* other phones could have made a call also on this port (ptmp) */ | ||||
| 			bc->channel=0xff; | ||||
| @@ -1498,8 +1497,7 @@ static int handle_event ( struct misdn_bchannel *bc, enum event_e event, iframe_ | ||||
| 			 | ||||
| 		{ | ||||
| 			if (bc->channel == 0xff) { | ||||
| 				bc->channel=find_free_chan_in_stack(stack, bc,  0); | ||||
| 				if (!bc->channel) { | ||||
| 				if (!find_free_chan_in_stack(stack, bc, 0)) { | ||||
| 					cb_log(0, stack->port, "Any Channel Requested, but we have no more!!\n"); | ||||
| 					break; | ||||
| 				} | ||||
| @@ -1801,9 +1799,7 @@ handle_event_nt(void *dat, void *arg) | ||||
| 			bc->l3_id=hh->dinfo; | ||||
|  | ||||
| 			if (bc->channel<=0) { | ||||
| 				bc->channel=find_free_chan_in_stack(stack,0,0); | ||||
|  | ||||
| 				if (bc->channel<=0) | ||||
| 				if (!find_free_chan_in_stack(stack, bc, 0)) | ||||
| 					goto ERR_NO_CHANNEL; | ||||
| 			} | ||||
| 		} | ||||
| @@ -2042,8 +2038,7 @@ handle_event_nt(void *dat, void *arg) | ||||
|  | ||||
| 					} else { | ||||
|  | ||||
| 						bc->channel = find_free_chan_in_stack(stack, bc, 0); | ||||
| 						if (!bc->channel) { | ||||
| 						if (!find_free_chan_in_stack(stack, bc, 0)) { | ||||
| 							cb_log(0, stack->port, " No free channel at the moment\n"); | ||||
| 					 | ||||
| 							msg_t *dmsg; | ||||
| @@ -3232,8 +3227,7 @@ int misdn_lib_send_event(struct misdn_bchannel *bc, enum event_e event ) | ||||
|  | ||||
| 		if (stack->nt) { | ||||
| 			if (bc->channel <=0 ) { /*  else we have the channel already */ | ||||
| 				bc->channel = find_free_chan_in_stack(stack, bc, 0); | ||||
| 				if (!bc->channel) { | ||||
| 				if (!find_free_chan_in_stack(stack, bc, 0)) { | ||||
| 					cb_log(0, stack->port, " No free channel at the moment\n"); | ||||
| 					 | ||||
| 					err=-ENOCHAN; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user