You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2020/12/16 06:52:08 UTC
[james-project] 01/08: JAMES-3431 [REFACTORING] Extract SMTP
parameter parsing
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 66b5e3303726c2c1368e4b5c928af0d625fb4435
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Dec 10 10:55:35 2020 +0700
JAMES-3431 [REFACTORING] Extract SMTP parameter parsing
---
.../james/protocols/smtp/core/RcptCmdHandler.java | 26 +++++++++++++---------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
index 93ce9d6..42769a8 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
@@ -27,6 +27,7 @@ import java.util.StringTokenizer;
import javax.inject.Inject;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.james.core.MailAddress;
import org.apache.james.core.MaybeSender;
import org.apache.james.metrics.api.MetricFactory;
@@ -163,21 +164,15 @@ public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> impleme
rcptOptionString, " ");
while (optionTokenizer.hasMoreElements()) {
String rcptOption = optionTokenizer.nextToken();
- int equalIndex = rcptOption.indexOf('=');
- String rcptOptionName = rcptOption;
- String rcptOptionValue = "";
- if (equalIndex > 0) {
- rcptOptionName = rcptOption.substring(0, equalIndex)
- .toUpperCase(Locale.US);
- rcptOptionValue = rcptOption.substring(equalIndex + 1);
- }
+ Pair<String, String> parameter = parseParameter(rcptOption);
// Unexpected option attached to the RCPT command
- LOGGER.debug("RCPT command had unrecognized/unexpected option {} with value {}{}", rcptOptionName, rcptOptionValue, getContext(session, recipientAddress, recipient));
+ LOGGER.debug("RCPT command had unrecognized/unexpected option {} with value {}{}",
+ parameter.getKey(), parameter.getValue(), getContext(session, recipientAddress, recipient));
return new SMTPResponse(
SMTPRetCode.PARAMETER_NOT_IMPLEMENTED,
"Unrecognized or unsupported option: "
- + rcptOptionName);
+ + parameter.getKey());
}
optionTokenizer = null;
}
@@ -218,6 +213,17 @@ public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> impleme
return rawHook.doRcpt(session, sender, session.getAttachment(CURRENT_RECIPIENT, State.Transaction).orElse(MailAddress.nullSender()));
}
+ private Pair<String, String> parseParameter(String rcptOption) {
+ int equalIndex = rcptOption.indexOf('=');
+ if (equalIndex > 0) {
+ return Pair.of(rcptOption.substring(0, equalIndex)
+ .toUpperCase(Locale.US),
+ rcptOption.substring(equalIndex + 1));
+ } else {
+ return Pair.of(rcptOption, "");
+ }
+ }
+
protected String getDefaultDomain() {
return "localhost";
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org