Ken Murchison wrote:

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.

Hi Ken,

This patch works for me as well!

Thanks, Bob



*** 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) {


--- 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

Reply via email to