You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-user@james.apache.org by Tze-Kei Lee <ch...@gmail.com> on 2012/07/16 10:10:35 UTC
HookReturnCode.DENYSOFT together with HookReturnCode.DISCONNECT
Hi,
I am writing a custom hook on smtp with return code DENTSOFY |
DISCONNECT, but the SMTPResponse throws exception with stacktrace:
java.lang.IllegalArgumentException: Invalid Response format. Format
should be [Code Description]
at org.apache.james.protocols.smtp.SMTPResponse.extractCode(SMTPResponse.java:69)
at org.apache.james.protocols.smtp.SMTPResponse.<init>(SMTPResponse.java:59)
at org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.calcDefaultSMTPResponse(AbstractHookableCmdHandler.java:202)
at org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.processHooks(AbstractHookableCmdHandler.java:136)
Tracing AbstractHookableCmdHandler.calcDefaultSMTPResponse i found
that it's rCode == HookReturnCode.DENYSOFT instead of (rCode & code)
== code, so I got two questions here
1. Is this intentional that DENYSOFT should be used alone ?
2. in AbstractHookableCmdHandler:202, SMTPResponse is constructed with
empty string which will trigger the exception above. Is this
intentional ?
Best Regards
Tze-Kei
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: HookReturnCode.DENYSOFT together with HookReturnCode.DISCONNECT
Posted by Eric Charles <er...@apache.org>.
Sounds good!
It will be great if you could open a JIRA
(https://issues.apache.org/jira/browse/PROTOCOLS) for this and upload
there a patch :)
Thx, Eric
On 07/17/2012 04:47 PM, Tze-Kei Lee wrote:
> Hi,
>
> For the DENYSONY, I guess AbstractHookableCmdHandler:179 should be
> } else if ((rCode & HookReturnCode.DENYSOFT) == HookReturnCode.DENYSOFT) {
> instead of
> } else if (rCode == HookReturnCode.DENYSOFT) {
> ?
>
> For the lonely DISCONNECT, how about take the same approach as other codes ?
> Use the code and description from HookResult, if code is null then use
> TRANSACTION_FAILED,
> if description is null we can just use "Server Disconnected".
>
> On Tue, Jul 17, 2012 at 11:12 PM, Eric Charles <er...@apache.org> wrote:
>> Hi, See comments inline, Eric
>>
>>
>> On 07/16/2012 10:10 AM, Tze-Kei Lee wrote:
>>>
>>> Hi,
>>>
>>> I am writing a custom hook on smtp with return code DENTSOFY |
>>> DISCONNECT, but the SMTPResponse throws exception with stacktrace:
>>> java.lang.IllegalArgumentException: Invalid Response format. Format
>>> should be [Code Description]
>>> at
>>> org.apache.james.protocols.smtp.SMTPResponse.extractCode(SMTPResponse.java:69)
>>> at
>>> org.apache.james.protocols.smtp.SMTPResponse.<init>(SMTPResponse.java:59)
>>> at
>>> org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.calcDefaultSMTPResponse(AbstractHookableCmdHandler.java:202)
>>> at
>>> org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.processHooks(AbstractHookableCmdHandler.java:136)
>>>
>>> Tracing AbstractHookableCmdHandler.calcDefaultSMTPResponse i found
>>> that it's rCode == HookReturnCode.DENYSOFT instead of (rCode & code)
>>> == code, so I got two questions here
>>>
>>> 1. Is this intentional that DENYSOFT should be used alone ?
>>
>>
>> DENYSOFT can't be used in combination with DECLINED, nor OK, nor DENY.
>> You can combine it with DISCONNECT.
>>
>>
>>> 2. in AbstractHookableCmdHandler:202, SMTPResponse is constructed with
>>> empty string which will trigger the exception above. Is this
>>> intentional ?
>>>
>>
>> If you return DENYSOFT, you shouldn't come to new SMTPResponse("")
>> (AbstractHookableCmdHandler:189 should return a correctly constructed
>> SMTPReponse).
>>
>> Now your question remains in case we have a DISCONNECT which returns
>> SMTPResponse(""). I tried to follow the DISCONNECT processing, but I still
>> don't have everything to fix this. Don't hesitate to come with a proposal.
>>
>>> Best Regards
>>>
>>> Tze-Kei
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>>> For additional commands, e-mail: server-user-help@james.apache.org
>>>
>>
>>
>> --
>> eric | http://about.echarles.net | @echarles
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-user-help@james.apache.org
>>
>
>
> Best Regards
>
> Tze-Kei
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
--
eric | http://about.echarles.net | @echarles
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: HookReturnCode.DENYSOFT together with HookReturnCode.DISCONNECT
Posted by Tze-Kei Lee <ch...@gmail.com>.
Hi,
For the DENYSONY, I guess AbstractHookableCmdHandler:179 should be
} else if ((rCode & HookReturnCode.DENYSOFT) == HookReturnCode.DENYSOFT) {
instead of
} else if (rCode == HookReturnCode.DENYSOFT) {
?
For the lonely DISCONNECT, how about take the same approach as other codes ?
Use the code and description from HookResult, if code is null then use
TRANSACTION_FAILED,
if description is null we can just use "Server Disconnected".
On Tue, Jul 17, 2012 at 11:12 PM, Eric Charles <er...@apache.org> wrote:
> Hi, See comments inline, Eric
>
>
> On 07/16/2012 10:10 AM, Tze-Kei Lee wrote:
>>
>> Hi,
>>
>> I am writing a custom hook on smtp with return code DENTSOFY |
>> DISCONNECT, but the SMTPResponse throws exception with stacktrace:
>> java.lang.IllegalArgumentException: Invalid Response format. Format
>> should be [Code Description]
>> at
>> org.apache.james.protocols.smtp.SMTPResponse.extractCode(SMTPResponse.java:69)
>> at
>> org.apache.james.protocols.smtp.SMTPResponse.<init>(SMTPResponse.java:59)
>> at
>> org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.calcDefaultSMTPResponse(AbstractHookableCmdHandler.java:202)
>> at
>> org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.processHooks(AbstractHookableCmdHandler.java:136)
>>
>> Tracing AbstractHookableCmdHandler.calcDefaultSMTPResponse i found
>> that it's rCode == HookReturnCode.DENYSOFT instead of (rCode & code)
>> == code, so I got two questions here
>>
>> 1. Is this intentional that DENYSOFT should be used alone ?
>
>
> DENYSOFT can't be used in combination with DECLINED, nor OK, nor DENY.
> You can combine it with DISCONNECT.
>
>
>> 2. in AbstractHookableCmdHandler:202, SMTPResponse is constructed with
>> empty string which will trigger the exception above. Is this
>> intentional ?
>>
>
> If you return DENYSOFT, you shouldn't come to new SMTPResponse("")
> (AbstractHookableCmdHandler:189 should return a correctly constructed
> SMTPReponse).
>
> Now your question remains in case we have a DISCONNECT which returns
> SMTPResponse(""). I tried to follow the DISCONNECT processing, but I still
> don't have everything to fix this. Don't hesitate to come with a proposal.
>
>> Best Regards
>>
>> Tze-Kei
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-user-help@james.apache.org
>>
>
>
> --
> eric | http://about.echarles.net | @echarles
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
Best Regards
Tze-Kei
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: HookReturnCode.DENYSOFT together with HookReturnCode.DISCONNECT
Posted by Eric Charles <er...@apache.org>.
Hi, See comments inline, Eric
On 07/16/2012 10:10 AM, Tze-Kei Lee wrote:
> Hi,
>
> I am writing a custom hook on smtp with return code DENTSOFY |
> DISCONNECT, but the SMTPResponse throws exception with stacktrace:
> java.lang.IllegalArgumentException: Invalid Response format. Format
> should be [Code Description]
> at org.apache.james.protocols.smtp.SMTPResponse.extractCode(SMTPResponse.java:69)
> at org.apache.james.protocols.smtp.SMTPResponse.<init>(SMTPResponse.java:59)
> at org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.calcDefaultSMTPResponse(AbstractHookableCmdHandler.java:202)
> at org.apache.james.protocols.smtp.core.AbstractHookableCmdHandler.processHooks(AbstractHookableCmdHandler.java:136)
>
> Tracing AbstractHookableCmdHandler.calcDefaultSMTPResponse i found
> that it's rCode == HookReturnCode.DENYSOFT instead of (rCode & code)
> == code, so I got two questions here
>
> 1. Is this intentional that DENYSOFT should be used alone ?
DENYSOFT can't be used in combination with DECLINED, nor OK, nor DENY.
You can combine it with DISCONNECT.
> 2. in AbstractHookableCmdHandler:202, SMTPResponse is constructed with
> empty string which will trigger the exception above. Is this
> intentional ?
>
If you return DENYSOFT, you shouldn't come to new SMTPResponse("")
(AbstractHookableCmdHandler:189 should return a correctly constructed
SMTPReponse).
Now your question remains in case we have a DISCONNECT which returns
SMTPResponse(""). I tried to follow the DISCONNECT processing, but I
still don't have everything to fix this. Don't hesitate to come with a
proposal.
> Best Regards
>
> Tze-Kei
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
--
eric | http://about.echarles.net | @echarles
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org