Author: kryptos
Date: 2007-08-27 23:44:24 +0000 (Mon, 27 Aug 2007)
New Revision: 14895
Modified:
branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
Log:
Error in JFK message caching corrected thanks to nextgens
Modified: branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
===================================================================
--- branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java 2007-08-27
23:37:38 UTC (rev 14894)
+++ branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java 2007-08-27
23:44:24 UTC (rev 14895)
@@ -672,15 +672,21 @@
* This would result in increased processing on the Responder
side->CPU exhaustion attacks
*/
byte[] cacheKey=processMessageAuth(pn);
+ Object result;
//All recent messages 3 and 4 are cached
if(phase==2){
- message3Cache.put(cacheKey,data);
- //if duplicate message3; send corresponding message4
-
if(data.toString().equalsIgnoreCase(message3Cache.get(cacheKey).toString())){
- sendMessage4Packet(1,2,3,data,pn,replyTo);
- return true;
-
+ synchronized(message3Cache) {
+ result = message3Cache.get(cacheKey);
}
+ if(result != null) {
+ synchronized(message3Cache) {
+ message3Cache.put(cacheKey,data);
+ }
+ // We don't want to keep the lock while sending
+ sendMessage4Packet(1,2,3,data,pn,replyTo);
+ return true;
+ }
+
}
else if(phase==3){
message4Cache.put(cacheKey,data.toString());