Author: toad
Date: 2007-06-28 10:29:57 +0000 (Thu, 28 Jun 2007)
New Revision: 13793
Modified:
trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/TextModeClientInterface.java
trunk/freenet/src/freenet/node/fcp/AddPeer.java
Log:
Fix NPE
Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2007-06-27 23:28:00 UTC (rev 13792)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
2007-06-28 10:29:57 UTC (rev 13793)
@@ -699,7 +699,7 @@
}
PeerNode pn;
try {
- pn = new PeerNode(fs, node, node.peers, false);
+ pn = new PeerNode(fs, node, node.peers, false,
node.packetMangler);
pn.setPrivateDarknetCommentNote(privateComment);
} catch (FSParseException e1) {
this.sendErrorPage(ctx, 200,
l10n("failedToAddNodeTitle"),
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2007-06-27 23:28:00 UTC (rev
13792)
+++ trunk/freenet/src/freenet/node/Node.java 2007-06-28 10:29:57 UTC (rev
13793)
@@ -374,7 +374,7 @@
final MessageCore usm;
/** The object which handles our specific UDP port, pulls messages from
it, feeds them to the packet mangler for decryption etc */
final UdpSocketHandler sock;
- final FNPPacketMangler packetMangler;
+ public final FNPPacketMangler packetMangler;
final DNSRequester dnsr;
public final PacketSender ps;
final NodeDispatcher dispatcher;
@@ -995,14 +995,14 @@
this.myPubKey = new DSAPublicKey(myCryptoGroup,
myPrivKey);
}
+ usm.setDispatcher(dispatcher=new NodeDispatcher(this));
+ sock.setLowLevelFilter(packetMangler = new
FNPPacketMangler(this, sock));
+
// Then read the peers
- peers = new PeerManager(this, new File(nodeDir,
"peers-"+portNumber).getPath());
+ peers = new PeerManager(this, new File(nodeDir,
"peers-"+portNumber).getPath(), packetMangler);
peers.writePeers();
peers.updatePMUserAlert();
- usm.setDispatcher(dispatcher=new NodeDispatcher(this));
- sock.setLowLevelFilter(packetMangler = new
FNPPacketMangler(this, sock));
-
// Extra Peer Data Directory
nodeConfig.register("extraPeerDataDir", new File(nodeDir,
"extra-peer-data-"+portNumber).toString(), sortOrder++, true, false,
"Node.extraPeerDir", "Node.extraPeerDirLong",
new StringCallback() {
@@ -2826,7 +2826,7 @@
* Connect this node to another node (for purposes of testing)
*/
public void connect(Node node) throws FSParseException,
PeerParseException, ReferenceSignatureVerificationException {
- peers.connect(node.exportPublicFieldSet());
+ peers.connect(node.exportPublicFieldSet(), packetMangler);
}
public short maxHTL() {
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2007-06-27 23:28:00 UTC
(rev 13792)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2007-06-28 10:29:57 UTC
(rev 13793)
@@ -93,7 +93,7 @@
* @param node
* @param filename
*/
- public PeerManager(Node node, String filename) {
+ public PeerManager(Node node, String filename, OutgoingPacketMangler
mangler) {
Logger.normal(this, "Creating PeerManager");
logMINOR = Logger.shouldLog(Logger.MINOR, this);
peerNodeStatuses = new HashMap();
@@ -107,7 +107,7 @@
File backupFile = new File(filename+".bak");
// Try to read the node list from disk
if(peersFile.exists()) {
- if(readPeers(peersFile)) {
+ if(readPeers(peersFile, mangler)) {
String msg = "Read "+myPeers.length+" peers from
"+peersFile;
Logger.normal(this, msg);
System.out.println(msg);
@@ -116,7 +116,7 @@
}
// Try the backup
if(backupFile.exists()) {
- if(readPeers(backupFile)) {
+ if(readPeers(backupFile, mangler)) {
String msg = "Read "+myPeers.length+" peers from
"+backupFile;
Logger.normal(this, msg);
System.out.println(msg);
@@ -127,7 +127,7 @@
}
}
- private boolean readPeers(File peersFile) {
+ private boolean readPeers(File peersFile, OutgoingPacketMangler mangler) {
boolean gotSome = false;
FileInputStream fis;
try {
@@ -150,7 +150,7 @@
fs = new SimpleFieldSet(br, false, true);
PeerNode pn;
try {
- pn = new PeerNode(fs, node, this, true);
+ pn = new PeerNode(fs, node, this, true, mangler);
} catch (FSParseException e2) {
Logger.error(this, "Could not parse peer: "+e2+ '\n'
+fs.toString(),e2);
continue;
@@ -326,8 +326,8 @@
/**
* Connect to a node provided the fieldset representing it.
*/
- public void connect(SimpleFieldSet noderef) throws FSParseException,
PeerParseException, ReferenceSignatureVerificationException {
- PeerNode pn = new PeerNode(noderef, node, this, false);
+ public void connect(SimpleFieldSet noderef, OutgoingPacketMangler mangler)
throws FSParseException, PeerParseException,
ReferenceSignatureVerificationException {
+ PeerNode pn = new PeerNode(noderef, node, this, false, mangler);
for(int i=0;i<myPeers.length;i++) {
if(Arrays.equals(myPeers[i].identity, pn.identity)) return;
}
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2007-06-27 23:28:00 UTC
(rev 13792)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2007-06-28 10:29:57 UTC
(rev 13793)
@@ -115,7 +115,7 @@
private Peer detectedPeer;
/** My OutgoingPacketMangler i.e. the object which encrypts packets sent
to this node */
- private OutgoingPacketMangler outgoingMangler;
+ private final OutgoingPacketMangler outgoingMangler;
/** Advertised addresses */
private Vector nominalPeer;
@@ -380,9 +380,10 @@
* @param fs The SimpleFieldSet to parse
* @param node2 The running Node we are part of.
*/
- public PeerNode(SimpleFieldSet fs, Node node2, PeerManager peers, boolean
fromLocal) throws FSParseException, PeerParseException,
ReferenceSignatureVerificationException {
+ public PeerNode(SimpleFieldSet fs, Node node2, PeerManager peers, boolean
fromLocal, OutgoingPacketMangler mangler) throws FSParseException,
PeerParseException, ReferenceSignatureVerificationException {
logMINOR = Logger.shouldLog(Logger.MINOR, this);
myRef = new WeakReference(this);
+ this.outgoingMangler = mangler;
this.node = node2;
this.peers = peers;
this.backedOffPercent = new TimeDecayingRunningAverage(0.0, 180000,
0.0, 1.0, node);
Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java 2007-06-27
23:28:00 UTC (rev 13792)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java 2007-06-28
10:29:57 UTC (rev 13793)
@@ -1016,7 +1016,7 @@
}
PeerNode pn;
try {
- pn = new PeerNode(fs, n, n.peers, false);
+ pn = new PeerNode(fs, n, n.peers, false, n.packetMangler);
} catch (FSParseException e1) {
System.err.println("Did not parse: "+e1);
Logger.error(this, "Did not parse: "+e1, e1);
Modified: trunk/freenet/src/freenet/node/fcp/AddPeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/AddPeer.java 2007-06-27 23:28:00 UTC
(rev 13792)
+++ trunk/freenet/src/freenet/node/fcp/AddPeer.java 2007-06-28 10:29:57 UTC
(rev 13793)
@@ -111,7 +111,7 @@
fs.setEndMarker( "End" );
PeerNode pn;
try {
- pn = new PeerNode(fs, node, node.peers, false);
+ pn = new PeerNode(fs, node, node.peers, false,
node.packetMangler);
} catch (FSParseException e) {
throw new
MessageInvalidException(ProtocolErrorMessage.REF_PARSE_ERROR, "Error parsing
ref: "+e.getMessage(), null, false);
} catch (PeerParseException e) {