freetdm: core - changed behavior of ftdm_channel_close(). instead of returning if the channel isn't

opened, not it prints a warning and proceeds to close it.
         ftmod_r2 - added handler for FTDM_CHANNEL_STATE_RESET state
This commit is contained in:
Arnaldo Pereira
2010-12-23 18:15:37 -02:00
parent 656ecc1bc0
commit fa5ec0e553
2 changed files with 45 additions and 9 deletions

View File

@@ -2726,14 +2726,13 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_close(ftdm_channel_t **ftdmchan)
if (ftdm_test_flag(check, FTDM_CHANNEL_CONFIGURED)) {
ftdm_mutex_lock(check->mutex);
if (ftdm_test_flag(check, FTDM_CHANNEL_OPEN)) {
status = check->fio->close(check);
if (status == FTDM_SUCCESS) {
ftdm_channel_done(check);
*ftdmchan = NULL;
}
} else {
ftdm_log_chan_msg(check, FTDM_LOG_WARNING, "Called ftdm_channel_close but never ftdm_channel_open??\n");
if (!ftdm_test_flag(check, FTDM_CHANNEL_OPEN)) {
ftdm_log_chan_msg(check, FTDM_LOG_WARNING, "Channel not opened, proceeding anyway\n");
}
status = check->fio->close(check);
if (status == FTDM_SUCCESS) {
ftdm_channel_done(check);
*ftdmchan = NULL;
}
check->ring_count = 0;
ftdm_mutex_unlock(check->mutex);