Author: bago
Date: Tue Dec 26 10:20:45 2006
New Revision: 490346

URL: http://svn.apache.org/viewvc?view=rev&rev=490346
Log:
Removed SMTPSession.abortMessage().
Fixed a bug in URIRBLHandler that was aborting the Message even it the action 
was junkhandler.

Modified:
    
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
    
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
    
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
    
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
    
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
    
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
    
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java

Modified: 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
--- 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
 (original)
+++ 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
 Tue Dec 26 10:20:45 2006
@@ -51,9 +51,7 @@
      * The constants to indicate the current processing mode of the session
      */
     private final static byte COMMAND_MODE = 1;
-    private final static byte RESPONSE_MODE = 2;
     private final static byte MESSAGE_RECEIVED_MODE = 3;
-    private final static byte MESSAGE_ABORT_MODE = 4;
 
     /**
      * Static Random instance used to generate SMTP ids
@@ -226,7 +224,7 @@
                       writeSMTPResponse(response);
                       
                       //if the response is received, stop processing of 
command handlers
-                      if(mode == MESSAGE_ABORT_MODE) {
+                      if(response != null) {
                           break;
                       }
                   }
@@ -280,9 +278,12 @@
                     writeSMTPResponse(response);
                     
                     //if the response is received, stop processing of command 
handlers
-                    if(mode != COMMAND_MODE || response != null) {
+                    if(response != null) {
                         break;
                     }
+                    
+                    // NOTE we should never hit this line, otherwise we ended 
the CommandHandlers with
+                    // no responses.
                 }
 
             }        
@@ -299,7 +300,7 @@
         // Write a single-line or multiline response
         if (response != null) {
             if (response.getRawLine() != null) {
-                writeResponse(response.getRawLine());
+                writeLoggedFlushedResponse(response.getRawLine());
             } else {
                 // Iterator i = esmtpextensions.iterator();
                 for (int k = 0; k < response.getLines().size(); k++) {
@@ -308,11 +309,11 @@
                     if (k == response.getLines().size() - 1) {
                         respBuff.append(" ");
                         respBuff.append(response.getLines().get(k));
-                        writeResponse(respBuff.toString());
+                        writeLoggedFlushedResponse(respBuff.toString());
                     } else {
                         respBuff.append("-");
                         respBuff.append(response.getLines().get(k));
-                        writeResponse(respBuff.toString());
+                        writeLoggedResponse(respBuff.toString());
                     }
                 }
             }
@@ -351,14 +352,6 @@
     }
 
 
-    private void writeResponse(String respString) {
-        writeLoggedFlushedResponse(respString);
-        //TODO Explain this well
-        if(mode == COMMAND_MODE) {
-            mode = RESPONSE_MODE;
-        }
-    }
-
     /**
      * @see org.apache.james.smtpserver.SMTPSession#getMail()
      */
@@ -478,13 +471,6 @@
      */
     public String getSessionID() {
         return smtpID;
-    }
-
-    /**
-     * @see org.apache.james.smtpserver.SMTPSession#abortMessage()
-     */
-    public void abortMessage() {
-        mode = MESSAGE_ABORT_MODE;
     }
     
     /**

Modified: 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
--- 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
 (original)
+++ 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
 Tue Dec 26 10:20:45 2006
@@ -71,12 +71,6 @@
     String getRemoteIPAddress();
 
     /**
-     * this makes the message to be dropped inprotocol
-     *
-     */
-    void abortMessage();
-
-    /**
      * Returns Map that consists of the state of the SMTPSession per mail
      *
      * @return map of the current SMTPSession state per mail

Modified: 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
--- 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
 (original)
+++ 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
 Tue Dec 26 10:20:45 2006
@@ -44,6 +44,26 @@
     extends AbstractLogEnabled
     implements CommandHandler {
 
+    private abstract class AbstractSMTPLineHandler implements LineHandler {
+        
+        public void onLine(SMTPSession session, byte[] line) {
+            try {
+                String l = new String(line, "US-ASCII");
+                //System.err.println("((("+line+")))");
+                SMTPResponse res = onCommand(session,l);
+                session.popLineHandler();
+                session.writeSMTPResponse(res);
+            } catch (UnsupportedEncodingException e) {
+                // TODO should never happen
+                e.printStackTrace();
+            }
+        }
+
+        protected abstract SMTPResponse onCommand(SMTPSession session, String 
l);
+    }
+
+
+
     /**
      * The text string for the SMTP AUTH type PLAIN.
      */
