sieve problems (continued)
Ken Murchison
ken at oceana.com
Mon May 31 19:22:58 EDT 2004
Christian Schulte wrote:
> 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
More information about the Info-cyrus
mailing list