Author: dbkr
Date: 2006-08-31 01:04:33 +0000 (Thu, 31 Aug 2006)
New Revision: 10301

Removed:
   trunk/apps/Freemail/src/thirdparty/
Modified:
   trunk/apps/Freemail/src/freemail/MessageBank.java
   trunk/apps/Freemail/src/freemail/OutboundContact.java
   trunk/apps/Freemail/src/freemail/Postman.java
   trunk/apps/Freemail/src/freemail/RTSFetcher.java
   trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java
   trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java
   trunk/apps/Freemail/src/freemail/utils/EmailAddress.java
Log:
Various fixes, including another windows colon fix and a fix for SMTP auth 
login support (used by Outlook Express and just about nothing else).

Modified: trunk/apps/Freemail/src/freemail/MessageBank.java
===================================================================
--- trunk/apps/Freemail/src/freemail/MessageBank.java   2006-08-30 17:59:35 UTC 
(rev 10300)
+++ trunk/apps/Freemail/src/freemail/MessageBank.java   2006-08-31 01:04:33 UTC 
(rev 10301)
@@ -210,7 +210,9 @@
                        // make sure the old nextid file doesn't contain a
                        // value greater than our one
                        if (this.nextId() <= newid) {
-                               nidfile.renameTo(new File(this.dir, NIDFILE));
+                               File main_nid_file = new File(this.dir, 
NIDFILE);
+                               main_nid_file.delete();
+                               nidfile.renameTo(main_nid_file);
                        }
                } catch (IOException ioe) {
                        // how to handle this?

Modified: trunk/apps/Freemail/src/freemail/OutboundContact.java
===================================================================
--- trunk/apps/Freemail/src/freemail/OutboundContact.java       2006-08-30 
17:59:35 UTC (rev 10300)
+++ trunk/apps/Freemail/src/freemail/OutboundContact.java       2006-08-31 
01:04:33 UTC (rev 10301)
@@ -514,6 +514,7 @@
                                fos.write(buf, 0, read);
                        }

