cyrus 2.3.14 on opensuse 11.1 x64 and lmtp errors

Bron Gondwana brong at fastmail.fm
Tue Sep 28 18:03:43 EDT 2010


Hey Rob - got another little Cyrus job if we run out of work for the
new people :)

3) cyr_config tool.  It needs at least the following capabilities:

a) a mode which dumps ALL configuration options, either set by you or
the default

b) a mode which dumps only the options which are non-default

c) an "audit" mode which warns about any unrecognised configuration
   options


The tricky one will be (c).  You'll need to search the code for any uses
of overflow string.  For example the xlist_ patch current uses overload
strings for the various xlist folders.  It should probably be converted
to use annotations / mailbox option flags at some point, but there are
probably others.  Actually, at a glance it looks like most of the others
are just partition finding - we can handle that easily enough :)

Bron.

On Tue, Sep 28, 2010 at 05:52:57PM -0400, Dave McMurtrie wrote:
> Bron Gondwana wrote:
> >On Tue, Sep 28, 2010 at 05:47:35PM +0200, Josef Karliak wrote:
> >> Yes,
> >>I see, where did I got that ??? Nor cyrus didn't complain for
> >>unknown config options ...
> >>  Thanks for kick :)
> >>  J.K.
> >
> >Yeah, Cyrus doesn't complain about unknown options for a couple
> >of reasons:
> >
> >a) because you can prefix any option with a service name from
> >cyrus.conf and it will override the basic config option.
> >
> >b) options that depend on partitions.
> >
> >Now - it's probably possible to scan through them and check if
> >there's anything unexpected.  Makes it a pain dealing with
> >different versions that support different options - but I agree
> >a warning would be nice.
> 
> Speaking of this, I sent the following to cyrus-devel in April,
> 2009. It's less complete than your suggestion and it wouldn't have
> helped in this particular situation.  I'm not sure if it's
> worthwhile or not.
> 
> Message-ID: <49E633F9.2030105 at andrew.cmu.edu>
> Date: Wed, 15 Apr 2009 15:22:33 -0400
> From: Dave McMurtrie <dave64 at andrew.cmu.edu>
> User-Agent: Thunderbird 2.0.0.12 (X11/20080213)
> MIME-Version: 1.0
> To: cyrus-devel at lists.andrew.cmu.edu
> Subject: Improvement to config file parsing code?
> X-Enigmail-Version: 0.95.7
> Content-Type: text/plain; charset=ISO-8859-1
> Content-Transfer-Encoding: 7bit
> 
> I discovered that the code in libconfig.c that parses imapd.conf really
> has no way of warning you if you make a typo.  It looks like someone
> tried to deal with this at some point, but that code is commented out
> because it would die on any service-specific configuration options.
> 
> The patch I propose here relies on the fact that a service-specific
> option must contain a '_' character in it, so this patch would at least
> catch simple typos to real imapd configuration options.  Of course, this
> patch is only valid if my assumption that all service-specific options
> must contain an underscore is valid.
> 
> Thoughts?  If this would be useful, I'll throw it in bugzilla.  If it's
> a dumb idea, I'll forget about it.
> 
> --- libconfig.c.orig    2009-03-31 08:22:14.000000000 -0400
> +++ libconfig.c 2009-04-15 15:04:44.000000000 -0400
> @@ -589,18 +589,14 @@
>             /* check to make sure it's valid for overflow */
>             /* that is, partition names and anything that might be
>              * used by SASL */
> -/*
> -  xxx this would be nice if it wasn't for other services who might be
> -      sharing this config file and whose names we cannot predict
> -
>             if(strncasecmp(key,"sasl_",5)
> -           && strncasecmp(key,"partition-",10)) {
> +              && strncasecmp(key,"partition-",10)
> +              && (!strchr(key,'_'))) {
>                 sprintf(errbuf,
>                         "option '%s' is unknown on line %d of config file",
>                         fullkey, lineno);
>                 fatal(errbuf, EC_CONFIG);
>             }
> -*/
> 
>             /* Put it in the overflow hash table */
>             newval = xstrdup(p);


More information about the Info-cyrus mailing list