lib/param: Remove unused lpcfg_next_parameter (once used by SWAT)
[kai/samba-autobuild/.git] / lib / param / loadparm.c
index 33c87e61132b24f4a41341d6b2df446e724a3fde..ae5f01cd38bac6fe1033d41752451d2c59845512 100644 (file)
@@ -66,7 +66,6 @@
 #include "lib/param/s3_param.h"
 #include "lib/util/bitmap.h"
 #include "libcli/smb/smb_constants.h"
-#include "source4/dns_server/dns_update.h"
 
 #define standard_sub_basic talloc_strdup
 
@@ -75,7 +74,7 @@ static bool defaults_saved = false;
 
 #define LOADPARM_EXTRA_GLOBALS \
        struct parmlist_entry *param_opt;                               \
-       char *szRealm;                                                  \
+       char *realm_original;                                           \
        char *szConfigFile;                                             \
        int iminreceivefile;                                            \
        char *szPrintcapname;                                           \
@@ -88,6 +87,7 @@ static bool defaults_saved = false;
        char *szUsershareTemplateShare;                                 \
        char *szIdmapUID;                                               \
        char *szIdmapGID;                                               \
+       char *szIdmapBackend;                                           \
        int winbindMaxDomainConnections;                                \
        int ismb2_max_credits;                                          \
        char *tls_keyfile;                                              \
@@ -95,8 +95,7 @@ static bool defaults_saved = false;
        char *tls_cafile;                                               \
        char *tls_crlfile;                                              \
        char *tls_dhpfile;                                              \
-       char *loglevel;                                                 \
-       char *panic_action;                                             
+       char *loglevel;
 
 #include "lib/param/param_global.h"
 
@@ -110,7 +109,6 @@ static bool defaults_saved = false;
  * non-source3 code
  */
 #define handle_netbios_aliases NULL
-#define handle_debug_list NULL
 #define handle_printing NULL
 #define handle_ldap_debug_level NULL
 #define handle_idmap_backend NULL
@@ -128,3435 +126,13 @@ static bool handle_realm(struct loadparm_context *lp_ctx, int unused,
                         const char *pszParmValue, char **ptr);
 static bool handle_copy(struct loadparm_context *lp_ctx, int unused,
                        const char *pszParmValue, char **ptr);
