Author: toad
Date: 2008-03-19 15:19:25 +0000 (Wed, 19 Mar 2008)
New Revision: 18598

Modified:
   trunk/freenet/src/freenet/node/RequestSender.java
Log:
Accept FNPSSKDataFoundData and FNPSSKDataFoundHeaders in RequestSender.

Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java   2008-03-19 15:13:28 UTC 
(rev 18597)
+++ trunk/freenet/src/freenet/node/RequestSender.java   2008-03-19 15:19:25 UTC 
(rev 18598)
@@ -550,7 +550,9 @@
                 MessageFilter mfPubKey = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPSSKPubKey);
                MessageFilter mfRealDFCHK = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPCHKDataFound);
                MessageFilter mfRealDFSSK = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPSSKDataFound);
-                MessageFilter mf = 
mfDNF.or(mfRF.or(mfRouteNotFound.or(mfRejectedOverload.or(mfDF.or(mfPubKey.or(mfRealDFCHK.or(mfRealDFSSK)))))));
+               MessageFilter mfAltDFSSKHeaders = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPSSKDataFoundHeaders);
+               MessageFilter mfAltDFSSKData = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPSSKDataFoundData);
+                MessageFilter mf = 
mfDNF.or(mfRF.or(mfRouteNotFound.or(mfRejectedOverload.or(mfDF.or(mfPubKey.or(mfRealDFCHK.or(mfRealDFSSK.or(mfAltDFSSKHeaders.or(mfAltDFSSKData)))))))));


                try {
@@ -766,7 +768,7 @@

                if(msg.getSpec() == DMT.FNPSSKDataFound) {

-                       if(logMINOR) Logger.minor(this, "Got data on "+uid);
+                       if(logMINOR) Logger.minor(this, "Got data and headers 
on "+uid);

                        if(!(key instanceof NodeSSK)) {
                                Logger.error(this, "Got "+msg+" but expected a 
different key type from "+next);
@@ -785,6 +787,46 @@
                        continue;
                }

+               if(msg.getSpec() == DMT.FNPSSKDataFoundData) {
+                       
+                       if(logMINOR) Logger.minor(this, "Got data on "+uid);
+                       
+                       sskData = 
((ShortBuffer)msg.getObject(DMT.DATA)).getData();
+                       
+                       if(!(key instanceof NodeSSK)) {
+                               Logger.error(this, "Got "+msg+" but expected a 
different key type from "+next);
+                               node.failureTable.onFailed(key, next, htl, 
(int) (System.currentTimeMillis() - timeSentRequest));
+                               break;
+                       }
+                       
+                       if(pubKey != null && headers != null) {
+                               finishSSK(next);
+                               return;
+                       }
+                       continue;
+
+               }
+               
+               if(msg.getSpec() == DMT.FNPSSKDataFoundHeaders) {
+                       
+                       if(logMINOR) Logger.minor(this, "Got headers on "+uid);
+                       
+                       if(!(key instanceof NodeSSK)) {
+                               Logger.error(this, "Got "+msg+" but expected a 
different key type from "+next);
+                               node.failureTable.onFailed(key, next, htl, 
(int) (System.currentTimeMillis() - timeSentRequest));
+                               break;
+                       }
+                       
+                       headers = 
((ShortBuffer)msg.getObject(DMT.BLOCK_HEADERS)).getData();
+                       
+                       if(pubKey != null && sskData != null) {
+                               finishSSK(next);
+                               return;
+                       }
+                       continue;
+
+               }
+               
                        Logger.error(this, "Unexpected message: "+msg);

             }


Reply via email to