diff options
author | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-08-15 22:13:59 +0000 |
---|---|---|
committer | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-08-15 22:13:59 +0000 |
commit | af47bf96224417154ac9d0a1b57c456eb91176d9 (patch) | |
tree | 244ea8fd2d185e9b30deb279bd1f33024f118de3 | |
parent | 807eb5c644548c0938db7c4023f460183c9146d5 (diff) |
Merged revisions 2847 via svnmerge from
https://origsvn.digium.com/svn/zaptel/branches/1.4
........
r2847 | mattf | 2007-08-15 17:12:58 -0500 (Wed, 15 Aug 2007) | 1 line
Fix for 8277. Inproper alarm handling on dynamic spans
........
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@2848 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r-- | ztdynamic.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/ztdynamic.c b/ztdynamic.c index f202630..8d95b0a 100644 --- a/ztdynamic.c +++ b/ztdynamic.c @@ -105,7 +105,6 @@ static struct zt_dynamic { char addr[40]; char dname[20]; int err; - int alarm; int usecount; int dead; long rxjif; @@ -149,12 +148,13 @@ static void checkmaster(void) while(z) { if (z->timing) { z->master = 0; - newhasmaster = 1; - if (!z->alarm && (z->timing < best) && !z->dead) { + if (!(z->span.alarms & ZT_ALARM_RED) && + (z->timing < best) && !z->dead) { /* If not in alarm and they're a better timing source, use them */ master = z; best = z->timing; + newhasmaster = 1; } } z = z->next; @@ -184,7 +184,7 @@ static void ztd_sendmessage(struct zt_dynamic *z) /* Byte 1: Flags */ *buf = 0; - if (z->alarm & ZT_ALARM_RED) + if (z->span.alarms & ZT_ALARM_RED) *buf |= ZTD_FLAG_YELLOW_ALARM; *buf |= ZTD_FLAG_SIGBITS_PRESENT; buf++; msglen++; @@ -402,6 +402,7 @@ void zt_dynamic_receive(struct zt_span *span, unsigned char *msg, int msglen) if (newalarm != span->alarms) { span->alarms = newalarm; zt_alarm_notify(span); + checkmaster(); } /* Keep track of last received packet */ |