Author: bago
Date: Tue Dec 26 10:20:45 2006
New Revision: 490346
URL: http://svn.apache.org/viewvc?view=rev&rev=490346
Log:
Removed SMTPSession.abortMessage().
Fixed a bug in URIRBLHandler that was aborting the Message even it the action
was junkhandler.
Modified:
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java
Modified:
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
---
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
(original)
+++
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandler.java
Tue Dec 26 10:20:45 2006
@@ -51,9 +51,7 @@
* The constants to indicate the current processing mode of the session
*/
private final static byte COMMAND_MODE = 1;
- private final static byte RESPONSE_MODE = 2;
private final static byte MESSAGE_RECEIVED_MODE = 3;
- private final static byte MESSAGE_ABORT_MODE = 4;
/**
* Static Random instance used to generate SMTP ids
@@ -226,7 +224,7 @@
writeSMTPResponse(response);
//if the response is received, stop processing of
command handlers
- if(mode == MESSAGE_ABORT_MODE) {
+ if(response != null) {
break;
}
}
@@ -280,9 +278,12 @@
writeSMTPResponse(response);
//if the response is received, stop processing of command
handlers
- if(mode != COMMAND_MODE || response != null) {
+ if(response != null) {
break;
}
+
+ // NOTE we should never hit this line, otherwise we ended
the CommandHandlers with
+ // no responses.
}
}
@@ -299,7 +300,7 @@
// Write a single-line or multiline response
if (response != null) {
if (response.getRawLine() != null) {
- writeResponse(response.getRawLine());
+ writeLoggedFlushedResponse(response.getRawLine());
} else {
// Iterator i = esmtpextensions.iterator();
for (int k = 0; k < response.getLines().size(); k++) {
@@ -308,11 +309,11 @@
if (k == response.getLines().size() - 1) {
respBuff.append(" ");
respBuff.append(response.getLines().get(k));
- writeResponse(respBuff.toString());
+ writeLoggedFlushedResponse(respBuff.toString());
} else {
respBuff.append("-");
respBuff.append(response.getLines().get(k));
- writeResponse(respBuff.toString());
+ writeLoggedResponse(respBuff.toString());
}
}
}
@@ -351,14 +352,6 @@
}
- private void writeResponse(String respString) {
- writeLoggedFlushedResponse(respString);
- //TODO Explain this well
- if(mode == COMMAND_MODE) {
- mode = RESPONSE_MODE;
- }
- }
-
/**
* @see org.apache.james.smtpserver.SMTPSession#getMail()
*/
@@ -478,13 +471,6 @@
*/
public String getSessionID() {
return smtpID;
- }
-
- /**
- * @see org.apache.james.smtpserver.SMTPSession#abortMessage()
- */
- public void abortMessage() {
- mode = MESSAGE_ABORT_MODE;
}
/**
Modified:
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
---
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
(original)
+++
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPSession.java
Tue Dec 26 10:20:45 2006
@@ -71,12 +71,6 @@
String getRemoteIPAddress();
/**
- * this makes the message to be dropped inprotocol
- *
- */
- void abortMessage();
-
- /**
* Returns Map that consists of the state of the SMTPSession per mail
*
* @return map of the current SMTPSession state per mail
Modified:
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
---
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
(original)
+++
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AuthCmdHandler.java
Tue Dec 26 10:20:45 2006
@@ -44,6 +44,26 @@
extends AbstractLogEnabled
implements CommandHandler {
+ private abstract class AbstractSMTPLineHandler implements LineHandler {
+
+ public void onLine(SMTPSession session, byte[] line) {
+ try {
+ String l = new String(line, "US-ASCII");
+ //System.err.println("((("+line+")))");
+ SMTPResponse res = onCommand(session,l);
+ session.popLineHandler();
+ session.writeSMTPResponse(res);
+ } catch (UnsupportedEncodingException e) {
+ // TODO should never happen
+ e.printStackTrace();
+ }
+ }
+
+ protected abstract SMTPResponse onCommand(SMTPSession session, String
l);
+ }
+
+
+
/**
* The text string for the SMTP AUTH type PLAIN.
*/
@@ -88,21 +108,10 @@
if (authType.equals(AUTH_TYPE_PLAIN)) {
String userpass;
if (initialResponse == null) {
- session.pushLineHandler(new LineHandler() {
-
- public void onLine(SMTPSession session, byte[] line) {
- try {
- String l = new String(line, "US-ASCII");
- //System.err.println("((("+line+")))");
- SMTPResponse res = doPlainAuthPass(session, l);
- session.popLineHandler();
- session.writeSMTPResponse(res);
- } catch (UnsupportedEncodingException e) {
- // TODO should never happen
- e.printStackTrace();
- }
+ session.pushLineHandler(new AbstractSMTPLineHandler() {
+ protected SMTPResponse onCommand(SMTPSession session,
String l) {
+ return doPlainAuthPass(session, l);
}
-
});
return new SMTPResponse("334", "OK. Continue
authentication");
} else {
@@ -112,19 +121,10 @@
} else if (authType.equals(AUTH_TYPE_LOGIN)) {
if (initialResponse == null) {
- session.pushLineHandler(new LineHandler() {
-
- public void onLine(SMTPSession session, byte[] line) {
- try {
- SMTPResponse res = doLoginAuthPass(session,
new String(line, "US-ASCII"));
- session.popLineHandler();
- session.writeSMTPResponse(res);
- } catch (UnsupportedEncodingException e) {
- // TODO should never happen
- e.printStackTrace();
- }
+ session.pushLineHandler(new AbstractSMTPLineHandler() {
+ protected SMTPResponse onCommand(SMTPSession session,
String l) {
+ return doLoginAuthPass(session, l);
}
-
});
return new SMTPResponse("334", "VXNlcm5hbWU6"); // base64
encoded "Username:"
} else {
@@ -234,24 +234,17 @@
user = null;
}
}
- session.pushLineHandler(new LineHandler() {
+ session.pushLineHandler(new AbstractSMTPLineHandler() {
private String user;
- public void onLine(SMTPSession session, byte[] line) {
- try {
- SMTPResponse res = doLoginAuthPassCheck(session, user, new
String(line, "US-ASCII"));
- session.popLineHandler();
- session.writeSMTPResponse(res);
- } catch (UnsupportedEncodingException e) {
- // TODO should never happen
- e.printStackTrace();
- }
- }
-
public LineHandler setUser(String user) {
this.user = user;
return this;
+ }
+
+ protected SMTPResponse onCommand(SMTPSession session, String l) {
+ return doLoginAuthPassCheck(session, user, l);
}
}.setUser(user));
Modified:
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
---
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
(original)
+++
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/JunkScoreHandler.java
Tue Dec 26 10:20:45 2006
@@ -133,7 +133,6 @@
.append(composed.getCompleteStoredScores());
getLogger().info(buffer.toString());
- session.abortMessage();
return new SMTPResponse(SMTPRetCode.TRANSACTION_FAILED,
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");
}
Modified:
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
---
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
(original)
+++
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/SpamAssassinHandler.java
Tue Dec 26 10:20:45 2006
@@ -187,7 +187,6 @@
getLogger().info(buffer.toString());
// Message reject .. abort it!
- session.abortMessage();
return new
SMTPResponse(SMTPRetCode.TRANSACTION_FAILED,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");
}
Modified:
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
---
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
(original)
+++
james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
Tue Dec 26 10:20:45 2006
@@ -240,7 +240,6 @@
session.getState().put(URBLSERVER, uRblServer);
session.getState().put(LISTED_DOMAIN,target);
- session.abortMessage();
return true;
} catch (UnknownHostException uhe) {
Modified:
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java
URL:
http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java?view=diff&rev=490346&r1=490345&r2=490346
==============================================================================
---
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java
(original)
+++
james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/JunkScoreHandlerTest.java
Tue Dec 26 10:20:45 2006
@@ -39,16 +39,11 @@
public class JunkScoreHandlerTest extends TestCase {
private String response = null;
- private boolean messageAborted = false;
private final static String KEY1 = "KEY1";
private final static String KEY2 = "KEY2";
private final static double SCORE1 = 10.0;
private final static double SCORE2 = 7.1;
- public void setUp() {
- messageAborted = false;
- }
-
private SMTPSession setupMockedSMTPSession() {
SMTPSession session = new AbstractSMTPSession() {
HashMap state = new HashMap();
@@ -64,10 +59,6 @@
return cState;
}
- public void abortMessage() {
- messageAborted = true;
- }
-
public Mail getMail(){
if (m == null) m = getMockMail();
return m;
@@ -125,7 +116,6 @@
SMTPResponse response = handler.onMessage(session);
assertNotNull("Rejected",response);
- assertTrue("Rejected",messageAborted);
}
public void testHeaderAction() throws ConfigurationException,
MessagingException {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]