Author: nextgens
Date: 2008-07-22 14:50:26 +0000 (Tue, 22 Jul 2008)
New Revision: 21304
Added:
trunk/freenet/src/freenet/node/SeedServerTestPeerNode.java
Modified:
trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
trunk/freenet/src/freenet/node/Announcer.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeStarter.java
trunk/freenet/src/freenet/node/OpennetManager.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/SeedServerPeerNode.java
trunk/freenet/src/freenet/node/simulator/RealNodeBusyNetworkTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
trunk/freenet/src/freenet/node/simulator/SeednodePingTest.java
Log:
commit an updated version of the seednode-flooder^tester to trunk.
Introduce a new config setting: node.opennet.connectToSeednodes to disable the
announcer globally
Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2008-07-22
13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2008-07-22
14:50:26 UTC (rev 21304)
@@ -712,6 +712,8 @@
Node.tooSmallMTU=Too small MTU
Node.tooSmallMTULong=Your connection's MTU appears to be ${mtu} bytes. Freenet
will not function well with an MTU of less than ${minMTU} bytes: connections
will be unreliable and possibly slow. Please fix the problem if possible.
Node.tooSmallMTUShort=Connection problems: Your connection's MTU is too short
for Freenet to work well. Expect problems.
+Node.withAnnouncement=Allow the node to bootstrap itself using seednodes?
+Node.withAnnouncementLong=Allow the node to bootstrap itself using seednodes?
While this has to be the default behaviour, it's insecure by design.
NodeClientCore.couldNotFindOrCreateDir=Could not find or create directory
NodeClientCore.downloadAllowedDirs=Directories downloading is allowed to
NodeClientCore.downloadAllowedDirsLong=Semicolon separated list of directories
to which downloads are allowed. "downloads" means downloadsDir, empty means no
downloads to disk allowed, "all" means downloads allowed from anywhere.
WARNING! If this is set to "all" any user can download any file to anywhere on
your computer!
Modified: trunk/freenet/src/freenet/node/Announcer.java
===================================================================
--- trunk/freenet/src/freenet/node/Announcer.java 2008-07-22 13:43:24 UTC
(rev 21303)
+++ trunk/freenet/src/freenet/node/Announcer.java 2008-07-22 14:50:26 UTC
(rev 21304)
@@ -314,9 +314,7 @@
if(runningAnnouncements > 0)
return;
}
if(enoughPeers()) {
- Vector seeds =
node.peers.getConnectedSeedServerPeersVector(null);
- for(int i=0;i<seeds.size();i++)
{
- SeedServerPeerNode pn =
(SeedServerPeerNode) seeds.get(i);
+ for(SeedServerPeerNode pn :
node.peers.getConnectedSeedServerPeersVector(null)) {
node.peers.disconnect(pn, true, true);
}
// Re-check every minute.
Something bad might happen (e.g. cpu starvation), causing us to have to reseed.
@@ -373,14 +371,14 @@
return;
}
// Now find a node to announce to
- Vector seeds =
node.peers.getConnectedSeedServerPeersVector(announcedToIdentities);
+ Vector<SeedServerPeerNode> seeds =
node.peers.getConnectedSeedServerPeersVector(announcedToIdentities);
while(sentAnnouncements < WANT_ANNOUNCEMENTS) {
if(seeds.isEmpty()) {
if(logMINOR)
Logger.minor(this, "No more
seednodes, announcedTo = "+announcedToIdentities.size());
break;
}
- final SeedServerPeerNode seed =
(SeedServerPeerNode) seeds.remove(node.random.nextInt(seeds.size()));
+ final SeedServerPeerNode seed =
seeds.remove(node.random.nextInt(seeds.size()));
InetAddress[] addrs = seed.getInetAddresses();
if(!newAnnouncedIPs(addrs)) {
if(logMINOR)
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-07-22 13:43:24 UTC (rev
21303)
+++ trunk/freenet/src/freenet/node/Node.java 2008-07-22 14:50:26 UTC (rev
21304)
@@ -387,6 +387,7 @@
private final NodeCryptoConfig opennetCryptoConfig;
private OpennetManager opennet;
+ private volatile boolean isAllowedToConnectToSeednodes;
private int maxOpennetPeers;
private boolean acceptSeedConnections;
private boolean passOpennetRefsThroughDarknet;
@@ -1129,6 +1130,21 @@
// Opennet
final SubConfig opennetConfig = new SubConfig("node.opennet",
config);
+ opennetConfig.register("connectToSeednodes", true, 0, true,
false, "Node.withAnnouncement", "Node.withAnnouncementLong", new
BooleanCallback() {
+ public boolean get() {
+ return isAllowedToConnectToSeednodes;
+ }
+ public void set(boolean val) throws
InvalidConfigValueException {
+ if(val == get()) return;
+ synchronized(Node.this) {
+ if(opennet != null)
+ throw new
InvalidConfigValueException("Can't change that setting on the fly when opennet
is already active!");
+ else
+ isAllowedToConnectToSeednodes =
val;
+ }
+ }
+ });
+ isAllowedToConnectToSeednodes =
opennetConfig.getBoolean("connectToSeednodes");
// Can be enabled on the fly
opennetConfig.register("enabled", false, 0, false, true,
"Node.opennetEnabled", "Node.opennetEnabledLong", new BooleanCallback() {
@@ -1143,7 +1159,7 @@
if(val == (opennet != null)) return;
if(val) {
try {
- o = opennet = new
OpennetManager(Node.this, opennetCryptoConfig, System.currentTimeMillis());
+ o = opennet = new
OpennetManager(Node.this, opennetCryptoConfig, System.currentTimeMillis(),
isAllowedToConnectToSeednodes);
} catch (NodeInitException e) {
opennet = null;
throw new
InvalidConfigValueException(e.getMessage());
@@ -1157,8 +1173,7 @@
else o.stop(true);
ipDetector.ipDetectorManager.notifyPortChange(getPublicInterfacePorts());
}
- });
-
+ });
boolean opennetEnabled = opennetConfig.getBoolean("enabled");
opennetConfig.register("maxOpennetPeers", "20", 1, true, false,
"Node.maxOpennetPeers",
@@ -1183,7 +1198,7 @@
opennetCryptoConfig = new NodeCryptoConfig(opennetConfig, 2 /*
0 = enabled */, true);
if(opennetEnabled) {
- opennet = new OpennetManager(this, opennetCryptoConfig,
System.currentTimeMillis());
+ opennet = new OpennetManager(this, opennetCryptoConfig,
System.currentTimeMillis(), isAllowedToConnectToSeednodes);
// Will be started later
} else {
opennet = null;
@@ -3116,7 +3131,7 @@
* Connect this node to another node (for purposes of testing)
*/
public void connectToSeednode(SeedServerPeerNode node) throws
OpennetDisabledException, FSParseException, PeerParseException,
ReferenceSignatureVerificationException {
-
peers.addPeer(createNewSeedServerPeerNode(node.exportSeedNodeFieldSet()),false,false);
+
peers.addPeer(createNewSeedServerTestPeerNode(node.exportFieldSet()),false,false);
}
public void connect(Node node) throws FSParseException,
PeerParseException, ReferenceSignatureVerificationException {
peers.connect(node.darknetCrypto.exportPublicFieldSet(),
darknetCrypto.packetMangler);
@@ -3175,9 +3190,9 @@
return new OpennetPeerNode(fs, this, opennet.crypto, opennet,
peers, false, opennet.crypto.packetMangler);
}
- public SeedServerPeerNode createNewSeedServerPeerNode(SimpleFieldSet
fs) throws FSParseException, OpennetDisabledException, PeerParseException,
ReferenceSignatureVerificationException {
+ public SeedServerTestPeerNode
createNewSeedServerTestPeerNode(SimpleFieldSet fs) throws FSParseException,
OpennetDisabledException, PeerParseException,
ReferenceSignatureVerificationException {
if(opennet == null) throw new OpennetDisabledException("Opennet
is not currently enabled");
- return new SeedServerPeerNode(fs, this, opennet.crypto, peers,
true, opennet.crypto.packetMangler);
+ return new SeedServerTestPeerNode(fs, this, opennet.crypto,
peers, true, opennet.crypto.packetMangler);
}
public OpennetPeerNode addNewOpennetNode(SimpleFieldSet fs) throws
FSParseException, PeerParseException, ReferenceSignatureVerificationException {
Modified: trunk/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStarter.java 2008-07-22 13:43:24 UTC
(rev 21303)
+++ trunk/freenet/src/freenet/node/NodeStarter.java 2008-07-22 14:50:26 UTC
(rev 21304)
@@ -337,7 +337,7 @@
long storeSize, boolean ramStore, boolean enableSwapping,
boolean enableARKs,
boolean enableULPRs, boolean enablePerNodeFailureTables,
boolean enableSwapQueueing, boolean enablePacketCoalescing,
- int outputBandwidthLimit, boolean enableFOAF) throws
NodeInitException {
+ int outputBandwidthLimit, boolean enableFOAF, boolean
connectToSeednodes) throws NodeInitException {
File baseDir = new File(testName);
File portDir = new File(baseDir, Integer.toString(port));
@@ -389,7 +389,11 @@
configFS.put("node.routeAccordingToOurPeersLocation",
enableFOAF);
configFS.put("node.opennet.enabled", opennetPort > 0);
configFS.put("node.opennet.listenPort", opennetPort);
-
+ configFS.put("node.opennet.alwaysAllowLocalAddresses", true);
+ configFS.put("node.opennet.oneConnectionPerIP", false);
+ configFS.put("node.opennet.assumeNATed", true);
+ configFS.put("node.opennet.connectToSeednodes",
connectToSeednodes);
+
PersistentConfig config = new PersistentConfig(configFS);
Node node = new Node(config, random, null, null, executor);
Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java 2008-07-22 13:43:24 UTC
(rev 21303)
+++ trunk/freenet/src/freenet/node/OpennetManager.java 2008-07-22 14:50:26 UTC
(rev 21304)
@@ -104,7 +104,7 @@
private final long creationTime;
- public OpennetManager(Node node, NodeCryptoConfig opennetConfig, long
startupTime) throws NodeInitException {
+ public OpennetManager(Node node, NodeCryptoConfig opennetConfig, long
startupTime, boolean enableAnnouncement) throws NodeInitException {
logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.creationTime = System.currentTimeMillis();
this.node = node;
@@ -154,7 +154,7 @@
writeFile(nodeFile, backupNodeFile);
// Read old peers
node.peers.tryReadPeers(new File(node.nodeDir,
"openpeers-old-"+crypto.portNumber).toString(), crypto, this, true, true);
- announcer = new Announcer(this);
+ announcer = (enableAnnouncement ? new Announcer(this) : null);
if(logMINOR) {
Logger.minor(this, "My full compressed ref:
"+crypto.myCompressedFullRef().length);
Logger.minor(this, "My full setup ref:
"+crypto.myCompressedSetupRef().length);
@@ -223,14 +223,16 @@
public void start() {
crypto.start(node.disableHangCheckers);
- announcer.start();
+ if(announcer!= null)
+ announcer.start();
}
/**
* Called when opennet is disabled
*/
public void stop(boolean purge) {
- announcer.stop();
+ if(announcer != null)
+ announcer.stop();
crypto.stop();
if(purge)
node.peers.removeOpennetPeers();
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2008-07-22 13:43:24 UTC
(rev 21303)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2008-07-22 14:50:26 UTC
(rev 21304)
@@ -1575,13 +1575,13 @@
return (DarknetPeerNode[]) v.toArray(new
DarknetPeerNode[v.size()]);
}
- public Vector getConnectedSeedServerPeersVector(HashSet exclude) {
+ public Vector<SeedServerPeerNode>
getConnectedSeedServerPeersVector(HashSet exclude) {
PeerNode[] peers;
synchronized(this) {
peers = myPeers;
}
// FIXME optimise! Maybe maintain as a separate list?
- Vector v = new Vector(myPeers.length);
+ Vector<SeedServerPeerNode> v = new
Vector<SeedServerPeerNode>(myPeers.length);
for(int i = 0; i < peers.length; i++) {
if(peers[i] instanceof SeedServerPeerNode) {
if(exclude != null &&
exclude.contains(peers[i].getIdentity())) {
@@ -1594,7 +1594,7 @@
Logger.minor(this, "Not
including in getConnectedSeedServerPeersVector() as disconnected: " +
peers[i].userToString());
continue;
}
- v.add(peers[i]);
+ v.add((SeedServerPeerNode)peers[i]);
}
}
return v;
Modified: trunk/freenet/src/freenet/node/SeedServerPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/SeedServerPeerNode.java 2008-07-22
13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/SeedServerPeerNode.java 2008-07-22
14:50:26 UTC (rev 21304)
@@ -117,10 +117,4 @@
// Drop the connection once we have consistently had enough
opennet peers for 5 minutes.
return System.currentTimeMillis() -
om.announcer.timeGotEnoughPeers() > 5*60*1000;
}
-
- public SimpleFieldSet exportSeedNodeFieldSet() {
- SimpleFieldSet sfs = super.exportFieldSet();
- sfs.putOverwrite("opennet", "true");
- return sfs;
- }
}
Added: trunk/freenet/src/freenet/node/SeedServerTestPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/SeedServerTestPeerNode.java
(rev 0)
+++ trunk/freenet/src/freenet/node/SeedServerTestPeerNode.java 2008-07-22
14:50:26 UTC (rev 21304)
@@ -0,0 +1,46 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+package freenet.node;
+
+import freenet.io.comm.PeerParseException;
+import freenet.io.comm.ReferenceSignatureVerificationException;
+import freenet.support.SimpleFieldSet;
+
+/**
+ *
+ * @author nextgens
+ */
+public class SeedServerTestPeerNode extends SeedServerPeerNode {
+
+ public SeedServerTestPeerNode(SimpleFieldSet fs, Node node2, NodeCrypto
crypto, PeerManager peers, boolean fromLocal, OutgoingPacketMangler mangler)
throws FSParseException, PeerParseException,
ReferenceSignatureVerificationException {
+ super(fs, node2, crypto, peers, fromLocal, mangler);
+ }
+
+ public SimpleFieldSet exportFieldSet() {
+ SimpleFieldSet sfs = super.exportFieldSet();
+ sfs.putOverwrite("opennet", "true");
+ return sfs;
+ }
+
+ public boolean shouldDisconnectAndRemoveNow() {
+ return false;
+ }
+
+ protected void sendInitialMessages() {}
+
+
+}
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeBusyNetworkTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeBusyNetworkTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeBusyNetworkTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -75,7 +75,7 @@
Executor executor = new PooledExecutor();
for(int i=0;i<NUMBER_OF_NODES;i++) {
nodes[i] =
- NodeStarter.createTestNode(5001+i, 0, name, false, true, false,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES,
(CHKBlock.DATA_LENGTH+CHKBlock.TOTAL_HEADERS_LENGTH)*100, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
ENABLE_SWAP_QUEUEING, ENABLE_PACKET_COALESCING, 8000, ENABLE_FOAF);
+ NodeStarter.createTestNode(5001+i, 0, name, false, true, false,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES,
(CHKBlock.DATA_LENGTH+CHKBlock.TOTAL_HEADERS_LENGTH)*100, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
ENABLE_SWAP_QUEUEING, ENABLE_PACKET_COALESCING, 8000, ENABLE_FOAF, false);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
Modified:
trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -79,21 +79,21 @@
for(int i=0;i<NUMBER_OF_NODES;i++) {
allNodes[totalNodes] =
subnetA[i] =
- NodeStarter.createTestNode(5001+totalNodes, 0, wd, false, true,
true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true,
0, ENABLE_FOAF);
+ NodeStarter.createTestNode(5001+totalNodes, 0, wd, false, true,
true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true,
0, ENABLE_FOAF, false);
totalNodes++;
Logger.normal(RealNodeRoutingTest.class, "Created 'A' node
"+totalNodes);
}
for(int i=0;i<NUMBER_OF_NODES;i++) {
allNodes[totalNodes] =
subnetB[i] =
- NodeStarter.createTestNode(5001+totalNodes, 0, wd,
false, true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true,
0, ENABLE_FOAF);
+ NodeStarter.createTestNode(5001+totalNodes, 0, wd,
false, true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true,
0, ENABLE_FOAF, false);
totalNodes++;
Logger.normal(RealNodeRoutingTest.class, "Created 'B' node
"+totalNodes);
}
for(int i=0;i<BRIDGES;i++) {
allNodes[totalNodes] =
bridges[i] =
- NodeStarter.createTestNode(5001+totalNodes, 0, wd,
false, true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true,
0,ENABLE_FOAF);
+ NodeStarter.createTestNode(5001+totalNodes, 0, wd,
false, true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true,
0,ENABLE_FOAF, false);
totalNodes++;
Logger.normal(RealNodeRoutingTest.class, "Created bridge node
"+totalNodes);
}
Modified: trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -33,8 +33,8 @@
RandomSource random = NodeStarter.globalTestInit("pingtest", false,
Logger.ERROR, "");
// Create 2 nodes
Executor executor = new PooledExecutor();
- Node node1 = NodeStarter.createTestNode(5001, 0, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false, true, 0, false);
- Node node2 = NodeStarter.createTestNode(5002, 0, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false, true, 0, false);
+ Node node1 = NodeStarter.createTestNode(5001, 0, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false, true, 0, false, false);
+ Node node2 = NodeStarter.createTestNode(5002, 0, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false, true, 0, false, false);
// Connect
node1.connect(node2);
node2.connect(node1);
Modified:
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -75,7 +75,7 @@
Executor executor = new PooledExecutor();
for(int i=0;i<NUMBER_OF_NODES;i++) {
nodes[i] =
- NodeStarter.createTestNode(5001+i, 0, name, false, true, false,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 256*1024, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
ENABLE_SWAP_QUEUEING, ENABLE_PACKET_COALESCING, 12000, ENABLE_FOAF);
+ NodeStarter.createTestNode(5001+i, 0, name, false, true, false,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 256*1024, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
ENABLE_SWAP_QUEUEING, ENABLE_PACKET_COALESCING, 12000, ENABLE_FOAF, false);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -56,7 +56,7 @@
Executor executor = new PooledExecutor();
for(int i = 0; i < NUMBER_OF_NODES; i++) {
System.err.println("Creating node " + i);
- nodes[i] = NodeStarter.createTestNode(5001 + i, 0, dir,
false, true, true, MAX_HTL, 0 /* no dropped packets */, random, executor, 500 *
NUMBER_OF_NODES, 65536, true, ENABLE_SWAPPING, false, false, false,
ENABLE_SWAP_QUEUEING, true, 0, ENABLE_FOAF);
+ nodes[i] = NodeStarter.createTestNode(5001 + i, 0, dir,
false, true, true, MAX_HTL, 0 /* no dropped packets */, random, executor, 500 *
NUMBER_OF_NODES, 65536, true, ENABLE_SWAPPING, false, false, false,
ENABLE_SWAP_QUEUEING, true, 0, ENABLE_FOAF, false);
Logger.normal(RealNodeRoutingTest.class, "Created node
" + i);
}
Logger.normal(RealNodeRoutingTest.class, "Created " +
NUMBER_OF_NODES + " nodes");
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -66,7 +66,7 @@
for(int i=0;i<NUMBER_OF_NODES;i++) {
nodes[i] =
- NodeStarter.createTestNode(5001+i, 0, wd, false, true, true,
MAX_HTL, 0 /* no dropped packets */, random, executor, 500*NUMBER_OF_NODES,
storeSize, true, true, false, false, false, true, true, 0, true);
+ NodeStarter.createTestNode(5001+i, 0, wd, false, true, true,
MAX_HTL, 0 /* no dropped packets */, random, executor, 500*NUMBER_OF_NODES,
storeSize, true, true, false, false, false, true, true, 0, true, false);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
Logger.normal(RealNodeRoutingTest.class, "Created "+NUMBER_OF_NODES+"
nodes");
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -93,7 +93,7 @@
Executor executor = new PooledExecutor();
for(int i=0;i<NUMBER_OF_NODES;i++) {
nodes[i] =
- NodeStarter.createTestNode(5000+i, 0, testName, false, true,
true, MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 1024*1024,
true, ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
true, true, 0, ENABLE_FOAF);
+ NodeStarter.createTestNode(5000+i, 0, testName, false, true,
true, MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 1024*1024,
true, ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
true, true, 0, ENABLE_FOAF, false);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
SimpleFieldSet refs[] = new SimpleFieldSet[NUMBER_OF_NODES];
Modified: trunk/freenet/src/freenet/node/simulator/SeednodePingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/SeednodePingTest.java
2008-07-22 13:43:24 UTC (rev 21303)
+++ trunk/freenet/src/freenet/node/simulator/SeednodePingTest.java
2008-07-22 14:50:26 UTC (rev 21304)
@@ -14,11 +14,13 @@
import freenet.node.NodeStarter;
import freenet.node.OpennetDisabledException;
import freenet.node.SeedServerPeerNode;
+import freenet.node.SeedServerTestPeerNode;
import freenet.support.Executor;
import freenet.support.Logger;
import freenet.support.PooledExecutor;
import freenet.support.LoggerHook.InvalidThresholdException;
import freenet.support.SimpleFieldSet;
+import freenet.support.TimeUtil;
import java.io.File;
import java.io.IOException;
import java.util.Vector;
@@ -32,51 +34,54 @@
RandomSource random = NodeStarter.globalTestInit("seednode-pingtest",
false, Logger.ERROR, "");
// Create one node
Executor executor = new PooledExecutor();
- Node node = NodeStarter.createTestNode(5000, 5001, "seednode-pingtest",
true, false, false, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000,
5*1024*1024, true, false, false, false, false, false, false, 0, false);
+ Node node = NodeStarter.createTestNode(5000, 5001, "seednode-pingtest",
true, false, false, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000,
5*1024*1024, true, false, false, false, false, false, false, 0, false, false);
// Connect & ping
- Vector<SeedServerPeerNode> seedNodes = new Vector<SeedServerPeerNode>();
+ Vector<SeedServerTestPeerNode> seedNodes = new
Vector<SeedServerTestPeerNode>();
Vector<SimpleFieldSet> seedNodesAsSFS = Announcer.readSeednodes(new
File("/tmp/"));
int numberOfNodesInTheFile = 0;
for(SimpleFieldSet sfs : seedNodesAsSFS) {
numberOfNodesInTheFile++;
- SeedServerPeerNode seednode =
node.createNewSeedServerPeerNode(sfs);
+ SeedServerTestPeerNode seednode =
node.createNewSeedServerTestPeerNode(sfs);
try {
node.connectToSeednode(seednode);
seedNodes.add(seednode);
} catch (Exception fse) {
System.out.println("ERROR adding "+seednode.toString()+
" "+fse.getMessage());
}
- }
+ }
+ // Start it
+ node.start(true);
+ //Logger.setupStdoutLogging(Logger.MINOR,
"freenet:NORMAL,freenet.node.NodeDispatcher:MINOR,freenet.node.FNPPacketMangler:MINOR");
+ Logger.getChain().setThreshold(32); // kill logging
+ Thread.sleep(2000);
if(seedNodes.size() != numberOfNodesInTheFile)
System.out.println("ERROR ADDING SOME OF THE SEEDNODES!!");
System.out.println("Let some time for the "+ seedNodes.size() +" nodes
to connect...");
+ Thread.sleep(8000);
- // Start it
- node.start(true);
- //Logger.setupStdoutLogging(Logger.MINOR,
"freenet:NORMAL,freenet.node.FNPPacketMangler:MINOR");
- Logger.getChain().setThreshold(32); // kill logging
- Thread.sleep(10000);
-
int pingID = 0;
while(true) {
int countConnectedSeednodes = 0;
- for(SeedServerPeerNode seednode : seedNodes) {
+ for(SeedServerPeerNode seednode :
node.peers.getConnectedSeedServerPeersVector(null)) {
try {
- boolean isSigValid =
seednode.isSignatureVerificationSuccessfull();
- boolean isRoutingCompatible =
seednode.isRoutingCompatible();
double pingTime = seednode.averagePingTime();
int uptime = seednode.getUptime();
+ long timeDelta = seednode.getClockDelta();
if(seednode.isRealConnection())
continue;
countConnectedSeednodes++;
boolean ping = seednode.ping(pingID++);
- System.out.println(seednode.getIdentityString()
+ " is sigValid=" + isSigValid + " isRoutingCompat=" + isRoutingCompatible + "
uptime=" + uptime + " pingTime=" + pingTime+ " uptime="+seednode.getUptime() +
" ping="+ping);
- // sanity check
-// if(seednode.isRoutable())
-// System.out.println(seednode + " is routable!");
-// if(seednode.canAcceptAnnouncements())
-// System.out.println(seednode + " can't accept
announcements!");
+ if(ping)
+
System.out.println(seednode.getIdentityString()+
+ " uptime="+uptime+
+ " ping="+ping+
+ " pingTime="+pingTime+
+ " uptime="+seednode.getUptime()+
+ "
timeDelta="+TimeUtil.formatTime(timeDelta));
+ // sanity check
+ if(seednode.isRoutable())
+ System.out.println(seednode + " is
routable!");
} catch (NotConnectedException e) {
System.out.println(seednode.getIdentityString()
+ " is not connected "+seednode.getHandshakeCount());
}