Author: norman Date: Sat Jan 14 16:04:11 2012 New Revision: 1231519 URL: http://svn.apache.org/viewvc?rev=1231519&view=rev Log: Make sure the Received header is only added one time. See PROTOCOLS-88
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAddHeadersFilter.java Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAddHeadersFilter.java URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAddHeadersFilter.java?rev=1231519&r1=1231518&r2=1231519&view=diff ============================================================================== --- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAddHeadersFilter.java (original) +++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAddHeadersFilter.java Sat Jan 14 16:04:11 2012 @@ -40,7 +40,8 @@ public abstract class AbstractAddHeaders private static final AtomicInteger COUNTER = new AtomicInteger(0); private final String headersPrefixAdded = "HEADERS_PREFIX_ADDED" + COUNTER.incrementAndGet(); - + private final String headersSuffixAdded = "HEADERS_SUFFIX_ADDED" + COUNTER.incrementAndGet(); + enum Location{ Prefix, Suffix @@ -56,8 +57,8 @@ public abstract class AbstractAddHeaders @Override protected Response onSeparatorLine(SMTPSession session, ByteBuffer line, LineHandler<SMTPSession> next) { - if (getLocation() == Location.Suffix && session.getAttachment(headersPrefixAdded, State.Transaction) == null) { - session.setAttachment(headersPrefixAdded, Boolean.TRUE, State.Transaction); + if (getLocation() == Location.Suffix && session.getAttachment(headersSuffixAdded, State.Transaction) == null) { + session.setAttachment(headersSuffixAdded, Boolean.TRUE, State.Transaction); return addHeaders(session, line, next); } return super.onSeparatorLine(session, line, next); @@ -65,7 +66,8 @@ public abstract class AbstractAddHeaders @Override protected Response onHeadersLine(SMTPSession session, ByteBuffer line, LineHandler<SMTPSession> next) { - if (getLocation() == Location.Prefix) { + if (getLocation() == Location.Prefix && session.getAttachment(headersPrefixAdded, State.Transaction) == null) { + session.setAttachment(headersPrefixAdded, Boolean.TRUE, State.Transaction); return addHeaders(session, line, next); } return super.onHeadersLine(session, line, next); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org