You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/12/22 23:17:32 UTC
svn commit: r1222491 - in /james/protocols/trunk/smtp/src:
main/java/org/apache/james/protocols/smtp/core/
main/java/org/apache/james/protocols/smtp/core/esmtp/
main/java/org/apache/james/protocols/smtp/core/fastfail/
test/java/org/apache/james/protoco...
Author: norman
Date: Thu Dec 22 22:17:31 2011
New Revision: 1222491
URL: http://svn.apache.org/viewvc?rev=1222491&view=rev
Log:
Remove usage of @deprecated methods. See PROTOCOLS-63
Modified:
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java Thu Dec 22 22:17:31 2011
@@ -20,6 +20,7 @@ package org.apache.james.protocols.smtp.
import java.util.Locale;
+import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.smtp.MailAddress;
import org.apache.james.protocols.smtp.SMTPRetCode;
import org.apache.james.protocols.smtp.SMTPSession;
@@ -40,8 +41,8 @@ public abstract class AbstractSenderAuth
MailAddress rcpt) {
if (session.getUser() != null) {
String authUser = (session.getUser()).toLowerCase(Locale.US);
- MailAddress senderAddress = (MailAddress) session.getState().get(
- SMTPSession.SENDER);
+ MailAddress senderAddress = (MailAddress) session.getAttachment(
+ SMTPSession.SENDER, ProtocolSession.State.Transaction);
String username= null;
if (senderAddress != null) {
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java Thu Dec 22 22:17:31 2011
@@ -25,6 +25,7 @@ import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
+import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.CommandHandler;
@@ -113,8 +114,8 @@ public class DataCmdHandler implements C
*/
@SuppressWarnings("unchecked")
protected Response doDATA(SMTPSession session, String argument) {
- MailEnvelope env = createEnvelope(session, (MailAddress) session.getState().get(SMTPSession.SENDER), new ArrayList<MailAddress>((Collection<MailAddress>)session.getState().get(SMTPSession.RCPT_LIST)));
- session.getState().put(MAILENV, env);
+ MailEnvelope env = createEnvelope(session, (MailAddress) session.getAttachment(SMTPSession.SENDER,ProtocolSession.State.Transaction), new ArrayList<MailAddress>((Collection<MailAddress>)session.getAttachment(SMTPSession.RCPT_LIST,ProtocolSession.State.Transaction)));
+ session.setAttachment(MAILENV, env,ProtocolSession.State.Transaction);
session.pushLineHandler(lineHandler);
return new SMTPResponse(SMTPRetCode.DATA_READY, "Ok Send data ending with <CRLF>.<CRLF>");
@@ -167,9 +168,9 @@ public class DataCmdHandler implements C
if ((argument != null) && (argument.length() > 0)) {
return new SMTPResponse(SMTPRetCode.SYNTAX_ERROR_COMMAND_UNRECOGNIZED, DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.DELIVERY_INVALID_ARG)+" Unexpected argument provided with DATA command");
}
- if (!session.getState().containsKey(SMTPSession.SENDER)) {
+ if (session.getAttachment(SMTPSession.SENDER, ProtocolSession.State.Transaction) == null) {
return new SMTPResponse(SMTPRetCode.BAD_SEQUENCE, DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.DELIVERY_OTHER)+" No sender specified");
- } else if (!session.getState().containsKey(SMTPSession.RCPT_LIST)) {
+ } else if (session.getAttachment(SMTPSession.RCPT_LIST, ProtocolSession.State.Transaction) == null) {
return new SMTPResponse(SMTPRetCode.BAD_SEQUENCE, DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.DELIVERY_OTHER)+" No recipients specified");
}
return null;
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java Thu Dec 22 22:17:31 2011
@@ -26,6 +26,7 @@ import java.io.OutputStream;
import java.util.LinkedList;
import java.util.List;
+import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.ExtensibleHandler;
import org.apache.james.protocols.api.handler.LineHandler;
@@ -57,7 +58,7 @@ public class DataLineMessageHookHandler
* @see org.apache.james.protocols.smtp.core.DataLineFilter#onLine(SMTPSession, byte[], LineHandler)
*/
public Response onLine(final SMTPSession session, byte[] line, LineHandler<SMTPSession> next) {
- MailEnvelopeImpl env = (MailEnvelopeImpl) session.getState().get(DataCmdHandler.MAILENV);
+ MailEnvelopeImpl env = (MailEnvelopeImpl) session.getAttachment(DataCmdHandler.MAILENV, ProtocolSession.State.Transaction);
OutputStream out = env.getMessageOutputStream();
try {
// 46 is "."
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java Thu Dec 22 22:17:31 2011
@@ -23,6 +23,8 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.smtp.SMTPResponse;
import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -55,8 +57,7 @@ public class HeloCmdHandler extends Abst
*/
protected Response doCoreCmd(SMTPSession session, String command,
String parameters) {
- session.getConnectionState().put(SMTPSession.CURRENT_HELO_MODE,
- COMMAND_NAME);
+ session.setAttachment(SMTPSession.CURRENT_HELO_MODE, COMMAND_NAME, ProtocolSession.State.Connection);
StringBuilder response = new StringBuilder();
response.append(session.getConfiguration().getHelloName()).append(
" Hello ").append(parameters).append(" [").append(
@@ -79,7 +80,7 @@ public class HeloCmdHandler extends Abst
+ " Domain address required: " + COMMAND_NAME);
} else {
// store provided name
- session.getState().put(SMTPSession.CURRENT_HELO_NAME, parameters);
+ session.setAttachment(SMTPSession.CURRENT_HELO_NAME, parameters, State.Connection);
return null;
}
}
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java Thu Dec 22 22:17:31 2011
@@ -29,6 +29,7 @@ import java.util.Locale;
import java.util.Map;
import java.util.StringTokenizer;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.smtp.MailAddress;
@@ -61,7 +62,7 @@ public class MailCmdHandler extends Abst
// Check if the response was not ok
if (response.getRetCode().equals(SMTPRetCode.MAIL_OK) == false) {
// cleanup the session
- session.getState().remove(SMTPSession.SENDER);
+ session.setAttachment(SMTPSession.SENDER, null, State.Transaction);
}
return response;
@@ -78,8 +79,8 @@ public class MailCmdHandler extends Abst
*/
private Response doMAIL(SMTPSession session, String argument) {
StringBuilder responseBuffer = new StringBuilder();
- MailAddress sender = (MailAddress) session.getState().get(
- SMTPSession.SENDER);
+ MailAddress sender = (MailAddress) session.getAttachment(
+ SMTPSession.SENDER, State.Transaction);
responseBuffer.append(
DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.ADDRESS_OTHER))
.append(" Sender <");
@@ -129,12 +130,12 @@ public class MailCmdHandler extends Abst
sender = argument.substring(colonIndex + 1);
argument = argument.substring(0, colonIndex);
}
- if (session.getState().containsKey(SMTPSession.SENDER)) {
+ if (session.getAttachment(SMTPSession.SENDER, State.Transaction) != null) {
return new SMTPResponse(SMTPRetCode.BAD_SEQUENCE, DSNStatus
.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_OTHER)
+ " Sender already specified");
- } else if (!session.getConnectionState().containsKey(
- SMTPSession.CURRENT_HELO_MODE)
+ } else if (session.getAttachment(
+ SMTPSession.CURRENT_HELO_MODE, State.Connection) == null
&& session.getConfiguration().useHeloEhloEnforcement()) {
return new SMTPResponse(SMTPRetCode.BAD_SEQUENCE, DSNStatus
.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_OTHER)
@@ -244,7 +245,7 @@ public class MailCmdHandler extends Abst
}
// Store the senderAddress in session map
- session.getState().put(SMTPSession.SENDER, senderAddress);
+ session.setAttachment(SMTPSession.SENDER, senderAddress, State.Transaction);
}
return null;
}
@@ -260,7 +261,7 @@ public class MailCmdHandler extends Abst
* {@inheritDoc}
*/
protected HookResult callHook(MailHook rawHook, SMTPSession session, String parameters) {
- return rawHook.doMail(session,(MailAddress) session.getState().get(SMTPSession.SENDER));
+ return rawHook.doMail(session,(MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction));
}
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java Thu Dec 22 22:17:31 2011
@@ -26,6 +26,7 @@ import java.util.Collections;
import java.util.Locale;
import java.util.StringTokenizer;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.CommandHandler;
import org.apache.james.protocols.smtp.MailAddress;
@@ -62,15 +63,15 @@ public class RcptCmdHandler extends Abst
@SuppressWarnings("unchecked")
protected Response doCoreCmd(SMTPSession session, String command,
String parameters) {
- Collection<MailAddress> rcptColl = (Collection<MailAddress>) session.getState().get(
- SMTPSession.RCPT_LIST);
+ Collection<MailAddress> rcptColl = (Collection<MailAddress>) session.getAttachment(
+ SMTPSession.RCPT_LIST, State.Transaction);
if (rcptColl == null) {
rcptColl = new ArrayList<MailAddress>();
}
- MailAddress recipientAddress = (MailAddress) session.getState().get(
- CURRENT_RECIPIENT);
+ MailAddress recipientAddress = (MailAddress) session.getAttachment(
+ CURRENT_RECIPIENT, State.Transaction);
rcptColl.add(recipientAddress);
- session.getState().put(SMTPSession.RCPT_LIST, rcptColl);
+ session.setAttachment(SMTPSession.RCPT_LIST, rcptColl, State.Transaction);
StringBuilder response = new StringBuilder();
response
.append(
@@ -95,7 +96,7 @@ public class RcptCmdHandler extends Abst
recipient = argument.substring(colonIndex + 1);
argument = argument.substring(0, colonIndex);
}
- if (!session.getState().containsKey(SMTPSession.SENDER)) {
+ if (session.getAttachment(SMTPSession.SENDER, State.Transaction) == null) {
return new SMTPResponse(SMTPRetCode.BAD_SEQUENCE, DSNStatus
.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_OTHER)
+ " Need MAIL before RCPT");
@@ -203,7 +204,7 @@ public class RcptCmdHandler extends Abst
optionTokenizer = null;
}
- session.getState().put(CURRENT_RECIPIENT,recipientAddress);
+ session.setAttachment(CURRENT_RECIPIENT,recipientAddress, State.Transaction);
return null;
}
@@ -218,11 +219,10 @@ public class RcptCmdHandler extends Abst
} else if (null != recipient) {
sb.append(" [to:" + recipient + "]");
}
- if (null != session.getState().get(SMTPSession.SENDER)) {
- sb
- .append(" [from:"
- + ((MailAddress) session.getState().get(
- SMTPSession.SENDER)).toString() + "]");
+ if (null != session.getAttachment(SMTPSession.SENDER, State.Transaction)) {
+ sb.append(" [from:"
+ + ((MailAddress) session.getAttachment(
+ SMTPSession.SENDER, State.Transaction)).toString() + "]");
}
return sb.toString();
}
@@ -247,8 +247,8 @@ public class RcptCmdHandler extends Abst
protected HookResult callHook(RcptHook rawHook, SMTPSession session,
String parameters) {
return rawHook.doRcpt(session,
- (MailAddress) session.getState().get(SMTPSession.SENDER),
- (MailAddress) session.getState().get(CURRENT_RECIPIENT));
+ (MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction),
+ (MailAddress) session.getAttachment(CURRENT_RECIPIENT, State.Transaction));
}
protected String getDefaultDomain() {
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java Thu Dec 22 22:17:31 2011
@@ -26,6 +26,7 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.LineHandler;
import org.apache.james.protocols.smtp.MailAddress;
@@ -52,10 +53,10 @@ public class ReceivedDataLineFilter impl
* @see org.apache.james.protocols.smtp.core.DataLineFilter#onLine(SMTPSession, byte[], LineHandler)
*/
public Response onLine(SMTPSession session, byte[] line, LineHandler<SMTPSession> next) {
- if (session.getState().containsKey(HEADERS_WRITTEN) == false) {
+ if (session.getAttachment(HEADERS_WRITTEN, State.Transaction) == null) {
Response response = addNewReceivedMailHeaders(session, next);
- session.getState().put(HEADERS_WRITTEN, true);
+ session.setAttachment(HEADERS_WRITTEN, true, State.Transaction);
if (response != null) {
return response;
@@ -70,8 +71,8 @@ public class ReceivedDataLineFilter impl
try {
StringBuilder headerLineBuffer = new StringBuilder();
- String heloMode = (String) session.getConnectionState().get(SMTPSession.CURRENT_HELO_MODE);
- String heloName = (String) session.getConnectionState().get(SMTPSession.CURRENT_HELO_NAME);
+ String heloMode = (String) session.getAttachment(SMTPSession.CURRENT_HELO_MODE, State.Connection);
+ String heloName = (String) session.getAttachment(SMTPSession.CURRENT_HELO_NAME, State.Connection);
// Put our Received header first
headerLineBuffer.append("Received: from ").append(session.getRemoteAddress().getHostName());
@@ -93,7 +94,7 @@ public class ReceivedDataLineFilter impl
headerLineBuffer.append(" ID ").append(session.getSessionID());
- if (((Collection<?>) session.getState().get(SMTPSession.RCPT_LIST)).size() == 1) {
+ if (((Collection<?>) session.getAttachment(SMTPSession.RCPT_LIST, State.Transaction)).size() == 1) {
// Only indicate a recipient if they're the only recipient
// (prevents email address harvesting and large headers in
// bulk email)
@@ -102,7 +103,7 @@ public class ReceivedDataLineFilter impl
headerLineBuffer.delete(0, headerLineBuffer.length());
headerLineBuffer.delete(0, headerLineBuffer.length());
- headerLineBuffer.append(" for <").append(((List<MailAddress>) session.getState().get(SMTPSession.RCPT_LIST)).get(0).toString()).append(">;").append("\r\n");
+ headerLineBuffer.append(" for <").append(((List<MailAddress>) session.getAttachment(SMTPSession.RCPT_LIST, State.Transaction)).get(0).toString()).append(">;").append("\r\n");
response = next.onLine(session, headerLineBuffer.toString().getBytes(CHARSET));
if (response != null) {
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java Thu Dec 22 22:17:31 2011
@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.smtp.SMTPResponse;
import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -60,13 +61,13 @@ public class UnknownCmdHandler extends A
@Override
protected Response doFilterChecks(SMTPSession session, String command, String parameters) {
- session.getState().put("CURR_COMMAND", command);
+ session.setAttachment("CURR_COMMAND", command, State.Transaction);
return null;
}
@Override
protected HookResult callHook(UnknownHook rawHook, SMTPSession session, String parameters) {
- return rawHook.doUnknown(session, (String) session.getState().get("CURR_COMMAND"));
+ return rawHook.doUnknown(session, (String) session.getAttachment("CURR_COMMAND", State.Transaction));
}
@Override
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java Thu Dec 22 22:17:31 2011
@@ -24,6 +24,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.smtp.SMTPResponse;
import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -62,8 +63,8 @@ public class EhloCmdHandler extends Abst
.append(" [")
.append(session.getRemoteAddress().getAddress().getHostAddress()).append("])"));
- session.getConnectionState().put(SMTPSession.CURRENT_HELO_MODE,
- COMMAND_NAME);
+ session.setAttachment(SMTPSession.CURRENT_HELO_MODE,
+ COMMAND_NAME, State.Connection);
processExtensions(session, resp);
@@ -146,7 +147,7 @@ public class EhloCmdHandler extends Abst
+ " Domain address required: " + COMMAND_NAME);
} else {
// store provided name
- session.getState().put(SMTPSession.CURRENT_HELO_NAME, parameters);
+ session.setAttachment(SMTPSession.CURRENT_HELO_NAME, parameters, State.Transaction);
return null;
}
}
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java Thu Dec 22 22:17:31 2011
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.List;
import org.apache.james.protocols.api.Response;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.handler.LineHandler;
import org.apache.james.protocols.smtp.MailEnvelope;
import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -52,7 +53,7 @@ public class MailSizeEsmtpExtension impl
public HookResult doMailParameter(SMTPSession session, String paramName,
String paramValue) {
HookResult res = doMailSize(session, paramValue,
- (String) session.getState().get(SMTPSession.SENDER));
+ (String) session.getAttachment(SMTPSession.SENDER, State.Transaction));
return res;
}
@@ -131,7 +132,7 @@ public class MailSizeEsmtpExtension impl
} else {
// put the message size in the message state so it can be used
// later to restrict messages for user quotas, etc.
- session.getState().put(MESG_SIZE, Integer.valueOf(size));
+ session.setAttachment(MESG_SIZE, Integer.valueOf(size), State.Transaction);
}
return null;
}
@@ -142,7 +143,7 @@ public class MailSizeEsmtpExtension impl
*/
public Response onLine(SMTPSession session, byte[] line, LineHandler<SMTPSession> next) {
Response response = null;
- Boolean failed = (Boolean) session.getState().get(MESG_FAILED);
+ Boolean failed = (Boolean) session.getAttachment(MESG_FAILED, State.Transaction);
// If we already defined we failed and sent a reply we should simply
// wait for a CRLF.CRLF to be sent by the client.
if (failed != null && failed.booleanValue()) {
@@ -151,7 +152,7 @@ public class MailSizeEsmtpExtension impl
if (line.length == 3 && line[0] == 46) {
response = next.onLine(session, line);
} else {
- Long currentSize = (Long) session.getState().get("CURRENT_SIZE");
+ Long currentSize = (Long) session.getAttachment("CURRENT_SIZE", State.Transaction);
Long newSize;
if (currentSize == null) {
newSize = Long.valueOf(line.length);
@@ -164,7 +165,7 @@ public class MailSizeEsmtpExtension impl
// logging of extra lines of data
// that are sent after the size limit has
// been hit.
- session.getState().put(MESG_FAILED, Boolean.TRUE);
+ session.setAttachment(MESG_FAILED, Boolean.TRUE, State.Transaction);
// then let the client know that the size
// limit has been hit.
response = next.onLine(session, ".\r\n".getBytes());
@@ -172,7 +173,7 @@ public class MailSizeEsmtpExtension impl
response = next.onLine(session, line);
}
- session.getState().put("CURRENT_SIZE", newSize);
+ session.setAttachment("CURRENT_SIZE", newSize, State.Transaction);
}
}
return response;
@@ -182,14 +183,14 @@ public class MailSizeEsmtpExtension impl
* @see org.apache.james.protocols.smtp.hook.MessageHook#onMessage(SMTPSession, MailEnvelope)
*/
public HookResult onMessage(SMTPSession session, MailEnvelope mail) {
- Boolean failed = (Boolean) session.getState().get(MESG_FAILED);
+ Boolean failed = (Boolean) session.getAttachment(MESG_FAILED, State.Transaction);
if (failed != null && failed.booleanValue()) {
HookResult response = new HookResult(HookReturnCode.DENY, SMTPRetCode.QUOTA_EXCEEDED,DSNStatus.getStatus(DSNStatus.PERMANENT,
DSNStatus.SYSTEM_MSG_TOO_BIG) + " Maximum message size exceeded");
StringBuilder errorBuffer = new StringBuilder(256).append(
"Rejected message from ").append(
- session.getState().get(SMTPSession.SENDER).toString())
+ session.getAttachment(SMTPSession.SENDER, State.Transaction).toString())
.append(" from ").append(session.getRemoteAddress().getAddress().getHostAddress())
.append(" exceeding system maximum message size of ")
.append(
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java Thu Dec 22 22:17:31 2011
@@ -24,6 +24,7 @@ package org.apache.james.protocols.smtp.
import java.util.Collection;
import java.util.StringTokenizer;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.DNSService;
import org.apache.james.protocols.smtp.MailAddress;
import org.apache.james.protocols.smtp.SMTPSession;
@@ -167,11 +168,11 @@ public class DNSRBLHandler implements R
// Set the detail
String blocklistedDetail = txt.iterator().next().toString();
- session.getConnectionState().put(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, blocklistedDetail);
+ session.setAttachment(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, blocklistedDetail, State.Connection);
}
}
- session.getConnectionState().put(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, "true");
+ session.setAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, "true", State.Connection);
return;
} catch (java.net.UnknownHostException uhe) {
// if it is unknown, it isn't blocked
@@ -190,7 +191,7 @@ public class DNSRBLHandler implements R
checkDNSRBL(session, session.getRemoteAddress().getAddress().getHostAddress());
if (!session.isRelayingAllowed()) {
- String blocklisted = (String) session.getConnectionState().get(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME);
+ String blocklisted = (String) session.getAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, State.Connection);
if (blocklisted != null) { // was found in the RBL
if (blocklistedDetail == null) {
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java Thu Dec 22 22:17:31 2011
@@ -20,6 +20,7 @@
package org.apache.james.protocols.smtp.core.fastfail;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.SMTPSession;
import org.apache.james.protocols.smtp.hook.HookResult;
import org.apache.james.protocols.smtp.hook.HookReturnCode;
@@ -46,13 +47,13 @@ public class MaxUnknownCmdHandler implem
* @see org.apache.james.protocols.smtp.hook.UnknownHook#doUnknown(org.apache.james.protocols.smtp.SMTPSession, java.lang.String)
*/
public HookResult doUnknown(SMTPSession session, String command) {
- Integer count = (Integer) session.getState().get(UNKOWN_COMMAND_COUNT);
+ Integer count = (Integer) session.getAttachment(UNKOWN_COMMAND_COUNT, State.Transaction);
if (count == null) {
count = 1;
} else {
count++;
}
- session.getState().put(UNKOWN_COMMAND_COUNT, count);
+ session.setAttachment(UNKOWN_COMMAND_COUNT, count, State.Transaction);
if (count > maxUnknown) {
return new HookResult(HookReturnCode.DENY | HookReturnCode.DISCONNECT, "521", "Closing connection as to many unknown commands received");
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java Thu Dec 22 22:17:31 2011
@@ -22,6 +22,7 @@ package org.apache.james.protocols.smtp.
import java.net.UnknownHostException;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.DNSService;
import org.apache.james.protocols.smtp.MailAddress;
import org.apache.james.protocols.smtp.SMTPRetCode;
@@ -70,7 +71,7 @@ public class ResolvableEhloHeloHandler i
protected void checkEhloHelo(SMTPSession session, String argument) {
if (isBadHelo(session, argument)) {
- session.getState().put(BAD_EHLO_HELO, "true");
+ session.setAttachment(BAD_EHLO_HELO, "true", State.Transaction);
}
}
@@ -93,7 +94,7 @@ public class ResolvableEhloHeloHandler i
protected boolean check(SMTPSession session,MailAddress rcpt) {
// not reject it
- if (session.getState().get(BAD_EHLO_HELO) == null) {
+ if (session.getAttachment(BAD_EHLO_HELO, State.Transaction) == null) {
return false;
}
@@ -106,7 +107,7 @@ public class ResolvableEhloHeloHandler i
public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
if (check(session,rcpt)) {
return new HookResult(HookReturnCode.DENY,SMTPRetCode.SYNTAX_ERROR_ARGUMENTS,DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG)
- + " Provided EHLO/HELO " + session.getState().get(SMTPSession.CURRENT_HELO_NAME) + " can not resolved.");
+ + " Provided EHLO/HELO " + session.getAttachment(SMTPSession.CURRENT_HELO_NAME, State.Transaction) + " can not resolved.");
} else {
return new HookResult(HookReturnCode.DECLINED);
}
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java Thu Dec 22 22:17:31 2011
@@ -24,6 +24,7 @@ package org.apache.james.protocols.smtp.
import java.util.Collection;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.MailAddress;
import org.apache.james.protocols.smtp.SMTPRetCode;
import org.apache.james.protocols.smtp.SMTPSession;
@@ -43,7 +44,7 @@ public class SupressDuplicateRcptHandler
*/
@SuppressWarnings("unchecked")
public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
- Collection<MailAddress> rcptList = (Collection<MailAddress>) session.getState().get(SMTPSession.RCPT_LIST);
+ Collection<MailAddress> rcptList = (Collection<MailAddress>) session.getAttachment(SMTPSession.RCPT_LIST, State.Transaction);
// Check if the recipient is already in the rcpt list
if(rcptList != null && rcptList.contains(rcpt)) {
Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java Thu Dec 22 22:17:31 2011
@@ -32,6 +32,7 @@ import java.util.Map;
import junit.framework.TestCase;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.BaseFakeDNSService;
import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
import org.apache.james.protocols.smtp.DNSService;
@@ -117,7 +118,7 @@ public class DNSRBLHandlerTest extends T
*/
private void setupMockedSMTPSession(final MailAddress rcpt) {
mockedSMTPSession = new BaseFakeSMTPSession() {
- HashMap<String,Object> state = new HashMap<String,Object>();
+ HashMap<String,Object> sessionState = new HashMap<String,Object>();
HashMap<String,Object> connectionState = new HashMap<String,Object>();
@Override
@@ -130,7 +131,7 @@ public class DNSRBLHandlerTest extends T
}
public Map<String,Object> getState() {
- return state;
+ return sessionState;
}
public boolean isRelayingAllowed() {
@@ -144,9 +145,29 @@ public class DNSRBLHandlerTest extends T
public int getRcptCount() {
return 0;
}
+
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ if (value == null) {
+ return connectionState.remove(key);
+ } else {
+ return connectionState.put(key, value);
+ }
+ } else {
+ if (value == null) {
+ return sessionState.remove(key);
+ } else {
+ return sessionState.put(key, value);
+ }
+ }
+ }
- public Map<String,Object> getConnectionState() {
- return connectionState;
+ public Object getAttachment(String key, State state) {
+ if (state == State.Connection) {
+ return connectionState.get(key);
+ } else {
+ return sessionState.get(key);
+ }
}
};
@@ -163,8 +184,8 @@ public class DNSRBLHandlerTest extends T
rbl.setGetDetail(true);
rbl.doRcpt(mockedSMTPSession, null, new MailAddress("test@localhost"));
assertEquals("Details","Blocked - see http://www.spamcop.net/bl.shtml?127.0.0.2",
- mockedSMTPSession.getConnectionState().get(RBL_DETAIL_MAIL_ATTRIBUTE_NAME));
- assertNotNull("Blocked",mockedSMTPSession.getConnectionState().get(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME));
+ mockedSMTPSession.getAttachment(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, State.Connection));
+ assertNotNull("Blocked",mockedSMTPSession.getAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, State.Connection));
}
// ip is blacklisted and has txt details but we don'T want to retrieve the txt record
@@ -176,8 +197,8 @@ public class DNSRBLHandlerTest extends T
rbl.setBlacklist(new String[] { "bl.spamcop.net." });
rbl.setGetDetail(false);
rbl.doRcpt(mockedSMTPSession, null, new MailAddress("test@localhost"));
- assertNull("No details",mockedSMTPSession.getConnectionState().get(RBL_DETAIL_MAIL_ATTRIBUTE_NAME));
- assertNotNull("Blocked",mockedSMTPSession.getConnectionState().get(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME));
+ assertNull("No details",mockedSMTPSession.getAttachment(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, State.Connection));
+ assertNotNull("Blocked",mockedSMTPSession.getAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, State.Connection));
}
// ip is allowed to relay
@@ -191,8 +212,8 @@ public class DNSRBLHandlerTest extends T
rbl.setBlacklist(new String[] { "bl.spamcop.net." });
rbl.setGetDetail(true);
rbl.doRcpt(mockedSMTPSession, null, new MailAddress("test@localhost"));
- assertNull("No details",mockedSMTPSession.getConnectionState().get(RBL_DETAIL_MAIL_ATTRIBUTE_NAME));
- assertNull("Not blocked",mockedSMTPSession.getConnectionState().get(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME));
+ assertNull("No details", mockedSMTPSession.getAttachment(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, State.Connection));
+ assertNull("Not blocked", mockedSMTPSession.getAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, State.Connection));
}
// ip not on blacklist
@@ -207,8 +228,8 @@ public class DNSRBLHandlerTest extends T
rbl.setBlacklist(new String[] { "bl.spamcop.net." });
rbl.setGetDetail(true);
rbl.doRcpt(mockedSMTPSession, null, new MailAddress("test@localhost"));
- assertNull("No details",mockedSMTPSession.getConnectionState().get(RBL_DETAIL_MAIL_ATTRIBUTE_NAME));
- assertNull("Not blocked",mockedSMTPSession.getConnectionState().get(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME));
+ assertNull("No details", mockedSMTPSession.getAttachment(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, State.Connection));
+ assertNull("Not blocked", mockedSMTPSession.getAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, State.Connection));
}
// ip on blacklist without txt details
@@ -223,8 +244,8 @@ public class DNSRBLHandlerTest extends T
rbl.setBlacklist(new String[] { "bl.spamcop.net." });
rbl.setGetDetail(true);
rbl.doRcpt(mockedSMTPSession, null, new MailAddress("test@localhost"));
- assertNull(mockedSMTPSession.getConnectionState().get(RBL_DETAIL_MAIL_ATTRIBUTE_NAME));
- assertNotNull("Blocked",mockedSMTPSession.getConnectionState().get(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME));
+ assertNull(mockedSMTPSession.getAttachment(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, State.Connection));
+ assertNotNull("Blocked", mockedSMTPSession.getAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, State.Connection));
}
// ip on whitelist
@@ -239,8 +260,8 @@ public class DNSRBLHandlerTest extends T
rbl.setWhitelist(new String[] { "bl.spamcop.net." });
rbl.setGetDetail(true);
rbl.doRcpt(mockedSMTPSession, null, new MailAddress("test@localhost"));
- assertNull(mockedSMTPSession.getConnectionState().get(RBL_DETAIL_MAIL_ATTRIBUTE_NAME));
- assertNull("Not blocked",mockedSMTPSession.getConnectionState().get(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME));
+ assertNull(mockedSMTPSession.getAttachment(RBL_DETAIL_MAIL_ATTRIBUTE_NAME, State.Connection));
+ assertNull("Not blocked", mockedSMTPSession.getAttachment(RBL_BLOCKLISTED_MAIL_ATTRIBUTE_NAME, State.Connection));
}
Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java Thu Dec 22 22:17:31 2011
@@ -36,10 +36,38 @@ public class MaxUnknownCmdHandlerTest ex
public void testRejectAndClose() throws MailAddressException {
SMTPSession session = new BaseFakeSMTPSession() {
- private final HashMap<String,Object> state = new HashMap<String,Object>();
+ private final HashMap<String,Object> map = new HashMap<String,Object>();
public Map<String,Object> getState() {
- return state;
+ return map;
+ }
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#setAttachment(java.lang.String, java.lang.Object, org.apache.james.protocols.api.ProtocolSession.State)
+ */
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ throw new UnsupportedOperationException();
+
+ } else {
+ if (value == null) {
+ return map.remove(key);
+ } else {
+ return map.put(key, value);
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getAttachment(java.lang.String, org.apache.james.protocols.api.ProtocolSession.State)
+ */
+ public Object getAttachment(String key, State state) {
+ if (state == State.Connection) {
+ throw new UnsupportedOperationException();
+ } else {
+ return map.get(key);
+ }
}
};
Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java Thu Dec 22 22:17:31 2011
@@ -29,6 +29,7 @@ import java.util.Map;
import junit.framework.TestCase;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.BaseFakeDNSService;
import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
import org.apache.james.protocols.smtp.DNSService;
@@ -73,6 +74,37 @@ public class ResolvableEhloHeloHandlerTe
return map;
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#setAttachment(java.lang.String, java.lang.Object, org.apache.james.protocols.api.ProtocolSession.State)
+ */
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ if (value == null) {
+ return connectionMap.remove(key);
+ } else {
+ return connectionMap.put(key, value);
+ }
+ } else {
+ if (value == null) {
+ return map.remove(key);
+ } else {
+ return connectionMap.put(key, value);
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getAttachment(java.lang.String, org.apache.james.protocols.api.ProtocolSession.State)
+ */
+ public Object getAttachment(String key, State state) {
+ if (state == State.Connection) {
+ return connectionMap.get(key);
+ } else {
+ return connectionMap.get(key);
+ }
+ }
};
@@ -98,7 +130,7 @@ public class ResolvableEhloHeloHandlerTe
handler.setDNSService(setupMockDNSServer());
handler.doHelo(session, INVALID_HOST);
- assertNotNull("Invalid HELO",session.getState().get(ResolvableEhloHeloHandler.BAD_EHLO_HELO));
+ assertNotNull("Invalid HELO",session.getAttachment(ResolvableEhloHeloHandler.BAD_EHLO_HELO, State.Transaction));
int result = handler.doRcpt(session,null, mailAddress).getResult();
assertEquals("Reject", result,HookReturnCode.DENY);
@@ -113,7 +145,7 @@ public class ResolvableEhloHeloHandlerTe
handler.setDNSService(setupMockDNSServer());
handler.doHelo(session, VALID_HOST);
- assertNull("Valid HELO",session.getState().get(ResolvableEhloHeloHandler.BAD_EHLO_HELO));
+ assertNull("Valid HELO",session.getAttachment(ResolvableEhloHeloHandler.BAD_EHLO_HELO, State.Transaction));
int result = handler.doRcpt(session,null, mailAddress).getResult();
assertEquals("Not reject", result,HookReturnCode.DECLINED);
@@ -128,7 +160,7 @@ public class ResolvableEhloHeloHandlerTe
handler.setDNSService(setupMockDNSServer());
handler.doHelo(session, INVALID_HOST);
- assertNotNull("Value stored",session.getState().get(ResolvableEhloHeloHandler.BAD_EHLO_HELO));
+ assertNotNull("Value stored",session.getAttachment(ResolvableEhloHeloHandler.BAD_EHLO_HELO, State.Transaction));
int result = handler.doRcpt(session,null, mailAddress).getResult();
@@ -146,7 +178,7 @@ public class ResolvableEhloHeloHandlerTe
handler.setDNSService(setupMockDNSServer());
handler.doHelo(session, INVALID_HOST);
- assertNotNull("Value stored",session.getState().get(ResolvableEhloHeloHandler.BAD_EHLO_HELO));
+ assertNotNull("Value stored",session.getAttachment(ResolvableEhloHeloHandler.BAD_EHLO_HELO, State.Transaction));
int result = handler.doRcpt(session,null, mailAddress).getResult();
Modified: james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java?rev=1222491&r1=1222490&r2=1222491&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java (original)
+++ james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java Thu Dec 22 22:17:31 2011
@@ -27,6 +27,7 @@ import java.util.Map;
import junit.framework.TestCase;
+import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.smtp.BaseFakeDNSService;
import org.apache.james.protocols.smtp.BaseFakeSMTPSession;
import org.apache.james.protocols.smtp.DNSService;
@@ -55,19 +56,46 @@ public class ValidSenderDomainHandlerTes
private SMTPSession setupMockedSession(final MailAddress sender) {
SMTPSession session = new BaseFakeSMTPSession() {
- HashMap<String,Object> state = new HashMap<String,Object>();
+ HashMap<String,Object> map = new HashMap<String,Object>();
public Map<String,Object> getState() {
- state.put(SMTPSession.SENDER, sender);
+ map.put(SMTPSession.SENDER, sender);
- return state;
+ return map;
}
public boolean isRelayingAllowed() {
return false;
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#setAttachment(java.lang.String, java.lang.Object, org.apache.james.protocols.api.ProtocolSession.State)
+ */
+ public Object setAttachment(String key, Object value, State state) {
+ if (state == State.Connection) {
+ throw new UnsupportedOperationException();
+
+ } else {
+ if (value == null) {
+ return getState().remove(key);
+ } else {
+ return getState().put(key, value);
+ }
+ }
+ }
+ /*
+ * (non-Javadoc)
+ * @see org.apache.james.protocols.api.ProtocolSession#getAttachment(java.lang.String, org.apache.james.protocols.api.ProtocolSession.State)
+ */
+ public Object getAttachment(String key, State state) {
+ if (state == State.Connection) {
+ throw new UnsupportedOperationException();
+ } else {
+ return getState().get(key);
+ }
+ }
};
return session;
@@ -87,7 +115,7 @@ public class ValidSenderDomainHandlerTes
ValidSenderDomainHandler handler = new ValidSenderDomainHandler();
SMTPSession session = setupMockedSession(new MailAddress("invalid@invalid"));
handler.setDNSService(setupDNSServer());
- int response = handler.doMail(session,(MailAddress) session.getState().get(SMTPSession.SENDER)).getResult();
+ int response = handler.doMail(session,(MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction)).getResult();
assertEquals("Blocked cause we use reject action", response,HookReturnCode.DENY);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org