From af47bf96224417154ac9d0a1b57c456eb91176d9 Mon Sep 17 00:00:00 2001 From: mattf Date: Wed, 15 Aug 2007 22:13:59 +0000 Subject: 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 --- ztdynamic.c | 9 +++++---- 1 file 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 */ -- cgit v1.2.3