diff options
author | Thomas Eckert <teckert@audioscience.com> | 2013-11-18 10:42:23 -0500 |
---|---|---|
committer | Andrew Elder <aelder@audioscience.com> | 2013-12-09 08:31:24 -0500 |
commit | ec92128fe8f5a9a2df91c29f79b92edf9c8f5c32 (patch) | |
tree | 2048c4ae7b6c7661e3f3aed377279276dbe003c0 | |
parent | a3561b2c2e0551ca7e513df227dde7b48f4e0b8b (diff) | |
download | Open-AVB-ec92128fe8f5a9a2df91c29f79b92edf9c8f5c32.tar.gz |
gPTP - reject announce message if steps removed is too large
-rw-r--r-- | daemons/gptp/common/ptp_message.cpp | 5 |
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)
|