@@ -88,21 +108,10 @@
             if (authType.equals(AUTH_TYPE_PLAIN)) {
                 String userpass;
                 if (initialResponse == null) {
-                    session.pushLineHandler(new LineHandler() {
-
-                        public void onLine(SMTPSession session, byte[] line) {
-                            try {
-                                String l = new String(line, "US-ASCII");
-                                //System.err.println("((("+line+")))");
-                                SMTPResponse res = doPlainAuthPass(session, l);
-                                session.popLineHandler();
-                                session.writeSMTPResponse(res);
-                            } catch (UnsupportedEncodingException e) {
-                                // TODO should never happen
-                                e.printStackTrace();
-                            }
+                    session.pushLineHandler(new AbstractSMTPLineHandler() {
+                        protected SMTPResponse onCommand(SMTPSession session, 
String l) {
+                            return doPlainAuthPass(session, l);
                         }
-                        
                     });
                     return new SMTPResponse("334", "OK. Continue 
authentication");
                 } else {
@@ -112,19 +121,10 @@
             } else if (authType.equals(AUTH_TYPE_LOGIN)) {
                 
                 if (initialResponse == null) {
-                    session.pushLineHandler(new LineHandler() {
-
-                        public void onLine(SMTPSession session, byte[] line) {
-                            try {
-                                SMTPResponse res = doLoginAuthPass(session, 
new String(line, "US-ASCII"));
-                                session.popLineHandler();
-                                session.writeSMTPResponse(res);
-                            } catch (UnsupportedEncodingException e) {
-                                // TODO should never happen
-                                e.printStackTrace();
-                            }
+                    session.pushLineHandler(new AbstractSMTPLineHandler() {
+                        protected SMTPResponse onCommand(SMTPSession session, 
String l) {
+                            return doLoginAuthPass(session, l);
                         }
-                        
                     });
                     return new SMTPResponse("334", "VXNlcm5hbWU6"); // base64 
encoded "Username:"
                 } else {
@@ -234,24 +234,17 @@
                 user = null;
             }
         }
-        session.pushLineHandler(new LineHandler() {
+        session.pushLineHandler(new AbstractSMTPLineHandler() {
 
             private String user;
 
-            public void onLine(SMTPSession session, byte[] line) {
-                try {
-                    SMTPResponse res = doLoginAuthPassCheck(session, user, new 
String(line, "US-ASCII"));
-                    session.popLineHandler();
-                    session.writeSMTPResponse(res);
-                } catch (UnsupportedEncodingException e) {
-                    // TODO should never happen
-                    e.printStackTrace();
-                }
-            }
-
             public LineHandler setUser(String user) {
                 this.user = user;
                 return this;
+            }
+
+            protected SMTPResponse onCommand(SMTPSession session, String l) {
+                return doLoginAuthPassCheck(session, user, l);
             }
             
         }.setUser(user));

Modified: 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
--- 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
 (original)
+++ 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
 Tue Dec 26 10:20:45 2006
@@ -133,7 +133,6 @@
                     .append(composed.getCompleteStoredScores());
                 getLogger().info(buffer.toString());
                 
-                session.abortMessage();
                 return new SMTPResponse(SMTPRetCode.TRANSACTION_FAILED, 
DSNStatus.getStatus(DSNStatus.PERMANENT,
                             DSNStatus.SECURITY_OTHER) + " This message reach 
the spam hits treshold. Please contact the Postmaster if the email is not SPAM. 
Message rejected");
             }

Modified: 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
--- 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
 (original)
+++ 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
 Tue Dec 26 10:20:45 2006
@@ -187,7 +187,6 @@
                         getLogger().info(buffer.toString());
 
                         // Message reject .. abort it!
-                        session.abortMessage();
                         return new 
SMTPResponse(SMTPRetCode.TRANSACTION_FAILED,DSNStatus.getStatus(DSNStatus.PERMANENT,
                                         DSNStatus.SECURITY_OTHER) + " This 
message reach the spam hits treshold. Please contact the Postmaster if the 
email is not SPAM. Message rejected");
                     }

Modified: 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
--- 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
 (original)
+++ 
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
 Tue Dec 26 10:20:45 2006
@@ -240,7 +240,6 @@
                         session.getState().put(URBLSERVER, uRblServer);
                         session.getState().put(LISTED_DOMAIN,target);
 
-                        session.abortMessage();
                         return true;
 
                     } catch (UnknownHostException uhe) {

Modified: 
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
--- 
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java
 (original)
+++ 
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java
 Tue Dec 26 10:20:45 2006
@@ -39,16 +39,11 @@
 
 public class JunkScoreHandlerTest extends TestCase {
     private String response = null;
-    private boolean messageAborted = false;
     private final static String KEY1 = "KEY1";
     private final static String KEY2 = "KEY2";
     private final static double SCORE1 = 10.0;
     private final static double SCORE2 = 7.1;
 
-    public void setUp() {
-        messageAborted = false;
-    }
-    
     private SMTPSession setupMockedSMTPSession() {
         SMTPSession session = new AbstractSMTPSession() {
             HashMap state = new HashMap();
@@ -64,10 +59,6 @@
                 return cState;
             }
 
-            public void abortMessage() {
-                messageAborted = true;
-            }
-            
             public Mail getMail(){
                 if (m == null) m = getMockMail();
                 return m;
@@ -125,7 +116,6 @@
         SMTPResponse response = handler.onMessage(session);
     
         assertNotNull("Rejected",response);
-        assertTrue("Rejected",messageAborted);
     }
     
     public void testHeaderAction() throws ConfigurationException, 
MessagingException {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to