aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2009-08-01 01:34:45 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2009-08-01 01:34:45 +0000
commitc907295f9a8f33a682d9ce57136df4116b43d888 (patch)
tree0f848066fd29b8c9ccbe1ce9cb6c07f214f8fd89 /channels
parentd28dafe2a434e6d06c9f7ca53873ff7e8b12f975 (diff)
Merged revisions 209760-209761 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r209760 | kpfleming | 2009-07-31 20:03:07 -0500 (Fri, 31 Jul 2009) | 13 lines Merged revisions 209759 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r209759 | kpfleming | 2009-07-31 19:52:00 -0500 (Fri, 31 Jul 2009) | 7 lines Minor changes inspired by testing with latest GCC. The latest GCC (what will become 4.5.x) has a few new warnings, that in these cases found some either downright buggy code, or at least seriously poorly designed code that could be improved. ........ ................ r209761 | kpfleming | 2009-07-31 20:04:06 -0500 (Fri, 31 Jul 2009) | 1 line Revert accidental Makefile change. ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@209816 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/misdn/ie.c2
-rw-r--r--channels/misdn/isdn_lib.c15
2 files changed, 11 insertions, 6 deletions
diff --git a/channels/misdn/ie.c b/channels/misdn/ie.c
index dc9802845..cd88db92c 100644
--- a/channels/misdn/ie.c
+++ b/channels/misdn/ie.c
@@ -248,7 +248,7 @@ static void dec_ie_bearer(unsigned char *p, Q931_info_t *qi, int *coding, int *c
if (p[0] <= octet)
goto done;
- if (!p[octet++] & 0x80)
+ if (~p[octet++] & 0x80)
goto l2;
/* Wheee. V.110 speed information */
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index d85a4e4ac..88fde346f 100644
--- a/channels/misdn/isdn_lib.c
+++ b/channels/misdn/isdn_lib.c
@@ -1932,9 +1932,7 @@ handle_event_nt(void *dat, void *arg)
case CC_SETUP|INDICATION:
{
struct misdn_bchannel* bc=misdn_lib_get_free_bc(stack->port, 0, 1, 0);
- if (!bc)
- ERR_NO_CHANNEL:
- {
+ if (!bc) {
msg_t *dmsg;
cb_log(4, stack->port, "Patch from MEIDANIS:Sending RELEASE_COMPLETE %x (No free Chan for you..)\n", hh->dinfo);
dmsg = create_l3msg(CC_RELEASE_COMPLETE | REQUEST,MT_RELEASE_COMPLETE, hh->dinfo,sizeof(RELEASE_COMPLETE_t), 1);
@@ -2131,8 +2129,15 @@ handle_event_nt(void *dat, void *arg)
if (bc->channel<=0 || bc->channel==0xff)
bc->channel=0;
- if (find_free_chan_in_stack(stack,bc, bc->channel,0)<0)
- goto ERR_NO_CHANNEL;
+ if (find_free_chan_in_stack(stack,bc, bc->channel,0)<0) {
+ msg_t *dmsg;
+ cb_log(4, stack->port, "Patch from MEIDANIS:Sending RELEASE_COMPLETE %x (No free Chan for you..)\n", hh->dinfo);
+ dmsg = create_l3msg(CC_RELEASE_COMPLETE | REQUEST,MT_RELEASE_COMPLETE, hh->dinfo,sizeof(RELEASE_COMPLETE_t), 1);
+ pthread_mutex_lock(&stack->nstlock);
+ stack->nst.manager_l3(&stack->nst, dmsg);
+ free_msg(msg);
+ return 0;
+ }
break;
case EVENT_RELEASE:
case EVENT_RELEASE_COMPLETE: