[Dovecot] MANAGESIEVE patch v4 for dovecot 1.0.rc28 / problems
Stephan Bosch
sirius at drunksnipers.com
Sun Apr 8 17:10:30 EEST 2007
Robert Schetterer wrote:
> Hi,ok setui above works
> using avelsieve squirrelmail plugin
> with managesieve dovecot latest
> (perhaps i shouldnt use 1.30 rc)
> as well there may be other problems between suse and quotawarn patches )
> please see this just as info to help coders to debug
>
> following problems in logs appear
>
> /var/log/messages
>
> 9 04:51:41 suse10-2-vmware kernel: managesieve-log[2326]: segfault at
> 0000000000000000 rip 0000000000000000 rsp 00007fff8995b938 error 14
>
> i have no idea where this comes from
Hmm. That's not good.. what ever happens, dovecot(-managesieve) must
never segfault. Maybe you could provide a core-dump. Btw, I don't really
know what managesieve-log is supposed to be. Timo, any ideas?
> /var/log/dovcot.info
>
> dovecot: Apr 09 04:55:00 Info: IMAP(tester at example.de): Disconnected:
> Logged out
> dovecot: Apr 09 04:55:08 Info: managesieve-login: Login:
> user=<tester at example.de>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, TLS
> dovecot: Apr 09 04:55:08 Info: MANAGESIEVE(tester at example.de): Effective
> uid=1001, gid=1001
> dovecot: Apr 09 04:55:08 Info: MANAGESIEVE(tester at example.de): sieve
> storage: Using active sieve script path:
> /usr/local/virtual/tester at example.de//.dovecot.sieve
>
> ( this line looks strange to me, but it musnt be false )
That looks very strange. Assuming you are not using the userdb to
specify the SIEVE path (code directly borrowed from dovecot-sieve), 'the
problem' seems to be that the home directory of tester at example.de ends
in a /. By looking at dovecot's home_expand code I discovered this is
not checked while expanding ~/.dovecot.sieve. However, linux/unix/POSIX
(?) seems to be handling duplicate slashes as single ones, so it should
work properly anyhow. But, maybe Timo is interested in making some
cosmetic changes. :)
<snap>protocol transcript</snap>
> S: PUTSCRIPT "phpscript" {777+}\r\n# This script has been automatically
> generated by avelsieve\n# (Sieve Mail Filters Plugin for
> Squirrelmail)\n# Warning: If you edit this manually, then the changes
> will not \n# be reflected in the users'
> front-end\!\n#AVELSIEVE_VERSIONYTo0OntzOjU6Im1ham9yIjtpOjE7czo1OiJtaW5vciI7aTo5O3M6NzoicmVsZWFzZSI7aTo3O3M6Njoic3RyaW5nIjtzOjU6IjEuOS43Ijt9\n#AVELSIEVE_CREATED1176087308\n#AVELSIEVE_MODIFIED1176087308\nrequire
> [""];\nif\n#START_SIEVE_RULEYTo0OntzOjQ6ImNvbmQiO2E6MTp7aTowO2E6NDp7czo0OiJ0eXBlIjtzOjY6ImhlYWRlciI7czo2OiJoZWFkZXIiO3M6NjoidG9vcmNjIjtzOjk6Im1hdGNodHlwZSI7czo4OiJjb250YWlucyI7czoxMToiaGVhZGVybWF0Y2giO3M6MzoiKioqIjt9fXM6NDoidHlwZSI7czoxOiIxIjtzOjk6ImNvbmRpdGlvbiI7czozOiJhbmQiO3M6NjoiYWN0aW9uIjtzOjE6IjIiO30%3DEND_SIEVE_RULE\nheader
> :contains ["to", "cc"] "***"\n{\ndiscard;\n}\r\n
> C: "IMPLEMENTATION" "dovecot"\r\n
> C: "SIEVE" "FILEINTO REJECT ENVELOPE VACATION IMAPFLAGS NOTIFY
> SUBADDRESS RELATIONAL COMPARATOR-I;ASCII-NUMERIC"\r\n
> C: OK "Capability completed."\r\n
> S: SETACTIVE "phpscript"\r\n
> C: NO "line 8: Unsupported features in require line"\r\n
This script states:
require [""];
This is not valid sieve to my knowledge and it doesn't serve any useful
purpose: there is no empty sieve extension, so this seems to be a bug in
avelsieve. Lib-CMUSieve correctly reports an error.
Btw, I tested avelsieve myself as well (to test yet another sieve
client), but it also caused a syntax error:
NO "line 6: syntax error, unexpected ']', expecting STRING"
I don't yet know what caused this, but I intend to find out as soon as I
get to sniff the TCP communication properly.
About the configuration: I will add a small configuration section to the
README file. Just like the first version, it is still configured as any
other mail protocol and it does not have any special configuration
options (apart from the freshly added managesieve_implementation_string
option). Simply adding managesieve to the 'protocols' line in
dovecot.conf is usually enough, but it also accepts the other common
options like 'listen' (to make the deamon listen on a different port for
instance).
Regards,
--
Stephan Bosch
stephan at rename-it.nl
IRC: Freenode, #dovecot, S[r]us
More information about the dovecot
mailing list