Bob Tito wrote:
Christian Schulte wrote:
Bob Tito wrote:
Does the attached patch fix the problem ? At least it was reproduceable now and the patch fixed it here.
Hi Christian,
For starters it is good the hear that you are able to reproduce the problem... to finish it.. *IT WORKS* Thanks a lot!!
But... bacause of the limited amount of people with this problem is very specific to my config ?
Hi,
its a general problem with unixhierarchysep and sieve fileinto for users with dots in theire names. The cause I did not notice it earlier was that I never really updated from 2.2.3 to 2.2.4 or 2.2.5. Starting with 2.2.3 I made a link from /usr/local/cyrus22 -> /usr/local/cyrus2.2.3 so that I do not have to touch the configfiles for any updates but then just forgot to update the link to /usr/local/cyrus2.2.4 and /usr/local/cyrus2.2.5. Updating cyrus mainly is very early in the morning. That could explain that :-)
The patch looks to me more like a workaround and just fixes the problem. Maybe Ken or Rob will come up with a much more elegant solution.
Please try this patch instead. I don't think we need to pass the namespace to run_sieve() as an additional argument since its already part of sieve_msgdata_t.
*** lmtp_sieve.c.~1.7.~ 2004-05-31 19:18:23.000000000 -0400 --- lmtp_sieve.c 2004-05-31 19:18:55.000000000 -0400 *************** *** 830,835 **** --- 830,836 ---- script_data_t *sdata = NULL; sieve_bytecode_t *bc = NULL; char userbuf[MAX_MAILBOX_NAME+1]; + char authuserbuf[MAX_MAILBOX_NAME+1];
sdata = (script_data_t *) xmalloc(sizeof(script_data_t));
*************** *** 838,846 **** strlcat(userbuf, "@", sizeof(userbuf)); strlcat(userbuf, domain, sizeof(userbuf)); } sdata->username = userbuf; sdata->mailboxname = mailbox; ! sdata->authstate = auth_newstate(userbuf);
r = sieve_script_load(fname, &bc); if (r == SIEVE_OK) { --- 839,852 ---- strlcat(userbuf, "@", sizeof(userbuf)); strlcat(userbuf, domain, sizeof(userbuf)); } + strlcpy(authuserbuf, userbuf, sizeof(authuserbuf)); + if (config_getswitch(IMAPOPT_UNIXHIERARCHYSEP)) { + mboxname_hiersep_toexternal(msgdata->namespace, authuserbuf, + domain ? strcspn(authuserbuf, "@") : 0); + } sdata->username = userbuf; sdata->mailboxname = mailbox; ! sdata->authstate = auth_newstate(authuserbuf);
r = sieve_script_load(fname, &bc); if (r == SIEVE_OK) {
-- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp --- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html