Author: j16sdiz
Date: 2008-08-05 13:45:56 +0000 (Tue, 05 Aug 2008)
New Revision: 21614
Modified:
branches/saltedhashstore/freenet/src/freenet/node/Node.java
branches/saltedhashstore/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
Log:
allow datastore run without node
Modified: branches/saltedhashstore/freenet/src/freenet/node/Node.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/node/Node.java 2008-08-05
13:23:53 UTC (rev 21613)
+++ branches/saltedhashstore/freenet/src/freenet/node/Node.java 2008-08-05
13:45:56 UTC (rev 21614)
@@ -1410,32 +1410,32 @@
System.out.println("Initializing CHK Datastore
(" + maxStoreKeys + " keys)");
chkDatastore = new CHKStore();
SaltedHashFreenetStore chkDataFS =
SaltedHashFreenetStore.construct(storeDir, "CHK-store",
- chkDatastore, this, maxStoreKeys,
0x4800000, true, shutdownHook);
+ chkDatastore, random, this,
maxStoreKeys, 0x4800000, true, shutdownHook);
Logger.normal(this, "Initializing CHK
Datacache");
System.out.println("Initializing CHK Datacache
(" + maxCacheKeys + ':' + maxCacheKeys + " keys)");
chkDatacache = new CHKStore();
SaltedHashFreenetStore chkCacheFS =
SaltedHashFreenetStore.construct(storeDir, "CHK-cache",
- chkDatacache, this, maxCacheKeys,
0x4800000, true, shutdownHook);
+ chkDatacache, random, this,
maxCacheKeys, 0x4800000, true, shutdownHook);
Logger.normal(this, "Initializing pubKey
Datastore");
System.out.println("Initializing pubKey
Datastore");
pubKeyDatastore = new PubkeyStore();
SaltedHashFreenetStore pubkeyDataFS =
SaltedHashFreenetStore.construct(storeDir, "PUBKEY-store",
- pubKeyDatastore, this, maxStoreKeys,
0x4800000, true, shutdownHook);
+ pubKeyDatastore, random, this,
maxStoreKeys, 0x4800000, true, shutdownHook);
Logger.normal(this, "Initializing pubKey
Datacache");
System.out.println("Initializing pubKey
Datacache (" + maxCacheKeys + " keys)");
pubKeyDatacache = new PubkeyStore();
SaltedHashFreenetStore pubkeyCacheFS =
SaltedHashFreenetStore.construct(storeDir, "PUBKEY-cache",
- pubKeyDatacache, this, maxCacheKeys,
0x4800000, true, shutdownHook);
+ pubKeyDatacache, random, this,
maxCacheKeys, 0x4800000, true, shutdownHook);
Logger.normal(this, "Initializing SSK
Datastore");
System.out.println("Initializing SSK
Datastore");
sskDatastore = new SSKStore(this);
SaltedHashFreenetStore sskDataFS =
SaltedHashFreenetStore.construct(storeDir, "SSK-store",
- sskDatastore, this, maxStoreKeys,
0x4800000, true, shutdownHook);
+ sskDatastore, random, this,
maxStoreKeys, 0x4800000, true, shutdownHook);
Logger.normal(this, "Initializing SSK
Datacache");
System.out.println("Initializing SSK Datacache
(" + maxCacheKeys + " keys)");
sskDatacache = new SSKStore(this);
SaltedHashFreenetStore sskCacheFS =
SaltedHashFreenetStore.construct(storeDir, "SSK-cache",
- sskDatacache, this, maxCacheKeys,
0x4800000, true, shutdownHook);
+ sskDatacache, random, this,
maxCacheKeys, 0x4800000, true, shutdownHook);
File migrationFile = new File(storeDir,
"migrated");
if (!migrationFile.exists()) {
Modified:
branches/saltedhashstore/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
===================================================================
---
branches/saltedhashstore/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
2008-08-05 13:23:53 UTC (rev 21613)
+++
branches/saltedhashstore/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
2008-08-05 13:45:56 UTC (rev 21614)
@@ -14,6 +14,7 @@
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
+import java.util.Random;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
@@ -73,21 +74,23 @@
private final int routeKeyLength;
private final int fullKeyLength;
private final int dataBlockLength;
+ private final Random random;
private final Node node;
private long storeSize;
private int generation;
private int flags;
- public static SaltedHashFreenetStore construct(File baseDir, String
name, StoreCallback callback, Node node,
- long maxKeys, int bloomFilterSize, boolean bloomCounting,
SemiOrderedShutdownHook shutdownHook)
+ public static SaltedHashFreenetStore construct(File baseDir, String
name, StoreCallback callback, Random random,
+ Node node, long maxKeys, int bloomFilterSize, boolean
bloomCounting, SemiOrderedShutdownHook shutdownHook)
throws IOException {
- return new SaltedHashFreenetStore(baseDir, name, callback,
node, maxKeys, bloomFilterSize, bloomCounting,
+ return new SaltedHashFreenetStore(baseDir, name, callback,
random, node, maxKeys, bloomFilterSize,
+ bloomCounting,
shutdownHook);
}
- private SaltedHashFreenetStore(File baseDir, String name, StoreCallback
callback, Node node, long maxKeys,
- int bloomFilterSize, boolean bloomCounting,
SemiOrderedShutdownHook shutdownHook)
+ private SaltedHashFreenetStore(File baseDir, String name, StoreCallback
callback, Random random, Node node,
+ long maxKeys, int bloomFilterSize, boolean bloomCounting,
SemiOrderedShutdownHook shutdownHook)
throws IOException {
logMINOR = Logger.shouldLog(Logger.MINOR, this);
logDEBUG = Logger.shouldLog(Logger.DEBUG, this);
@@ -102,6 +105,7 @@
fullKeyLength = callback.fullKeyLength();
dataBlockLength = callback.dataLength();
+ this.random = random;
this.node = node;
storeSize = maxKeys;
this.bloomFilterSize = bloomFilterSize;
@@ -472,7 +476,7 @@
private ByteBuffer toMetaDataBuffer() {
ByteBuffer out = ByteBuffer.allocate(METADATA_LENGTH);
- cipherManager.encrypt(this, node.random);
+ cipherManager.encrypt(this, random);
out.put(getDigestedRoutingKey());
out.put(dataEncryptIV);
@@ -685,7 +689,7 @@
* </ul>
*/
private void writeEntry(Entry entry, long offset) throws IOException {
- cipherManager.encrypt(entry, node.random);
+ cipherManager.encrypt(entry, random);
ByteBuffer bf = entry.toMetaDataBuffer();
do {
@@ -785,7 +789,7 @@
if (!configFile.exists()) {
// create new
byte[] newsalt = new byte[0x10];
- node.random.nextBytes(newsalt);
+ random.nextBytes(newsalt);
cipherManager = new CipherManager(newsalt);
writeConfigFile();
@@ -894,7 +898,7 @@
super.run();
try {
- while (node.clientCore == null && !shutdown) {
+ while (node != null && node.clientCore == null
&& !shutdown) {
Thread.sleep(1000);
}
Thread.sleep((int)(CLEANER_PERIOD / 2 +
CLEANER_PERIOD * Math.random()));
@@ -903,6 +907,7 @@
if (shutdown)
return;
+ if (node != null)
node.clientCore.alerts.register(new UserAlert() {
public String anchor() {
return "store-cleaner-" + name;