summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Eckert <teckert@audioscience.com>2013-11-18 10:42:23 -0500
committerAndrew Elder <aelder@audioscience.com>2013-12-09 08:31:24 -0500
commitec92128fe8f5a9a2df91c29f79b92edf9c8f5c32 (patch)
tree2048c4ae7b6c7661e3f3aed377279276dbe003c0
parenta3561b2c2e0551ca7e513df227dde7b48f4e0b8b (diff)
downloadOpen-AVB-ec92128fe8f5a9a2df91c29f79b92edf9c8f5c32.tar.gz
gPTP - reject announce message if steps removed is too large
-rw-r--r--daemons/gptp/common/ptp_message.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/daemons/gptp/common/ptp_message.cpp b/daemons/gptp/common/ptp_message.cpp
index afc00259..eb6d4b77 100644
--- a/daemons/gptp/common/ptp_message.cpp
+++ b/daemons/gptp/common/ptp_message.cpp
@@ -748,9 +748,13 @@ void PTPMessageAnnounce::processMessage(IEEE1588Port * port)
port->getClock()->deleteEventTimer(port,
ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES);
+ if( stepsRemoved >= 255 ) goto bail;
// Add message to the list
port->addQualifiedAnnounce(this);
+ port->getClock()->addEventTimer(port, STATE_CHANGE_EVENT, 16000000);
+
+bail:
port->getClock()->addEventTimer(port, ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES,
(unsigned long long)
(ANNOUNCE_RECEIPT_TIMEOUT_MULTIPLIER *
@@ -758,7 +762,6 @@ void PTPMessageAnnounce::processMessage(IEEE1588Port * port)
((double)2,
port->getAnnounceInterval()) *
1000000000.0)));
- port->getClock()->addEventTimer(port, STATE_CHANGE_EVENT, 16000000);
}
void PTPMessageSync::processMessage(IEEE1588Port * port)