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;
+       }
 }


Reply via email to