change logic to declinatio mortuus obfirmo
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@698 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
parent
dd8d70b0a8
commit
d95fb86db5
|
@ -712,6 +712,16 @@ static __inline__ void zap_set_flag_all(zap_span_t *span, uint32_t flag)
|
||||||
zap_mutex_unlock(span->mutex);
|
zap_mutex_unlock(span->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static __inline__ void zap_clear_flag_all(zap_span_t *span, uint32_t flag)
|
||||||
|
{
|
||||||
|
uint32_t j;
|
||||||
|
zap_mutex_lock(span->mutex);
|
||||||
|
for(j = 1; j <= span->chan_count; j++) {
|
||||||
|
zap_clear_flag_locked((span->channels[j]), flag);
|
||||||
|
}
|
||||||
|
zap_mutex_unlock(span->mutex);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* For Emacs:
|
/* For Emacs:
|
||||||
|
|
|
@ -1387,16 +1387,14 @@ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *even
|
||||||
zap_set_state_locked(event->channel, ZAP_CHANNEL_STATE_RESTART);
|
zap_set_state_locked(event->channel, ZAP_CHANNEL_STATE_RESTART);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event->channel->type == ZAP_CHAN_TYPE_DQ921) {
|
|
||||||
zap_log(ZAP_LOG_WARNING, "Stopping ISDN for span %s\n", span->name);
|
|
||||||
span->stop(span);
|
|
||||||
}
|
|
||||||
|
|
||||||
zap_set_flag(event->channel, ZAP_CHANNEL_SUSPENDED);
|
zap_set_flag(event->channel, ZAP_CHANNEL_SUSPENDED);
|
||||||
|
|
||||||
|
|
||||||
zap_channel_get_alarms(event->channel);
|
zap_channel_get_alarms(event->channel);
|
||||||
isdn_data->sig_cb(&sig);
|
isdn_data->sig_cb(&sig);
|
||||||
zap_log(ZAP_LOG_WARNING, "channel %d:%d (%d:%d) has alarms [%s]\n",
|
zap_log(ZAP_LOG_WARNING, "channel %d:%d (%d:%d) has alarms! [%s]\n",
|
||||||
event->channel->span_id, event->channel->chan_id,
|
event->channel->span_id, event->channel->chan_id,
|
||||||
event->channel->physical_span_id, event->channel->physical_chan_id,
|
event->channel->physical_span_id, event->channel->physical_chan_id,
|
||||||
event->channel->last_error);
|
event->channel->last_error);
|
||||||
|
@ -1404,11 +1402,9 @@ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *even
|
||||||
break;
|
break;
|
||||||
case ZAP_OOB_ALARM_CLEAR:
|
case ZAP_OOB_ALARM_CLEAR:
|
||||||
{
|
{
|
||||||
|
|
||||||
if (event->channel->type == ZAP_CHAN_TYPE_DQ921) {
|
zap_log(ZAP_LOG_WARNING, "channel %d:%d (%d:%d) alarms Cleared!\n", event->channel->span_id, event->channel->chan_id,
|
||||||
zap_log(ZAP_LOG_WARNING, "Resuming ISDN for span %s\n", span->name);
|
event->channel->physical_span_id, event->channel->physical_chan_id);
|
||||||
span->start(span);
|
|
||||||
}
|
|
||||||
|
|
||||||
sig.event_id = ZAP_OOB_ALARM_CLEAR;
|
sig.event_id = ZAP_OOB_ALARM_CLEAR;
|
||||||
zap_clear_flag(event->channel, ZAP_CHANNEL_SUSPENDED);
|
zap_clear_flag(event->channel, ZAP_CHANNEL_SUSPENDED);
|
||||||
|
@ -1705,6 +1701,10 @@ static void *zap_isdn_run(zap_thread_t *me, void *obj)
|
||||||
{
|
{
|
||||||
errs = 0;
|
errs = 0;
|
||||||
if (flags & ZAP_READ) {
|
if (flags & ZAP_READ) {
|
||||||
|
|
||||||
|
if (zap_test_flag(isdn_data->dchan, ZAP_CHANNEL_SUSPENDED)) {
|
||||||
|
zap_clear_flag_all(span, ZAP_CHANNEL_SUSPENDED);
|
||||||
|
}
|
||||||
len = sizeof(frame);
|
len = sizeof(frame);
|
||||||
if (zap_channel_read(isdn_data->dchan, frame, &len) == ZAP_SUCCESS) {
|
if (zap_channel_read(isdn_data->dchan, frame, &len) == ZAP_SUCCESS) {
|
||||||
#ifdef IODEBUG
|
#ifdef IODEBUG
|
||||||
|
|
Loading…
Reference in New Issue