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