[freenet-cvs] r13504 - trunk/freenet/src/freenet/io/comm

toad at freenetproject.org toad at freenetproject.org
Sat Jun 9 18:51:08 UTC 2007


Author: toad
Date: 2007-06-09 18:51:07 +0000 (Sat, 09 Jun 2007)
New Revision: 13504

Modified:
   trunk/freenet/src/freenet/io/comm/DMT.java
Log:
Add update over mandatory messages

Modified: trunk/freenet/src/freenet/io/comm/DMT.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/DMT.java	2007-06-09 18:04:34 UTC (rev 13503)
+++ trunk/freenet/src/freenet/io/comm/DMT.java	2007-06-09 18:51:07 UTC (rev 13504)
@@ -97,7 +97,18 @@
 	public static final String PEER_LOCATIONS = "peerLocations";
 	public static final String PEER_UIDS = "peerUIDs";
 	public static final String BEST_LOCATIONS_NOT_VISITED = "bestLocationsNotVisited";
-
+	public static final String MAIN_JAR_KEY = "mainJarKey";
+	public static final String EXTRA_JAR_KEY = "extraJarKey";
+	public static final String REVOCATION_KEY = "revocationKey";
+	public static final String HAVE_REVOCATION_KEY = "haveRevocationKey";
+	public static final String MAIN_JAR_VERSION = "mainJarVersion";
+	public static final String EXTRA_JAR_VERSION = "extJarVersion";
+	public static final String REVOCATION_KEY_TIME_LAST_TRIED = "revocationKeyTimeLastTried";
+	public static final String REVOCATION_KEY_DNF_COUNT = "revocationKeyDNFCount";
+	public static final String REVOCATION_KEY_FILE_LENGTH = "revocationKeyFileLength";
+	public static final String MAIN_JAR_FILE_LENGTH = "mainJarFileLength";
+	public static final String EXTRA_JAR_FILE_LENGTH = "extraJarFileLength";
+	
 	//Diagnostic
 	public static final MessageType ping = new MessageType("ping") {{
 		addField(SEND_TIME, Long.class);
@@ -945,6 +956,110 @@
 		return msg;
 	}
 	
+	// Update over mandatory. Not strictly part of FNP. Only goes between nodes at the link
+	// level, and will be sent, and parsed, even if the node is out of date. Should be stable 
+	// long-term.
+	
+	// Sent on connect
+	public static final MessageType UOMAnnounce = new MessageType("UOMAnnounce") {{
+		addField(MAIN_JAR_KEY, String.class);
+		addField(EXTRA_JAR_KEY, String.class);
+		addField(REVOCATION_KEY, String.class);
+		addField(HAVE_REVOCATION_KEY, Boolean.class);
+		addField(MAIN_JAR_VERSION, Long.class);
+		addField(EXTRA_JAR_VERSION, Long.class);
+		// Last time (ms ago) we had 3 DNFs in a row on the revocation checker.
+		addField(REVOCATION_KEY_TIME_LAST_TRIED, Long.class);
+		// Number of DNFs so far this time.
+		addField(REVOCATION_KEY_DNF_COUNT, Integer.class);
+		// For convenience, may change
+		addField(REVOCATION_KEY_FILE_LENGTH, Long.class);
+		addField(MAIN_JAR_FILE_LENGTH, Long.class);
+		addField(EXTRA_JAR_FILE_LENGTH, Long.class);
+	}};
+
+	public static final Message createUOMAnnounce(String mainKey, String extraKey, String revocationKey,
+			boolean haveRevocation, long mainJarVersion, long extraJarVersion, long timeLastTriedRevocationFetch,
+			int revocationDNFCount, long revocationKeyLength, long mainJarLength, long extraJarLength) {
+		Message msg = new Message(UOMAnnounce);
+		
+		msg.set(MAIN_JAR_KEY, mainKey);
+		msg.set(EXTRA_JAR_KEY, extraKey);
+		msg.set(REVOCATION_KEY, revocationKey);
+		msg.set(HAVE_REVOCATION_KEY, haveRevocation);
+		msg.set(MAIN_JAR_VERSION, mainJarVersion);
+		msg.set(EXTRA_JAR_VERSION, extraJarVersion);
+		msg.set(REVOCATION_KEY_TIME_LAST_TRIED, timeLastTriedRevocationFetch);
+		msg.set(REVOCATION_KEY_DNF_COUNT, revocationDNFCount);
+		msg.set(REVOCATION_KEY_FILE_LENGTH, revocationKeyLength);
+		msg.set(MAIN_JAR_FILE_LENGTH, mainJarLength);
+		msg.set(EXTRA_JAR_FILE_LENGTH, extraJarLength);
+		
+		return msg;
+	}
+	
+	public static final MessageType UOMRequestRevocation = new MessageType("UOMRequestRevocation") {{
+		
+	}};
+	
+	public static final Message createUOMRequestRevocation() {
+		return new Message(UOMRequestRevocation);
+	}
+	
+	public static final MessageType UOMRequestMain = new MessageType("UOMRequestMain") {{
+		
+	}};
+	
+	public static final Message createUOMRequestMain() {
+		return new Message(UOMRequestMain);
+	}
+	
+	public static final MessageType UOMRequestExtra = new MessageType("UOMRequestExtra") {{
+		
+	}};
+	
+	public static final Message createUOMRequestExtra() {
+		return new Message(UOMRequestExtra);
+	}
+	
+	public static final MessageType UOMSendingRevocation = new MessageType("UOMSendingRevocation") {{
+		addField(UID, Long.class);
+		// Probably excessive, but lengths are always long's, and wasting a few bytes here
+		// doesn't matter in the least, as it's very rarely called.
+		addField(FILE_LENGTH, Long.class);
+	}};
+	
+	public static final Message createUOMSendingRevocation(long uid, long length) {
+		Message msg = new Message(UOMSendingRevocation);
+		msg.set(UID, uid);
+		msg.set(FILE_LENGTH, length);
+		return msg;
+	}
+	
+	public static final MessageType UOMSendingMain = new MessageType("UOMSendingMain") {{
+		addField(UID, Long.class);
+		addField(FILE_LENGTH, Long.class);
+	}};
+	
+	public static final Message createUOMSendingMain(long uid, long length) {
+		Message msg = new Message(UOMSendingMain);
+		msg.set(UID, uid);
+		msg.set(FILE_LENGTH, length);
+		return msg;
+	}
+	
+	public static final MessageType UOMSendingExtra = new MessageType("UOMSendingExtra") {{
+		addField(UID, Long.class);
+		addField(FILE_LENGTH, Long.class);
+	}};
+	
+	public static final Message createUOMSendingExtra(long uid, long length) {
+		Message msg = new Message(UOMSendingExtra);
+		msg.set(UID, uid);
+		msg.set(FILE_LENGTH, length);
+		return msg;
+	}
+	
 	// Secondary messages (debug messages attached to primary messages)
 	
 	public static final MessageType FNPSwapNodeUIDs = new MessageType("FNPSwapNodeUIDs") {{




More information about the cvs mailing list