[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 122870] New: Bug in parsing of ManageSieve protocol for Sieve
From:       Aaron Stone <aaron () serendipity ! cx>
Date:       2006-02-28 23:32:46
Message-ID: 20060301003245.122870.aaron () serendipity ! cx
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=122870         
           Summary: Bug in parsing of ManageSieve protocol for Sieve scripts
           Product: kmail
           Version: unspecified
          Platform: unspecified
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
        AssignedTo: kmail-devel kde org
        ReportedBy: aaron serendipity cx


Version:            (using KDE KDE 3.5.1)
Installed from:    I Don't Know

I wrote the ManageSieve implementation for the DBMail mail system, and one of users \
of our latest development releases has not been able to use KMail to manage his Sieve \
scripts. The problem was traced down to this:

Oleg Lapshin wrote:

Solution is very simple :)
I wrote simple perl script, that emulate dbmail-timsieved and done some experiments

Now dbmail-timsieved do this:

C: GETSCRIPT "main"
S: {size+}
S: ...script....
S: OK

But, it must replay so:

C: GETSCRIPT "main"
S: {size}
S: ...script....
S: OK

without "+" (plus) in script size...

When I changed line 673 of timsieve.c from:
"{%u+}\r\n",
to
"{%u}\r\n",
kmail can get script to change it!!!

That's cool, but that + is stipulated by the draft RFC:
http://www.ietf.org/internet-drafts/draft-martin-managesieve-06.txt

See section 2.9, GETSCRIPT:

2.9.  GETSCRIPT Command

    Arguments:
         String - Script name

    This command gets the contents of the specified script.
    If the script does not exist the server MUST reply with
    a NO response. Upon success a string with the contents
    of the script is returned followed by a OK response.

    Example:

    C: Getscript "myscript"
    S: {48+}
    S: #this is my wonderful script
    S: reject "I reject all";
    S:
    S: OK

The encoding for a literal string is this:

    literal               = "{" number  "+}" CRLF *OCTET
        ;; The number represents the number of octets.
        ;; Sieve scripts MUST be sent as literal-utf8.
        ;; <<literal-utf8>> is defined in ACAP.

So uh, I think my server does the right thing and your client does the wrong thing \
:-P


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic