Author: j16sdiz
Date: 2009-04-21 09:17:51 +0000 (Tue, 21 Apr 2009)
New Revision: 27143

Modified:
   trunk/freenet/src/freenet/io/comm/DMT.java
   trunk/freenet/src/freenet/io/comm/MessageFilter.java
   trunk/freenet/src/freenet/node/RequestSender.java
   trunk/freenet/src/freenet/node/SSKInsertSender.java
Log:
Remove DMT.FNPSSKDataFound

Was deprecated with FNPSSKDataFoundHeaders/FNPSSKDataFoundData since r18601.

Modified: trunk/freenet/src/freenet/io/comm/DMT.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/DMT.java  2009-04-21 09:17:25 UTC (rev 
27142)
+++ trunk/freenet/src/freenet/io/comm/DMT.java  2009-04-21 09:17:51 UTC (rev 
27143)
@@ -675,20 +675,6 @@
                return msg;
        }
        
-       public static final MessageType FNPSSKDataFound = new 
MessageType("FNPSSKDataFound", PRIORITY_LOW) {{
-               addField(UID, Long.class);
-               addField(BLOCK_HEADERS, ShortBuffer.class);
-               addField(DATA, ShortBuffer.class);
-       }};
-       
-       public static Message createFNPSSKDataFound(long uid, byte[] headers, 
byte[] data) {
-               Message msg = new Message(FNPSSKDataFound);
-               msg.set(UID, uid);
-               msg.set(BLOCK_HEADERS, new ShortBuffer(headers));
-               msg.set(DATA, new ShortBuffer(data));
-               return msg;
-       }
-       
        public static final MessageType FNPSSKDataFoundHeaders = new 
