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