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