Force processing of link flags if same flag is set and cleared.
Force a link cycle on maintenance test failure even if the link was inactive. git-svn-id: http://yate.null.ro/svn/yate/trunk@3720 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
77d0b1e608
commit
95f7c9de99
|
@ -230,7 +230,7 @@ bool SS7Layer2::inhibit(int setFlags, int clrFlags)
|
|||
{
|
||||
int old = m_inhibited;
|
||||
m_inhibited = (m_inhibited | setFlags) & ~clrFlags;
|
||||
if (old != m_inhibited) {
|
||||
if (old != m_inhibited || (setFlags & clrFlags)) {
|
||||
bool cycle = (setFlags & Inactive) && operational();
|
||||
if (cycle)
|
||||
control(Pause);
|
||||
|
|
|
@ -1143,12 +1143,12 @@ void SS7MTP3::timerTick(const Time& when)
|
|||
l2->sls(),l2->toString().c_str(),this);
|
||||
if (m_checkT1)
|
||||
check = m_checkT1;
|
||||
int inhFlags = SS7Layer2::Unchecked;
|
||||
int cycle = 0;
|
||||
if (m_forcealign) {
|
||||
check = 0;
|
||||
inhFlags |= SS7Layer2::Inactive;
|
||||
cycle = SS7Layer2::Inactive;
|
||||
l2->m_checkFail = 0;
|
||||
}
|
||||
l2->inhibit(inhFlags);
|
||||
l2->inhibit(SS7Layer2::Unchecked | cycle,cycle);
|
||||
}
|
||||
}
|
||||
else if (m_checkT1) {
|
||||
|
@ -1218,7 +1218,7 @@ void SS7MTP3::linkChecked(int sls, bool remote)
|
|||
if (l2->inhibited(SS7Layer2::Unchecked)) {
|
||||
// trigger a slightly delayed SLTM check
|
||||
u_int64_t t = Time::now() + 100000;
|
||||
if ((l2->m_checkTime > t) || (t - 4000000 > l2->m_checkTime))
|
||||
if ((l2->m_checkTime > t + m_checkT1) || (t - 4000000 > l2->m_checkTime))
|
||||
l2->m_checkTime = t;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue