Author: dbkr
Date: 2006-07-19 11:59:22 +0000 (Wed, 19 Jul 2006)
New Revision: 9661

Modified:
   trunk/apps/Freemail/src/freemail/RTSFetcher.java
   trunk/apps/Freemail/src/freemail/RTSLog.java
Log:
Fix modification whilst iterating, tidy up and more verbosity.


Modified: trunk/apps/Freemail/src/freemail/RTSFetcher.java
===================================================================
--- trunk/apps/Freemail/src/freemail/RTSFetcher.java    2006-07-19 02:14:57 UTC 
(rev 9660)
+++ trunk/apps/Freemail/src/freemail/RTSFetcher.java    2006-07-19 11:59:22 UTC 
(rev 9661)
@@ -63,26 +63,26 @@

                int i;
                for (i = 0; i < files.length; i++) {
-                       if (files[i].getName().startsWith(RTS_UNPROC_PREFIX)) {
-                               if (this.handle_rts(files[i])) {
+                       if (!files[i].getName().startsWith(RTS_UNPROC_PREFIX))
+                               continue;
+                       if (this.handle_rts(files[i])) {
+                               files[i].delete();
+                       } else {
+                               String[] parts = files[i].getName().split(":", 
2);
+                               
+                               int tries;
+                               if (parts.length < 2) {
+                                       tries = 0;
+                               } else {
+                                       tries = Integer.parseInt(parts[1]);
+                               }
+                               tries++;
+                               if (tries > RTS_MAX_ATTEMPTS) {
+                                       System.out.println("Maximum attempts at 
handling RTS reached - deleting RTS");
                                        files[i].delete();
                                } else {
-                                       String[] parts = 
files[i].getName().split(":", 2);
-                                       
-                                       int tries;
-                                       if (parts.length < 2) {
-                                               tries = 0;
-                                       } else {
-                                               tries = 
Integer.parseInt(parts[1]);
-                                       }
-                                       tries++;
-                                       if (tries > RTS_MAX_ATTEMPTS) {
-                                               System.out.println("Maximum 
attempts at handling RTS reached - deleting RTS");
-                                               files[i].delete();
-                                       } else {
-                                               File newname = new 
File(this.contact_dir, RTS_UNPROC_PREFIX + ":" + tries);
-                                               files[i].renameTo(newname);
-                                       }
+                                       File newname = new 
File(this.contact_dir, RTS_UNPROC_PREFIX + ":" + tries);
+                                       files[i].renameTo(newname);
                                }
                        }
                }
@@ -164,6 +164,8 @@
                        return true;
                }

+               System.out.println("RTS decrypted to: "+new String(plaintext));
+               
                File rtsfile = null;
                byte[] their_encrypted_sig;
                int messagebytes = 0;
@@ -235,6 +237,8 @@

                HighLevelFCPClient fcpcli = new HighLevelFCPClient();

+               System.out.println("Trying to fetch sender's mailsite: 
"+their_mailsite);
+               
                File msfile = fcpcli.fetch(their_mailsite);
                if (msfile == null) {
                        // oh well, try again in a bit
@@ -283,6 +287,7 @@
                                return true;
                        }
                }
+               System.out.println("Signature valid :)");
                // the signature is valid! Hooray!
                // Now verify the message is for us
                String our_mailsite_keybody;
@@ -301,6 +306,8 @@
                        return true;
                }

+               System.out.println("Original message intended for us :)");
+               
                // create the inbound contact
                FreenetURI their_mailsite_furi;
                try {
@@ -320,6 +327,8 @@
                msfile.delete();
                rtsfile.delete();

+               System.out.println("Inbound contact created!");
+               
                return true;
        }


Modified: trunk/apps/Freemail/src/freemail/RTSLog.java
===================================================================
--- trunk/apps/Freemail/src/freemail/RTSLog.java        2006-07-19 02:14:57 UTC 
(rev 9660)
+++ trunk/apps/Freemail/src/freemail/RTSLog.java        2006-07-19 11:59:22 UTC 
(rev 9661)
@@ -3,6 +3,8 @@
 import java.util.Date;
 import java.util.Set;
 import java.util.Iterator;
+import java.util.Vector;
+import java.util.Enumeration;
 import java.io.File;

 import freemail.utils.PropsFile;
@@ -36,6 +38,7 @@

        public void pruneBefore(Date keepafter) {
                Set props = this.logfile.listProps();
+               Vector hitlist = new Vector();

                Iterator i = props.iterator();
                while (i.hasNext()) {
@@ -53,11 +56,18 @@
                        Date logdate = 
DateStringFactory.DateFromKeyString(datestr);
                        if (logdate == null) {
                                // couldn't parse the date... hmm
-                               this.logfile.remove(cur);
+                               hitlist.add(cur);
                        } else if (logdate.before(keepafter)) {
-                               this.logfile.remove(cur);
+                               hitlist.add(cur);
                        }
                }
+               
+               Enumeration e = hitlist.elements();
+               while (e.hasMoreElements()) {
+                       String victim = (String) e.nextElement();
+                       
+                       this.logfile.remove(victim);
+               }
        }

        public int getNextId(String day) {


Reply via email to