mupdate doesn't replicate quota information

From: Diego Woitasen (no email)
Date: Tue Dec 04 2007 - 12:22:39 EST

  • Next message: Diego Woitasen: "mupdate doesn't replicate quota information"

    I'm playing with Cyrus Murder in replicated mode. All operations are
    working really fine, except quota informacion replication.

    The scenario is described in:
    http://lists.andrew.cmu.edu/pipermail/info-cyrus/2007-November/027829.html

    After read the code quickly I saw it's not supported.

    My solution is a little patch that adds quota_directory option in
    imapd.conf. Using quota db type legacy, we can put the quotadb in the
    shared storage. I didn't try with other db types.

    diff -Nur cyrus-imapd-2.3.10/imap/quota_db.c cyrus-ws/imap/quota_db.c
    --- cyrus-imapd-2.3.10/imap/quota_db.c 2007-08-15 14:20:57.000000000 -0300
    +++ cyrus-ws/imap/quota_db.c 2007-11-30 14:05:14.993312000 -0300
    @@ -242,12 +242,12 @@
     
         /* create db file name */
         if (!fname) {
    - size_t fname_len = strlen(config_dir)+strlen(FNAME_QUOTADB)+1;
    + size_t fname_len = strlen(quota_dir)+strlen(FNAME_QUOTADB)+1;
             
             fname = xmalloc(fname_len);
             tofree = fname;
     
    - strlcpy(fname, config_dir, fname_len);
    + strlcpy(fname, quota_dir, fname_len);
             strlcat(fname, FNAME_QUOTADB, fname_len);
         }
     
    diff -Nur cyrus-imapd-2.3.10/lib/imapoptions cyrus-ws/lib/imapoptions
    --- cyrus-imapd-2.3.10/lib/imapoptions 2007-10-18 15:14:48.000000000 -0300
    +++ cyrus-ws/lib/imapoptions 2007-11-30 14:44:06.367646834 -0300
    @@ -826,6 +826,9 @@
        allowed in envelope tests. When disabled, ANY grammatically correct header
        will be allowed. */
     
    +{ "quotadirectory", NULL, STRING }
    +/* The pathname of the quota database directory. Default is config directory. */
    +
     # Commented out - used by libsasl
     # { "sasl_auto_transition", 0, SWITCH }
     /* If enabled, the SASL library will automatically create authentication
    diff -Nur cyrus-imapd-2.3.10/lib/libconfig.c cyrus-ws/lib/libconfig.c
    --- cyrus-imapd-2.3.10/lib/libconfig.c 2007-07-18 15:56:11.000000000 -0300
    +++ cyrus-ws/lib/libconfig.c 2007-11-30 14:09:09.031608000 -0300
    @@ -69,6 +69,7 @@
     /* cached configuration variables accessible to the external world */
     const char *config_filename= NULL; /* filename of configuration file */
     const char *config_dir = NULL; /* ie /var/imap */
    +const char *quota_dir = NULL; /* ie /var/imap */
     const char *config_defpartition = NULL; /* /var/spool/imap */
     const char *config_servername= NULL; /* gethostname() */
     const char *config_mupdate_server = NULL;/* NULL */
    @@ -219,6 +220,8 @@
             fatal("configdirectory option not specified in configuration file",
                   EC_CONFIG);
         }
    + if (!quota_dir)
    + quota_dir = config_dir;
     
         /* Scan options to see if we need to replace {configdirectory} */
         /* xxx need to scan overflow options as well! */
    @@ -449,6 +452,8 @@
     
                     if(opt == IMAPOPT_CONFIGDIRECTORY)
                         config_dir = imapopts[opt].val.s;
    + if(opt == IMAPOPT_QUOTADIRECTORY)
    + quota_dir = imapopts[opt].val.s;
     
                     break;
                 }
    diff -Nur cyrus-imapd-2.3.10/lib/libconfig.h cyrus-ws/lib/libconfig.h
    --- cyrus-imapd-2.3.10/lib/libconfig.h 2007-07-18 15:56:11.000000000 -0300
    +++ cyrus-ws/lib/libconfig.h 2007-11-30 14:53:35.863766630 -0300
    @@ -66,6 +66,7 @@
     /* cached configuration variables accessable to external world */
     extern const char *config_filename;
     extern const char *config_dir;
    +extern const char *quota_dir;
     extern const char *config_defpartition;
     extern const char *config_servername;
     extern const char *config_mupdate_server;

    -- 
    --------------
    Diego Woitasen
    

  • Next message: Diego Woitasen: "mupdate doesn't replicate quota information"





    Hosted Email Solutions

    Invaluement Anti-Spam DNSBLs



    Powered By FreeBSD   Powered By FreeBSD