+                       fis.close();
                        fos.close();
                } catch (IOException ioe) {
                        System.out.println("IO Error encountered whilst trying 
to send message: "+ioe.getMessage()+" Will try again soon");
@@ -527,7 +528,6 @@
                qm.slot = slot;

                if (qm.setMessageFile(msg) && qm.saveProps()) {
-                       body.delete();
                        return true;
                }
                return false;

Modified: trunk/apps/Freemail/src/freemail/Postman.java
===================================================================
--- trunk/apps/Freemail/src/freemail/Postman.java       2006-08-30 17:59:35 UTC 
(rev 10300)
+++ trunk/apps/Freemail/src/freemail/Postman.java       2006-08-31 01:04:33 UTC 
(rev 10301)
@@ -39,7 +39,9 @@
                        if (first) {
                                if (!this.validateFrom(addr)) {
                                        newmsg.removeHeader("From", froms[i]);
-                                       newmsg.addHeader("From", "**SPOOFED!** 
"+froms[i]);
+                                       EmailAddress e = new 
EmailAddress(froms[i]);
+                                       e.user = "**SPOOFED** "+e.user;
+                                       newmsg.addHeader("From", e.toString());
                                }
                        } else {
                                newmsg.removeHeader("From", froms[i]);

Modified: trunk/apps/Freemail/src/freemail/RTSFetcher.java
===================================================================
--- trunk/apps/Freemail/src/freemail/RTSFetcher.java    2006-08-30 17:59:35 UTC 
(rev 10300)
+++ trunk/apps/Freemail/src/freemail/RTSFetcher.java    2006-08-31 01:04:33 UTC 
(rev 10301)
@@ -69,7 +69,7 @@
                        if (this.handle_rts(files[i])) {
                                files[i].delete();
                        } else {
-                               String[] parts = files[i].getName().split(":", 
2);
+                               String[] parts = files[i].getName().split(",", 
2);

                                int tries;
                                if (parts.length < 2) {
@@ -141,7 +141,7 @@
                        if (result != null) {
                                System.out.println(keybase+slot+": got RTS!");

-                               File rts_dest = new File(this.contact_dir, 
RTS_UNPROC_PREFIX + "-" + log.getAndIncUnprocNextId()+":0");
+                               File rts_dest = new File(this.contact_dir, 
RTS_UNPROC_PREFIX + "-" + log.getAndIncUnprocNextId()+",0");

                                // stick this message in the RTS 'inbox'
                                if (result.renameTo(rts_dest)) {

Modified: trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java
===================================================================
--- trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java      2006-08-30 
17:59:35 UTC (rev 10300)
+++ trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java      2006-08-31 
01:04:33 UTC (rev 10301)
@@ -827,13 +827,9 @@

                String mbname = trimQuotes(msg.args[0]);

-               // for now
-               if (!mbname.equalsIgnoreCase("INBOX")) {
-                       this.reply(msg, "BAD No such mailbox");
-                       return;
-               }
+                MessageBank mb = this.getMailboxFromPath(mbname);

-               SortedMap msgs = this.mb.listMessages();
+               SortedMap msgs = mb.listMessages();

                // gather statistics
                int numrecent = 0;

Modified: trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java
===================================================================
--- trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java      2006-08-30 
17:59:35 UTC (rev 10300)
+++ trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java      2006-08-31 
01:04:33 UTC (rev 10301)
@@ -11,12 +11,13 @@
 import java.io.IOException;
 import java.util.Vector;

-import thirdparty.Base64Coder;
 import freemail.Freemail;
 import freemail.AccountManager;
 import freemail.MessageSender;
 import freemail.utils.EmailAddress;

+import org.bouncycastle.util.encoders.Base64;
+
 public class SMTPHandler implements Runnable {
        private final Socket client;
        private final OutputStream os;
@@ -117,7 +118,7 @@
                        this.ps.print("504 No auth type given\r\n");
                        return;
                } else if (cmd.args[0].equalsIgnoreCase("login")) {
-                       
this.ps.print("334"+Base64Coder.encode("Username:")+"\r\n");
+                       this.ps.print("334 "+new 
String(Base64.encode("Username:".getBytes()))+"\r\n");

                        String b64username;
                        String b64password;
@@ -128,16 +129,18 @@
                        }
                        if (b64username == null) return;

-                       
this.ps.print("334"+Base64Coder.encode("Password:")+"\r\n");
+                       this.ps.print("334 "+new 
String(Base64.encode("Password:".getBytes()))+"\r\n");
                        try {
                                b64password = this.bufrdr.readLine();
                        } catch (IOException ioe) {
                                return;
                        }
                        if (b64password == null) return;
+                        
+                        password = new 
String(Base64.decode(b64password.getBytes()));

-                       uname = Base64Coder.decode(b64username);
-                       password = Base64Coder.decode(b64password);
+                       uname = new 
String(Base64.decode(b64username.getBytes()));
+                       password = new 
String(Base64.decode(b64password.getBytes()));
                } else if (cmd.args[0].equalsIgnoreCase("plain")) {
                        String b64creds;

@@ -153,7 +156,8 @@
                                }
                        }

-                       String[] creds = 
Base64Coder.decode(b64creds).split("\0");
+                        String creds_plain = new 
String(Base64.decode(b64creds.getBytes()));
+                       String[] creds = creds_plain.split("\0");

                        if (creds.length < 2) return;

@@ -201,7 +205,12 @@
                        return;
                }

-               String[] parts = cmd.args[0].split(":", 2);
+               String allargs = new String();
+               for (int i = 0; i < cmd.args.length; i++) {
+                   allargs += cmd.args[i];
+               }
+               
+               String[] parts = allargs.split(":", 2);
                if (parts.length < 2) {
                        this.ps.print("504 Can't understand that syntax\r\n");
                        return;

Modified: trunk/apps/Freemail/src/freemail/utils/EmailAddress.java
===================================================================
--- trunk/apps/Freemail/src/freemail/utils/EmailAddress.java    2006-08-30 
17:59:35 UTC (rev 10300)
+++ trunk/apps/Freemail/src/freemail/utils/EmailAddress.java    2006-08-31 
01:04:33 UTC (rev 10301)
@@ -50,6 +50,15 @@
                if (this.realname == null && this.domain == null) {
                        this.domain = bank.toString();
                }
+               
+               // trim quotes out of the real name field
+               this.user = this.user.trim();
+               if (this.user.substring(0,1).equals("\"")) {
+                   this.user = this.user.substring(1);
+               }
+               if (this.user.substring(this.user.length() - 1).equals("\"")) {
+                   this.user = this.user.substring(0, this.user.length() - 1);
+               }
        }

        public EmailAddress() {


Reply via email to