Author: norman
Date: Sat Sep 24 19:11:43 2011
New Revision: 1175224

URL: http://svn.apache.org/viewvc?rev=1175224&view=rev
Log:
LineHandler and ConnectHandler now return Response. See PROTOCOLS-34

Modified:
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java?rev=1175224&r1=1175223&r2=1175224&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
 Sat Sep 24 19:11:43 2011
@@ -33,6 +33,7 @@ import org.apache.james.core.MailImpl;
 import org.apache.james.core.MimeMessageCopyOnWriteProxy;
 import org.apache.james.core.MimeMessageInputStreamSource;
 import org.apache.james.lifecycle.api.LifecycleUtil;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.api.handler.WiringException;
@@ -69,7 +70,7 @@ public final class DataLineJamesMessageH
      * .james.smtpserver.protocol.SMTPSession, byte[],
      * org.apache.james.api.protocol.LineHandler)
      */
-    public void onLine(SMTPSession session, byte[] line, 
LineHandler<SMTPSession> next) {
+    public Response onLine(SMTPSession session, byte[] line, 
LineHandler<SMTPSession> next) {
         MimeMessageInputStreamSource mmiss = (MimeMessageInputStreamSource) 
session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
 
         try {
@@ -93,15 +94,15 @@ public final class DataLineJamesMessageH
                     mimeMessageCopyOnWriteProxy = new 
MimeMessageCopyOnWriteProxy(mmiss);
                     mail.setMessage(mimeMessageCopyOnWriteProxy);
 
-                    processExtensions(session, mail);
+                    Response response = processExtensions(session, mail);
 
-                    session.popLineHandler();
-                    // next.onLine(session, line);
+                    session.popLineHandler();      
+                    return response;
 
                 } catch (MessagingException e) {
                     // TODO probably return a temporary problem
                     session.getLogger().info("Unexpected error handling DATA 
stream", e);
-                    session.writeResponse(new 
SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unexpected error handling DATA 
stream."));
+                    return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
"Unexpected error handling DATA stream.");
                 } finally {
                     LifecycleUtil.dispose(mimeMessageCopyOnWriteProxy);
                     LifecycleUtil.dispose(mmiss);
@@ -121,19 +122,19 @@ public final class DataLineJamesMessageH
         } catch (IOException e) {
             LifecycleUtil.dispose(mmiss);
 
-            SMTPResponse response;
-            response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) + " Error 
processing message: " + e.getMessage());
+            SMTPResponse response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, 
DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) + " Error 
processing message: " + e.getMessage());
 
             session.getLogger().error("Unknown error occurred while processing 
DATA.", e);
-            session.writeResponse(response);
-            return;
+            
+            return response;
         }
+        return null;
     }
 
     /**
      * @param session
      */
-    private void processExtensions(SMTPSession session, Mail mail) {
+    private Response processExtensions(SMTPSession session, Mail mail) {
         if (mail != null && messageHandlers != null) {
             try {
                 MimeMessageInputStreamSource mmiss = 
(MimeMessageInputStreamSource) 
session.getState().get(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE);
@@ -164,8 +165,7 @@ public final class DataLineJamesMessageH
                     // if the response is received, stop processing of command
                     // handlers
                     if (response != null) {
-                        session.writeResponse(response);
-                        return;
+                        return response;
                     }
                 }
 
@@ -189,8 +189,7 @@ public final class DataLineJamesMessageH
                     // if the response is received, stop processing of command
                     // handlers
                     if (response != null) {
-                        session.writeResponse(response);
-                        break;
+                        return response;
                     }
                 }
             } finally {
@@ -203,6 +202,7 @@ public final class DataLineJamesMessageH
                 session.resetState();
             }
         }
+        return null;
     }
 
     /**

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java?rev=1175224&r1=1175223&r2=1175224&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java
 Sat Sep 24 19:11:43 2011
@@ -22,6 +22,7 @@ package org.apache.james.smtpserver;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ConnectHandler;
 import org.apache.james.protocols.lib.POP3BeforeSMTPHelper;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -61,7 +62,7 @@ public class POP3BeforeSMTPHandler imple
     /**
      * @see 
org.apache.james.smtpserver.protocol.ConnectHandler#onConnect(SMTPSession)
      */
-    public void onConnect(SMTPSession session) {
+    public Response onConnect(SMTPSession session) {
 
         // some kind of random cleanup process
         if (Math.random() > 0.99) {
@@ -72,6 +73,7 @@ public class POP3BeforeSMTPHandler imple
         if (!session.isRelayingAllowed() && 
POP3BeforeSMTPHelper.isAuthorized(session.getRemoteIPAddress())) {
             session.setRelayingAllowed(true);
         }
+        return null;
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to