[Kde-pim] [PATCH] kioslaves/sieve: fix small managesieve protocol violations
Allen Winter
winter at kde.org
Sat Aug 4 15:23:34 BST 2007
On Saturday 04 August 2007 7:35:01 am Stephan Bosch wrote:
> Hello,
>
> I'm developing a managesieve server for the dovecot project
> (www.dovecot.org) and some of my users reported problems when using
> KMail as a client. I decided to investigate the problem myself and this
> resulted in a very small patch against the kioslaves/sieve implementation.
>
Stephan,
Thanks for the patch.
Hamish? Do you approve of the patch?
The patch contains a new i18n() string, and we can't have any
new i18n() strings for KDE 3.5.8.. but I'll find a way around that problem.
-Allen
> The problems were the following:
>
> * When using TLS they could not login.
> * Retrieving scripts from the server always failed with a protocol error
> report
>
> Both problems were caused by deviations from the draft protocol
> specification. The specification states that after a successful STARTTLS
> the _server_ must reissue a capability response (as explained more
> clearly in version 07 of the specification). The current kioslave
> implementation sends a CAPABILITY command directly after TLS
> negotiation, which is unnecessary but in itself not a protocol
> violation. However, it does not expect the unsolicited capability
> listing from the server and aborts the login with an error. I reset the
> flag that causes an explicit CAPABILITY command to be sent and all is well.
>
> The second problem is caused by erroneous parsing of literal strings.
> The length specification is required to include a '+' character before
> the '}'. The kioslave implentation forgets this and failes to parse the
> contained integer. This was reported last year already in bug 122870
> (http://bugs.kde.org/show_bug.cgi?id=122870), but thus far this remained
> unconfirmed and unresolved. I am not sure what timsieved currrently
> does, so you might want to adapt the patch to allow both situations for
> the time being.
>
> When these issues were resolved, I continued testing KMail myself and I
> found another protocol-related problem. The managesieve server can
> choose to send either quoted or literal strings for any kind of
> response. The current kioslave implementation often makes assumptions on
> what type of string is going to be received, especially when handling
> errors. My server only sends literals when multi-line strings need to be
> sent, so a simple one-line error is sent as a quoted string. For
> instance, when an error occurs for the PUTSCRIPT command it is only
> reported to the user when the server presents it as a literal string.
> Otherwise a generic failure message is shown and the user is none the
> wiser. This patch only resolves this issue for the putscript command,
> because fixing this in all situations would make this simple patch way
> too invasive.
>
> This patch was made and tested against kdepim-3.5.6, but also applies
> cleanly to 3.5.7 since almost nothing changed in the kioslaves/sieve
> code between those releases. The patch can be downloaded at:
>
> http://sinas.rename-it.nl/~sirius/kdepim_sieve_patch.diff
>
> I hope you are willing to resolve these issues by merging my patch or
> something equivalent in future releases.
>
> Regards,
>
> --
> Stephan Bosch
> stephan at rename-it.nl
>
>
>
>
>
>
> _______________________________________________
> KDE PIM mailing list kde-pim at kde.org
> https://mail.kde.org/mailman/listinfo/kde-pim
> KDE PIM home page at http://pim.kde.org/
>
--
KDEPIM Developer
I accept PayPal payments to awinterz at earthlink.net
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list