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: [email protected]
For additional commands, e-mail: [email protected]