MessageType("FNPSSKDataFoundHeaders", PRIORITY_LOW) {{
                addField(UID, Long.class);
                addField(BLOCK_HEADERS, ShortBuffer.class);

Modified: trunk/freenet/src/freenet/io/comm/MessageFilter.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/MessageFilter.java        2009-04-21 
09:17:25 UTC (rev 27142)
+++ trunk/freenet/src/freenet/io/comm/MessageFilter.java        2009-04-21 
09:17:51 UTC (rev 27143)
@@ -51,14 +51,25 @@
     private long _oldBootID;
     private AsyncMessageFilterCallback _callback;
     private boolean _setTimeout = false;
+    private final boolean nothing; 
 
     private MessageFilter() {
         _timeoutFromWait = true;
+        nothing = true;
     }
-
+    
+    private MessageFilter(boolean noop) {
+        _timeoutFromWait = true;
+        this.nothing = noop; 
+    }
+    
     public static MessageFilter create() {
         return new MessageFilter();
     }
+    
+    public static MessageFilter nothing() {
+        return new MessageFilter(true);
+    }
 
     void onStartWaiting(boolean waitFor) {
        synchronized(this) {
@@ -179,6 +190,8 @@
                if ((_or != null) && (_or.match(m))) {
                        return true;
                }
+               if (nothing)
+                       return false;
                if ((_type != null) && (!_type.equals(m.getSpec()))) {
                        return false;
                }

Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java   2009-04-21 09:17:25 UTC 
(rev 27142)
+++ trunk/freenet/src/freenet/node/RequestSender.java   2009-04-21 09:17:51 UTC 
(rev 27143)
@@ -319,11 +319,10 @@
                        }
                } else {
                        // Data, possibly followed by pubkey
-                       MessageFilter mfDF = 
MessageFilter.create().setSource(pn).setField(DMT.UID, 
uid).setTimeout(GET_OFFER_TIMEOUT).setType(DMT.FNPSSKDataFound);
                        MessageFilter mfAltDF = 
MessageFilter.create().setSource(pn).setField(DMT.UID, 
uid).setTimeout(GET_OFFER_TIMEOUT).setType(DMT.FNPSSKDataFoundHeaders);
                        Message reply;
                                try {
-                                       reply = 
node.usm.waitFor(mfDF.or(mfRO.or(mfGetInvalid.or(mfAltDF))), this);
+                                       reply = 
node.usm.waitFor(mfRO.or(mfGetInvalid.or(mfAltDF)), this);
                                } catch (DisconnectedException e) {
                                        if(logMINOR)
                                                Logger.minor(this, 
"Disconnected: "+pn+" getting offer for "+key);
@@ -345,50 +344,6 @@
                                        Logger.minor(this, "Node "+pn+" 
rejected FNPGetOfferedKey as invalid with reason "+reply.getShort(DMT.REASON));
                                offers.deleteLastOffer();
                                continue;
-                       } else if(reply.getSpec() == DMT.FNPSSKDataFound) {
-                               // Receive the data
-                               headers = ((ShortBuffer) 
reply.getObject(DMT.BLOCK_HEADERS)).getData();
-                               sskData = ((ShortBuffer) 
reply.getObject(DMT.DATA)).getData();
-                               if(pubKey == null) {
-                                       MessageFilter mfPK = 
MessageFilter.create().setSource(pn).setField(DMT.UID, 
uid).setTimeout(GET_OFFER_TIMEOUT).setType(DMT.FNPSSKPubKey);
-                                       Message pk;
-                                               try {
-                                                       pk = 
node.usm.waitFor(mfPK, this);
-                                               } catch (DisconnectedException 
e) {
-                                                       if(logMINOR)
-                                                               
Logger.minor(this, "Disconnected: "+pn+" getting pubkey for offer for "+key);
-                                                       
offers.deleteLastOffer();
-                                                       continue;
-                                               }
-                                       if(pk == null) {
-                                               Logger.error(this, "Got data 
but not pubkey from "+pn+" for offer for "+key);
-                                               offers.deleteLastOffer();
-                                               continue;
-                                       }
-                                       try {
-                                                       pubKey = 
DSAPublicKey.create(((ShortBuffer)pk.getObject(DMT.PUBKEY_AS_BYTES)).getData());
-                                               } catch (CryptFormatException 
e) {
-                                                       Logger.error(this, 
"Bogus pubkey from "+pn+" for offer for "+key+" : "+e, e);
-                                               offers.deleteLastOffer();
-                                                       continue;
-                                               }
-                               }
-                               
-                               try {
-                                               
((NodeSSK)key).setPubKey(pubKey);
-                                       } catch (SSKVerifyException e) {
-                                               Logger.error(this, "Bogus SSK 
data from "+pn+" for offer for "+key+" : "+e, e);
-                                       offers.deleteLastOffer();
-                                               continue;
-                                       }
-                               
-                               if(finishSSKFromGetOffer(pn)) {
-                                       if(logMINOR) Logger.minor(this, 
"Successfully fetched SSK from offer from "+pn+" for "+key);
-                                       return;
-                               } else {
-                               offers.deleteLastOffer();
-                                       continue;
-                               }
                        } else if(reply.getSpec() == 
DMT.FNPSSKDataFoundHeaders) {
                                headers = ((ShortBuffer) 
reply.getObject(DMT.BLOCK_HEADERS)).getData();
                                // Wait for the data
@@ -631,10 +586,9 @@
                 MessageFilter mfRejectedOverload = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPRejectedOverload);
                 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 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)))))))));
+                MessageFilter mf = 
mfDNF.or(mfRF.or(mfRouteNotFound.or(mfRejectedOverload.or(mfDF.or(mfPubKey.or(mfRealDFCHK.or(mfAltDFSSKHeaders.or(mfAltDFSSKData))))))));
 
                 
                try {
@@ -922,28 +876,7 @@
                                }
                                continue;
                }
-               
-               if(msg.getSpec() == DMT.FNPSSKDataFound) {
-
-                       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);
-                               node.failureTable.onFailed(key, next, htl, 
(int) (System.currentTimeMillis() - timeSentRequest));
-                               break;
-                       }
-                       
-                       headers = 
((ShortBuffer)msg.getObject(DMT.BLOCK_HEADERS)).getData();
-                       
-                       sskData = 
((ShortBuffer)msg.getObject(DMT.DATA)).getData();
-                       
-                       if(pubKey != null) {
-                               finishSSK(next);
-                               return;
-                       }
-                       continue;
-               }
-               
+                               
                if(msg.getSpec() == DMT.FNPSSKDataFoundData) {
                        
                        if(logMINOR) Logger.minor(this, "Got data on "+uid);
@@ -1049,7 +982,7 @@
        if(key instanceof NodeCHK)
                return MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPCHKDataFound);
        else if(key instanceof NodeSSK) {
-               return MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(FETCH_TIMEOUT).setType(DMT.FNPSSKDataFound);
+               return MessageFilter.nothing();
        }
        else throw new IllegalStateException("Unknown keytype: "+key);
        }

