Merged revisions 221769 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r221769 | rmudgett | 2009-10-01 18:18:28 -0500 (Thu, 01 Oct 2009) | 26 lines
  
  Occasionally losing use of B channels in chan_misdn.
  
  I have not been able to reproduce the problem of losing channels.
  However, I have seen in the code a reentrancy problem that might give
  these symptoms.
  
  The reentrancy patch does several things:
  1) Guards B channel and B channel structure allocation.
  2) Makes the B channel structure find routines more precise in locating records.
  3) Never leave a B channel allocated if we received cause 44.
  
  The last item may cause temporary outgoing call problems, but they should
  clear when the line becomes idle.
  
  (closes issue #15490)
  Reported by: slutec18
  Patches:
        issue15490_channel_alloc_reentrancy.patch uploaded by rmudgett (license 664)
  Tested by: rmudgett, slutec18
  
  (closes issue #15458)
  Reported by: FabienToune
  Patches:
        issue15458_channel_alloc_reentrancy.patch uploaded by rmudgett (license 664)
  Tested by: FabienToune, rmudgett, slutec18
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@221844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2009-10-02 01:09:31 +00:00
parent bd7ca4b764
commit 3b83d2b414
2 changed files with 61 additions and 39 deletions

View File

@@ -67,6 +67,9 @@ struct misdn_stack {
manager_t mgr;
pthread_mutex_t nstlock;
/*! \brief Stack struct critical section lock. */
pthread_mutex_t st_lock;
/*! \brief D Channel mISDN driver stack ID (Parent stack ID) */
int d_stid;
@@ -134,7 +137,7 @@ struct misdn_stack {
*/
char channels[MAX_BCHANS + 1 + MISDN_MAX_REGISTER_LINKS];
/*! \brief List of holded channels */
/*! \brief List of held channels */
struct misdn_bchannel *holding;
/*! \brief Next stack in the list of stacks */