[SCM] Samba Shared Repository - branch v3-2-stable updated - release-3-2-0pre2-80-g734f1fb

Karolin Seeger kseeger at samba.org
Mon Mar 17 13:22:04 GMT 2008


The branch, v3-2-stable has been updated
       via  734f1fb431eaf5bd8836e5625db5c06a6aad4d06 (commit)
       via  9607db8844eeeab88fe66505f76f5cb786797a6f (commit)
       via  1ce8da6c8a8a7184eb738fb15e8b8132aa263875 (commit)
       via  9cbac89e3d2926dd25d30b81ddbaf0bbe075cc80 (commit)
       via  cc1adc63337ec5a1354553cc3caafaee36e80968 (commit)
       via  05f1a5b4ee5b6d5d8388a2da1ef8898c1e3a4594 (commit)
       via  c3fee5b352f5fe4dc9805441e226df7757a832d3 (commit)
       via  9ef1af9c5c39b11e4d1e2a7f56af3a37c84699bb (commit)
       via  ffd092a1cf0c1a74fd1cda8856ef88397b9adee8 (commit)
       via  bd2c600b2b20066fc71b32563f33ff11738b6530 (commit)
       via  a980e33c0cb125bf6ed6d8a3b47156ab7f03db33 (commit)
       via  d9032e59b7aa3b8242fb585a55f9005db6a363be (commit)
       via  07b346eb3530a745a7a7c026c55bf7cc3ec4ef4d (commit)
       via  66acb7c32275ad07309a9d00ec3242be22d2ba59 (commit)
       via  c1248f213312af0cb3bbd5c164e953d0cddfe0ac (commit)
       via  d206f55c3f0d495eb4321adc7673ef27f56a31a6 (commit)
       via  6c8c970ca0975932532a22d6ad68d4d017965e63 (commit)
       via  c3cf7fd4121a9021166436b945b83cf588d539d9 (commit)
       via  4782e3a92adb4f12bdcbd0ffaa10d5aa624ef488 (commit)
       via  c01011626bef427c20f2ad671977221f07cf65b3 (commit)
       via  64a336ad9451931a4637a37038da327a3fca527e (commit)
       via  5e2417ce88cb3e35642aa475cfd610d9c79434c4 (commit)
       via  686724e5483d1b9b8dd94d1e051bc2807e9d5d82 (commit)
       via  d65c0cd1bbd54e7aec9f0b69b76166b7c58ba663 (commit)
       via  ecbc067bbf5a22dd1ad8e9881af047c427b27e58 (commit)
       via  380ce42f5aabd649a88d9598900e9357534b3c06 (commit)
       via  4b6b201fceb32c3f49acb57af004167c9cba7dd2 (commit)
       via  5112a999494a6bd2590af910b4a8c53c53316ad6 (commit)
       via  bdfa8dd8c6820712834a6ab5c6a4abdb37d6c230 (commit)
       via  4cb0c14db4d4bf0c1d4d6e3ca8feba79d559aff8 (commit)
       via  683406ad730f8c0bd9b9e5c3a1277f548373614e (commit)
       via  c6b2906b4863d920f084dc183b8a83e483785a8e (commit)
       via  eadf9034130689396d47f9ca543ba3d38bf4ef5e (commit)
       via  bfdf6f4f9eda7a6d0cae7f5abe81e7ff443430d3 (commit)
       via  ea21dc9d8e458fbbf9f7b8eb7d55f2ff1103317d (commit)
       via  b8dbb6444d82da23f8d44b02131e52ba5e1397d0 (commit)
       via  c4b15391d2fb9f07999c91387560d7d94a917fb4 (commit)
       via  cbce50f10afa14164c039d94a56a8c342333a666 (commit)
       via  ba336476fa42dfc858982653b5ff2907ad55cd14 (commit)
       via  e6d6282c689fe1496daf1a6ddb037bee47c9f9e1 (commit)
       via  c86dbfc9579a4fdccb1cb958020f7d9c461139b4 (commit)
       via  d05a7e09d05da85b2b907f359105152fe92531bb (commit)
      from  ac10927ca6b480274b15a29962caa9b81b77185a (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-stable


- Log -----------------------------------------------------------------
commit 734f1fb431eaf5bd8836e5625db5c06a6aad4d06
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 12:21:32 2008 +0100

    registry: untangle assignment and if-clause in init_registry_data().
    
    Michael
    (cherry picked from commit 64664d25cf84e5e0f4a4876b2c38c127b310dbc5)

commit 9607db8844eeeab88fe66505f76f5cb786797a6f
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:44:26 2008 +0100

    registry: convert regdb REGISTRY_OPS to named struct initializers.
    
    Michael
    (cherry picked from commit 3ea0a0beb47bf91b71d949de5abb797177721dcc)

commit 1ce8da6c8a8a7184eb738fb15e8b8132aa263875
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:39:16 2008 +0100

    registry: use talloc instead of malloc and provide common exit point
    
    in regdb_get_secdesc().
    
    Michael
    (cherry picked from commit df848d8eeeb102288a3acb9a0f8a7015e0c6ca6b)

commit 9cbac89e3d2926dd25d30b81ddbaf0bbe075cc80
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:32:47 2008 +0100

    registry: remove an unused variable from regdb_set_secdesc().
    
    Michael
    (cherry picked from commit 76dad05e4ce4b4cb26557bc151359ed9d58d6317)

commit cc1adc63337ec5a1354553cc3caafaee36e80968
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:31:47 2008 +0100

    registry: untangle assignments and if statements in regdb_set_secdesc().
    
    Michael
    (cherry picked from commit d553b5d72569c1496bfa3de703c9bf15a9a6cb60)

commit 05f1a5b4ee5b6d5d8388a2da1ef8898c1e3a4594
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:27:27 2008 +0100

    registry: use talloc_stackframe instead of hand crafted temporary context.
    
    Michael
    (cherry picked from commit e4f2c856ec716697af4815491b5ae8ddb263cd51)

commit c3fee5b352f5fe4dc9805441e226df7757a832d3
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:26:35 2008 +0100

    registry: use talloc instead of malloc for tdb data in regdb_store_values().
    
    Michael
    (cherry picked from commit 860316cbe70836882bff16b39f0deb5c12cbd1f3)

commit 9ef1af9c5c39b11e4d1e2a7f56af3a37c84699bb
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:20:18 2008 +0100

    registry: don't use talloc_stackframe() instead of talloc_tos() als temp ctx
    
    in regdb_store_values(). Also provide common exit path for
    freeing memory.
    
    Michael
    (cherry picked from commit 7454e426f2ea9aa42620ed5bcb34c85797b9e21b)

commit ffd092a1cf0c1a74fd1cda8856ef88397b9adee8
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:17:15 2008 +0100

    registry: don't leak to talloc stack in regdb_fetch_keys().
    
    Michael
    (cherry picked from commit 3a1d79116b693bc25af1106c9a43ffd275ac3d1e)

commit bd2c600b2b20066fc71b32563f33ff11738b6530
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:09:31 2008 +0100

    registry: explicitly use talloc context instead of talloc_tos()
    
    in regdb_fetch_keys().
    
    Michael
    (cherry picked from commit 93ea27a3e23e489a2af3c778684f8a8a4594b567)

commit a980e33c0cb125bf6ed6d8a3b47156ab7f03db33
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:05:48 2008 +0100

    registry: don't leak on success path in regdb_store_keys().
    
    Michael
    (cherry picked from commit 331d7fd2ea6d8aeb029478a6ab8d4051fa2c03fd)

commit d9032e59b7aa3b8242fb585a55f9005db6a363be
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:02:47 2008 +0100

    registry: allocate tempory data in talloc stack in regdb_store_keys().
    
    Michael
    (cherry picked from commit a99b51159a7db5f249ff136cf9ba758d14380a35)

commit 07b346eb3530a745a7a7c026c55bf7cc3ec4ef4d
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 01:00:40 2008 +0100

    registry: separate cancel and failur exit paths in regdb_store_keys().
    
    Michael
    (cherry picked from commit e1d4a2fa5b5b0f21d1ea4a9dffc326878c9f54b7)

commit 66acb7c32275ad07309a9d00ec3242be22d2ba59
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 00:43:56 2008 +0100

    registry: don't leak memory on transaction fail in regdb_store_keys().
    
    Michael
    (cherry picked from commit 9315de404812d89dddcec6ac4ae17c34f5012746)

commit c1248f213312af0cb3bbd5c164e953d0cddfe0ac
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 00:41:59 2008 +0100

    registry: don't leak (to talloc_tos()) in regdb_store_keys().
    
    use talloc_stackframe() and free on error path.
    
    Michael
    (cherry picked from commit 95525772f2791f0fb999fe9f271da5b0fbdc62d8)

commit d206f55c3f0d495eb4321adc7673ef27f56a31a6
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 00:22:12 2008 +0100

    registry: reformat regdb_store_keys_internal(), killing long lines.
    
    Michael
    (cherry picked from commit 966b2414cb6efdfe5acb412ed9bdfd7589ee694c)

commit 6c8c970ca0975932532a22d6ad68d4d017965e63
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 00:09:07 2008 +0100

    registry: don't leak (to talloc_tos()) in regdb_store_keys_internal().
    
    Michael
    (cherry picked from commit 76e4cdc25fc9a7e47fd9a356dc54533b62c5db08)

commit c3cf7fd4121a9021166436b945b83cf588d539d9
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 17 00:02:52 2008 +0100

    registry: reformat init_registry_data() some, killing long lines.
    
    Michael
    (cherry picked from commit f357b1ddd3ea552163151f27b4ec70fe0488a0ba)

commit 4782e3a92adb4f12bdcbd0ffaa10d5aa624ef488
Author: Michael Adam <obnox at samba.org>
Date:   Sun Mar 16 23:52:40 2008 +0100

    registry: explicitly use talloc context instead of talloc_tos()
    
    in init_registry_data().
    
    Michael
    (cherry picked from commit 8b0dd1e7582eef71275eea2da2b444588412c517)

commit c01011626bef427c20f2ad671977221f07cf65b3
Author: Michael Adam <obnox at samba.org>
Date:   Sun Mar 16 23:49:59 2008 +0100

    registry: don't leak (to talloc_tos()) in init_registry_data().
    
    Michael
    (cherry picked from commit 7fd0ae3edce8a6ae913344cc0974181c19179b23)

commit 64a336ad9451931a4637a37038da327a3fca527e
Author: Michael Adam <obnox at samba.org>
Date:   Sun Mar 16 23:08:33 2008 +0100

    registry: rename tdb_refcount to regdb_refcount after change to dbwrap.
    
    Michael
    (cherry picked from commit d39957e2c9216ef01b2ef53863c0ef5d3a9b5fee)

commit 5e2417ce88cb3e35642aa475cfd610d9c79434c4
Author: Michael Adam <obnox at samba.org>
Date:   Sun Mar 16 23:07:15 2008 +0100

    registry: rename tdb_reg to regdb after change to dbwrap.
    
    Michael
    (cherry picked from commit 79f37d47655ec26176a8da5f47e1c7400888a2ef)

commit 686724e5483d1b9b8dd94d1e051bc2807e9d5d82
Author: Michael Adam <obnox at samba.org>
Date:   Sun Mar 16 23:03:34 2008 +0100

    registry: migrate tdb registry backend to dbwrap.
    
    Michael
    (cherry picked from commit 3c42d8ee16a4b143c6658fe26030569658eaef66)

commit d65c0cd1bbd54e7aec9f0b69b76166b7c58ba663
Author: Michael Adam <obnox at samba.org>
Date:   Thu Mar 13 23:08:07 2008 +0100

    Allow parameter "include" in registry based configuration (again).
    
    This is for instance important to allow includes with %I to setup
    individual logging (e.g.) for certain clients.
    
    Michael
    (cherry picked from commit 8dad80b4719691d66827ed46bebb963c0f8ba568)

commit ecbc067bbf5a22dd1ad8e9881af047c427b27e58
Author: Michael Adam <obnox at samba.org>
Date:   Thu Mar 13 23:02:58 2008 +0100

    Fix %I macro expansion for IPv4 mapped IPv6 addresses.
    
    On some systems (linux e.g.), when listening on ipv6 and ipv4,
    addresses of ipv4 clients are printed as mapped ipv4 addresses
    by getnameinfo (e.g. ::ffff:127.0.0.1). This re-establishes
    the original behaviour of %I to expand to the plain ipv4 address
    for an ipv4 client.
    
    Michael
    (cherry picked from commit 0abc8863f87fe5d2473492797c010784cb086008)

commit 380ce42f5aabd649a88d9598900e9357534b3c06
Author: Michael Adam <obnox at samba.org>
Date:   Wed Mar 12 02:12:11 2008 +0100

    init_srv_share_info_ctr: fix counting of services.
    
    The number of services was recorded too early leading to
    registry shares not showing up in browse lists.
    
    Guenther - please check.
    
    Michael
    (cherry picked from commit 737e470e02d1233fda51e903f27955e45427e95a)

commit 4b6b201fceb32c3f49acb57af004167c9cba7dd2
Author: Michael Adam <obnox at samba.org>
Date:   Wed Mar 12 02:07:37 2008 +0100

    Add a debug message.
    
    Michael
    (cherry picked from commit a39807044879ad9df7614e010db6ea16b51000a0)

commit 5112a999494a6bd2590af910b4a8c53c53316ad6
Author: Michael Adam <obnox at samba.org>
Date:   Wed Mar 12 01:03:26 2008 +0100

    loadparm: add a debug message.
    
    Michael
    (cherry picked from commit ce943aeb581027daf813528481b44177d391b61d)

commit bdfa8dd8c6820712834a6ab5c6a4abdb37d6c230
Author: Michael Adam <obnox at samba.org>
Date:   Wed Mar 12 00:56:33 2008 +0100

    loadparm: remove services read from smb.conf when starting over for config backend registry.
    
    Michael
    (cherry picked from commit b942ff6b7f0be4898e05525558b354533dea312b)

commit 4cb0c14db4d4bf0c1d4d6e3ca8feba79d559aff8
Author: Michael Adam <obnox at samba.org>
Date:   Wed Mar 12 00:54:48 2008 +0100

    loadparm: add convenience wrapper lp_kill_all_services()
    
    Michael
    (cherry picked from commit 32bfd131e33d06be9dfaef02b57f5401d2bc7639)

commit 683406ad730f8c0bd9b9e5c3a1277f548373614e
Author: Michael Adam <obnox at samba.org>
Date:   Wed Mar 12 00:43:19 2008 +0100

    loadparm: add a comment
    
    Michael
    (cherry picked from commit 05eda1252572f310499b28123d0f9e4211b7d54c)

commit c6b2906b4863d920f084dc183b8a83e483785a8e
Author: Michael Adam <obnox at samba.org>
Date:   Wed Mar 12 00:42:06 2008 +0100

    loadparm: fix a comment typo.
    
    Michael
    (cherry picked from commit 0a619d4dc476c945130fe47126d98cd47b39c34d)

commit eadf9034130689396d47f9ca543ba3d38bf4ef5e
Author: Michael Adam <obnox at samba.org>
Date:   Tue Mar 11 12:41:20 2008 +0100

    loadparm: add utility function to check for config backend file.
    
    Michael
    (cherry picked from commit 288495ec1a9b0c37bb3f98043f8f8dd946072bac)

commit bfdf6f4f9eda7a6d0cae7f5abe81e7ff443430d3
Author: Michael Adam <obnox at samba.org>
Date:   Tue Mar 11 12:36:18 2008 +0100

    loadparm: use a function to check for the registry config backend.
    
    Michael
    (cherry picked from commit 4ac52a5a1dfe8f4f22e960db2e4ca99f9e262427)

commit ea21dc9d8e458fbbf9f7b8eb7d55f2ff1103317d
Author: Michael Adam <obnox at samba.org>
Date:   Tue Mar 11 02:02:27 2008 +0100

    registry shares: prevent creating regular share called "global".
    
    This is a first quick fix.
    Registry shares should be rewritten to use libnet_conf.
    
    Michael
    (cherry picked from commit 71bd0bd0ea018e8c5033bbf904333c596330855a)

commit b8dbb6444d82da23f8d44b02131e52ba5e1397d0
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 10 17:16:01 2008 +0100

    loadparm: fix init_globals() to re-init all options event when called 2nd time.
    
    Up to the globals had only been fully reset when init_globals() was called
    for the first time. But a full restart is needed for use with
    "config backend = registry". (And should be with "config file = ...", but
    in this case the restart is outsourced to the daemons.) This left
    some options (like e.g. "realm") set to values that were set in smb.conf
    before the occurence of "config backend = registry".
    
    Now this misbehaviour is fixed with this change.
    
    Michael
    (cherry picked from commit f12259d9c4c34b99f5b655cab4b210159cb0e188)

commit c4b15391d2fb9f07999c91387560d7d94a917fb4
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 10 14:39:19 2008 +0100

    loadparm: replace typedef struct {} global/service by struct global/struct service.
    
    Michael
    (cherry picked from commit ab70e781b2d4cc7f8a7f6cf95825f8412d9be2ca)

commit cbce50f10afa14164c039d94a56a8c342333a666
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 10 14:23:02 2008 +0100

    loadparm: fix whitespaces in global and service parameter structs.
    
    Michael
    (cherry picked from commit 10ab0681e60e3b91958639a2b0ad359440076c4a)

commit ba336476fa42dfc858982653b5ff2907ad55cd14
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 10 14:10:58 2008 +0100

    loadparm: fix spacing in parm_table (training spaces and empty lines).
    
    Michael
    (cherry picked from commit 91aab823fc6ec4c38e3461aae57bec0c6a567150)

commit e6d6282c689fe1496daf1a6ddb037bee47c9f9e1
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 10 14:03:41 2008 +0100

    loadparm: Reformat the parm table to use named initializers.
    
    This makes each entry in the parm table much more comprehensible
    at first glance (to me). On the other hand, roughly 9 lines are
    used instead of one for each entry which makes the overall list
    less clearly laid out, one might argue. But we have 400+ lines
    of parameter descriptions anyways...
    
    Michael
    (cherry picked from commit 869a17f1a9ba45d30211c230673c6f4482876b29)

commit c86dbfc9579a4fdccb1cb958020f7d9c461139b4
Author: Michael Adam <obnox at samba.org>
Date:   Fri Mar 7 23:41:05 2008 +0100

    configure: fix quotation in SMB_LIBRARY for help output.
    
    Michael
    (cherry picked from commit 96f85a48beb7da9c373fc030474020d05c55a18d)

commit d05a7e09d05da85b2b907f359105152fe92531bb
Author: Michael Adam <obnox at samba.org>
Date:   Fri Mar 7 14:24:53 2008 +0100

    Time to confess...
    
    Michael
    (cherry picked from commit 4e584c6e3699d8c05b163cc5674af04d106692ba)

-----------------------------------------------------------------------

Summary of changes:
 source/Makefile.in                |    1 +
 source/lib/substitute.c           |   10 +-
 source/lib/util_reg.c             |    1 -
 source/m4/aclocal.m4              |    4 +-
 source/param/loadparm.c           | 4154 ++++++++++++++++++++++++++++++++-----
 source/registry/reg_backend_db.c  |  392 ++--
 source/rpc_server/srv_srvsvc_nt.c |    3 +-
 source/smbd/service.c             |    5 +
 source/web/swat.c                 |    2 +-
 9 files changed, 3858 insertions(+), 714 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/Makefile.in b/source/Makefile.in
index 7a94c07..85a20d7 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -7,6 +7,7 @@
 # Copyright (C) 2002-2003 Jelmer Vernooij <jelmer at samba.org>
 # Copyright (C) 2006 Lars Mueller <lars at samba.org>
 # Copyright (C) 2007 James Peach <jpeach at samba.org>
+# Copyright (C) 2008 Michael Adam <obnox at samba.org>
 ###########################################################################
 
 prefix=@prefix@
diff --git a/source/lib/substitute.c b/source/lib/substitute.c
index 59b54c4..ce97a36 100644
--- a/source/lib/substitute.c
+++ b/source/lib/substitute.c
@@ -597,10 +597,16 @@ char *alloc_sub_basic(const char *smb_name, const char *domain_name,
 			}
 			a_string = realloc_string_sub(a_string, "%D", r);
 			break;
-		case 'I' :
+		case 'I' : {
+			int offset = 0;
+			client_addr(get_client_fd(), addr, sizeof(addr));
+			if (strnequal(addr,"::ffff:",7)) {
+				offset = 7;
+			}
 			a_string = realloc_string_sub(a_string, "%I",
-					client_addr(get_client_fd(),addr, sizeof(addr)));
+						      addr + offset);
 			break;
+		}
 		case 'i': 
 			a_string = realloc_string_sub( a_string, "%i",
 					client_socket_addr(get_client_fd(), addr, sizeof(addr)) );
