[svn-commits] crichter: branch 1.2 r48552 - in
/branches/1.2/channels: ./ misdn/
svn-commits at lists.digium.com
svn-commits at lists.digium.com
Mon Dec 18 03:19:42 MST 2006
Author: crichter
Date: Mon Dec 18 04:19:39 2006
New Revision: 48552
URL: http://svn.digium.com/view/asterisk?view=rev&rev=48552
Log:
when our PTP Partner sends us a SETUP with a preselected channel we just accept it, even when we're NT. added some checks for segfaults.
Modified:
branches/1.2/channels/chan_misdn.c
branches/1.2/channels/misdn/isdn_lib.c
Modified: branches/1.2/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/channels/chan_misdn.c?view=diff&rev=48552&r1=48551&r2=48552
==============================================================================
--- branches/1.2/channels/chan_misdn.c (original)
+++ branches/1.2/channels/chan_misdn.c Mon Dec 18 04:19:39 2006
@@ -2393,6 +2393,10 @@
const struct tone_zone_sound *ts= NULL;
struct ast_channel *ast=cl->ast;
+ if (!ast) {
+ chan_misdn_log(0,cl->bc->port,"No Ast in dialtone_indicate\n");
+ return -1;
+ }
int nd=0;
misdn_cfg_get( cl->bc->port, MISDN_CFG_NODIALTONE, &nd, sizeof(nd));
@@ -2426,6 +2430,12 @@
static int stop_indicate(struct chan_list *cl)
{
struct ast_channel *ast=cl->ast;
+
+ if (!ast) {
+ chan_misdn_log(0,cl->bc->port,"No Ast in stop_indicate\n");
+ return -1;
+ }
+
chan_misdn_log(3,cl->bc->port," --> None\n");
misdn_lib_tone_generator_stop(cl->bc);
ast_playtones_stop(ast);
Modified: branches/1.2/channels/misdn/isdn_lib.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/channels/misdn/isdn_lib.c?view=diff&rev=48552&r1=48551&r2=48552
==============================================================================
--- branches/1.2/channels/misdn/isdn_lib.c (original)
+++ branches/1.2/channels/misdn/isdn_lib.c Mon Dec 18 04:19:39 2006
@@ -666,6 +666,7 @@
{
cb_log(4,stack->port,"set_chan_in_stack: %d\n",channel);
+ dump_chan_list(stack);
if (channel >=1 ) {
if (!stack->channels[channel-1])
stack->channels[channel-1] = 1;
@@ -1482,15 +1483,16 @@
cb_log(0, stack->port, "Any Channel Requested, but we have no more!!\n");
break;
}
- }
-
- if (bc->channel >0 && bc->channel<255) {
- int ret=set_chan_in_stack(stack ,bc->channel);
- if (event == EVENT_SETUP && ret<0){
- /* empty bchannel */
- bc->channel=0;
- bc->out_cause=44;
- misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
+ } else {
+
+ if (bc->channel >0 && bc->channel<255) {
+ int ret=set_chan_in_stack(stack ,bc->channel);
+ if (event == EVENT_SETUP && ret<0){
+ /* empty bchannel */
+ bc->channel=0;
+ bc->out_cause=44;
+ misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
+ }
}
}
@@ -1802,12 +1804,6 @@
cb_log(7, stack->port, " --> new_process: New L3Id: %x\n",hh->dinfo);
bc->l3_id=hh->dinfo;
- if (bc->channel<=0) {
- bc->channel=find_free_chan_in_stack(stack,0);
-
- if (bc->channel<=0)
- goto ERR_NO_CHANNEL;
- }
}
break;
@@ -2035,6 +2031,13 @@
switch (event) {
case EVENT_SETUP:
+ if (bc->channel<=0) {
+ bc->channel=find_free_chan_in_stack(stack,0);
+
+ if (bc->channel<=0)
+ goto ERR_NO_CHANNEL;
+ }
+
if (bc->channel>0 && bc->channel<255) {
if (stack->ptp) {
int ret=set_chan_in_stack(stack, bc->channel);
More information about the svn-commits
mailing list