Author: toad
Date: 2007-03-27 22:56:54 +0000 (Tue, 27 Mar 2007)
New Revision: 12394
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/OutgoingPacketMangler.java
trunk/freenet/src/freenet/node/PeerNode.java
Log:
Negotiation type auto-negotiation by noderefs
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-03-27
22:51:24 UTC (rev 12393)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-03-27
22:56:54 UTC (rev 12394)
@@ -1560,7 +1560,7 @@
processOutgoingPreformatted(item.buf, 0, item.buf.length,
item.kt, item.packetNumber, item.callbacks, 0);
}
- public static int[] supportedNegTypes() {
+ public int[] supportedNegTypes() {
return new int[] { 0 };
}
}
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2007-03-27 22:51:24 UTC (rev
12393)
+++ trunk/freenet/src/freenet/node/Node.java 2007-03-27 22:56:54 UTC (rev
12394)
@@ -1610,7 +1610,7 @@
fs.putAppend("physical.udp",
ips[i].toString()); // Keep; important that node know all our IPs
}
// Negotiation types
- int[] negTypes = FNPPacketMangler.supportedNegTypes();
+ int[] negTypes = packetMangler.supportedNegTypes();
fs.put("auth.negTypes", negTypes);
fs.putSingle("identity", Base64.encode(myIdentity)); // FIXME
!forSetup after 11104 is mandatory
fs.put("location", lm.getLocation().getValue()); // FIXME maybe
!forSetup; see #943
Modified: trunk/freenet/src/freenet/node/OutgoingPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/OutgoingPacketMangler.java 2007-03-27
22:51:24 UTC (rev 12393)
+++ trunk/freenet/src/freenet/node/OutgoingPacketMangler.java 2007-03-27
22:56:54 UTC (rev 12394)
@@ -72,5 +72,10 @@
* Is a peer disconnected?
*/
public boolean isDisconnected(PeerContext context);
+
+ /**
+ * List of supported negotiation types in preference order (best last)
+ */
+ public int[] supportedNegTypes();
-}
\ No newline at end of file
+}
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2007-03-27 22:51:24 UTC
(rev 12393)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2007-03-27 22:56:54 UTC
(rev 12394)
@@ -3078,4 +3078,21 @@
return previousTracker.getThrottle();
return null;
}
+
+
+ public int bestNegType(OutgoingPacketMangler mangler) {
+ int[] hisNegTypes = negTypes;
+ int[] myNegTypes = mangler.supportedNegTypes();
+ int bestNegType = -1;
+ for(int i=0;i<myNegTypes.length;i++) {
+ int negType = myNegTypes[i];
+ for(int j=0;j<hisNegTypes.length;j++) {
+ if(hisNegTypes[j] == negType) {
+ bestNegType = negType;
+ break;
+ }
+ }
+ }
+ return bestNegType;
+ }
}