Author: nextgens
Date: 2007-06-30 23:39:45 +0000 (Sat, 30 Jun 2007)
New Revision: 13854

Modified:
   trunk/freenet/src/freenet/crypt/Yarrow.java
   trunk/freenet/src/freenet/node/Node.java
Log:
Yarrow: save the seedfile in any case when the node exits

Modified: trunk/freenet/src/freenet/crypt/Yarrow.java
===================================================================
--- trunk/freenet/src/freenet/crypt/Yarrow.java 2007-06-30 23:28:57 UTC (rev 
13853)
+++ trunk/freenet/src/freenet/crypt/Yarrow.java 2007-06-30 23:39:45 UTC (rev 
13854)
@@ -56,7 +56,7 @@
        private static final int Pg = 10;
        private final SecureRandom sr;
 
-       private final File seedfile; //A file to which seed data should be 
dumped periodically
+       public final File seedfile; //A file to which seed data should be 
dumped periodically
 
        public Yarrow() {
                this("prng.seed", "SHA1", "Rijndael",true);
@@ -247,13 +247,19 @@
 
        private long timeLastWroteSeed = -1;
        
-       private void write_seed(File filename) {
-               synchronized(this) {
-                       long now = System.currentTimeMillis();
-                       if(now - timeLastWroteSeed <= 60*60*1000 /* once per 
hour */) {
-                               return;
-                       } else
-                               timeLastWroteSeed = now;
+       public void write_seed(File filename) {
+               write_seed(filename, false);
+       }
+       
+       public void write_seed(File filename, boolean force) {
+               if(!force) {
+                       synchronized(this) {
+                               long now = System.currentTimeMillis();
+                               if(now - timeLastWroteSeed <= 60*60*1000 /* 
once per hour */) {
+                                       return;
+                               } else
+                                       timeLastWroteSeed = now;
+                       }
                }
                
                try {

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-06-30 23:28:57 UTC (rev 
13853)
+++ trunk/freenet/src/freenet/node/Node.java    2007-06-30 23:39:45 UTC (rev 
13854)
@@ -46,6 +46,7 @@
 import freenet.crypt.DSAPublicKey;
 import freenet.crypt.RandomSource;
 import freenet.crypt.SHA256;
+import freenet.crypt.Yarrow;
 import freenet.io.comm.DMT;
 import freenet.io.comm.DisconnectedException;
 import freenet.io.comm.FreenetInetAddress;
@@ -2249,6 +2250,10 @@
                isStopping = true;
                
                config.store();
+               
+               // TODO: find a smarter way of doing it not involving any 
casting
+               Yarrow myRandom = (Yarrow) random;
+               myRandom.write_seed(myRandom.seedfile, true);
        }
 
        public NodeUpdateManager getNodeUpdater(){

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to