diff options
Diffstat (limited to 'src/server/net/discoverylistener.cpp')
-rw-r--r-- | src/server/net/discoverylistener.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/server/net/discoverylistener.cpp b/src/server/net/discoverylistener.cpp index e8d286d..e37c81e 100644 --- a/src/server/net/discoverylistener.cpp +++ b/src/server/net/discoverylistener.cpp @@ -79,14 +79,14 @@ static quint16 hash(const QHostAddress& host) } else { // Durr? len = 2; - data[0] = (quint16)qrand(); - data[1] = (quint16)qrand(); + data[0] = (quint8)qrand(); + data[1] = (quint8)qrand(); } quint16 result = 0; quint16 mod = seed1; for (quint8 i = 0; i < len; ++i) { - result = ((result << 1) + data[i]) ^ mod; // because of the shift this algo is not suitable for len(input) > 8 - mod += seed2 + data[i]; + result = (quint16)(((result << 1) + data[i]) ^ mod); // because of the shift this algo is not suitable for len(input) > 8 + mod = (quint16)(mod + seed2 + data[i]); } return result; } @@ -99,15 +99,16 @@ static quint16 hash(const QHostAddress& host) * @brief Decrease packet counters per source IP in our "spam protection" table. * @param event */ -void DiscoveryListener::timerEvent(QTimerEvent* event) +void DiscoveryListener::timerEvent(QTimerEvent* /* event */ ) { for (int i = 0; i < SPAM_MODERATE_AT_ONCE; ++i) { if (++_counterResetPos >= SD_PACKET_TABLE_SIZE) _counterResetPos = 0; - if (_packetCounter[_counterResetPos] > 10) - _packetCounter[_counterResetPos] -= 10; - else if (_packetCounter[_counterResetPos] != 0) + if (_packetCounter[_counterResetPos] > 10) { + _packetCounter[_counterResetPos] = (quint8)(_packetCounter[_counterResetPos] - 10); + } else if (_packetCounter[_counterResetPos] != 0) { _packetCounter[_counterResetPos] = 0; + } } } |