[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