diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-01 01:13:03 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-01 01:13:03 +0000 |
commit | f20ef313d021be53e18c2adf115226abfeae3ebb (patch) | |
tree | fa512b8c4fbb7e6982abc15fef636b23b96bd281 /channels/misdn | |
parent | 067a66abdd994649f83cfb06f353bb5b3f0d698d (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.0@209762 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/misdn')
-rw-r--r-- | channels/misdn/ie.c | 2 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.c | 15 |
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 63aaa211a..65ef9f918 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -1924,9 +1924,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); @@ -2123,8 +2121,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: |