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 ma...@apache.org on 2018/04/25 08:55:25 UTC
[06/24] james-project git commit: JAMES-2381 Rely on enum for
HookReturnCode
JAMES-2381 Rely on enum for HookReturnCode
This avoids weird int masks that hides the values and the intent.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d57da7bc
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d57da7bc
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d57da7bc
Branch: refs/heads/master
Commit: d57da7bcf371c94cc3a04686306aea6f2cb792e3
Parents: cd366dd
Author: benwa <bt...@linagora.com>
Authored: Fri Apr 20 14:51:15 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Tue Apr 24 15:34:30 2018 +0200
----------------------------------------------------------------------
.../protocols/lmtp/AbstractLMTPServerTest.java | 4 +-
.../AbstractAuthRequiredToRelayRcptHook.java | 4 +-
.../smtp/core/AbstractHookableCmdHandler.java | 20 ++---
...tSenderAuthIdentifyVerificationRcptHook.java | 2 +-
.../smtp/core/DataLineMessageHookHandler.java | 2 +-
.../smtp/core/esmtp/AuthCmdHandler.java | 16 ++--
.../smtp/core/esmtp/MailSizeEsmtpExtension.java | 4 +-
.../core/fastfail/AbstractGreylistHandler.java | 4 +-
.../core/fastfail/AbstractValidRcptHandler.java | 2 +-
.../smtp/core/fastfail/DNSRBLHandler.java | 4 +-
.../smtp/core/fastfail/MaxRcptHandler.java | 2 +-
.../core/fastfail/MaxUnknownCmdHandler.java | 8 +-
.../fastfail/ResolvableEhloHeloHandler.java | 3 +-
.../fastfail/SupressDuplicateRcptHandler.java | 2 +-
.../core/fastfail/ValidSenderDomainHandler.java | 3 +-
.../smtp/core/log/HookResultLogger.java | 49 +++--------
.../james/protocols/smtp/hook/HookResult.java | 48 +++--------
.../protocols/smtp/hook/HookReturnCode.java | 89 ++++++++++++++++++--
.../james/protocols/smtp/hook/SimpleHook.java | 8 +-
.../protocols/smtp/AbstractSMTPServerTest.java | 20 ++---
.../smtp/core/fastfail/MaxRcptHandlerTest.java | 8 +-
.../core/fastfail/MaxUnknownCmdHandlerTest.java | 8 +-
.../fastfail/ResolvableEhloHeloHandlerTest.java | 26 +++---
.../smtp/core/fastfail/SpamTrapHandlerTest.java | 12 +--
.../fastfail/ValidSenderDomainHandlerTest.java | 8 +-
.../protocols/smtp/hook/HookResultTest.java | 39 +--------
.../protocols/smtp/utils/TestMessageHook.java | 2 +-
.../hook/MailboxDeliverToRecipientHandler.java | 4 +-
.../AddDefaultAttributesMessageHook.java | 2 +-
.../james/smtpserver/MailPriorityHandler.java | 2 +-
.../james/smtpserver/SendMailHandler.java | 4 +-
.../SenderAuthIdentifyVerificationRcptHook.java | 2 +-
.../james/smtpserver/SetMimeHeaderHandler.java | 2 +-
.../smtpserver/UsersRepositoryAuthHook.java | 4 +-
.../fastfail/JDBCGreylistHandler.java | 2 +-
.../james/smtpserver/fastfail/SPFHandler.java | 8 +-
.../fastfail/SpamAssassinHandler.java | 4 +-
.../smtpserver/fastfail/URIRBLHandler.java | 6 +-
.../james/smtpserver/fastfail/ValidRcptMX.java | 6 +-
.../apache/james/smtpserver/jmx/HookStats.java | 27 +++---
.../apache/james/smtpserver/SPFHandlerTest.java | 32 +++----
.../smtpserver/SpamAssassinHandlerTest.java | 6 +-
.../james/smtpserver/URIRBLHandlerTest.java | 6 +-
.../james/smtpserver/ValidRcptHandlerTest.java | 36 ++++----
.../james/smtpserver/ValidRcptMXTest.java | 4 +-
45 files changed, 270 insertions(+), 284 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
index 2667642..f022a00 100644
--- a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
+++ b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
@@ -344,10 +344,10 @@ public abstract class AbstractLMTPServerTest extends AbstractSMTPServerTest {
@Override
public HookResult deliver(SMTPSession session, MailAddress recipient, MailEnvelope envelope) {
if (RCPT1.equals(recipient.toString())) {
- return new HookResult(HookReturnCode.DENY);
+ return new HookResult(HookReturnCode.deny());
} else {
delivered.add(envelope);
- return new HookResult(HookReturnCode.OK);
+ return new HookResult(HookReturnCode.ok());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java
index 5c3f880..6f435ec 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java
@@ -32,13 +32,13 @@ import org.apache.james.protocols.smtp.hook.RcptHook;
*/
public abstract class AbstractAuthRequiredToRelayRcptHook implements RcptHook {
- private static final HookResult AUTH_REQUIRED = new HookResult(HookReturnCode.DENY,
+ private static final HookResult AUTH_REQUIRED = new HookResult(HookReturnCode.deny(),
SMTPRetCode.AUTH_REQUIRED, DSNStatus.getStatus(
DSNStatus.PERMANENT,
DSNStatus.SECURITY_AUTH)
+ " Authentication Required");
private static final HookResult RELAYING_DENIED = new HookResult(
- HookReturnCode.DENY,
+ HookReturnCode.deny(),
// sendmail returns 554 (SMTPRetCode.TRANSACTION_FAILED).
// it is not clear in RFC wether it is better to use 550 or 554.
SMTPRetCode.MAILBOX_PERM_UNAVAILABLE,
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
index e7063f2..22723e5 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
@@ -124,9 +124,9 @@ public abstract class AbstractHookableCmdHandler<HookT extends org.apache.james.
}
// call the core cmd if we receive a ok return code of the hook so no other hooks are executed
- if ((hRes.getResult() & HookReturnCode.OK) == HookReturnCode.OK) {
+ if (hRes.getResult().getAction() == HookReturnCode.Action.OK) {
final Response response = doCoreCmd(session, command, parameters);
- if ((hRes.getResult() & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ if (hRes.getResult().isDisconnected()) {
return new Response() {
@Override
@@ -176,11 +176,11 @@ public abstract class AbstractHookableCmdHandler<HookT extends org.apache.james.
*/
public static SMTPResponse calcDefaultSMTPResponse(HookResult result) {
if (result != null) {
- int rCode = result.getResult();
+ HookReturnCode rCode = result.getResult();
String smtpRetCode = result.getSmtpRetCode();
String smtpDesc = result.getSmtpDescription();
- if ((rCode & HookReturnCode.DENY) == HookReturnCode.DENY) {
+ if (rCode.getAction() == HookReturnCode.Action.DENY) {
if (smtpRetCode == null) {
smtpRetCode = SMTPRetCode.TRANSACTION_FAILED;
}
@@ -189,11 +189,11 @@ public abstract class AbstractHookableCmdHandler<HookT extends org.apache.james.
}
SMTPResponse response = new SMTPResponse(smtpRetCode, smtpDesc);
- if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ if (rCode.isDisconnected()) {
response.setEndSession(true);
}
return response;
- } else if ((rCode & HookReturnCode.DENYSOFT) == HookReturnCode.DENYSOFT) {
+ } else if (rCode.getAction() == HookReturnCode.Action.DENYSOFT) {
if (smtpRetCode == null) {
smtpRetCode = SMTPRetCode.LOCAL_ERROR;
}
@@ -202,11 +202,11 @@ public abstract class AbstractHookableCmdHandler<HookT extends org.apache.james.
}
SMTPResponse response = new SMTPResponse(smtpRetCode, smtpDesc);
- if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ if (rCode.isDisconnected()) {
response.setEndSession(true);
}
return response;
- } else if ((rCode & HookReturnCode.OK) == HookReturnCode.OK) {
+ } else if (rCode.getAction() == HookReturnCode.Action.OK) {
if (smtpRetCode == null) {
smtpRetCode = SMTPRetCode.MAIL_OK;
}
@@ -215,11 +215,11 @@ public abstract class AbstractHookableCmdHandler<HookT extends org.apache.james.
}
SMTPResponse response = new SMTPResponse(smtpRetCode, smtpDesc);
- if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ if (rCode.isDisconnected()) {
response.setEndSession(true);
}
return response;
- } else if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ } else if (rCode.isDisconnected()) {
if (smtpRetCode == null) {
smtpRetCode = SMTPRetCode.TRANSACTION_FAILED;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
index de3148e..4e381d4 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
@@ -34,7 +34,7 @@ import org.apache.james.protocols.smtp.hook.RcptHook;
* Handler which check if the authenticated user is the same as the one used as MAIL FROM
*/
public abstract class AbstractSenderAuthIdentifyVerificationRcptHook implements RcptHook {
- private static final HookResult INVALID_AUTH = new HookResult(HookReturnCode.DENY,
+ private static final HookResult INVALID_AUTH = new HookResult(HookReturnCode.deny(),
SMTPRetCode.BAD_SEQUENCE,
DSNStatus.getStatus(DSNStatus.PERMANENT,
DSNStatus.SECURITY_AUTH)
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
index a69c40a..7b99366 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
@@ -153,7 +153,7 @@ public class DataLineMessageHookHandler implements DataLineFilter, ExtensibleHan
}
// Not queue the message!
- return AbstractHookableCmdHandler.calcDefaultSMTPResponse(new HookResult(HookReturnCode.DENY));
+ return AbstractHookableCmdHandler.calcDefaultSMTPResponse(new HookResult(HookReturnCode.deny()));
}
return null;
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
index 450020c..0712d67 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
@@ -429,11 +429,11 @@ public class AuthCmdHandler
*/
protected Response calcDefaultSMTPResponse(HookResult result) {
if (result != null) {
- int rCode = result.getResult();
+ HookReturnCode rCode = result.getResult();
String smtpRetCode = result.getSmtpRetCode();
String smtpDesc = result.getSmtpDescription();
- if ((rCode & HookReturnCode.DENY) == HookReturnCode.DENY) {
+ if (rCode.getAction() == HookReturnCode.Action.DENY) {
if (smtpRetCode == null) {
smtpRetCode = SMTPRetCode.AUTH_FAILED;
}
@@ -443,11 +443,11 @@ public class AuthCmdHandler
SMTPResponse response = new SMTPResponse(smtpRetCode, smtpDesc);
- if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ if (rCode.isDisconnected()) {
response.setEndSession(true);
}
return response;
- } else if ((rCode & HookReturnCode.DENYSOFT) == HookReturnCode.DENYSOFT) {
+ } else if (rCode.getAction() == HookReturnCode.Action.DENYSOFT) {
if (smtpRetCode == null) {
smtpRetCode = SMTPRetCode.LOCAL_ERROR;
}
@@ -457,11 +457,11 @@ public class AuthCmdHandler
SMTPResponse response = new SMTPResponse(smtpRetCode, smtpDesc);
- if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ if (rCode.isDisconnected()) {
response.setEndSession(true);
}
return response;
- } else if ((rCode & HookReturnCode.OK) == HookReturnCode.OK) {
+ } else if (rCode.getAction() == HookReturnCode.Action.OK) {
if (smtpRetCode == null) {
smtpRetCode = SMTPRetCode.AUTH_OK;
}
@@ -471,11 +471,11 @@ public class AuthCmdHandler
SMTPResponse response = new SMTPResponse(smtpRetCode, smtpDesc);
- if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ if (rCode.isDisconnected()) {
response.setEndSession(true);
}
return response;
- } else if ((rCode & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
+ } else if (rCode.isDisconnected()) {
SMTPResponse response = new SMTPResponse("");
response.setEndSession(true);
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
index b150bb8..2c7e7ba 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
@@ -53,8 +53,8 @@ public class MailSizeEsmtpExtension implements MailParametersHook, EhloExtension
private static final String MESG_FAILED = "MESG_FAILED"; // Message failed flag
private static final String[] MAIL_PARAMS = { "SIZE" };
- private static final HookResult SYNTAX_ERROR = new HookResult(HookReturnCode.DENY, SMTPRetCode.SYNTAX_ERROR_ARGUMENTS, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG) + " Syntactically incorrect value for SIZE parameter");
- private static final HookResult QUOTA_EXCEEDED = new HookResult(HookReturnCode.DENY, SMTPRetCode.QUOTA_EXCEEDED, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SYSTEM_MSG_TOO_BIG) + " Message size exceeds fixed maximum message size");
+ private static final HookResult SYNTAX_ERROR = new HookResult(HookReturnCode.deny(), SMTPRetCode.SYNTAX_ERROR_ARGUMENTS, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG) + " Syntactically incorrect value for SIZE parameter");
+ private static final HookResult QUOTA_EXCEEDED = new HookResult(HookReturnCode.deny(), SMTPRetCode.QUOTA_EXCEEDED, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SYSTEM_MSG_TOO_BIG) + " Message size exceeds fixed maximum message size");
public static final int SINGLE_CHARACTER_LINE = 3;
public static final int DOT_BYTE = 46;
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
index 8df48c8..d1ba16e 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
@@ -50,9 +50,9 @@ public abstract class AbstractGreylistHandler implements RcptHook {
private long unseenLifeTime = 14400000;
- private static final HookResult TO_FAST = new HookResult(HookReturnCode.DENYSOFT, SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.NETWORK_DIR_SERVER)
+ private static final HookResult TO_FAST = new HookResult(HookReturnCode.denySoft(), SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.NETWORK_DIR_SERVER)
+ " Temporary rejected: Reconnect to fast. Please try again later");
- private static final HookResult TEMPORARY_REJECT = new HookResult(HookReturnCode.DENYSOFT, SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.NETWORK_DIR_SERVER)
+ private static final HookResult TEMPORARY_REJECT = new HookResult(HookReturnCode.denySoft(), SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.NETWORK_DIR_SERVER)
+ " Temporary rejected: Please try again later");
public void setUnseenLifeTime(long unseenLifeTime) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
index d616896..b3eac76 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
@@ -60,7 +60,7 @@ public abstract class AbstractValidRcptHandler implements RcptHook {
public HookResult reject(MailAddress rcpt) {
LOGGER.info("Rejected message. Unknown user: {}", rcpt);
- return new HookResult(HookReturnCode.DENY,
+ return new HookResult(HookReturnCode.deny(),
SMTPRetCode.MAILBOX_PERM_UNAVAILABLE,
DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.ADDRESS_MAILBOX) + " Unknown user: " + rcpt.toString());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
index 55a811c..2d91e2b 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
@@ -186,11 +186,11 @@ public class DNSRBLHandler implements RcptHook {
if (blocklisted != null) { // was found in the RBL
if (blocklistedDetail == null) {
- return new HookResult(HookReturnCode.DENY,DSNStatus.getStatus(DSNStatus.PERMANENT,
+ return new HookResult(HookReturnCode.deny(),DSNStatus.getStatus(DSNStatus.PERMANENT,
DSNStatus.SECURITY_AUTH) + " Rejected: unauthenticated e-mail from " + session.getRemoteAddress().getAddress()
+ " is restricted. Contact the postmaster for details.");
} else {
- return new HookResult(HookReturnCode.DENY,DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.SECURITY_AUTH) + " " + blocklistedDetail);
+ return new HookResult(HookReturnCode.deny(),DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.SECURITY_AUTH) + " " + blocklistedDetail);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
index 3b084b8..01f9737 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
@@ -36,7 +36,7 @@ import org.slf4j.LoggerFactory;
public class MaxRcptHandler implements RcptHook {
private static final Logger LOGGER = LoggerFactory.getLogger(MaxRcptHandler.class);
- private static final HookResult MAX_RCPT = new HookResult(HookReturnCode.DENY, SMTPRetCode.SYSTEM_STORAGE_ERROR, DSNStatus.getStatus(DSNStatus.NETWORK, DSNStatus.DELIVERY_TOO_MANY_REC)
+ private static final HookResult MAX_RCPT = new HookResult(HookReturnCode.deny(), SMTPRetCode.SYSTEM_STORAGE_ERROR, DSNStatus.getStatus(DSNStatus.NETWORK, DSNStatus.DELIVERY_TOO_MANY_REC)
+ " Requested action not taken: max recipients reached");
private int maxRcpt = 0;
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java
index efd063b..7652c09 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java
@@ -30,8 +30,6 @@ import org.apache.james.protocols.smtp.hook.UnknownHook;
/**
* {@link UnknownHook} implementation which disconnect the client after a issue to many unknown commands
- *
- *
*/
public class MaxUnknownCmdHandler implements UnknownHook {
@@ -64,7 +62,11 @@ public class MaxUnknownCmdHandler implements UnknownHook {
}
session.setAttachment(UNKOWN_COMMAND_COUNT, count, State.Transaction);
if (count > maxUnknown) {
- return new HookResult(HookReturnCode.DENY | HookReturnCode.DISCONNECT, "521", "Closing connection as too many unknown commands received");
+ return new HookResult(new HookReturnCode(
+ HookReturnCode.Action.DENY,
+ HookReturnCode.ConnectionStatus.Disconnected),
+ "521",
+ "Closing connection as too many unknown commands received");
} else {
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
index c31ab73..13a83c5 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
@@ -95,7 +95,8 @@ public class ResolvableEhloHeloHandler implements RcptHook, HeloHook {
@Override
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)
+ return new HookResult(HookReturnCode.deny(),
+ SMTPRetCode.SYNTAX_ERROR_ARGUMENTS,DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG)
+ " Provided EHLO/HELO " + session.getAttachment(SMTPSession.CURRENT_HELO_NAME, State.Connection) + " can not resolved.");
} else {
return HookResult.declined();
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
index 305aefd..99e757d 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
@@ -64,7 +64,7 @@ public class SupressDuplicateRcptHandler implements RcptHook {
.append(rcpt.toString())
.append("> OK");
LOGGER.debug("Duplicate recipient not add to recipient list: {}", rcpt);
- return new HookResult(HookReturnCode.OK,SMTPRetCode.MAIL_OK, responseBuffer.toString());
+ return new HookResult(HookReturnCode.ok(), SMTPRetCode.MAIL_OK, responseBuffer.toString());
}
return HookResult.declined();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java
index 4e3f57e..c99a1a0 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java
@@ -36,7 +36,8 @@ public abstract class ValidSenderDomainHandler implements MailHook {
@Override
public HookResult doMail(SMTPSession session, MailAddress sender) {
if (sender != null && !hasMXRecord(session,sender.getDomain().name())) {
- return new HookResult(HookReturnCode.DENY,SMTPRetCode.SYNTAX_ERROR_ARGUMENTS,DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.ADDRESS_SYNTAX_SENDER) + " sender " + sender + " contains a domain with no valid MX records");
+ return new HookResult(HookReturnCode.deny(),
+ SMTPRetCode.SYNTAX_ERROR_ARGUMENTS, DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.ADDRESS_SYNTAX_SENDER) + " sender " + sender + " contains a domain with no valid MX records");
} else {
return HookResult.declined();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
index 88d274d..d434fed 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
@@ -49,45 +49,20 @@ public class HookResultLogger implements HookResultHook {
@Override
public HookResult onHookResult(SMTPSession session, HookResult hResult, long executionTime, Hook hook) {
- boolean match = false;
- boolean info = false;
- int result = hResult.getResult();
- StringBuilder sb = new StringBuilder();
- sb.append(hook.getClass().getName());
- sb.append(": result=");
- sb.append(result);
- sb.append(" (");
- if ((result & HookReturnCode.DECLINED) == HookReturnCode.DECLINED) {
- sb.append("DECLINED");
- match = true;
- }
- if ((result & HookReturnCode.OK) == HookReturnCode.OK) {
- sb.append("OK");
- match = true;
- }
- if ((result & HookReturnCode.DENY) == HookReturnCode.DENY) {
- sb.append("DENY");
- match = true;
- info = true;
- }
- if ((result & HookReturnCode.DENYSOFT) == HookReturnCode.DENYSOFT) {
- sb.append("DENYSOFT");
- match = true;
- info = true;
- }
- if ((result & HookReturnCode.DISCONNECT) == HookReturnCode.DISCONNECT) {
- if (match) {
- sb.append("|");
- }
- sb.append("DISCONNECT");
- info = true;
- }
- sb.append(")");
+ HookReturnCode result = hResult.getResult();
+
+ boolean requiresInfoLogging = result.getAction() == HookReturnCode.Action.DENY
+ || result.getAction() == HookReturnCode.Action.DENYSOFT
+ || result.isDisconnected();
- if (info) {
- LOGGER.info("{}", sb);
+ if (requiresInfoLogging) {
+ LOGGER.info("{}: result= ({} {})", hook.getClass().getName(),
+ result.getAction(),
+ result.getConnectionStatus());
} else {
- LOGGER.debug("{}", sb);
+ LOGGER.debug("{}: result= ({} {})", hook.getClass().getName(),
+ result.getAction(),
+ result.getConnectionStatus());
}
return hResult;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookResult.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookResult.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookResult.java
index 69f3d4f..048cc92 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookResult.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookResult.java
@@ -22,18 +22,16 @@ package org.apache.james.protocols.smtp.hook;
import java.util.Objects;
import java.util.Optional;
-import com.google.common.base.Preconditions;
-
/**
* Result which get used for hooks
*/
public final class HookResult {
- private static final HookResult DECLINED = new HookResult(HookReturnCode.DECLINED);
- private static final HookResult OK = new HookResult(HookReturnCode.OK);
- private static final HookResult DENY = new HookResult(HookReturnCode.DENY);
- private static final HookResult DENYSOFT = new HookResult(HookReturnCode.DENYSOFT);
- private static final HookResult DISCONNECT = new HookResult(HookReturnCode.DISCONNECT);
+ private static final HookResult DECLINED = new HookResult(HookReturnCode.declined());
+ private static final HookResult OK = new HookResult(HookReturnCode.ok());
+ private static final HookResult DENY = new HookResult(HookReturnCode.deny());
+ private static final HookResult DENYSOFT = new HookResult(HookReturnCode.denySoft());
+ private static final HookResult DISCONNECT = new HookResult(new HookReturnCode(HookReturnCode.Action.NONE, HookReturnCode.ConnectionStatus.Disconnected));
public static HookResult declined() {
return DECLINED;
@@ -55,37 +53,11 @@ public final class HookResult {
return DISCONNECT;
}
- private final int result;
+ private final HookReturnCode result;
private final String smtpRetCode;
private final String smtpDescription;
- public HookResult(int result, String smtpRetCode, CharSequence smtpDescription) {
- boolean match = false;
-
- if ((result & HookReturnCode.DECLINED) == HookReturnCode.DECLINED) {
- if (match == true) {
- throw new IllegalArgumentException();
- }
- match = true;
- }
- if ((result & HookReturnCode.OK) == HookReturnCode.OK) {
- if (match == true) {
- throw new IllegalArgumentException();
- }
- match = true;
- }
- if ((result & HookReturnCode.DENY) == HookReturnCode.DENY) {
- if (match == true) {
- throw new IllegalArgumentException();
- }
- match = true;
- }
- if ((result & HookReturnCode.DENYSOFT) == HookReturnCode.DENYSOFT) {
- if (match == true) {
- throw new IllegalArgumentException();
- }
- match = true;
- }
+ public HookResult(HookReturnCode result, String smtpRetCode, CharSequence smtpDescription) {
this.result = result;
this.smtpRetCode = smtpRetCode;
this.smtpDescription = Optional.ofNullable(smtpDescription)
@@ -93,15 +65,15 @@ public final class HookResult {
.orElse(null);
}
- public HookResult(int result, String smtpDescription) {
+ public HookResult(HookReturnCode result, String smtpDescription) {
this(result, null, smtpDescription);
}
- public HookResult(int result) {
+ public HookResult(HookReturnCode result) {
this(result, null, null);
}
- public int getResult() {
+ public HookReturnCode getResult() {
return result;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookReturnCode.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookReturnCode.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookReturnCode.java
index b1e6de1..caa9f2c 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookReturnCode.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookReturnCode.java
@@ -19,15 +19,86 @@
package org.apache.james.protocols.smtp.hook;
-import com.google.common.collect.ImmutableList;
+import java.util.Objects;
+
+import com.google.common.base.MoreObjects;
public class HookReturnCode {
- public static final int OK = 0x1;
- public static final int DENY = 0x1 << 1;
- public static final int DENYSOFT = 0x1 << 2;
- public static final int DECLINED = 0x1 << 3;
- public static final int DISCONNECT = 0x1 << 4;
-
- public static final ImmutableList<Integer> VALID_RETURN_CODE = ImmutableList.of(
- DECLINED, OK, DENY, DENYSOFT, DISCONNECT);
+
+ public enum Action {
+ OK,
+ DENY,
+ DENYSOFT,
+ DECLINED,
+ NONE
+ }
+
+ public enum ConnectionStatus {
+ Disconnected,
+ Connected
+ }
+
+ public static HookReturnCode denySoft() {
+ return connected(Action.DENYSOFT);
+ }
+
+ public static HookReturnCode deny() {
+ return connected(Action.DENY);
+ }
+
+ public static HookReturnCode ok() {
+ return connected(Action.OK);
+ }
+
+ public static HookReturnCode declined() {
+ return connected(Action.DECLINED);
+ }
+
+ public static HookReturnCode connected(Action action) {
+ return new HookReturnCode(action, ConnectionStatus.Connected);
+ }
+
+ private final Action action;
+ private final ConnectionStatus connectionStatus;
+
+ public HookReturnCode(Action action, ConnectionStatus connectionStatus) {
+ this.action = action;
+ this.connectionStatus = connectionStatus;
+ }
+
+ public Action getAction() {
+ return action;
+ }
+
+ public ConnectionStatus getConnectionStatus() {
+ return connectionStatus;
+ }
+
+ public boolean isDisconnected() {
+ return connectionStatus == ConnectionStatus.Disconnected;
+ }
+
+ @Override
+ public final boolean equals(Object o) {
+ if (o instanceof HookReturnCode) {
+ HookReturnCode that = (HookReturnCode) o;
+
+ return Objects.equals(this.action, that.action)
+ && Objects.equals(this.connectionStatus, that.connectionStatus);
+ }
+ return false;
+ }
+
+ @Override
+ public final int hashCode() {
+ return Objects.hash(action, connectionStatus);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("action", action)
+ .add("disconnection", connectionStatus)
+ .toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java
index 6962209..b0d6033 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java
@@ -49,7 +49,7 @@ public class SimpleHook implements HeloHook, MailHook, RcptHook, MessageHook {
*/
@Override
public HookResult onMessage(SMTPSession session, MailEnvelope mail) {
- return new HookResult(HookReturnCode.OK);
+ return new HookResult(HookReturnCode.ok());
}
/**
@@ -57,7 +57,7 @@ public class SimpleHook implements HeloHook, MailHook, RcptHook, MessageHook {
*/
@Override
public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@@ -66,7 +66,7 @@ public class SimpleHook implements HeloHook, MailHook, RcptHook, MessageHook {
*/
@Override
public HookResult doMail(SMTPSession session, MailAddress sender) {
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@@ -75,7 +75,7 @@ public class SimpleHook implements HeloHook, MailHook, RcptHook, MessageHook {
*/
@Override
public HookResult doHelo(SMTPSession session, String helo) {
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
index ce1f25e..36082bd 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
@@ -501,7 +501,7 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult doHelo(SMTPSession session, String helo) {
- return new HookResult(HookReturnCode.DENY);
+ return new HookResult(HookReturnCode.deny());
}
};
@@ -549,7 +549,7 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult doHelo(SMTPSession session, String helo) {
- return new HookResult(HookReturnCode.DENYSOFT);
+ return new HookResult(HookReturnCode.denySoft());
}
};
@@ -596,7 +596,7 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult doMail(SMTPSession session, MailAddress sender) {
- return new HookResult(HookReturnCode.DENY);
+ return new HookResult(HookReturnCode.deny());
}
};
@@ -646,7 +646,7 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult doMail(SMTPSession session, MailAddress sender) {
- return new HookResult(HookReturnCode.DENYSOFT);
+ return new HookResult(HookReturnCode.denySoft());
}
};
@@ -698,9 +698,9 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
if (RCPT1.equals(rcpt.toString())) {
- return new HookResult(HookReturnCode.DENY);
+ return new HookResult(HookReturnCode.deny());
} else {
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
}
@@ -762,9 +762,9 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
if (RCPT1.equals(rcpt.toString())) {
- return new HookResult(HookReturnCode.DENYSOFT);
+ return new HookResult(HookReturnCode.denySoft());
} else {
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
}
@@ -860,7 +860,7 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult onMessage(SMTPSession session, MailEnvelope mail) {
- return new HookResult(HookReturnCode.DENY);
+ return new HookResult(HookReturnCode.deny());
}
@@ -924,7 +924,7 @@ public abstract class AbstractSMTPServerTest {
@Override
public HookResult onMessage(SMTPSession session, MailEnvelope mail) {
- return new HookResult(HookReturnCode.DENYSOFT);
+ return new HookResult(HookReturnCode.denySoft());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java
index 6c28e54..a62edc5 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java
@@ -60,9 +60,9 @@ public class MaxRcptHandlerTest {
MaxRcptHandler handler = new MaxRcptHandler();
handler.setMaxRcpt(2);
- int resp = handler.doRcpt(session,null,new MailAddress("test@test")).getResult();
+ HookReturnCode resp = handler.doRcpt(session,null,new MailAddress("test@test")).getResult();
- assertEquals("Rejected.. To many recipients", resp, HookReturnCode.DENY);
+ assertEquals("Rejected.. To many recipients", resp, HookReturnCode.deny());
}
@@ -72,9 +72,9 @@ public class MaxRcptHandlerTest {
MaxRcptHandler handler = new MaxRcptHandler();
handler.setMaxRcpt(4);
- int resp = handler.doRcpt(session,null,new MailAddress("test@test")).getResult();
+ HookReturnCode resp = handler.doRcpt(session,null,new MailAddress("test@test")).getResult();
- assertEquals("Not Rejected..", resp, HookReturnCode.DECLINED);
+ assertEquals("Not Rejected..", resp, HookReturnCode.declined());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
index 81851c1..cd5319c 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
@@ -70,13 +70,13 @@ public class MaxUnknownCmdHandlerTest {
MaxUnknownCmdHandler handler = new MaxUnknownCmdHandler();
handler.setMaxUnknownCmdCount(2);
- int resp = handler.doUnknown(session, "what").getResult();
- assertEquals(HookReturnCode.DECLINED, resp);
+ HookReturnCode resp = handler.doUnknown(session, "what").getResult();
+ assertEquals(HookReturnCode.declined(), resp);
resp = handler.doUnknown(session, "what").getResult();
- assertEquals(HookReturnCode.DECLINED, resp);
+ assertEquals(HookReturnCode.declined(), resp);
resp = handler.doUnknown(session, "what").getResult();
- assertEquals(HookReturnCode.DENY | HookReturnCode.DISCONNECT, resp);
+ assertEquals(new HookReturnCode(HookReturnCode.Action.DENY, HookReturnCode.ConnectionStatus.Disconnected), resp);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
index 4e21a21..13682b7 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
@@ -126,9 +126,9 @@ public class ResolvableEhloHeloHandlerTest {
handler.doHelo(session, INVALID_HOST);
assertNotNull("Invalid HELO",session.getAttachment(ResolvableEhloHeloHandler.BAD_EHLO_HELO, State.Transaction));
-
- int result = handler.doRcpt(session,null, mailAddress).getResult();
- assertEquals("Reject", result,HookReturnCode.DENY);
+
+ HookReturnCode result = handler.doRcpt(session,null, mailAddress).getResult();
+ assertEquals("Reject", result,HookReturnCode.deny());
}
@Test
@@ -141,8 +141,8 @@ public class ResolvableEhloHeloHandlerTest {
handler.doHelo(session, VALID_HOST);
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);
+ HookReturnCode result = handler.doRcpt(session,null, mailAddress).getResult();
+ assertEquals("Not reject", result,HookReturnCode.declined());
}
@Test
@@ -154,10 +154,10 @@ public class ResolvableEhloHeloHandlerTest {
handler.doHelo(session, INVALID_HOST);
assertNotNull("Value stored",session.getAttachment(ResolvableEhloHeloHandler.BAD_EHLO_HELO, State.Transaction));
-
-
- int result = handler.doRcpt(session,null, mailAddress).getResult();
- assertEquals("Reject", result,HookReturnCode.DENY);
+
+
+ HookReturnCode result = handler.doRcpt(session,null, mailAddress).getResult();
+ assertEquals("Reject", result,HookReturnCode.deny());
}
@@ -170,10 +170,10 @@ public class ResolvableEhloHeloHandlerTest {
handler.doHelo(session, INVALID_HOST);
assertNotNull("Value stored",session.getAttachment(ResolvableEhloHeloHandler.BAD_EHLO_HELO, State.Transaction));
-
-
- int result = handler.doRcpt(session,null, mailAddress).getResult();
- assertEquals("Reject", result,HookReturnCode.DENY);
+
+
+ HookReturnCode result = handler.doRcpt(session,null, mailAddress).getResult();
+ assertEquals("Reject", result,HookReturnCode.deny());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java
index 878284b..044d063 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java
@@ -62,20 +62,20 @@ public class SpamTrapHandlerTest {
handler.setBlockTime(blockTime);
handler.setSpamTrapRecipients(rcpts);
+
+ HookReturnCode result = handler.doRcpt(setUpSMTPSession(ip),null,new MailAddress(SPAM_TRAP_RECIP1)).getResult();
- int result = handler.doRcpt(setUpSMTPSession(ip),null,new MailAddress(SPAM_TRAP_RECIP1)).getResult();
-
- assertEquals("Blocked on first connect",HookReturnCode.DENY,result);
+ assertEquals("Blocked on first connect",HookReturnCode.deny(),result);
result = handler.doRcpt(setUpSMTPSession(ip),null,new MailAddress(RECIP1)).getResult();
- assertEquals("Blocked on second connect", HookReturnCode.DENY,result);
+ assertEquals("Blocked on second connect", HookReturnCode.deny(),result);
result = handler.doRcpt(setUpSMTPSession(ip2),null,new MailAddress(RECIP1)).getResult();
- assertEquals("Not Blocked", HookReturnCode.DECLINED,result);
+ assertEquals("Not Blocked", HookReturnCode.declined(),result);
try {
// Wait for the blockTime to exceed
@@ -86,6 +86,6 @@ public class SpamTrapHandlerTest {
result = handler.doRcpt(setUpSMTPSession(ip),null,new MailAddress(RECIP1)).getResult();
- assertEquals("Not blocked. BlockTime exceeded", HookReturnCode.DECLINED,result);
+ assertEquals("Not blocked. BlockTime exceeded", HookReturnCode.declined(),result);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
index bebe107..1ce6c76 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
@@ -106,17 +106,17 @@ public class ValidSenderDomainHandlerTest {
@Test
public void testNullSenderNotReject() {
ValidSenderDomainHandler handler = createHandler();
- int response = handler.doMail(setupMockedSession(null),null).getResult();
+ HookReturnCode response = handler.doMail(setupMockedSession(null),null).getResult();
- assertEquals("Not blocked cause its a nullsender",response,HookReturnCode.DECLINED);
+ assertEquals("Not blocked cause its a nullsender", response, HookReturnCode.declined());
}
@Test
public void testInvalidSenderDomainReject() throws Exception {
ValidSenderDomainHandler handler = createHandler();
SMTPSession session = setupMockedSession(new MailAddress("invalid@invalid"));
- int response = handler.doMail(session,(MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction)).getResult();
+ HookReturnCode response = handler.doMail(session,(MailAddress) session.getAttachment(SMTPSession.SENDER, State.Transaction)).getResult();
- assertEquals("Blocked cause we use reject action", response,HookReturnCode.DENY);
+ assertEquals("Blocked cause we use reject action", response, HookReturnCode.deny());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/hook/HookResultTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/hook/HookResultTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/hook/HookResultTest.java
index e82b98f..8c6db85 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/hook/HookResultTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/hook/HookResultTest.java
@@ -19,14 +19,12 @@
package org.apache.james.protocols.smtp.hook;
-import static org.assertj.core.api.Assertions.assertThatCode;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
import org.junit.Test;
import nl.jqno.equalsverifier.EqualsVerifier;
public class HookResultTest {
+
@Test
public void shouldMatchBeanContract() {
EqualsVerifier.forClass(HookResult.class)
@@ -34,39 +32,4 @@ public class HookResultTest {
.verify();
}
- @Test
- public void shouldThrowOnInvalidReturnCode() {
- assertThatThrownBy(() -> new HookResult(HookReturnCode.DENY + HookReturnCode.DECLINED))
- .isInstanceOf(IllegalArgumentException.class);
- }
-
- @Test
- public void shouldNotThrowOnOK() {
- assertThatCode(() -> new HookResult(HookReturnCode.OK))
- .doesNotThrowAnyException();
- }
-
- @Test
- public void shouldNotThrowOnDeny() {
- assertThatCode(() -> new HookResult(HookReturnCode.DENY))
- .doesNotThrowAnyException();
- }
-
- @Test
- public void shouldNotThrowOnDenySoft() {
- assertThatCode(() -> new HookResult(HookReturnCode.DENYSOFT))
- .doesNotThrowAnyException();
- }
-
- @Test
- public void shouldNotThrowOnDeclined() {
- assertThatCode(() -> new HookResult(HookReturnCode.DECLINED))
- .doesNotThrowAnyException();
- }
-
- @Test
- public void shouldNotThrowOnDisconnect() {
- assertThatCode(() -> new HookResult(HookReturnCode.DISCONNECT))
- .doesNotThrowAnyException();
- }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/TestMessageHook.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/TestMessageHook.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/TestMessageHook.java
index 5f7c60f..34cf60f 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/TestMessageHook.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/TestMessageHook.java
@@ -36,7 +36,7 @@ public class TestMessageHook implements MessageHook {
@Override
public HookResult onMessage(SMTPSession session, MailEnvelope mail) {
queued.add(mail);
- return new HookResult(HookReturnCode.OK);
+ return new HookResult(HookReturnCode.ok());
}
public List<MailEnvelope> getQueued() {
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
index 5830dbb..419bafa 100644
--- a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
+++ b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
@@ -90,10 +90,10 @@ public class MailboxDeliverToRecipientHandler implements DeliverToRecipientHook
.build(envelope.getMessageInputStream()),
mailboxSession);
mailboxManager.endProcessingRequest(mailboxSession);
- result = new HookResult(HookReturnCode.OK, SMTPRetCode.MAIL_OK, DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.CONTENT_OTHER) + " Message received");
+ result = new HookResult(HookReturnCode.ok(), SMTPRetCode.MAIL_OK, DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.CONTENT_OTHER) + " Message received");
} catch (IOException | MailboxException | UsersRepositoryException e) {
LOGGER.error("Unexpected error handling DATA stream", e);
- result = new HookResult(HookReturnCode.DENYSOFT, " Temporary error deliver message to " + recipient);
+ result = new HookResult(HookReturnCode.denySoft(), " Temporary error deliver message to " + recipient);
}
return result;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AddDefaultAttributesMessageHook.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AddDefaultAttributesMessageHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AddDefaultAttributesMessageHook.java
index 6044be0..1b2c572 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AddDefaultAttributesMessageHook.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AddDefaultAttributesMessageHook.java
@@ -61,7 +61,7 @@ public class AddDefaultAttributesMessageHook implements JamesMessageHook {
mail.setAttribute(SMTP_AUTH_NETWORK_NAME, "true");
}
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/MailPriorityHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/MailPriorityHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/MailPriorityHandler.java
index ce8f348..e2df42b 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/MailPriorityHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/MailPriorityHandler.java
@@ -74,7 +74,7 @@ public class MailPriorityHandler implements JamesMessageHook, ProtocolHandler {
if (p != null) {
mail.setAttribute(MailPrioritySupport.MAIL_PRIORITY, p);
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
index 3f01474..a14c3ba 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
@@ -72,10 +72,10 @@ public class SendMailHandler implements JamesMessageHook {
LOGGER.info("Successfully spooled mail {} from {} on {} for {}", mail.getName(), mail.getSender(), session.getRemoteAddress().getAddress(), mail.getRecipients());
} catch (MessagingException me) {
LOGGER.error("Unknown error occurred while processing DATA.", me);
- return new HookResult(HookReturnCode.DENYSOFT, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) + " Error processing message.");
+ return new HookResult(HookReturnCode.denySoft(), DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) + " Error processing message.");
}
- return new HookResult(HookReturnCode.OK, DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.CONTENT_OTHER) + " Message received");
+ return new HookResult(HookReturnCode.ok(), DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.CONTENT_OTHER) + " Message received");
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
index 53028a9..cbdd726 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
@@ -69,7 +69,7 @@ public class SenderAuthIdentifyVerificationRcptHook extends AbstractSenderAuthId
if (nSession.verifyIdentity()) {
return super.doRcpt(session, sender, rcpt);
} else {
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
index 1356272..6c70749 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
@@ -81,7 +81,7 @@ public class SetMimeHeaderHandler implements JamesMessageHook, ProtocolHandler {
LOGGER.error(me.getMessage());
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
index 9fbf77f..152ad96 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
@@ -65,12 +65,12 @@ public class UsersRepositoryAuthHook implements AuthHook {
if (users.test(username, password)) {
session.setUser(username);
session.setRelayingAllowed(true);
- return new HookResult(HookReturnCode.OK, "Authentication Successful");
+ return new HookResult(HookReturnCode.ok(), "Authentication Successful");
}
} catch (UsersRepositoryException e) {
LOGGER.info("Unable to access UsersRepository", e);
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
index 3b69a7e..152825b 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
@@ -360,7 +360,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
} else {
LOGGER.info("IpAddress {} is whitelisted. Skip greylisting.", session.getRemoteAddress().getAddress().getHostAddress());
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
index 26eae88..207529d 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
@@ -152,18 +152,18 @@ public class SPFHandler implements JamesMessageHook, MailHook, RcptHook, Protoco
if (!session.isRelayingAllowed()) {
// Check if session is blocklisted
if (session.getAttachment(SPF_BLOCKLISTED, State.Transaction) != null) {
- return new HookResult(HookReturnCode.DENY, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + " " + session.getAttachment(SPF_TEMPBLOCKLISTED, State.Transaction));
+ return new HookResult(HookReturnCode.deny(), DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + " " + session.getAttachment(SPF_TEMPBLOCKLISTED, State.Transaction));
} else if (session.getAttachment(SPF_TEMPBLOCKLISTED, State.Transaction) != null) {
- return new HookResult(HookReturnCode.DENYSOFT, SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.NETWORK_DIR_SERVER) + " " + "Temporarily rejected: Problem on SPF lookup");
+ return new HookResult(HookReturnCode.denySoft(), SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.NETWORK_DIR_SERVER) + " " + "Temporarily rejected: Problem on SPF lookup");
}
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@Override
public HookResult doMail(SMTPSession session, MailAddress sender) {
doSPFCheck(session, sender);
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
index efa9611..bdcfd3b 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
@@ -143,7 +143,7 @@ public class SpamAssassinHandler implements JamesMessageHook, ProtocolHandler {
LOGGER.info(buffer);
// Message reject .. abort it!
- return new HookResult(HookReturnCode.DENY, 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");
+ return new HookResult(HookReturnCode.deny(), 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");
}
} catch (NumberFormatException e) {
// hits unknown
@@ -152,7 +152,7 @@ public class SpamAssassinHandler implements JamesMessageHook, ProtocolHandler {
} catch (MessagingException e) {
LOGGER.error(e.getMessage());
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
index f400763..5e331f9 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
@@ -125,13 +125,13 @@ public class URIRBLHandler implements JamesMessageHook, ProtocolHandler {
}
if (detail != null) {
- return new HookResult(HookReturnCode.DENY, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_OTHER) + "Rejected: message contains domain " + target + " listed by " + uRblServer + " . Details: " + detail);
+ return new HookResult(HookReturnCode.deny(), DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_OTHER) + "Rejected: message contains domain " + target + " listed by " + uRblServer + " . Details: " + detail);
} else {
- return new HookResult(HookReturnCode.DENY, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_OTHER) + " Rejected: message contains domain " + target + " listed by " + uRblServer);
+ return new HookResult(HookReturnCode.deny(), DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_OTHER) + " Rejected: message contains domain " + target + " listed by " + uRblServer);
}
} else {
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
index 4cdfb89..9844ff5 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
@@ -98,7 +98,7 @@ public class ValidRcptMX implements RcptHook, ProtocolHandler {
try {
mx = dnsService.findMXRecords(domain.name()).iterator();
} catch (TemporaryResolutionException e1) {
- return new HookResult(HookReturnCode.DENYSOFT);
+ return new HookResult(HookReturnCode.denySoft());
}
if (mx != null && mx.hasNext()) {
@@ -110,7 +110,7 @@ public class ValidRcptMX implements RcptHook, ProtocolHandler {
// Check for invalid MX
if (bNetwork.matchInetNetwork(ip)) {
- return new HookResult(HookReturnCode.DENY, SMTPRetCode.AUTH_REQUIRED, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + " Invalid MX " + session.getRemoteAddress().getAddress().toString() + " for domain " + domain + ". Reject email");
+ return new HookResult(HookReturnCode.deny(), SMTPRetCode.AUTH_REQUIRED, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + " Invalid MX " + session.getRemoteAddress().getAddress().toString() + " for domain " + domain + ". Reject email");
}
} catch (UnknownHostException e) {
// Ignore this
@@ -118,7 +118,7 @@ public class ValidRcptMX implements RcptHook, ProtocolHandler {
}
}
}
- return new HookResult(HookReturnCode.DECLINED);
+ return new HookResult(HookReturnCode.declined());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
index 6636bc7..86b4e7a 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
@@ -56,20 +56,21 @@ public class HookStats extends StandardMBean implements HookStatsMBean, Disposab
mbeanserver.registerMBean(this, baseObjectName);
}
- public void increment(int code) {
- if ((code & HookReturnCode.OK) == HookReturnCode.OK) {
- ok.incrementAndGet();
+ public void increment(HookReturnCode code) {
+ switch (code.getAction()) {
+ case DECLINED:
+ declined.incrementAndGet();
+ break;
+ case DENY:
+ deny.incrementAndGet();
+ break;
+ case DENYSOFT:
+ denysoft.incrementAndGet();
+ break;
+ case OK:
+ ok.incrementAndGet();
+ break;
}
- if ((code & HookReturnCode.DECLINED) == HookReturnCode.DECLINED) {
- declined.incrementAndGet();
- }
- if ((code & HookReturnCode.DENYSOFT) == HookReturnCode.DENYSOFT) {
- denysoft.incrementAndGet();
- }
- if ((code & HookReturnCode.DENY) == HookReturnCode.DENY) {
- deny.incrementAndGet();
- }
-
all.incrementAndGet();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
index fe9b76f..9c81ad9 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
@@ -176,8 +176,8 @@ public class SPFHandlerTest {
spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
@Test
@@ -189,8 +189,8 @@ public class SPFHandlerTest {
spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("fail", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("fail", HookReturnCode.deny(), spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
@Test
@@ -202,8 +202,8 @@ public class SPFHandlerTest {
spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("softfail declined", HookReturnCode.DECLINED,
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("softfail declined", HookReturnCode.declined(),
spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
@@ -219,8 +219,8 @@ public class SPFHandlerTest {
spf.setBlockSoftFail(true);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("softfail reject", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("softfail reject", HookReturnCode.deny(), spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
@Test
@@ -235,8 +235,8 @@ public class SPFHandlerTest {
spf.setBlockSoftFail(true);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("permerror reject", HookReturnCode.DENY, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("permerror reject", HookReturnCode.deny(), spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
@Test
@@ -250,8 +250,8 @@ public class SPFHandlerTest {
spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("temperror denysoft", HookReturnCode.DENYSOFT,
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("temperror denysoft", HookReturnCode.denySoft(),
spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
@@ -265,8 +265,8 @@ public class SPFHandlerTest {
spf.setDNSService(mockedDnsService);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
@Test
@@ -280,7 +280,7 @@ public class SPFHandlerTest {
spf.setBlockPermError(false);
- assertEquals("declined", HookReturnCode.DECLINED, spf.doMail(mockedSMTPSession, sender).getResult());
- assertEquals("declined", HookReturnCode.DECLINED, spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doMail(mockedSMTPSession, sender).getResult());
+ assertEquals("declined", HookReturnCode.declined(), spf.doRcpt(mockedSMTPSession, sender, rcpt).getResult());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d57da7bc/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
index 5507679..97acaea 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
@@ -119,7 +119,7 @@ public class SpamAssassinHandlerTest {
handler.setSpamdRejectionHits(200.0);
HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
+ assertEquals("Email was not rejected", response.getResult(), HookReturnCode.declined());
assertEquals("email was not spam", mockedMail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME), "NO");
assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME));
@@ -136,7 +136,7 @@ public class SpamAssassinHandlerTest {
handler.setSpamdRejectionHits(2000.0);
HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED);
+ assertEquals("Email was not rejected", response.getResult(), HookReturnCode.declined());
assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME), "YES");
assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME));
}
@@ -152,7 +152,7 @@ public class SpamAssassinHandlerTest {
handler.setSpamdRejectionHits(200.0);
HookResult response = handler.onMessage(session, mockedMail);
- assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY);
+ assertEquals("Email was rejected", response.getResult(), HookReturnCode.deny());
assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME), "YES");
assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org