#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
#define LOADPARM_EXTRA_GLOBALS \
struct parmlist_entry *param_opt; \
- char *szRealm; \
+ char *realm_original; \
char *szConfigFile; \
int iminreceivefile; \
char *szPrintcapname; \
char *szUsershareTemplateShare; \
char *szIdmapUID; \
char *szIdmapGID; \
+ char *szIdmapBackend; \
int winbindMaxDomainConnections; \
int ismb2_max_credits; \
char *tls_keyfile; \
char *tls_cafile; \
char *tls_crlfile; \
char *tls_dhpfile; \
- char *loglevel; \
- char *panic_action;
+ char *loglevel;
#include "lib/param/param_global.h"
* 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
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;
#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) { \
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; \
#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); \
/* 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,
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;
}
/* 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));
* 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;
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];
}
return false;
}
- parmnum = map_parameter(name);
+ parmnum = lpcfg_map_parameter(name);
if (parmnum == -1) return false;
return lp_ctx->flags[parmnum] & FLAG_CMDLINE;
switch (parm_table[i].type) {
case P_BOOL:
+ case P_BOOLREV:
*(bool *)dest_ptr = *(bool *)src_ptr;
break;
*(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,
/* 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. */
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;
{
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;
}
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)
{
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;
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;
}
}
- 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;
}
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 {
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) {
{
void *parm_ptr;
int i;
- int parmnum = map_parameter(pszParmName);
+ int parmnum = lpcfg_map_parameter(pszParmName);
if (parmnum < 0) {
if (strchr(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++;
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;
}
* 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 = ", ";
if (val == -1) {
fprintf(f, "-1");
} else {
- fprintf(f, "0%o", val);
+ fprintf(f, "0%03o", val);
}
break;
}
* 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:
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) {
}
}
} 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");
}
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.
*/
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"));
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");
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);
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");
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");
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");
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%");
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;
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");
}
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
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;
+}