Author: toad
Date: 2006-03-29 20:20:16 +0000 (Wed, 29 Mar 2006)
New Revision: 8356

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/support/FileLoggerHook.java
Log:
586:
Compress references.
Also, delete old logs and regenerate keys if testnet status changes.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2006-03-29 20:07:38 UTC (rev 
8355)
+++ trunk/freenet/src/freenet/node/Node.java    2006-03-29 20:20:16 UTC (rev 
8356)
@@ -24,6 +24,8 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.zip.DeflaterOutputStream;
+import java.util.zip.GZIPOutputStream;

 import freenet.client.ArchiveManager;
 import freenet.client.HighLevelSimpleClient;
@@ -77,6 +79,7 @@
 import freenet.store.BerkeleyDBFreenetStore;
 import freenet.store.FreenetStore;
 import freenet.support.BucketFactory;
+import freenet.support.Fields;
 import freenet.support.HexUtil;
 import freenet.support.ImmutableByteArrayWrapper;
 import freenet.support.LRUHashtable;
@@ -280,7 +283,9 @@

     // Helpers
        public final InetAddress localhostAddress;
-    
+
+       private boolean wasTestnet;
+       
     /**
      * Read all storable settings (identity etc) from the node file.
      * @param filename The name of the file to read from.
@@ -344,6 +349,7 @@
             this.myPrivKey = new DSAPrivateKey(myCryptoGroup, r);
             this.myPubKey = new DSAPublicKey(myCryptoGroup, myPrivKey);
         }
+        wasTestnet = Fields.stringToBool(fs.get("testnet"), false);
     }

     private String newName() {
@@ -667,7 +673,17 @@
                Logger.normal(this, s);
                System.err.println(s);
                testnetEnabled = false;
+               logConfigHandler.getFileLoggerHook().deleteAllOldLogFiles();
         }
+        
+        if(wasTestnet != testnetEnabled) {
+               Logger.error(this, "Switched from testnet mode to non-testnet 
mode or vice versa! Regenerating pubkey, privkey, and deleting logs.");
+            this.myCryptoGroup = Global.DSAgroupBigA;
+            this.myPrivKey = new DSAPrivateKey(myCryptoGroup, random);
+            this.myPubKey = new DSAPublicKey(myCryptoGroup, myPrivKey);
+               
+               
+        }

         // Directory for node-related files other than store

@@ -1886,7 +1902,9 @@
     public byte[] myPublicRefCompressed() {
         SimpleFieldSet fs = exportPublicFieldSet();
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        OutputStreamWriter osw = new OutputStreamWriter(baos);
+        DeflaterOutputStream gis;
+               gis = new DeflaterOutputStream(baos);
+        OutputStreamWriter osw = new OutputStreamWriter(gis);
         try {
             fs.writeTo(osw);
         } catch (IOException e) {
@@ -1899,7 +1917,7 @@
         }
         byte[] buf = baos.toByteArray();
         byte[] obuf = new byte[buf.length + 1];
-        obuf[0] = 0;
+        obuf[0] = 1;
         System.arraycopy(buf, 0, obuf, 1, buf.length);
         return obuf;
         // FIXME support compression when noderefs get big enough for it to be 
useful

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-03-29 20:07:38 UTC (rev 
8355)
+++ trunk/freenet/src/freenet/node/Version.java 2006-03-29 20:20:16 UTC (rev 
8356)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 585;
+       private static final int buildNumber = 586;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 555;

Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
===================================================================
--- trunk/freenet/src/freenet/support/FileLoggerHook.java       2006-03-29 
20:07:38 UTC (rev 8355)
+++ trunk/freenet/src/freenet/support/FileLoggerHook.java       2006-03-29 
20:20:16 UTC (rev 8356)
@@ -963,4 +963,20 @@
                        }
                }
        }
+
+       public void deleteAllOldLogFiles() {
+               synchronized(trimOldLogFilesLock) {
+                       while(true) {
+                               OldLogFile olf;
+                               synchronized(logFiles) {
+                                       if(logFiles.isEmpty()) return;
+                                       olf = (OldLogFile) 
logFiles.removeFirst();
+                               }
+                               olf.filename.delete();
+                               oldLogFilesDiskSpaceUsage -= olf.size;
+                               Logger.minor(this, "Deleting "+olf.filename+" - 
saving "+olf.size+
+                                               " bytes, disk usage now: 
"+oldLogFilesDiskSpaceUsage+" of "+maxOldLogfilesDiskUsage);
+                       }
+               }
+       }
 }


Reply via email to