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@xxxxxxxxxxxxxx> Date: Wed, 15 Apr 2009 15:22:33 -0400 From: Dave McMurtrie <dave64@xxxxxxxxxxxxxx> User-Agent: Thunderbird 2.0.0.12 (X11/20080213) MIME-Version: 1.0 To: cyrus-devel@xxxxxxxxxxxxxxxxxxxx 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); ---- Cyrus Home Page: http://www.cyrusimap.org/ List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/