Patch for arbitary smb.conf paramaters (to make the life of plugin maintainers
authorAndrew Bartlett <abartlet@samba.org>
Sat, 13 Apr 2002 10:52:31 +0000 (10:52 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 13 Apr 2002 10:52:31 +0000 (10:52 +0000)
commitd0821f99a693cf9aef8c50d2639c5ca772becae1
tree42c4709653262a3f100506238b4536a6e7e98d54
parenta0152895897c68e3f9c665320699fb2e0da4a1a3
Patch for arbitary smb.conf paramaters (to make the life of plugin maintainers
sane) from ab.

Attached is his e-mail to the samba-technical list, as it describes it rather
well:

Andrew Bartlett

Subject:
         [PATCH] Parametrical options support for Samba 3.0
    Date:
         Fri, 12 Apr 2002 19:13:13 +0300
   From:
         Alexander Bokovoy <a.bokovoy@sam-solutions.net>
     To:
         samba-technical@samba.org
     CC:
         tridge@samba.org

Greetings!

Attached patch makes possible arbitrary options to be specified in
smb.conf and later queried from VFS modules (and other places)
without problems. Below such options are called 'parametrical options'.

Patch introduces new notation to smb.conf option's language, as discussed
today with Tridgell on @samba-technical:

        TYPE: OPTION = VALUE

Colon sign is important here, it is what distinguishes parametrical
options from ones hardcoded in param/loadparm.c.

TYPE is 'option domain', OPTION is option name itself.

In order to access values of parametrical options, lp_parm_string()
function was implemented:

char *lp_parm_string(const char *servicename, const char *type, const char
*option);

This function accepts service name, type and option name, and returns
value of option or NULL if this option is underfined. Service name can be
NULL, resulting in search in 'global' section only.

If option does not exist in specified service, 'global' section is
scanned. This allows propagation of globally specified options to all
services and later overloading of the option in some services.

Caution: 'TYPE: OPTION' combination is case sensitive.

So far, testparm is able to handle parametrical options, while SWAT
can't. Thus, everyone familiar with SWAT internals is welcomed to add
parametrical options support.
(This used to be commit bfd7cd43556bed3131d0d18869abfd1cbc30bcd0)
source3/param/loadparm.c