Modified: trunk/freenet/src/freenet/node/SSKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertSender.java 2009-04-21 09:17:25 UTC 
(rev 27142)
+++ trunk/freenet/src/freenet/node/SSKInsertSender.java 2009-04-21 09:17:51 UTC 
(rev 27143)
@@ -310,9 +310,8 @@
             mfRejectedOverload.clearOr();
             MessageFilter mfRouteNotFound = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(SEARCH_TIMEOUT).setType(DMT.FNPRouteNotFound);
             MessageFilter mfDataInsertRejected = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(SEARCH_TIMEOUT).setType(DMT.FNPDataInsertRejected);
-            MessageFilter mfDataFound = 
MessageFilter.create().setSource(next).setField(DMT.UID, 
uid).setTimeout(SEARCH_TIMEOUT).setType(DMT.FNPSSKDataFound);
             
-            mf = 
mfRouteNotFound.or(mfInsertReply.or(mfRejectedOverload.or(mfDataFound.or(mfDataInsertRejected))));
+            mf = 
mfRouteNotFound.or(mfInsertReply.or(mfRejectedOverload.or(mfDataInsertRejected)));
             
             while (true) {
                                try {
@@ -374,60 +373,6 @@
                                        break; // What else can we do?
                                }
                                
-                               if (msg.getSpec() == DMT.FNPSSKDataFound) {
-                                       /**
-                                        * Data was already on node, and was 
NOT equal to what we sent. COLLISION!
-                                        * 
-                                        * We can either accept the old data or 
the new data.
-                                        * OLD DATA:
-                                        * - KSK-based stuff is usable. Well, 
somewhat; a node could spoof KSKs on
-                                        * receiving an insert, (if it knows 
them in advance), but it cannot just 
-                                        * start inserts to overwrite old SSKs.
-                                        * - You cannot "update" an SSK.
-                                        * NEW DATA:
-                                        * - KSK-based stuff not usable. (Some 
people think this is a good idea!).
-                                        * - Illusion of updatability. (VERY 
BAD IMHO, because it's not really
-                                        * updatable... FIXME implement TUKs; 
would determine latest version based
-                                        * on version number, and propagate on 
request with a certain probability or
-                                        * according to time. However there are 
good arguments to do updating at a
-                                        * higher level (e.g. key bottleneck 
argument), and TUKs should probably be 
-                                        * distinct from SSKs.
-                                        * 
-                                        * For now, accept the "old" i.e. 
preexisting data.
-                                        */
-                                       Logger.normal(this, "Got collision on 
"+myKey+" ("+uid+") sending to "+next.getPeer());
-                                       
-                                       // FNPSSKDataFound == FNPInsertRequest
-                                       
-                                       // Lets assume the pubkeys are the same 
(otherwise SHA-256 has been broken
-                                       // and we're completely screwed anyway).
-                                       
-                                       byte[] newData = ((ShortBuffer) 
msg.getObject(DMT.DATA)).getData();
-                                       byte[] newHeaders = ((ShortBuffer) 
msg.getObject(DMT.BLOCK_HEADERS)).getData();
-                                       if(Arrays.equals(newData, data) && 
Arrays.equals(newHeaders, headers)) {
-                                               Logger.error(this, "Node sent 
us collision but data and headers are identical!! from "+next+" on "+uid);
-                                               // Try next node, this one is 
evil!
-                                               break;
-                                       }
-                                       
-                                       try {
-                                               block = new SSKBlock(newData, 
newHeaders, myKey, false);
-                                       } catch (SSKVerifyException e) {
-                                               Logger.error(this, "Node sent 
us collision but got corrupt SSK!! from "+next+" on "+uid);
-                                               // Try next node, no way to 
tell this one about its mistake as it's stopped listening. FIXME should it?
-                                               break;
-                                       }
-                                       
-                                       data = newData;
-                                       headers = newHeaders;
-                                       synchronized(this) {
-                                               hasRecentlyCollided = true;
-                                               hasCollided = true;
-                                               notifyAll();
-                                       }
-                                       continue;
-                               }
-                               
                                if(msg.getSpec() == DMT.FNPSSKDataFoundHeaders) 
{
                                        /**
                                         * Data was already on node, and was 
NOT equal to what we sent. COLLISION!

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to