diff --git a/source/lib/util_reg.c b/source/lib/util_reg.c
index 2475dca..a2a6297 100644
--- a/source/lib/util_reg.c
+++ b/source/lib/util_reg.c
@@ -127,7 +127,6 @@ bool registry_smbconf_valname_forbidden(const char *valname)
 {
 	/* hard code the list of forbidden names here for now */
 	const char *forbidden_valnames[] = {
-		"include",
 		"lock directory",
 		"lock dir",
 		"config backend",
diff --git a/source/m4/aclocal.m4 b/source/m4/aclocal.m4
index 888c49d..ef0abad 100644
--- a/source/m4/aclocal.m4
+++ b/source/m4/aclocal.m4
@@ -78,8 +78,8 @@ AC_SUBST(LIBUC[_LIBS])
 
 AC_MSG_CHECKING([whether to build the LIBNAME shared library])
 AC_ARG_WITH(LIBNAME,
-[AS_HELP_STRING([--with-LIBNAME],
-	[Build the LIBNAME shared library (default=yes if shared libs supported)])],
+AS_HELP_STRING([--with-]LIBNAME,
+	[Build the LIBNAME shared library (default=yes if shared libs supported)]),
 [
 case "$withval" in
 	*)
diff --git a/source/param/loadparm.c b/source/param/loadparm.c
index 25aa48b..3f61e3f 100644
--- a/source/param/loadparm.c
+++ b/source/param/loadparm.c
@@ -99,10 +99,10 @@ struct _param_opt_struct {
 	char **list;
 };
 
-/* 
+/*
  * This structure describes global (ie., server-wide) parameters.
  */
-typedef struct {
+struct global {
 	int ConfigBackend;
 	char *smb_ports;
 	char *dos_charset;
@@ -136,7 +136,7 @@ typedef struct {
 	char *szRealm;
 	char *szAfsUsernameMap;
 	int iAfsTokenLifetime;
- 	char *szLogNtTokenCommand;
+	char *szLogNtTokenCommand;
 	char *szUsernameMap;
 	char *szLogonScript;
 	char *szLogonPath;
@@ -156,7 +156,7 @@ typedef struct {
 	char *szNameResolveOrder;
 	char *szPanicAction;
 	char *szAddUserScript;
-        char *szRenameUserScript;
+	char *szRenameUserScript;
 	char *szDelUserScript;
 	char *szAddGroupScript;
 	char *szDelGroupScript;
@@ -195,7 +195,7 @@ typedef struct {
 	char *szAddShareCommand;
 	char *szChangeShareCommand;
 	char *szDeleteShareCommand;
-        char **szEventLogs;
+	char **szEventLogs;
 	char *szGuestaccount;
 	char *szManglingMethod;
 	char **szServicesList;
@@ -328,19 +328,18 @@ typedef struct {
 	int iUsershareMaxShares;
 	int iIdmapCacheTime;
 	int iIdmapNegativeCacheTime;
-
 	bool bResetOnZeroVC;
 	int iKeepalive;
 	int iminreceivefile;
 	param_opt_struct *param_opt;
-} global;
+};
 
-static global Globals;
+static struct global Globals;
 
-/* 
- * This structure describes a single service. 
+/*
+ * This structure describes a single service.
  */
-typedef struct {
+struct service {
 	bool valid;
 	bool autoloaded;
 	int usershare;
@@ -479,11 +478,11 @@ typedef struct {
 	param_opt_struct *param_opt;
 
 	char dummy[3];		/* for alignment */
-} service;
+};
 
 
 /* This is a default service used to prime a services structure */
-static service sDefault = {
+static struct service sDefault = {
 	True,			/* valid */
 	False,			/* not autoloaded */
 	0,			/* not a usershare */
@@ -629,7 +628,7 @@ static service sDefault = {
 };
 
 /* local variables */
-static service **ServicePtrs = NULL;
+static struct service **ServicePtrs = NULL;
 static int iNumServices = 0;
 static int iServiceIndex = 0;
 static struct db_context *ServiceHash;
@@ -874,479 +873,3570 @@ static const struct enum_list enum_config_backend[] = {
  */
 
 static struct parm_struct parm_table[] = {
-	{N_("Base Options"), P_SEP, P_SEPARATOR}, 
-
-	{"dos charset", P_STRING, P_GLOBAL, &Globals.dos_charset, handle_charset, NULL, FLAG_ADVANCED}, 
-	{"unix charset", P_STRING, P_GLOBAL, &Globals.unix_charset, handle_charset, NULL, FLAG_ADVANCED}, 
-	{"display charset", P_STRING, P_GLOBAL, &Globals.display_charset, handle_charset, NULL, FLAG_ADVANCED}, 
-	{"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, 
-	{"path", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, 
-	{"directory", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_HIDE}, 
-	{"workgroup", P_USTRING, P_GLOBAL, &Globals.szWorkgroup, handle_workgroup, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, 
+	{N_("Base Options"), P_SEP, P_SEPARATOR},
+
+	{
+		.label		= "dos charset",
+		.type		= P_STRING,
+		.p_class	= P_GLOBAL,
+		.ptr		= &Globals.dos_charset,
+		.special	= handle_charset,
+		.enum_list	= NULL,
+		.flags		= FLAG_ADVANCED
+	},
+	{
+		.label		= "unix charset",
+		.type		= P_STRING,
+		.p_class	= P_GLOBAL,
+		.ptr		= &Globals.unix_charset,
+		.special	= handle_charset,
+		.enum_list	= NULL,
+		.flags		= FLAG_ADVANCED
+	},
+	{
+		.label		= "display charset",
+		.type		= P_STRING,
+		.p_class	= P_GLOBAL,
+		.ptr		= &Globals.display_charset,
+		.special	= handle_charset,
+		.enum_list	= NULL,
+		.flags		= FLAG_ADVANCED
+	},
+	{
+		.label		= "comment",
+		.type		= P_STRING,
+		.p_class	= P_LOCAL,
+		.ptr		= &sDefault.comment,
+		.special	= NULL,
+		.enum_list	= NULL,
+		.flags		= FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT
+	},
+	{
+		.label		= "path",
+		.type		= P_STRING,
+		.p_class	= P_LOCAL,
+		.ptr		= &sDefault.szPath,
+		.special	= NULL,
+		.enum_list	= NULL,
+		.flags		= FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
+	},
+	{
+		.label		= "directory",
+		.type		= P_STRING,
+		.p_class	= P_LOCAL,
+		.ptr		= &sDefault.szPath,
+		.special	= NULL,
+		.enum_list	= NULL,
+		.flags		= FLAG_HIDE,
+	},
+	{
+		.label		= "workgroup",
+		.type		= P_USTRING,
+		.p_class	= P_GLOBAL,
+		.ptr		= &Globals.szWorkgroup,
+		.special	= handle_workgroup,
+		.enum_list	= NULL,
+		.flags		= FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
+	},
 #ifdef WITH_ADS
-	{"realm", P_USTRING, P_GLOBAL, &Globals.szRealm, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, 
+	{
+		.label		= "realm",
+		.type		= P_USTRING,
+		.p_class	= P_GLOBAL,
+		.ptr		= &Globals.szRealm,
+		.special	= NULL,
+		.enum_list	= NULL,
+		.flags		= FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
+	},
 #endif
-	{"netbios name", P_USTRING, P_GLOBAL, &Globals.szNetbiosName, handle_netbios_name, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, 
-	{"netbios aliases", P_LIST, P_GLOBAL, &Globals.szNetbiosAliases, handle_netbios_aliases,  NULL, FLAG_ADVANCED}, 
-	{"netbios scope", P_USTRING, P_GLOBAL, &Globals.szNetbiosScope, handle_netbios_scope,  NULL, FLAG_ADVANCED}, 
-	{"server string", P_STRING, P_GLOBAL, &Globals.szServerString, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED }, 
-	{"interfaces", P_LIST, P_GLOBAL, &Globals.szInterfaces, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, 
-	{"bind interfaces only", P_BOOL, P_GLOBAL, &Globals.bBindInterfacesOnly, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, 
-
-	{"config backend", P_ENUM, P_GLOBAL, &Globals.ConfigBackend, NULL, enum_config_backend, FLAG_ADVANCED},
-
-	{N_("Security Options"), P_SEP, P_SEPARATOR}, 
-
-	{"security", P_ENUM, P_GLOBAL, &Globals.security, NULL, enum_security, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, 
-	{"auth methods", P_LIST, P_GLOBAL, &Globals.AuthMethods, NULL, NULL, FLAG_ADVANCED}, 
-	{"encrypt passwords", P_BOOL, P_GLOBAL, &Globals.bEncryptPasswords, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, 
-	{"update encrypted", P_BOOL, P_GLOBAL, &Globals.bUpdateEncrypt, NULL, NULL, FLAG_ADVANCED}, 
-	{"client schannel", P_ENUM, P_GLOBAL, &Globals.clientSchannel, NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED}, 
-	{"server schannel", P_ENUM, P_GLOBAL, &Globals.serverSchannel, NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED}, 
-	{"allow trusted domains", P_BOOL, P_GLOBAL, &Globals.bAllowTrustedDomains, NULL, NULL, FLAG_ADVANCED}, 
-	{"map to guest", P_ENUM, P_GLOBAL, &Globals.map_to_guest, NULL, enum_map_to_guest, FLAG_ADVANCED}, 
-	{"null passwords", P_BOOL, P_GLOBAL, &Globals.bNullPasswords, NULL, NULL, FLAG_ADVANCED}, 
-	{"obey pam restrictions", P_BOOL, P_GLOBAL, &Globals.bObeyPamRestrictions, NULL, NULL, FLAG_ADVANCED}, 
-	{"password server", P_STRING, P_GLOBAL, &Globals.szPasswordServer, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, 
-	{"smb passwd file", P_STRING, P_GLOBAL, &Globals.szSMBPasswdFile, NULL, NULL, FLAG_ADVANCED}, 
-	{"private dir", P_STRING, P_GLOBAL, &Globals.szPrivateDir, NULL, NULL, FLAG_ADVANCED}, 
-	{"passdb backend", P_STRING, P_GLOBAL, &Globals.szPassdbBackend, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, 
-	{"algorithmic rid base", P_INTEGER, P_GLOBAL, &Globals.AlgorithmicRidBase, NULL, NULL, FLAG_ADVANCED}, 
-	{"root directory", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, FLAG_ADVANCED}, 
-	{"root dir", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, FLAG_HIDE}, 
-	{"root", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, FLAG_HIDE}, 
-	{"guest account", P_STRING, P_GLOBAL, &Globals.szGuestaccount, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED}, 
-	{"enable privileges", P_BOOL, P_GLOBAL, &Globals.bEnablePrivileges, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"pam password change", P_BOOL, P_GLOBAL, &Globals.bPamPasswordChange, NULL, NULL, FLAG_ADVANCED}, 
-	{"passwd program", P_STRING, P_GLOBAL, &Globals.szPasswdProgram, NULL, NULL, FLAG_ADVANCED}, 
-	{"passwd chat", P_STRING, P_GLOBAL, &Globals.szPasswdChat, NULL, NULL, FLAG_ADVANCED}, 
-	{"passwd chat debug", P_BOOL, P_GLOBAL, &Globals.bPasswdChatDebug, NULL, NULL, FLAG_ADVANCED}, 
-	{"passwd chat timeout", P_INTEGER, P_GLOBAL, &Globals.iPasswdChatTimeout, NULL, NULL, FLAG_ADVANCED}, 
-	{"check password script", P_STRING, P_GLOBAL, &Globals.szCheckPasswordScript, NULL, NULL, FLAG_ADVANCED}, 
-	{"username map", P_STRING, P_GLOBAL, &Globals.szUsernameMap, NULL, NULL, FLAG_ADVANCED}, 
-	{"password level", P_INTEGER, P_GLOBAL, &Globals.pwordlevel, NULL, NULL, FLAG_ADVANCED}, 
-	{"username level", P_INTEGER, P_GLOBAL, &Globals.unamelevel, NULL, NULL, FLAG_ADVANCED}, 
-	{"unix password sync", P_BOOL, P_GLOBAL, &Globals.bUnixPasswdSync, NULL, NULL, FLAG_ADVANCED}, 
-	{"restrict anonymous", P_INTEGER, P_GLOBAL, &Globals.restrict_anonymous, NULL, NULL, FLAG_ADVANCED}, 
-	{"lanman auth", P_BOOL, P_GLOBAL, &Globals.bLanmanAuth, NULL, NULL, FLAG_ADVANCED}, 
-	{"ntlm auth", P_BOOL, P_GLOBAL, &Globals.bNTLMAuth, NULL, NULL, FLAG_ADVANCED}, 
-	{"client NTLMv2 auth", P_BOOL, P_GLOBAL, &Globals.bClientNTLMv2Auth, NULL, NULL, FLAG_ADVANCED}, 
-	{"client lanman auth", P_BOOL, P_GLOBAL, &Globals.bClientLanManAuth, NULL, NULL, FLAG_ADVANCED}, 
-	{"client plaintext auth", P_BOOL, P_GLOBAL, &Globals.bClientPlaintextAuth, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"username", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"user", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_HIDE}, 
-	{"users", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_HIDE}, 
-
-	{"invalid users", P_LIST, P_LOCAL, &sDefault.szInvalidUsers, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"valid users", P_LIST, P_LOCAL, &sDefault.szValidUsers, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"admin users", P_LIST, P_LOCAL, &sDefault.szAdminUsers, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"read list", P_LIST, P_LOCAL, &sDefault.readlist, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"write list", P_LIST, P_LOCAL, &sDefault.writelist, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"printer admin", P_LIST, P_LOCAL, &sDefault.printer_admin, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_PRINT | FLAG_DEPRECATED }, 
-	{"force user", P_STRING, P_LOCAL, &sDefault.force_user, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"force group", P_STRING, P_LOCAL, &sDefault.force_group, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"group", P_STRING, P_LOCAL, &sDefault.force_group, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"read only", P_BOOL, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE}, 
-	{"write ok", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_HIDE}, 
-	{"writeable", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_HIDE}, 
-	{"writable", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_HIDE}, 
-
-	{"acl check permissions", P_BOOL, P_LOCAL, &sDefault.bAclCheckPermissions, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE},
-	{"acl group control", P_BOOL, P_LOCAL, &sDefault.bAclGroupControl, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED },
-	{"acl map full control", P_BOOL, P_LOCAL, &sDefault.bAclMapFullControl, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE},
-	{"create mask", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL, FLAG_HIDE}, 
-	{"force create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"security mask", P_OCTAL, P_LOCAL, &sDefault.iSecurity_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"force security mode", P_OCTAL, P_LOCAL, &sDefault.iSecurity_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"directory mask", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, 
-	{"force directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"directory security mask", P_OCTAL, P_LOCAL, &sDefault.iDir_Security_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"force directory security mode", P_OCTAL, P_LOCAL, &sDefault.iDir_Security_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-	{"force unknown acl user", P_BOOL, P_LOCAL, &sDefault.bForceUnknownAclUser, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE},
-	{"inherit permissions", P_BOOL, P_LOCAL, &sDefault.bInheritPerms, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"inherit acls", P_BOOL, P_LOCAL, &sDefault.bInheritACLS, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"inherit owner", P_BOOL, P_LOCAL, &sDefault.bInheritOwner, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"guest only", P_BOOL, P_LOCAL, &sDefault.bGuest_only, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"only guest", P_BOOL, P_LOCAL, &sDefault.bGuest_only, NULL, NULL, FLAG_HIDE}, 
-	{"administrative share", P_BOOL, P_LOCAL, &sDefault.bAdministrative_share, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT},
-
-	{"guest ok", P_BOOL, P_LOCAL, &sDefault.bGuest_ok, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, 
-	{"public", P_BOOL, P_LOCAL, &sDefault.bGuest_ok, NULL, NULL, FLAG_HIDE}, 
-
-	{"only user", P_BOOL, P_LOCAL, &sDefault.bOnlyUser, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED}, 
-	{"hosts allow", P_LIST, P_LOCAL, &sDefault.szHostsallow, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, 
-	{"allow hosts", P_LIST, P_LOCAL, &sDefault.szHostsallow, NULL, NULL, FLAG_HIDE}, 
-	{"hosts deny", P_LIST, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, 
-	{"deny hosts", P_LIST, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_HIDE}, 
-	{"preload modules", P_LIST, P_GLOBAL, &Globals.szPreloadModules, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, 
-	{"use kerberos keytab", P_BOOL, P_GLOBAL, &Globals.bUseKerberosKeytab, NULL, NULL, FLAG_ADVANCED}, 
-
-	{N_("Logging Options"), P_SEP, P_SEPARATOR}, 
-
-	{"log level", P_STRING, P_GLOBAL, &Globals.szLogLevel, handle_debug_list, NULL, FLAG_ADVANCED}, 
-	{"debuglevel", P_STRING, P_GLOBAL, &Globals.szLogLevel, handle_debug_list, NULL, FLAG_HIDE}, 
-	{"syslog", P_INTEGER, P_GLOBAL, &Globals.syslog, NULL, NULL, FLAG_ADVANCED}, 
-	{"syslog only", P_BOOL, P_GLOBAL, &Globals.bSyslogOnly, NULL, NULL, FLAG_ADVANCED}, 
-	{"log file", P_STRING, P_GLOBAL, &Globals.szLogFile, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"max log size", P_INTEGER, P_GLOBAL, &Globals.max_log_size, NULL, NULL, FLAG_ADVANCED}, 
-	{"debug timestamp", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL, NULL, FLAG_ADVANCED}, 
-	{"timestamp logs", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL, NULL, FLAG_ADVANCED}, 
-	{"debug prefix timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugPrefixTimestamp, NULL, NULL, FLAG_ADVANCED}, 
-	{"debug hires timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugHiresTimestamp, NULL, NULL, FLAG_ADVANCED}, 
-	{"debug pid", P_BOOL, P_GLOBAL, &Globals.bDebugPid, NULL, NULL, FLAG_ADVANCED}, 
-	{"debug uid", P_BOOL, P_GLOBAL, &Globals.bDebugUid, NULL, NULL, FLAG_ADVANCED}, 
-	{"debug class", P_BOOL, P_GLOBAL, &Globals.bDebugClass, NULL, NULL, FLAG_ADVANCED},
-	{"enable core files", P_BOOL, P_GLOBAL, &Globals.bEnableCoreFiles, NULL, NULL, FLAG_ADVANCED},
-
-	{N_("Protocol Options"), P_SEP, P_SEPARATOR}, 
-
-	{"allocation roundup size", P_INTEGER, P_LOCAL, &sDefault.iallocation_roundup_size, NULL, NULL, FLAG_ADVANCED}, 
-	{"aio read size", P_INTEGER, P_LOCAL, &sDefault.iAioReadSize, NULL, NULL, FLAG_ADVANCED}, 
-	{"aio write size", P_INTEGER, P_LOCAL, &sDefault.iAioWriteSize, NULL, NULL, FLAG_ADVANCED}, 
-	{"aio write behind", P_STRING, P_LOCAL, &sDefault.szAioWriteBehind, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, 
-	{"smb ports", P_STRING, P_GLOBAL, &Globals.smb_ports, NULL, NULL, FLAG_ADVANCED}, 
-	{"large readwrite", P_BOOL, P_GLOBAL, &Globals.bLargeReadwrite, NULL, NULL, FLAG_ADVANCED}, 
-	{"max protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, FLAG_ADVANCED}, 
-	{"protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, FLAG_ADVANCED}, 
-	{"min protocol", P_ENUM, P_GLOBAL, &Globals.minprotocol, NULL, enum_protocol, FLAG_ADVANCED}, 
-	{"min receivefile size", P_INTEGER, P_GLOBAL, &Globals.iminreceivefile, NULL, NULL, FLAG_ADVANCED}, 
-	{"read raw", P_BOOL, P_GLOBAL, &Globals.bReadRaw, NULL, NULL, FLAG_ADVANCED}, 
-	{"write raw", P_BOOL, P_GLOBAL, &Globals.bWriteRaw, NULL, NULL, FLAG_ADVANCED}, 
-	{"disable netbios", P_BOOL, P_GLOBAL, &Globals.bDisableNetbios, NULL, NULL, FLAG_ADVANCED}, 
-	{"reset on zero vc", P_BOOL, P_GLOBAL, &Globals.bResetOnZeroVC, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"acl compatibility", P_ENUM, P_GLOBAL, &Globals.iAclCompat, NULL,  enum_acl_compat_vals, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"defer sharing violations", P_BOOL, P_GLOBAL, &Globals.bDeferSharingViolations, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL},
-	{"ea support", P_BOOL, P_LOCAL, &sDefault.bEASupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"nt acl support", P_BOOL, P_LOCAL, &sDefault.bNTAclSupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"nt pipe support", P_BOOL, P_GLOBAL, &Globals.bNTPipeSupport, NULL, NULL, FLAG_ADVANCED}, 
-	{"nt status support", P_BOOL, P_GLOBAL, &Globals.bNTStatusSupport, NULL, NULL, FLAG_ADVANCED}, 
-	{"profile acls", P_BOOL, P_LOCAL, &sDefault.bProfileAcls, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-
-	{"announce version", P_STRING, P_GLOBAL, &Globals.szAnnounceVersion, NULL, NULL, FLAG_ADVANCED}, 
-	{"announce as", P_ENUM, P_GLOBAL, &Globals.announce_as, NULL, enum_announce_as,  FLAG_ADVANCED}, 
-	{"map acl inherit", P_BOOL, P_LOCAL, &sDefault.bMap_acl_inherit, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"afs share", P_BOOL, P_LOCAL, &sDefault.bAfs_Share, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL},
-	{"max mux", P_INTEGER, P_GLOBAL, &Globals.max_mux, NULL, NULL, FLAG_ADVANCED}, 
-	{"max xmit", P_INTEGER, P_GLOBAL, &Globals.max_xmit, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"name resolve order", P_STRING, P_GLOBAL, &Globals.szNameResolveOrder, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, 
-	{"max ttl", P_INTEGER, P_GLOBAL, &Globals.max_ttl, NULL, NULL, FLAG_ADVANCED}, 
-	{"max wins ttl", P_INTEGER, P_GLOBAL, &Globals.max_wins_ttl, NULL, NULL, FLAG_ADVANCED}, 
-	{"min wins ttl", P_INTEGER, P_GLOBAL, &Globals.min_wins_ttl, NULL, NULL, FLAG_ADVANCED}, 
-	{"time server", P_BOOL, P_GLOBAL, &Globals.bTimeServer, NULL, NULL, FLAG_ADVANCED}, 
-	{"unix extensions", P_BOOL, P_GLOBAL, &Globals.bUnixExtensions, NULL, NULL, FLAG_ADVANCED}, 
-	{"use spnego", P_BOOL, P_GLOBAL, &Globals.bUseSpnego, NULL, NULL, FLAG_ADVANCED}, 
-	{"client signing", P_ENUM, P_GLOBAL, &Globals.client_signing, NULL, enum_smb_signing_vals, FLAG_ADVANCED}, 
-	{"server signing", P_ENUM, P_GLOBAL, &Globals.server_signing, NULL, enum_smb_signing_vals, FLAG_ADVANCED}, 
-	{"smb encrypt", P_ENUM, P_LOCAL, &sDefault.ismb_encrypt, NULL, enum_smb_signing_vals, FLAG_ADVANCED},
-	{"client use spnego", P_BOOL, P_GLOBAL, &Globals.bClientUseSpnego, NULL, NULL, FLAG_ADVANCED}, 
-	{"client ldap sasl wrapping", P_ENUM, P_GLOBAL, &Globals.client_ldap_sasl_wrapping, NULL, enum_ldap_sasl_wrapping, FLAG_ADVANCED},
-	{"enable asu support", P_BOOL, P_GLOBAL, &Globals.bASUSupport, NULL, NULL, FLAG_ADVANCED}, 
-	{"svcctl list", P_LIST, P_GLOBAL, &Globals.szServicesList, NULL, NULL, FLAG_ADVANCED},
-
-	{N_("Tuning Options"), P_SEP, P_SEPARATOR}, 
-
-	{"block size", P_INTEGER, P_LOCAL, &sDefault.iBlock_size, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"deadtime", P_INTEGER, P_GLOBAL, &Globals.deadtime, NULL, NULL, FLAG_ADVANCED}, 
-	{"getwd cache", P_BOOL, P_GLOBAL, &Globals.getwd_cache, NULL, NULL, FLAG_ADVANCED},
-	{"keepalive", P_INTEGER, P_GLOBAL, &Globals.iKeepalive, NULL, NULL, FLAG_ADVANCED},
-	{"change notify", P_BOOL, P_LOCAL, &sDefault.bChangeNotify, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE },
-	{"directory name cache size", P_INTEGER, P_LOCAL, &sDefault.iDirectoryNameCacheSize, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE },
-	{"kernel change notify", P_BOOL, P_LOCAL, &sDefault.bKernelChangeNotify, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE },
-
-	{"lpq cache time", P_INTEGER, P_GLOBAL, &Globals.lpqcachetime, NULL, NULL, FLAG_ADVANCED}, 
-	{"max smbd processes", P_INTEGER, P_GLOBAL, &Globals.iMaxSmbdProcesses, NULL, NULL, FLAG_ADVANCED}, 
-	{"max connections", P_INTEGER, P_LOCAL, &sDefault.iMaxConnections, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"paranoid server security", P_BOOL, P_GLOBAL, &Globals.paranoid_server_security, NULL, NULL, FLAG_ADVANCED}, 
-	{"max disk size", P_INTEGER, P_GLOBAL, &Globals.maxdisksize, NULL, NULL, FLAG_ADVANCED}, 
-	{"max open files", P_INTEGER, P_GLOBAL, &Globals.max_open_files, NULL, NULL, FLAG_ADVANCED}, 
-	{"min print space", P_INTEGER, P_LOCAL, &sDefault.iMinPrintSpace, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-
-	{"socket options", P_STRING, P_GLOBAL, &Globals.szSocketOptions, NULL, NULL, FLAG_ADVANCED},
-	{"strict allocate", P_BOOL, P_LOCAL, &sDefault.bStrictAllocate, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"strict sync", P_BOOL, P_LOCAL, &sDefault.bStrictSync, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"sync always", P_BOOL, P_LOCAL, &sDefault.bSyncAlways, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"use mmap", P_BOOL, P_GLOBAL, &Globals.bUseMmap, NULL, NULL, FLAG_ADVANCED}, 
-	{"use sendfile", P_BOOL, P_LOCAL, &sDefault.bUseSendfile, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"hostname lookups", P_BOOL, P_GLOBAL, &Globals.bHostnameLookups, NULL, NULL, FLAG_ADVANCED}, 
-	{"write cache size", P_INTEGER, P_LOCAL, &sDefault.iWriteCacheSize, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED}, 
-
-	{"name cache timeout", P_INTEGER, P_GLOBAL, &Globals.name_cache_timeout, NULL, NULL, FLAG_ADVANCED}, 
-	{"ctdbd socket", P_STRING, P_GLOBAL, &Globals.ctdbdSocket, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, 
-	{"cluster addresses", P_LIST, P_GLOBAL, &Globals.szClusterAddresses, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, 
-	{"clustering", P_BOOL, P_GLOBAL, &Globals.clustering, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, 
-
-	{N_("Printing Options"), P_SEP, P_SEPARATOR}, 
-
-	{"max reported print jobs", P_INTEGER, P_LOCAL, &sDefault.iMaxReportedPrintJobs, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"max print jobs", P_INTEGER, P_LOCAL, &sDefault.iMaxPrintJobs, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"load printers", P_BOOL, P_GLOBAL, &Globals.bLoadPrinters, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"printcap cache time", P_INTEGER, P_GLOBAL, &Globals.PrintcapCacheTime, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"printcap name", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"printcap", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL, NULL, FLAG_HIDE}, 
-	{"printable", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"print ok", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_HIDE}, 
-	{"printing", P_ENUM, P_LOCAL, &sDefault.iPrinting, handle_printing, enum_printing, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"cups options", P_STRING, P_LOCAL, &sDefault.szCupsOptions, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"cups server", P_STRING, P_GLOBAL, &Globals.szCupsServer, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"iprint server", P_STRING, P_GLOBAL, &Globals.szIPrintServer, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"print command", P_STRING, P_LOCAL, &sDefault.szPrintcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"disable spoolss", P_BOOL, P_GLOBAL, &Globals.bDisableSpoolss, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"enable spoolss", P_BOOLREV, P_GLOBAL, &Globals.bDisableSpoolss, NULL, NULL, FLAG_HIDE}, 
-	{"lpq command", P_STRING, P_LOCAL, &sDefault.szLpqcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"lprm command", P_STRING, P_LOCAL, &sDefault.szLprmcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"lppause command", P_STRING, P_LOCAL, &sDefault.szLppausecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"lpresume command", P_STRING, P_LOCAL, &sDefault.szLpresumecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"queuepause command", P_STRING, P_LOCAL, &sDefault.szQueuepausecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-	{"queueresume command", P_STRING, P_LOCAL, &sDefault.szQueueresumecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, 
-
-	{"addport command", P_STRING, P_GLOBAL, &Globals.szAddPortCommand, NULL, NULL, FLAG_ADVANCED}, 
-	{"enumports command", P_STRING, P_GLOBAL, &Globals.szEnumPortsCommand, NULL, NULL, FLAG_ADVANCED}, 
-	{"addprinter command", P_STRING, P_GLOBAL, &Globals.szAddPrinterCommand, NULL, NULL, FLAG_ADVANCED}, 
-	{"deleteprinter command", P_STRING, P_GLOBAL, &Globals.szDeletePrinterCommand, NULL, NULL, FLAG_ADVANCED}, 
-	{"show add printer wizard", P_BOOL, P_GLOBAL, &Globals.bMsAddPrinterWizard, NULL, NULL, FLAG_ADVANCED}, 
-	{"os2 driver map", P_STRING, P_GLOBAL, &Globals.szOs2DriverMap, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"printer name", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"printer", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, FLAG_HIDE}, 
-	{"use client driver", P_BOOL, P_LOCAL, &sDefault.bUseClientDriver, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"default devmode", P_BOOL, P_LOCAL, &sDefault.bDefaultDevmode, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"force printername", P_BOOL, P_LOCAL, &sDefault.bForcePrintername, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, 
-	{"printjob username", P_STRING, P_LOCAL, &sDefault.szPrintjobUsername, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT},
-
-	{N_("Filename Handling"), P_SEP, P_SEPARATOR}, 
-	{"mangling method", P_STRING, P_GLOBAL, &Globals.szManglingMethod, NULL, NULL, FLAG_ADVANCED}, 
-	{"mangle prefix", P_INTEGER, P_GLOBAL, &Globals.mangle_prefix, NULL, NULL, FLAG_ADVANCED}, 
-
-	{"default case", P_ENUM, P_LOCAL, &sDefault.iDefaultCase, NULL, enum_case, FLAG_ADVANCED | FLAG_SHARE}, 
-	{"case sensitive", P_ENUM, P_LOCAL, &sDefault.iCaseSensitive, NULL, enum_bool_auto, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"casesignames", P_ENUM, P_LOCAL, &sDefault.iCaseSensitive, NULL, enum_bool_auto, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_HIDE}, 
-	{"preserve case", P_BOOL, P_LOCAL, &sDefault.bCasePreserve, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"short preserve case", P_BOOL, P_LOCAL, &sDefault.bShortCasePreserve, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"mangling char", P_CHAR, P_LOCAL, &sDefault.magic_char, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"hide dot files", P_BOOL, P_LOCAL, &sDefault.bHideDotFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"hide special files", P_BOOL, P_LOCAL, &sDefault.bHideSpecialFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"hide unreadable", P_BOOL, P_LOCAL, &sDefault.bHideUnReadable, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"hide unwriteable files", P_BOOL, P_LOCAL, &sDefault.bHideUnWriteableFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"delete veto files", P_BOOL, P_LOCAL, &sDefault.bDeleteVetoFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"veto files", P_STRING, P_LOCAL, &sDefault.szVetoFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, 
-	{"hide files", P_STRING, P_LOCAL, &sDefault.szHideFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, 
-	{"veto oplock files", P_STRING, P_LOCAL, &sDefault.szVetoOplockFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, 
-	{"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"map hidden", P_BOOL, P_LOCAL, &sDefault.bMap_hidden, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
-	{"map system", P_BOOL, P_LOCAL, &sDefault.bMap_system, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list