Author: toad
Date: 2007-10-20 17:26:41 +0000 (Sat, 20 Oct 2007)
New Revision: 15455
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PeerNode.java
Log:
improve logging: this can happen on startup
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-10-20
17:26:23 UTC (rev 15454)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-10-20
17:26:41 UTC (rev 15455)
@@ -1363,6 +1363,13 @@
// R
int rLen = payload[count++] & 0xFF;
+ if(rLen > pn.getSigParamsByteLength()) {
+ String msg = "R too long - changed key? Can happen on
startup";
+ if(node.getUptime() < 15*60*1000)
+ Logger.minor(this, msg);
+ else Logger.error(this, msg);
+ return null;
+ }
byte[] rBytes = new byte[rLen];
System.arraycopy(payload, count, rBytes, 0, rLen);
count += rLen;
@@ -1370,6 +1377,13 @@
// S
int sLen = payload[count++] & 0xFF;
+ if(rLen > pn.getSigParamsByteLength()) {
+ String msg = "S too long - changed key? Can happen on
startup";
+ if(node.getUptime() < 15*60*1000)
+ Logger.minor(this, msg);
+ else Logger.error(this, msg);
+ return null;
+ }
byte[] sBytes = new byte[sLen];
System.arraycopy(payload, count, sBytes, 0, sLen);
count += sLen;
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2007-10-20 17:26:23 UTC (rev
15454)
+++ trunk/freenet/src/freenet/node/Node.java 2007-10-20 17:26:41 UTC (rev
15455)
@@ -2739,4 +2739,8 @@
return set;
}
+ public long getUptime() {
+ return System.currentTimeMillis() - usm.getStartedTime();
+ }
+
}
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2007-10-20 17:26:23 UTC
(rev 15454)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2007-10-20 17:26:41 UTC
(rev 15455)
@@ -2780,4 +2780,10 @@
protected void setJFKBuffer(byte[] bufferJFK) {
this.jfkBuffer = bufferJFK;
}
+
+ public int getSigParamsByteLength() {
+ int bitLen = this.peerCryptoGroup.getQ().bitLength();
+ int byteLen = bitLen / 8 + (bitLen % 8 != 0 ? 1 : 0);
+ return byteLen;
+ }
}