aboutsummaryrefslogtreecommitdiffstats
path: root/channels/misdn
diff options
context:
space:
mode:
authornadi <nadi@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-02 17:17:36 +0000
committernadi <nadi@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-02 17:17:36 +0000
commitfe4ad79da758dc7fc892ee947635350ecfa04c6d (patch)
treee48b051cf76f104c2943e72f63e6bee6bc243c14 /channels/misdn
parent613203f6d08b57748b425d8cfd50d9496d2eb190 (diff)
find_free_chan_in_stack usage fix
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@46963 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/misdn')
-rw-r--r--channels/misdn/isdn_lib.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index 91a854b59..aa0277efc 100644
--- a/channels/misdn/isdn_lib.c
+++ b/channels/misdn/isdn_lib.c
@@ -183,7 +183,9 @@ struct misdn_lib {
void misdn_tx_jitter(struct misdn_bchannel *bc, int len);
struct misdn_bchannel *find_bc_by_l3id(struct misdn_stack *stack, unsigned long l3id);
+
struct misdn_bchannel *find_bc_by_confid(unsigned long confid);
+
struct misdn_bchannel *stack_holder_find_bychan(struct misdn_stack *stack, int chan);
int setup_bc(struct misdn_bchannel *bc);
@@ -824,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;
@@ -857,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;
@@ -1496,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;
}
@@ -1799,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;
}
}
@@ -2040,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;
@@ -3230,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;