-static bool handle_debuglevel(struct loadparm_context *lp_ctx, int unused,
+static bool handle_debug_list(struct loadparm_context *lp_ctx, int unused,
                              const char *pszParmValue, char **ptr);
 static bool handle_logfile(struct loadparm_context *lp_ctx, int unused,
                           const char *pszParmValue, char **ptr);
 
 #include "lib/param/param_table.c"
 
-#define GLOBAL_VAR(name) offsetof(struct loadparm_global, name)
-#define LOCAL_VAR(name) offsetof(struct loadparm_service, name)
-
-static struct parm_struct parm_table[] = {
-       {
-               .label          = "server role",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(server_role),
-               .special        = NULL,
-               .enum_list      = enum_server_role
-       },
-       {
-               .label          = "dos charset",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(dos_charset),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "unix charset",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(unix_charset),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "comment",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(comment),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT
-       },
-       {
-               .label          = "path",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPath),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
-       },
-       {
-               .label          = "directory",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPath),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "workgroup",
-               .type           = P_USTRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWorkgroup),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "realm",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szRealm),
-               .special        = handle_realm,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "netbios name",
-               .type           = P_USTRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szNetbiosName),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "netbios aliases",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szNetbiosAliases),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "netbios scope",
-               .type           = P_USTRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szNetbiosScope),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "server string",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szServerString),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED,
-       },
-       {
-               .label          = "interfaces",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szInterfaces),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "bind interfaces only",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bBindInterfacesOnly),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "passdb backend",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(passdb_backend),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {
-               .label          = "security",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(security),
-               .special        = NULL,
-               .enum_list      = enum_security
-       },
-       {
-               .label          = "encrypt passwords",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bEncryptPasswords),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "null passwords",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bNullPasswords),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
-       },
-       {
-               .label          = "obey pam restrictions",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bObeyPamRestrictions),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "password server",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szPasswordServer),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "private dir",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szPrivateDir),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "passwd chat",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szPasswdChat),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "password level",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(pwordlevel),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "lanman auth",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bLanmanAuth),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ntlm auth",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bNTLMAuth),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client NTLMv2 auth",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bClientNTLMv2Auth),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client lanman auth",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bClientLanManAuth),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client plaintext auth",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bClientPlaintextAuth),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client use spnego principal",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(client_use_spnego_principal),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {
-               .label          = "read only",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bRead_only),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {
-               .label          = "create mask",
-               .type           = P_OCTAL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iCreate_mask),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "force create mode",
-               .type           = P_OCTAL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iCreate_force_mode),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "directory mask",
-               .type           = P_OCTAL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iDir_mask),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "force directory mode",
-               .type           = P_OCTAL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iDir_force_mode),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {
-               .label          = "hosts allow",
-               .type           = P_LIST,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szHostsallow),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "hosts deny",
-               .type           = P_LIST,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szHostsdeny),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {
-               .label          = "log level",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(loglevel),
-               .special        = handle_debuglevel,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "debuglevel",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(loglevel),
-               .special        = handle_debuglevel,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "log file",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(logfile),
-               .special        = handle_logfile,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("Protocol Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "allocation roundup size",
-               .type           = P_BYTES,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iallocation_roundup_size),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "aio read size",
-               .type           = P_BYTES,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iAioReadSize),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "aio write size",
-               .type           = P_BYTES,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iAioWriteSize),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "aio write behind",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szAioWriteBehind),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "smb ports",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(smb_ports),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "large readwrite",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bLargeReadwrite),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "server max protocol",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(srv_maxprotocol),
-               .special        = NULL,
-               .enum_list      = enum_protocol,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "max protocol",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(srv_maxprotocol),
-               .special        = NULL,
-               .enum_list      = enum_protocol,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "protocol",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(srv_maxprotocol),
-               .special        = NULL,
-               .enum_list      = enum_protocol,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "server min protocol",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(srv_minprotocol),
-               .special        = NULL,
-               .enum_list      = enum_protocol,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "min protocol",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(srv_minprotocol),
-               .special        = NULL,
-               .enum_list      = enum_protocol,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client max protocol",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(cli_maxprotocol),
-               .special        = NULL,
-               .enum_list      = enum_protocol,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client min protocol",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(cli_minprotocol),
-               .special        = NULL,
-               .enum_list      = enum_protocol,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "unicode",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bUnicode),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "min receivefile size",
-               .type           = P_BYTES,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iminreceivefile),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "read raw",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bReadRaw),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "write raw",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWriteRaw),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "disable netbios",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bDisableNetbios),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "reset on zero vc",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bResetOnZeroVC),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "log writeable files on exit",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bLogWriteableFilesOnExit),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "acl compatibility",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iAclCompat),
-               .special        = NULL,
-               .enum_list      = enum_acl_compat_vals,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "defer sharing violations",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bDeferSharingViolations),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "ea support",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bEASupport),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "nt acl support",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bNTAclSupport),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "nt pipe support",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bNTPipeSupport),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "nt status support",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bNTStatusSupport),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "profile acls",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bProfileAcls),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
-       },
-       {
-               .label          = "map acl inherit",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bMap_acl_inherit),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "afs share",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bAfs_Share),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "max mux",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(max_mux),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "max xmit",
-               .type           = P_BYTES,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(max_xmit),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "name resolve order",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szNameResolveOrder),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "max ttl",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(max_ttl),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "max wins ttl",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(max_wins_ttl),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "min wins ttl",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(min_wins_ttl),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "time server",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bTimeServer),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "unix extensions",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bUnixExtensions),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "use spnego",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bUseSpnego),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
-       },
-       {
-               .label          = "client signing",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(client_signing),
-               .special        = NULL,
-               .enum_list      = enum_smb_signing_vals,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "server signing",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(server_signing),
-               .special        = NULL,
-               .enum_list      = enum_smb_signing_vals,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "smb encrypt",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(ismb_encrypt),
-               .special        = NULL,
-               .enum_list      = enum_smb_signing_vals,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client use spnego",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bClientUseSpnego),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "client ldap sasl wrapping",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(client_ldap_sasl_wrapping),
-               .special        = NULL,
-               .enum_list      = enum_ldap_sasl_wrapping,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "enable asu support",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bASUSupport),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "svcctl list",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szServicesList),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "cldap port",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(cldap_port),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "dgram port",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(dgram_port),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "nbt port",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(nbt_port),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "krb5 port",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(krb5_port),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "kpasswd port",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(kpasswd_port),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "web port",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(web_port),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "rpc big endian",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bRpcBigEndian),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {N_("Tuning Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "block size",
-               .type           = P_BYTES,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iBlock_size),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "deadtime",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(deadtime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "getwd cache",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(getwd_cache),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "keepalive",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iKeepalive),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "change notify",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bChangeNotify),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "directory name cache size",
-               .type           = P_INTEGER,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iDirectoryNameCacheSize),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "kernel change notify",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bKernelChangeNotify),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "lpq cache time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(lpqcachetime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "max smbd processes",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iMaxSmbdProcesses),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "max connections",
-               .type           = P_INTEGER,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iMaxConnections),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "paranoid server security",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(paranoid_server_security),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "max disk size",
-               .type           = P_BYTES,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(maxdisksize),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "max open files",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(max_open_files),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "min print space",
-               .type           = P_INTEGER,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iMinPrintSpace),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "socket options",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(socket_options),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "strict allocate",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bStrictAllocate),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "strict sync",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bStrictSync),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "sync always",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bSyncAlways),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "use mmap",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bUseMmap),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "use sendfile",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bUseSendfile),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "hostname lookups",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bHostnameLookups),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "write cache size",
-               .type           = P_BYTES,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iWriteCacheSize),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "name cache timeout",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(name_cache_timeout),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ctdbd socket",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ctdbdSocket),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "cluster addresses",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szClusterAddresses),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "clustering",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(clustering),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "ctdb timeout",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ctdb_timeout),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "ctdb locktime warn threshold",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ctdb_locktime_warn_threshold),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "smb2 max read",
-               .type           = P_BYTES,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ismb2_max_read),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "smb2 max write",
-               .type           = P_BYTES,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ismb2_max_write),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "smb2 max trans",
-               .type           = P_BYTES,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ismb2_max_trans),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "smb2 max credits",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ismb2_max_credits),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("Printing Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "max reported print jobs",
-               .type           = P_INTEGER,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iMaxReportedPrintJobs),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "max print jobs",
-               .type           = P_INTEGER,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iMaxPrintJobs),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "load printers",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bLoadPrinters),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "printcap cache time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(PrintcapCacheTime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "printcap name",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szPrintcapname),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "printcap",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szPrintcapname),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "printable",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bPrint_ok),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "print notify backchannel",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bPrintNotifyBackchannel),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "print ok",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bPrint_ok),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "printing",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iPrinting),
-               .special        = handle_printing,
-               .enum_list      = enum_printing,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "cups options",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szCupsOptions),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "cups server",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szCupsServer),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "cups encrypt",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(CupsEncrypt),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-
-               .label          = "cups connection timeout",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(cups_connection_timeout),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "iprint server",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szIPrintServer),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "print command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPrintcommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "disable spoolss",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bDisableSpoolss),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "enable spoolss",
-               .type           = P_BOOLREV,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bDisableSpoolss),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "lpq command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szLpqcommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "lprm command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szLprmcommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "lppause command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szLppausecommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "lpresume command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szLpresumecommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "queuepause command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szQueuepausecommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "queueresume command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szQueueresumecommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
-       },
-       {
-               .label          = "addport command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAddPortCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "enumports command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szEnumPortsCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "addprinter command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAddPrinterCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "deleteprinter command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDeletePrinterCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "show add printer wizard",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bMsAddPrinterWizard),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "os2 driver map",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szOs2DriverMap),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {
-               .label          = "printer name",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPrintername),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "printer",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPrintername),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "use client driver",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bUseClientDriver),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "default devmode",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bDefaultDevmode),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "force printername",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bForcePrintername),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-       {
-               .label          = "printjob username",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPrintjobUsername),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_PRINT,
-       },
-
-       {N_("Filename Handling"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "mangling method",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szManglingMethod),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "mangle prefix",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(mangle_prefix),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {
-               .label          = "default case",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iDefaultCase),
-               .special        = NULL,
-               .enum_list      = enum_case,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "case sensitive",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iCaseSensitive),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "casesignames",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iCaseSensitive),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_HIDE,
-       },
-       {
-               .label          = "preserve case",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bCasePreserve),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "short preserve case",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bShortCasePreserve),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "mangling char",
-               .type           = P_CHAR,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(magic_char),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "hide dot files",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bHideDotFiles),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "hide special files",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bHideSpecialFiles),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "hide unreadable",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bHideUnReadable),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "hide unwriteable files",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bHideUnWriteableFiles),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "delete veto files",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bDeleteVetoFiles),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "veto files",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szVetoFiles),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "hide files",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szHideFiles),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "veto oplock files",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szVetoOplockFiles),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "map archive",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bMap_archive),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "map hidden",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bMap_hidden),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "map system",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bMap_system),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "map readonly",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iMap_readonly),
-               .special        = NULL,
-               .enum_list      = enum_map_readonly,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "mangled names",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bMangledNames),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "max stat cache size",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iMaxStatCacheSize),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "stat cache",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bStatCache),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "store dos attributes",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bStoreDosAttributes),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "dmapi support",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bDmapiSupport),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-
-
-       {N_("Domain Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "machine password timeout",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(machine_password_timeout),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_WIZARD,
-       },
-
-       {N_("Logon Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "add user script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAddUserScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "rename user script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szRenameUserScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "delete user script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDelUserScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "add group script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAddGroupScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "delete group script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDelGroupScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "add user to group script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAddUserToGroupScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "delete user from group script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDelUserFromGroupScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "set primary group script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szSetPrimaryGroupScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "add machine script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAddMachineScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "shutdown script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szShutdownScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "abort shutdown script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAbortShutdownScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "username map script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szUsernameMapScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "username map cache time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iUsernameMapCacheTime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "logon script",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLogonScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "logon path",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLogonPath),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "logon drive",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLogonDrive),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "logon home",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLogonHome),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "domain logons",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bDomainLogons),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {
-               .label          = "init logon delayed hosts",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szInitLogonDelayedHosts),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {
-               .label          = "init logon delay",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(InitLogonDelay),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-
-       },
-
-       {N_("Browse Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "os level",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(os_level),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED,
-       },
-       {
-               .label          = "lm announce",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(lm_announce),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "lm interval",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(lm_interval),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "preferred master",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iPreferredMaster),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED,
-       },
-       {
-               .label          = "prefered master",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iPreferredMaster),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "local master",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bLocalMaster),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED,
-       },
-       {
-               .label          = "domain master",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(domain_master),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED,
-       },
-       {
-               .label          = "browse list",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bBrowseList),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "browseable",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bBrowseable),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
-       },
-       {
-               .label          = "browsable",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bBrowseable),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "access based share enum",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bAccessBasedShareEnum),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE
-       },
-       {
-               .label          = "enhanced browsing",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(enhanced_browsing),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("WINS Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "dns proxy",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWINSdnsProxy),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "wins proxy",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWINSproxy),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "wins server",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWINSservers),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "wins support",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWINSsupport),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
-       },
-       {
-               .label          = "wins hook",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWINSHook),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("Locking Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "blocking locks",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bBlockingLocks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "csc policy",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iCSCPolicy),
-               .special        = NULL,
-               .enum_list      = enum_csc_policy,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "fake oplocks",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bFakeOplocks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "kernel oplocks",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bKernelOplocks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "locking",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bLocking),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "lock spin time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iLockSpinTime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "oplocks",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bOpLocks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "level2 oplocks",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bLevel2OpLocks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "oplock break wait time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(oplock_break_wait_time),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "oplock contention limit",
-               .type           = P_INTEGER,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iOplockContentionLimit),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "posix locking",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bPosixLocking),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "strict locking",
-               .type           = P_ENUM,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iStrictLocking),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-
-       {N_("Ldap Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "ldap admin dn",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLdapAdminDn),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap delete dn",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_delete_dn),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap group suffix",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLdapGroupSuffix),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap idmap suffix",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLdapIdmapSuffix),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap machine suffix",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLdapMachineSuffix),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap passwd sync",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_passwd_sync),
-               .special        = NULL,
-               .enum_list      = enum_ldap_passwd_sync,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap password sync",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_passwd_sync),
-               .special        = NULL,
-               .enum_list      = enum_ldap_passwd_sync,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "ldap replication sleep",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_replication_sleep),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap suffix",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLdapSuffix),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap ssl",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_ssl),
-               .special        = NULL,
-               .enum_list      = enum_ldap_ssl,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap ssl ads",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_ssl_ads),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap deref",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_deref),
-               .special        = NULL,
-               .enum_list      = enum_ldap_deref,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap follow referral",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_follow_referral),
-               .special        = NULL,
-               .enum_list      = enum_bool_auto,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap timeout",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_timeout),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap connection timeout",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_connection_timeout),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap page size",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_page_size),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap user suffix",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLdapUserSuffix),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap debug level",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_debug_level),
-               .special        = handle_ldap_debug_level,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ldap debug threshold",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ldap_debug_threshold),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("EventLog Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "eventlog list",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szEventLogs),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
-       },
-
-       {N_("Miscellaneous Options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "add share command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAddShareCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "change share command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szChangeShareCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "delete share command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDeleteShareCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "config file",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szConfigFile),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE|FLAG_META,
-       },
-       {
-               .label          = "preload",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAutoServices),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "auto services",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAutoServices),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "lock directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLockDir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "lock dir",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLockDir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "state directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szStateDir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "cache directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szCacheDir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "pid directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szPidDir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ntp signd socket directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szNTPSignDSocketDirectory),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-#ifdef WITH_UTMP
-       {
-               .label          = "utmp directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szUtmpDir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "wtmp directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWtmpDir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "utmp",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bUtmp),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-#endif
-       {
-               .label          = "default service",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDefaultService),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "default",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDefaultService),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "message command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szMsgCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "dfree cache time",
-               .type           = P_INTEGER,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(iDfreeCacheTime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "dfree command",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szDfree),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "get quota command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szGetQuota),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "set quota command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szSetQuota),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "remote announce",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szRemoteAnnounce),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "remote browse sync",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szRemoteBrowseSync),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "socket address",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szSocketAddress),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "nmbd bind explicit broadcast",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bNmbdBindExplicitBroadcast),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "homedir map",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szNISHomeMapName),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "afs username map",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szAfsUsernameMap),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "afs token lifetime",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iAfsTokenLifetime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "log nt token command",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szLogNtTokenCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "NIS homedir",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bNISHomeMap),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "-valid",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(valid),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "copy",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szCopy),
-               .special        = handle_copy,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "include",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szInclude),
-               .special        = handle_include,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE|FLAG_META,
-       },
-       {
-               .label          = "preexec",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPreExec),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
-       },
-       {
-               .label          = "exec",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPreExec),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "preexec close",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bPreexecClose),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "postexec",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szPostExec),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
-       },
-       {
-               .label          = "root preexec",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szRootPreExec),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
-       },
-       {
-               .label          = "root preexec close",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bRootpreexecClose),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "root postexec",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szRootPostExec),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
-       },
-       {
-               .label          = "available",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bAvailable),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
-       },
-       {
-               .label          = "registry shares",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bRegistryShares),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "usershare allow guests",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bUsershareAllowGuests),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "usershare max shares",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iUsershareMaxShares),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "usershare owner only",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bUsershareOwnerOnly),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "usershare path",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szUsersharePath),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "usershare prefix allow list",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szUsersharePrefixAllowList),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "usershare prefix deny list",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szUsersharePrefixDenyList),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "usershare template share",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szUsershareTemplateShare),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "volume",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(volume),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "fstype",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(fstype),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "set directory",
-               .type           = P_BOOLREV,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bNo_set_dir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "allow insecure wide links",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bAllowInsecureWidelinks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "wide links",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bWidelinks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "follow symlinks",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bSymlinks),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "dont descend",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szDontdescend),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "magic script",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szMagicScript),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "magic output",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szMagicOutput),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "delete readonly",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bDeleteReadonly),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "dos filemode",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bDosFilemode),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "dos filetimes",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bDosFiletimes),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "dos filetime resolution",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bDosFiletimeResolution),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
-       },
-       {
-               .label          = "fake directory create times",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bFakeDirCreateTimes),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "async smb echo handler",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bAsyncSMBEchoHandler),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-       {
-               .label          = "panic action",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szPanicAction),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "perfcount module",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szSMBPerfcountModule),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("VFS module options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "vfs objects",
-               .type           = P_LIST,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szVfsObjects),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "vfs object",
-               .type           = P_LIST,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szVfsObjects),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-
-
-       {N_("MSDFS options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "msdfs root",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bMSDfsRoot),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "msdfs proxy",
-               .type           = P_STRING,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(szMSDfsProxy),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_SHARE,
-       },
-       {
-               .label          = "host msdfs",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bHostMSDfs),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("Winbind options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "passdb expand explicit",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bPassdbExpandExplicit),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "idmap backend",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szIdmapBackend),
-               .special        = handle_idmap_backend,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
-       },
-       {
-               .label          = "idmap cache time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iIdmapCacheTime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "idmap negative cache time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(iIdmapNegativeCacheTime),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "idmap uid",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szIdmapUID),
-               .special        = handle_idmap_uid,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
-       },
-       {
-               .label          = "winbind uid",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szIdmapUID),
-               .special        = handle_idmap_uid,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "idmap gid",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szIdmapGID),
-               .special        = handle_idmap_gid,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
-       },
-       {
-               .label          = "winbind gid",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szIdmapGID),
-               .special        = handle_idmap_gid,
-               .enum_list      = NULL,
-               .flags          = FLAG_HIDE,
-       },
-       {
-               .label          = "template homedir",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szTemplateHomedir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "template shell",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szTemplateShell),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind separator",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWinbindSeparator),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind cache time",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(winbind_cache_time),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind reconnect delay",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(winbind_reconnect_delay),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind max clients",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(winbind_max_clients),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind enum users",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindEnumUsers),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind enum groups",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindEnumGroups),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind use default domain",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindUseDefaultDomain),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind trusted domains only",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindTrustedDomainsOnly),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind nested groups",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindNestedGroups),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind expand groups",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(winbind_expand_groups),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind nss info",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWinbindNssInfo),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind refresh tickets",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindRefreshTickets),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind offline logon",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindOfflineLogon),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind normalize names",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindNormalizeNames),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind rpc only",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindRpcOnly),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "create krb5 conf",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bCreateKrb5Conf),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "ncalrpc dir",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(ncalrpc_dir),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind max domain connections",
-               .type           = P_INTEGER,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(winbindMaxDomainConnections),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbindd socket directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWinbinddSocketDirectory),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbindd privileged socket directory",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szWinbinddPrivilegedSocketDirectory),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "winbind sealed pipes",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bWinbindSealedPipes),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-
-       {N_("DNS options"), P_SEP, P_SEPARATOR},
-       {
-               .label          = "allow dns updates",
-               .type           = P_ENUM,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(allow_dns_updates),
-               .special        = NULL,
-               .enum_list      = enum_dns_update_settings,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "dns forwarder",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(dns_forwarder),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "dns recursive queries",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(dns_recursive_queries),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "dns update command",
-               .type           = P_CMDLIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szDNSUpdateCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "nsupdate command",
-               .type           = P_CMDLIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szNSUpdateCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "rndc command",
-               .type           = P_CMDLIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szRNDCCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "multicast dns register",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(bMulticastDnsRegister),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
-       },
-
-       {N_("AD DC options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "samba kcc command",
-               .type           = P_CMDLIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szSambaKCCCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "server services",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(server_services),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "dcerpc endpoint servers",
-               .type           = P_LIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(dcerpc_ep_servers),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "spn update command",
-               .type           = P_CMDLIST,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szSPNUpdateCommand),
-               .special        = NULL,
-               .enum_list      = NULL,
-               .flags          = FLAG_ADVANCED,
-       },
-       {
-               .label          = "share backend",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(szShareBackend),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "ntvfs handler",
-               .type           = P_LIST,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(ntvfs_handler),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {N_("TLS options"), P_SEP, P_SEPARATOR},
-
-       {
-               .label          = "tls enabled",
-               .type           = P_BOOL,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(tls_enabled),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "tls keyfile",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(tls_keyfile),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "tls certfile",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(tls_certfile),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "tls cafile",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(tls_cafile),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "tls crlfile",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(tls_crlfile),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-       {
-               .label          = "tls dh params file",
-               .type           = P_STRING,
-               .p_class        = P_GLOBAL,
-               .offset         = GLOBAL_VAR(tls_dhpfile),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
-
-       {NULL,  P_BOOL,  P_NONE,  0,  NULL,  NULL,  0}
-};
-
-
 /* local variables */
 struct loadparm_context {
        const char *szConfigFile;
@@ -3655,7 +231,16 @@ static struct loadparm_context *global_loadparm_context;
 #define lpcfg_default_service global_loadparm_context->sDefault
 #define lpcfg_global_service(i) global_loadparm_context->services[i]
 
-#define FN_GLOBAL_STRING(fn_name,var_name)                             \
+#define FN_GLOBAL_STRING(fn_name,var_name) \
+ _PUBLIC_ const char *lpcfg_ ## fn_name(struct loadparm_context *lp_ctx) {\
+        if (lp_ctx == NULL) return NULL;                               \
+        if (lp_ctx->s3_fns) {                                          \
+                smb_panic( __location__ ": " #fn_name " not implemented because it is an allocated and substiuted string"); \
+        }                                                              \
+        return lp_ctx->globals->var_name ? lp_string(lp_ctx->globals->var_name) : ""; \
+}
+
+#define FN_GLOBAL_CONST_STRING(fn_name,var_name)                               \
  _PUBLIC_ const char *lpcfg_ ## fn_name(struct loadparm_context *lp_ctx) { \
        if (lp_ctx == NULL) return NULL;                                \
        if (lp_ctx->s3_fns) {                                           \
@@ -3665,16 +250,6 @@ static struct loadparm_context *global_loadparm_context;
        return lp_ctx->globals->var_name ? lp_string(lp_ctx->globals->var_name) : ""; \
 }
 
-#define FN_GLOBAL_CONST_STRING(fn_name,var_name) \
- _PUBLIC_ const char *lpcfg_ ## fn_name(struct loadparm_context *lp_ctx) {\
-        if (lp_ctx == NULL) return NULL;                               \
-        if (lp_ctx->s3_fns) {                                          \
-                SMB_ASSERT(lp_ctx->s3_fns->fn_name);                   \
-                return lp_ctx->s3_fns->fn_name();                      \
-        }                                                              \
-        return lp_ctx->globals->var_name ? lp_string(lp_ctx->globals->var_name) : ""; \
- }
-
 #define FN_GLOBAL_LIST(fn_name,var_name)                               \
  _PUBLIC_ const char **lpcfg_ ## fn_name(struct loadparm_context *lp_ctx) { \
         if (lp_ctx == NULL) return NULL;                               \
@@ -3737,9 +312,7 @@ static struct loadparm_context *global_loadparm_context;
 
 #define FN_LOCAL_PARM_INTEGER(fn_name, val) FN_LOCAL_INTEGER(fn_name, val)
 
-#define FN_LOCAL_PARM_CHAR(fn_name, val) FN_LOCAL_CHAR(fn_name, val)
-
-#define FN_LOCAL_CHAR(fn_name,val) \
+#define FN_LOCAL_PARM_CHAR(fn_name,val) \
  _PUBLIC_ char lpcfg_ ## fn_name(struct loadparm_service *service, \
                                struct loadparm_service *sDefault) {    \
         return((service != NULL)? service->val : sDefault->val); \
@@ -3750,12 +323,10 @@ static struct loadparm_context *global_loadparm_context;
 /* These functions remain only in lib/param for now */
 FN_GLOBAL_BOOL(readraw, bReadRaw)
 FN_GLOBAL_BOOL(writeraw, bWriteRaw)
-FN_GLOBAL_STRING(cachedir, szCacheDir)
-FN_GLOBAL_STRING(socket_address, szSocketAddress)
-FN_GLOBAL_STRING(statedir, szStateDir)
+FN_GLOBAL_CONST_STRING(cachedir, szCacheDir)
+FN_GLOBAL_CONST_STRING(statedir, szStateDir)
 
 /* local prototypes */
-static int map_parameter(const char *pszParmName);
 static struct loadparm_service *getservicebyname(struct loadparm_context *lp_ctx,
                                        const char *pszServiceName);
 static void copy_service(struct loadparm_service *pserviceDest,
@@ -4172,21 +743,21 @@ bool lpcfg_add_home(struct loadparm_context *lp_ctx,
        if (service == NULL)
                return false;
 
-       if (!(*(default_service->szPath))
-           || strequal(default_service->szPath, lp_ctx->sDefault->szPath)) {
-               service->szPath = talloc_strdup(service, pszHomedir);
+       if (!(*(default_service->pathname))
+           || strequal(default_service->pathname, lp_ctx->sDefault->pathname)) {
+               service->pathname = talloc_strdup(service, pszHomedir);
        } else {
-               service->szPath = string_sub_talloc(service, lpcfg_pathname(default_service, lp_ctx->sDefault), "%H", pszHomedir);
+               service->pathname = string_sub_talloc(service, lpcfg_pathname(default_service, lp_ctx->sDefault), "%H", pszHomedir);
        }
 
        if (!(*(service->comment))) {
                service->comment = talloc_asprintf(service, "Home directory of %s", user);
        }
        service->bAvailable = default_service->bAvailable;
-       service->bBrowseable = default_service->bBrowseable;
+       service->browseable = default_service->browseable;
 
        DEBUG(3, ("adding home's share [%s] for user '%s' at '%s'\n",
-                 pszHomename, user, service->szPath));
+                 pszHomename, user, service->pathname));
 
        return true;
 }
@@ -4214,11 +785,11 @@ bool lpcfg_add_printer(struct loadparm_context *lp_ctx,
        /* the printer name is set to the service name. */
        lpcfg_string_set(service, &service->szPrintername, pszPrintername);
        lpcfg_string_set(service, &service->comment, comment);
-       service->bBrowseable = default_service->bBrowseable;
+       service->browseable = default_service->browseable;
        /* Printers cannot be read_only. */
-       service->bRead_only = false;
+       service->readonly = false;
        /* Printer services must be printable. */
-       service->bPrint_ok = true;
+       service->print_ok = true;
 
        DEBUG(3, ("adding printer service %s\n", pszPrintername));
 
@@ -4230,13 +801,10 @@ bool lpcfg_add_printer(struct loadparm_context *lp_ctx,
  * Returns False if the parameter string is not recognised, else TRUE.
  */
 
-static int map_parameter(const char *pszParmName)
+int lpcfg_map_parameter(const char *pszParmName)
 {
        int iIndex;
 
-       if (*pszParmName == '-')
-               return -1;
-
        for (iIndex = 0; parm_table[iIndex].label; iIndex++)
                if (strwicmp(parm_table[iIndex].label, pszParmName) == 0)
                        return iIndex;
@@ -4262,7 +830,7 @@ struct parm_struct *lpcfg_parm_struct(struct loadparm_context *lp_ctx, const cha
                return lp_ctx->s3_fns->get_parm_struct(name);
        }
 
-       parmnum = map_parameter(name);
+       parmnum = lpcfg_map_parameter(name);
        if (parmnum == -1) return NULL;
        return &parm_table[parmnum];
 }
@@ -4303,7 +871,7 @@ bool lpcfg_parm_is_cmdline(struct loadparm_context *lp_ctx, const char *name)
                return false;
        }
 
-       parmnum = map_parameter(name);
+       parmnum = lpcfg_map_parameter(name);
        if (parmnum == -1) return false;
 
        return lp_ctx->flags[parmnum] & FLAG_CMDLINE;
@@ -4355,6 +923,7 @@ static void copy_service(struct loadparm_service *pserviceDest,
 
                        switch (parm_table[i].type) {
                                case P_BOOL:
+                               case P_BOOLREV:
                                        *(bool *)dest_ptr = *(bool *)src_ptr;
                                        break;
 
@@ -4365,6 +934,10 @@ static void copy_service(struct loadparm_service *pserviceDest,
                                        *(int *)dest_ptr = *(int *)src_ptr;
                                        break;
 
+                               case P_CHAR:
+                                       *(char *)dest_ptr = *(char *)src_ptr;
+                                       break;
+
                                case P_STRING:
                                        lpcfg_string_set(pserviceDest,
                                                   (char **)dest_ptr,
@@ -4438,14 +1011,14 @@ static bool lpcfg_service_ok(struct loadparm_service *service)
        /* The [printers] entry MUST be printable. I'm all for flexibility, but */
        /* I can't see why you'd want a non-printable printer service...        */
        if (strwicmp(service->szService, PRINTERS_NAME) == 0) {
-               if (!service->bPrint_ok) {
+               if (!service->print_ok) {
                        DEBUG(0, ("WARNING: [%s] service MUST be printable!\n",
                               service->szService));
-                       service->bPrint_ok = true;
+                       service->print_ok = true;
                }
                /* [printers] service must also be non-browsable. */
-               if (service->bBrowseable)
-                       service->bBrowseable = false;
+               if (service->browseable)
+                       service->browseable = false;
        }
 
        /* If a service is flagged unavailable, log the fact at level 0. */
@@ -4503,7 +1076,7 @@ static void add_to_file_list(struct loadparm_context *lp_ctx,
 bool lpcfg_file_list_changed(struct loadparm_context *lp_ctx)
 {
        struct file_lists *f;
-       DEBUG(6, ("lp_file_list_changed()\n"));
+       DEBUG(6, ("lpcfg_file_list_changed()\n"));
 
        for (f = lp_ctx->file_lists; f != NULL; f = f->next) {
                char *n2;
@@ -4537,11 +1110,11 @@ static bool handle_realm(struct loadparm_context *lp_ctx, int unused,
 {
        lpcfg_string_set(lp_ctx, ptr, pszParmValue);
 
-       talloc_free(lp_ctx->globals->szRealm_upper);
-       talloc_free(lp_ctx->globals->szRealm_lower);
+       talloc_free(lp_ctx->globals->realm);
+       talloc_free(lp_ctx->globals->dnsdomain);
 
-       lp_ctx->globals->szRealm_upper = strupper_talloc(lp_ctx, pszParmValue);
-       lp_ctx->globals->szRealm_lower = strlower_talloc(lp_ctx, pszParmValue);
+       lp_ctx->globals->realm = strupper_talloc(lp_ctx, pszParmValue);
+       lp_ctx->globals->dnsdomain = strlower_talloc(lp_ctx, pszParmValue);
 
        return true;
 }
@@ -4601,7 +1174,7 @@ static bool handle_copy(struct loadparm_context *lp_ctx, int unused,
        return bRetval;
 }
 
-static bool handle_debuglevel(struct loadparm_context *lp_ctx, int unused,
+static bool handle_debug_list(struct loadparm_context *lp_ctx, int unused,
                        const char *pszParmValue, char **ptr)
 {
 
@@ -4727,7 +1300,8 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                case P_BOOL: {
                        bool b;
                        if (!set_boolean(pszParmValue, &b)) {
-                               DEBUG(0,("lp_do_parameter(%s): value is not boolean!\n", pszParmValue));
+                               DEBUG(0, ("set_variable(%s): value is not "
+                                         "boolean!\n", pszParmValue));
                                return false;
                        }
                        *(bool *)parm_ptr = b;
@@ -4737,7 +1311,8 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                case P_BOOLREV: {
                        bool b;
                        if (!set_boolean(pszParmValue, &b)) {
-                               DEBUG(0,("lp_do_parameter(%s): value is not boolean!\n", pszParmValue));
+                               DEBUG(0, ("set_variable(%s): value is not "
+                                         "boolean!\n", pszParmValue));
                                return false;
                        }
                        *(bool *)parm_ptr = !b;
@@ -4766,8 +1341,8 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                                }
                        }
 
-                       DEBUG(0,("lp_do_parameter(%s): value is not "
-                           "a valid size specifier!\n", pszParmValue));
+                       DEBUG(0, ("set_variable(%s): value is not "
+                                 "a valid size specifier!\n", pszParmValue));
                        return false;
                }
 
@@ -4780,13 +1355,19 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                        char **new_list = str_list_make(mem_ctx,
                                                        pszParmValue, NULL);
                        for (i=0; new_list[i]; i++) {
-                               if (new_list[i][0] == '+' && new_list[i][1]) {
+                               if (*(const char ***)parm_ptr != NULL &&
+                                   new_list[i][0] == '+' &&
+                                   new_list[i][1])
+                               {
                                        if (!str_list_check(*(const char ***)parm_ptr,
                                                            &new_list[i][1])) {
                                                *(const char ***)parm_ptr = str_list_add(*(const char ***)parm_ptr,
                                                                                         &new_list[i][1]);
                                        }
-                               } else if (new_list[i][0] == '-' && new_list[i][1]) {
+                               } else if (*(const char ***)parm_ptr != NULL &&
+                                          new_list[i][0] == '-' &&
+                                          new_list[i][1])
+                               {
                                        str_list_remove(*(const char ***)parm_ptr,
                                                        &new_list[i][1]);
                                } else {
@@ -4849,7 +1430,7 @@ mark_non_default:
 bool lpcfg_do_global_parameter(struct loadparm_context *lp_ctx,
                               const char *pszParmName, const char *pszParmValue)
 {
-       int parmnum = map_parameter(pszParmName);
+       int parmnum = lpcfg_map_parameter(pszParmName);
        void *parm_ptr;
 
        if (parmnum < 0) {
@@ -4878,7 +1459,7 @@ bool lpcfg_do_service_parameter(struct loadparm_context *lp_ctx,
 {
        void *parm_ptr;
        int i;
-       int parmnum = map_parameter(pszParmName);
+       int parmnum = lpcfg_map_parameter(pszParmName);
 
        if (parmnum < 0) {
                if (strchr(pszParmName, ':')) {
@@ -4968,7 +1549,7 @@ bool lpcfg_set_cmdline(struct loadparm_context *lp_ctx, const char *pszParmName,
                return lp_ctx->s3_fns->set_cmdline(pszParmName, pszParmValue);
        }
 
-       parmnum = map_parameter(pszParmName);
+       parmnum = lpcfg_map_parameter(pszParmName);
 
        while (isspace((unsigned char)*pszParmValue)) pszParmValue++;
 
@@ -4994,10 +1575,17 @@ bool lpcfg_set_cmdline(struct loadparm_context *lp_ctx, const char *pszParmName,
        lp_ctx->flags[parmnum] |= FLAG_CMDLINE;
 
        /* we have to also set FLAG_CMDLINE on aliases */
-       for (i=parmnum-1;i>=0 && parm_table[i].offset == parm_table[parmnum].offset;i--) {
+       for (i=parmnum-1;
+            i>=0 && parm_table[i].p_class == parm_table[parmnum].p_class &&
+            parm_table[i].offset == parm_table[parmnum].offset;
+            i--) {
                lp_ctx->flags[i] |= FLAG_CMDLINE;
        }
-       for (i=parmnum+1;i<NUMPARAMETERS && parm_table[i].offset == parm_table[parmnum].offset;i++) {
+       for (i=parmnum+1;
+            i<NUMPARAMETERS &&
+            parm_table[i].p_class == parm_table[parmnum].p_class &&
+            parm_table[i].offset == parm_table[parmnum].offset;
+            i++) {
                lp_ctx->flags[i] |= FLAG_CMDLINE;
        }
 
@@ -5037,7 +1625,7 @@ bool lpcfg_set_option(struct loadparm_context *lp_ctx, const char *option)
  * Print a parameter of the specified type.
  */
 
-static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
+void lpcfg_print_parameter(struct parm_struct *p, void *ptr, FILE * f)
 {
        /* For the seperation of lists values that we print below */
        const char *list_sep = ", ";
@@ -5076,7 +1664,7 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
                        if (val == -1) {
                                fprintf(f, "-1");
                        } else {
-                               fprintf(f, "0%o", val);
+                               fprintf(f, "0%03o", val);
                        }
                        break;
                }
@@ -5117,7 +1705,7 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
  * Check if two parameters are equal.
  */
 
-static bool equal_parameter(parm_type type, void *ptr1, void *ptr2)
+ bool lpcfg_equal_parameter(parm_type type, void *ptr1, void *ptr2)
 {
        switch (type) {
                case P_BOOL:
@@ -5255,7 +1843,7 @@ static void dump_globals(struct loadparm_context *lp_ctx, FILE *f,
                        if (!show_defaults && (lp_ctx->flags[i] & FLAG_DEFAULT))
                                continue;
                        fprintf(f, "\t%s = ", parm_table[i].label);
-                       print_parameter(&parm_table[i], lpcfg_parm_ptr(lp_ctx, NULL, &parm_table[i]), f);
+                       lpcfg_print_parameter(&parm_table[i], lpcfg_parm_ptr(lp_ctx, NULL, &parm_table[i]), f);
                        fprintf(f, "\n");
        }
        if (lp_ctx->globals->param_opt != NULL) {
@@ -5298,16 +1886,16 @@ static void dump_a_service(struct loadparm_service * pService, struct loadparm_s
                                        }
                                }
                        } else {
-                               if (equal_parameter(parm_table[i].type,
-                                                   ((char *)pService) +
-                                                   parm_table[i].offset,
-                                                   ((char *)sDefault) +
-                                                   parm_table[i].offset))
+                               if (lpcfg_equal_parameter(parm_table[i].type,
+                                                         ((char *)pService) +
+                                                         parm_table[i].offset,
+                                                         ((char *)sDefault) +
+                                                         parm_table[i].offset))
                                        continue;
                        }
 
                        fprintf(f, "\t%s = ", parm_table[i].label);
-                       print_parameter(&parm_table[i],
+                       lpcfg_print_parameter(&parm_table[i],
                                        ((char *)pService) + parm_table[i].offset, f);
                        fprintf(f, "\n");
                }
@@ -5331,65 +1919,17 @@ bool lpcfg_dump_a_parameter(struct loadparm_context *lp_ctx,
                return false;
        }
 
+       if (service != NULL && parm->p_class == P_GLOBAL) {
+               return false;
+       }
+
        ptr = lpcfg_parm_ptr(lp_ctx, service,parm);
 
-       print_parameter(parm, ptr, f);
+       lpcfg_print_parameter(parm, ptr, f);
        fprintf(f, "\n");
        return true;
 }
 
-/**
- * Return info about the next parameter in a service.
- * snum==-1 gives the globals.
- * Return NULL when out of parameters.
- */
-
-
-struct parm_struct *lpcfg_next_parameter(struct loadparm_context *lp_ctx, int snum, int *i,
-                                        int allparameters)
-{
-       if (snum == -1) {
-               /* do the globals */
-               for (; parm_table[*i].label; (*i)++) {
-                       if ((*parm_table[*i].label == '-'))
-                               continue;
-
-                       if ((*i) > 0
-                           && (parm_table[*i].offset ==
-                               parm_table[(*i) - 1].offset)
-                           && (parm_table[*i].p_class ==
-                               parm_table[(*i) - 1].p_class))
-                               continue;
-
-                       return &parm_table[(*i)++];
-               }
-       } else {
-               struct loadparm_service *pService = lp_ctx->services[snum];
-
-               for (; parm_table[*i].label; (*i)++) {
-                       if (parm_table[*i].p_class == P_LOCAL &&
-                           (*parm_table[*i].label != '-') &&
-                           ((*i) == 0 ||
-                            (parm_table[*i].offset !=
-                             parm_table[(*i) - 1].offset)))
-                       {
-                               if (allparameters ||
-                                   !equal_parameter(parm_table[*i].type,
-                                                    ((char *)pService) +
-                                                    parm_table[*i].offset,
-                                                    ((char *)lp_ctx->sDefault) +
-                                                    parm_table[*i].offset))
-                               {
-                                       return &parm_table[(*i)++];
-                               }
-                       }
-               }
-       }
-
-       return NULL;
-}
-
-
 /**
  * Auto-load some home services.
  */
@@ -5469,15 +2009,15 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
        lp_ctx->sDefault->iMaxPrintJobs = 1000;
        lp_ctx->sDefault->bAvailable = true;
-       lp_ctx->sDefault->bBrowseable = true;
-       lp_ctx->sDefault->bRead_only = true;
-       lp_ctx->sDefault->bMap_archive = true;
-       lp_ctx->sDefault->iStrictLocking = true;
-       lp_ctx->sDefault->bOpLocks = true;
-       lp_ctx->sDefault->iCreate_mask = 0744;
-       lp_ctx->sDefault->iCreate_force_mode = 0000;
-       lp_ctx->sDefault->iDir_mask = 0755;
-       lp_ctx->sDefault->iDir_force_mode = 0000;
+       lp_ctx->sDefault->browseable = true;
+       lp_ctx->sDefault->readonly = true;
+       lp_ctx->sDefault->map_archive = true;
+       lp_ctx->sDefault->strict_locking = true;
+       lp_ctx->sDefault->oplocks = true;
+       lp_ctx->sDefault->create_mask = 0744;
+       lp_ctx->sDefault->force_create_mode = 0000;
+       lp_ctx->sDefault->dir_mask = 0755;
+       lp_ctx->sDefault->force_dir_mode = 0000;
 
        DEBUG(3, ("Initialising global parameters\n"));
 
@@ -5501,6 +2041,15 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
        lpcfg_do_global_parameter(lp_ctx, "log level", "0");
 
+       lpcfg_do_global_parameter(lp_ctx, "syslog", "1");
+       lpcfg_do_global_parameter(lp_ctx, "syslog only", "No");
+       lpcfg_do_global_parameter(lp_ctx, "debug timestamp", "Yes");
+       lpcfg_do_global_parameter(lp_ctx, "debug prefix timestamp", "No");
+       lpcfg_do_global_parameter(lp_ctx, "debug hires timestamp", "Yes");
+       lpcfg_do_global_parameter(lp_ctx, "debug pid", "No");
+       lpcfg_do_global_parameter(lp_ctx, "debug uid", "No");
+       lpcfg_do_global_parameter(lp_ctx, "debug class", "No");
+
        lpcfg_do_global_parameter(lp_ctx, "share backend", "classic");
 
        lpcfg_do_global_parameter(lp_ctx, "server role", "auto");
@@ -5521,10 +2070,11 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lpcfg_do_global_parameter(lp_ctx, "fstype", "NTFS");
 
        lpcfg_do_global_parameter(lp_ctx, "ntvfs handler", "unixuid default");
-       lpcfg_do_global_parameter(lp_ctx, "max connections", "-1");
+       lpcfg_do_global_parameter(lp_ctx, "max connections", "0");
 
        lpcfg_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi dssetup unixinfo browser eventlog6 backupkey dnsserver");
-       lpcfg_do_global_parameter(lp_ctx, "server services", "s3fs rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate");
+       lpcfg_do_global_parameter(lp_ctx, "server services", "s3fs rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate dns");
+       lpcfg_do_global_parameter(lp_ctx, "kccsrv:samba_kcc", "true");
        /* the winbind method for domain controllers is for both RODC
           auth forwarding and for trusted domains */
        lpcfg_do_global_parameter(lp_ctx, "private dir", dyn_PRIVATE_DIR);
@@ -5536,7 +2086,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lpcfg_do_global_parameter(lp_ctx, "registry:HKEY_USERS", "hku.ldb");
 
        /* using UTF8 by default allows us to support all chars */
-       lpcfg_do_global_parameter(lp_ctx, "unix charset", "UTF8");
+       lpcfg_do_global_parameter(lp_ctx, "unix charset", "UTF-8");
 
        /* Use codepage 850 as a default for the dos character set */
        lpcfg_do_global_parameter(lp_ctx, "dos charset", "CP850");
@@ -5552,24 +2102,22 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lpcfg_do_global_parameter(lp_ctx, "cache directory", dyn_CACHEDIR);
        lpcfg_do_global_parameter(lp_ctx, "ncalrpc dir", dyn_NCALRPCDIR);
 
-       lpcfg_do_global_parameter(lp_ctx, "socket address", "");
+       lpcfg_do_global_parameter(lp_ctx, "nbt client socket address", "0.0.0.0");
        lpcfg_do_global_parameter_var(lp_ctx, "server string",
                                   "Samba %s", SAMBA_VERSION_STRING);
 
        lpcfg_do_global_parameter(lp_ctx, "password server", "*");
 
        lpcfg_do_global_parameter(lp_ctx, "max mux", "50");
-       lpcfg_do_global_parameter(lp_ctx, "max xmit", "12288");
+       lpcfg_do_global_parameter(lp_ctx, "max xmit", "16644");
        lpcfg_do_global_parameter(lp_ctx, "host msdfs", "true");
 
-       lpcfg_do_global_parameter(lp_ctx, "password level", "0");
        lpcfg_do_global_parameter(lp_ctx, "LargeReadwrite", "True");
-       lpcfg_do_global_parameter(lp_ctx, "server min protocol", "CORE");
+       lpcfg_do_global_parameter(lp_ctx, "server min protocol", "LANMAN1");
        lpcfg_do_global_parameter(lp_ctx, "server max protocol", "NT1");
        lpcfg_do_global_parameter(lp_ctx, "client min protocol", "CORE");
        lpcfg_do_global_parameter(lp_ctx, "client max protocol", "NT1");
        lpcfg_do_global_parameter(lp_ctx, "security", "AUTO");
-       lpcfg_do_global_parameter(lp_ctx, "paranoid server security", "True");
        lpcfg_do_global_parameter(lp_ctx, "EncryptPasswords", "True");
        lpcfg_do_global_parameter(lp_ctx, "ReadRaw", "True");
        lpcfg_do_global_parameter(lp_ctx, "WriteRaw", "True");
@@ -5585,7 +2133,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lpcfg_do_global_parameter(lp_ctx, "NTLMAuth", "True");
        lpcfg_do_global_parameter(lp_ctx, "client use spnego principal", "False");
 
-       lpcfg_do_global_parameter(lp_ctx, "UnixExtensions", "False");
+       lpcfg_do_global_parameter(lp_ctx, "UnixExtensions", "True");
 
        lpcfg_do_global_parameter(lp_ctx, "PreferredMaster", "Auto");
        lpcfg_do_global_parameter(lp_ctx, "LocalMaster", "True");
@@ -5595,15 +2143,14 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
        lpcfg_do_global_parameter(lp_ctx, "winbind separator", "\\");
        lpcfg_do_global_parameter(lp_ctx, "winbind sealed pipes", "True");
+       lpcfg_do_global_parameter(lp_ctx, "require strong key", "True");
        lpcfg_do_global_parameter(lp_ctx, "winbindd socket directory", dyn_WINBINDD_SOCKET_DIR);
-#if _SAMBA_BUILD_ >= 4
        lpcfg_do_global_parameter(lp_ctx, "winbindd privileged socket directory", dyn_WINBINDD_PRIVILEGED_SOCKET_DIR);
        lpcfg_do_global_parameter(lp_ctx, "ntp signd socket directory", dyn_NTP_SIGND_SOCKET_DIR);
        lpcfg_do_global_parameter_var(lp_ctx, "dns update command", "%s/samba_dnsupdate", dyn_SCRIPTSBINDIR);
        lpcfg_do_global_parameter_var(lp_ctx, "spn update command", "%s/samba_spnupdate", dyn_SCRIPTSBINDIR);
        lpcfg_do_global_parameter_var(lp_ctx, "samba kcc command",
                                        "%s/samba_kcc", dyn_SCRIPTSBINDIR);
-#endif
        lpcfg_do_global_parameter(lp_ctx, "template shell", "/bin/false");
        lpcfg_do_global_parameter(lp_ctx, "template homedir", "/home/%WORKGROUP%/%ACCOUNTNAME%");
 
@@ -5636,10 +2183,189 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lpcfg_do_global_parameter(lp_ctx, "rndc command", "/usr/sbin/rndc");
        lpcfg_do_global_parameter(lp_ctx, "nsupdate command", "/usr/bin/nsupdate -g");
 
-        lpcfg_do_global_parameter(lp_ctx, "allow dns updates", "False");
-        lpcfg_do_global_parameter(lp_ctx, "dns recursive queries", "False");
+        lpcfg_do_global_parameter(lp_ctx, "allow dns updates", "secure only");
         lpcfg_do_global_parameter(lp_ctx, "dns forwarder", "");
 
+       lpcfg_do_global_parameter(lp_ctx, "algorithmic rid base", "1000");
+
+       lpcfg_do_global_parameter(lp_ctx, "enhanced browsing", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "winbind nss info", "template");
+
+       lpcfg_do_global_parameter(lp_ctx, "server schannel", "Auto");
+
+       lpcfg_do_global_parameter(lp_ctx, "short preserve case", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "max open files", "16384");
+
+       lpcfg_do_global_parameter(lp_ctx, "cups connection timeout", "30");
+
+       lpcfg_do_global_parameter(lp_ctx, "locking", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "block size", "1024");
+
+       lpcfg_do_global_parameter(lp_ctx, "client use spnego", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "change notify", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "name cache timeout", "660");
+
+       lpcfg_do_global_parameter(lp_ctx, "defer sharing violations", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap replication sleep", "1000");
+
+       lpcfg_do_global_parameter(lp_ctx, "idmap backend", "tdb");
+
+       lpcfg_do_global_parameter(lp_ctx, "enable privileges", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "smb2 max write", "1048576");
+
+       lpcfg_do_global_parameter(lp_ctx, "passdb backend", "tdbsam");
+
+       lpcfg_do_global_parameter(lp_ctx, "getwd cache", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "winbind nested groups", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "mangled names", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "smb2 max credits", "8192");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap ssl", "start tls");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap deref", "auto");
+
+       lpcfg_do_global_parameter(lp_ctx, "lm interval", "60");
+
+       lpcfg_do_global_parameter(lp_ctx, "mangling method", "hash2");
+
+       lpcfg_do_global_parameter(lp_ctx, "hide dot files", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "browse list", "True");
+
+       lpcfg_do_global_parameter(lp_ctx, "passwd chat timeout", "2");
+
+       lpcfg_do_global_parameter(lp_ctx, "guest account", GUEST_ACCOUNT);
+
+       lpcfg_do_global_parameter(lp_ctx, "client schannel", "auto");
+
+       lpcfg_do_global_parameter(lp_ctx, "smb encrypt", "default");
+
+       lpcfg_do_global_parameter(lp_ctx, "max log size", "5000");
+
+       lpcfg_do_global_parameter(lp_ctx, "idmap negative cache time", "120");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap follow referral", "auto");
+
+       lpcfg_do_global_parameter(lp_ctx, "multicast dns register", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "winbind reconnect delay", "30");
+
+       lpcfg_do_global_parameter(lp_ctx, "nt acl support", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "acl check permissions", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "keepalive", "300");
+
+       lpcfg_do_global_parameter(lp_ctx, "winbind cache time", "300");
+
+       lpcfg_do_global_parameter(lp_ctx, "level2 oplocks", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "show add printer wizard", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "allocation roundup size", "1048576");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap page size", "1024");
+
+       lpcfg_do_global_parameter(lp_ctx, "kernel share modes", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "strict locking", "Auto");
+
+       lpcfg_do_global_parameter(lp_ctx, "map readonly", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "allow trusted domains", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "default devmode", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "os level", "20");
+
+       lpcfg_do_global_parameter(lp_ctx, "dos filetimes", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "mangling char", "~");
+
+       lpcfg_do_global_parameter(lp_ctx, "printcap cache time", "750");
+
+       lpcfg_do_global_parameter(lp_ctx, "create krb5 conf", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "winbind max clients", "200");
+
+       lpcfg_do_global_parameter(lp_ctx, "acl map full control", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "nt pipe support", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap debug threshold", "10");
+
+       lpcfg_do_global_parameter(lp_ctx, "follow symlinks", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "machine password timeout", "604800");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap connection timeout", "2");
+
+       lpcfg_do_global_parameter(lp_ctx, "winbind expand groups", "1");
+
+       lpcfg_do_global_parameter(lp_ctx, "stat cache", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "lpq cache time", "30");
+
+       lpcfg_do_global_parameter(lp_ctx, "smb2 max trans", "1048576");
+
+       lpcfg_do_global_parameter(lp_ctx, "smb2 max read", "1048576");
+
+       lpcfg_do_global_parameter(lp_ctx, "durable handles", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "max stat cache size", "256");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap passwd sync", "no");
+
+       lpcfg_do_global_parameter(lp_ctx, "kernel change notify", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "max ttl", "259200");
+
+       lpcfg_do_global_parameter(lp_ctx, "blocking locks", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "oplock contention limit", "2");
+
+       lpcfg_do_global_parameter(lp_ctx, "load printers", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "idmap cache time", "604800");
+
+       lpcfg_do_global_parameter(lp_ctx, "preserve case", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "lm announce", "auto");
+
+       lpcfg_do_global_parameter(lp_ctx, "afs token lifetime", "604800");
+
+       lpcfg_do_global_parameter(lp_ctx, "enable core files", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "winbind max domain connections", "1");
+
+       lpcfg_do_global_parameter(lp_ctx, "case sensitive", "auto");
+
+       lpcfg_do_global_parameter(lp_ctx, "ldap timeout", "15");
+
+       lpcfg_do_global_parameter(lp_ctx, "mangle prefix", "1");
+
+       lpcfg_do_global_parameter(lp_ctx, "posix locking", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "lock spin time", "200");
+
+       lpcfg_do_global_parameter(lp_ctx, "directory name cache size", "100");
+
+       lpcfg_do_global_parameter(lp_ctx, "nmbd bind explicit broadcast", "yes");
+
+       lpcfg_do_global_parameter(lp_ctx, "init logon delay", "100");
+
+       lpcfg_do_global_parameter(lp_ctx, "usershare owner only", "yes");
+
        for (i = 0; parm_table[i].label; i++) {
                if (!(lp_ctx->flags[i] & FLAG_CMDLINE)) {
                        lp_ctx->flags[i] |= FLAG_DEFAULT;
@@ -5710,7 +2436,7 @@ static bool lpcfg_update(struct loadparm_context *lp_ctx)
        struct debug_settings settings;
        lpcfg_add_auto_services(lp_ctx, lpcfg_auto_services(lp_ctx));
 
-       if (!lp_ctx->globals->szWINSservers && lp_ctx->globals->bWINSsupport) {
+       if (!lp_ctx->globals->wins_server_list && lp_ctx->globals->we_are_a_wins_server) {
                lpcfg_do_global_parameter(lp_ctx, "wins server", "127.0.0.1");
        }
 
@@ -5725,7 +2451,14 @@ static bool lpcfg_update(struct loadparm_context *lp_ctx)
        ZERO_STRUCT(settings);
        /* Add any more debug-related smb.conf parameters created in
         * future here */
-       settings.timestamp_logs = true;
+       settings.syslog = lp_ctx->globals->syslog;
+       settings.syslog_only = lp_ctx->globals->syslog_only;
+       settings.timestamp_logs = lp_ctx->globals->timestamp_logs;
+       settings.debug_prefix_timestamp = lp_ctx->globals->debug_prefix_timestamp;
+       settings.debug_hires_timestamp = lp_ctx->globals->debug_hires_timestamp;
+       settings.debug_pid = lp_ctx->globals->debug_pid;
+       settings.debug_uid = lp_ctx->globals->debug_uid;
+       settings.debug_class = lp_ctx->globals->debug_class;
        debug_set_settings(&settings);
 
        /* FIXME: This is a bit of a hack, but we can't use a global, since 
@@ -6018,3 +2751,45 @@ int lpcfg_security(struct loadparm_context *lp_ctx)
        return lp_find_security(lpcfg__server_role(lp_ctx),
                                lpcfg__security(lp_ctx));
 }
+
+bool lpcfg_server_signing_allowed(struct loadparm_context *lp_ctx, bool *mandatory)
+{
+       bool allowed = true;
+       enum smb_signing_setting signing_setting = lpcfg_server_signing(lp_ctx);
+
+       *mandatory = false;
+
+       if (signing_setting == SMB_SIGNING_DEFAULT) {
+               /*
+                * If we are a domain controller, SMB signing is
+                * really important, as it can prevent a number of
+                * attacks on communications between us and the
+                * clients
+                *
+                * However, it really sucks (no sendfile, CPU
+                * overhead) performance-wise when used on a
+                * file server, so disable it by default
+                * on non-DCs
+                */
+
+               if (lpcfg_server_role(lp_ctx) >= ROLE_ACTIVE_DIRECTORY_DC) {
+                       signing_setting = SMB_SIGNING_REQUIRED;
+               } else {
+                       signing_setting = SMB_SIGNING_OFF;
+               }
+       }
+
+       switch (signing_setting) {
+       case SMB_SIGNING_REQUIRED:
+               *mandatory = true;
+               break;
+       case SMB_SIGNING_IF_REQUIRED:
+               break;
+       case SMB_SIGNING_DEFAULT:
+       case SMB_SIGNING_OFF:
+               allowed = false;
+               break;
+       }
+
+       return allowed;
+}