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) {


Reply via email to