From 455dc027eebc33c2b1d1e6728169e46eac919cc8 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Thu, 25 Aug 2016 03:34:06 -0700 Subject: [PATCH] pool: alert. --- lib/net/pool.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/net/pool.js b/lib/net/pool.js index 3548f18d..cb0beb2e 100644 --- a/lib/net/pool.js +++ b/lib/net/pool.js @@ -1221,16 +1221,31 @@ Pool.prototype._handleAlert = function _handleAlert(alert, peer) { return; } - if (now >= alert.relayUntil || now >= alert.expiration) { - this.logger.warning('Peer sent an expired alert packet (%s).', peer.hostname); + if (now >= alert.expiration) { + this.logger.warning( + 'Peer sent an expired alert packet (%s).', + peer.hostname); this.logger.debug(alert); return; } + if (alert.id === 0x7fffffff) { + if (!(alert.expiration === 0x7fffffff + && alert.cancel === 0x7fffffff - 1 + && alert.minVer === 0 + && alert.maxVer === 0x7fffffff + && alert.subVers.length === 0 + && alert.priority === 0x7fffffff + && alert.statusBar === 'URGENT: Alert key compromised, upgrade required')) { + return; + } + } + this.logger.warning('Received alert from peer (%s).', peer.hostname); this.logger.warning(alert); - this.sendAlert(alert); + if (now < alert.relayUntil) + this.sendAlert(alert); this.emit('alert', alert, peer); };