Merged revisions 218401 via svnmerge from

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

........
  r218401 | jpeeler | 2009-09-14 16:47:11 -0500 (Mon, 14 Sep 2009) | 11 lines
  
  Fix handling of DAHDI_EVENT_REMOVED event to prevent crash in do_monitor.
  
  After talking to rmudgett about some of his recent iflist locking changes, it
  was determined that the only place that would destroy a channel without being
  explicitly to do so was in handle_init_event. The loop to walk the interface
  list has been modified to wait to destroy the channel until the dahdi_pvt of
  the channel to be destroyed is no longer needed.
  
  (closes issue #15378)
  Reported by: samy
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@218430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jeff Peeler
2009-09-14 22:38:25 +00:00
parent 6c39ebaa3e
commit 843a724373
3 changed files with 50 additions and 32 deletions

View File

@@ -78,6 +78,7 @@ enum analog_event {
ANALOG_EVENT_RINGBEGIN,
ANALOG_EVENT_PULSE_START,
ANALOG_EVENT_ERROR,
ANALOG_EVENT_REMOVED,
ANALOG_EVENT_NEONMWI_ACTIVE,
ANALOG_EVENT_NEONMWI_INACTIVE,
ANALOG_EVENT_DTMFCID,
@@ -328,7 +329,7 @@ struct ast_channel * analog_request(struct analog_pvt *p, int *callwait, const s
int analog_available(struct analog_pvt *p, int channelmatch, ast_group_t groupmatch, int *busy, int *channelmatched, int *groupmatched);
int analog_handle_init_event(struct analog_pvt *i, int event);
void *analog_handle_init_event(struct analog_pvt *i, int event);
int analog_config_complete(struct analog_pvt *p);