From d4c24fff3258fd48ec5738e9a80738a094b63f59 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Mon, 10 Mar 2008 14:03:41 +0100 Subject: loadparm: Reformat the parm table to use named initializers. This makes each entry in the parm table much more comprehensible at first glance (to me). On the other hand, roughly 9 lines are used instead of one for each entry which makes the overall list less clearly laid out, one might argue. But we have 400+ lines of parameter descriptions anyways... Michael (This used to be commit 869a17f1a9ba45d30211c230673c6f4482876b29) --- source3/param/loadparm.c | 3936 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 3524 insertions(+), 412 deletions(-) (limited to 'source3/param') diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 833ca54084..033a4cf8d0 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -876,477 +876,3589 @@ static const struct enum_list enum_config_backend[] = { static struct parm_struct parm_table[] = { {N_("Base Options"), P_SEP, P_SEPARATOR}, - {"dos charset", P_STRING, P_GLOBAL, &Globals.dos_charset, handle_charset, NULL, FLAG_ADVANCED}, - {"unix charset", P_STRING, P_GLOBAL, &Globals.unix_charset, handle_charset, NULL, FLAG_ADVANCED}, - {"display charset", P_STRING, P_GLOBAL, &Globals.display_charset, handle_charset, NULL, FLAG_ADVANCED}, - {"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"path", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"directory", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_HIDE}, - {"workgroup", P_USTRING, P_GLOBAL, &Globals.szWorkgroup, handle_workgroup, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, + { + .label = "dos charset", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.dos_charset, + .special = handle_charset, + .enum_list = NULL, + .flags = FLAG_ADVANCED + }, + { + .label = "unix charset", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.unix_charset, + .special = handle_charset, + .enum_list = NULL, + .flags = FLAG_ADVANCED + }, + { + .label = "display charset", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.display_charset, + .special = handle_charset, + .enum_list = NULL, + .flags = FLAG_ADVANCED + }, + { + .label = "comment", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.comment, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT + }, + { + .label = "path", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPath, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "directory", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPath, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "workgroup", + .type = P_USTRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szWorkgroup, + .special = handle_workgroup, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, #ifdef WITH_ADS - {"realm", P_USTRING, P_GLOBAL, &Globals.szRealm, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, + { + .label = "realm", + .type = P_USTRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRealm, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, #endif - {"netbios name", P_USTRING, P_GLOBAL, &Globals.szNetbiosName, handle_netbios_name, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, - {"netbios aliases", P_LIST, P_GLOBAL, &Globals.szNetbiosAliases, handle_netbios_aliases, NULL, FLAG_ADVANCED}, - {"netbios scope", P_USTRING, P_GLOBAL, &Globals.szNetbiosScope, handle_netbios_scope, NULL, FLAG_ADVANCED}, - {"server string", P_STRING, P_GLOBAL, &Globals.szServerString, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED }, - {"interfaces", P_LIST, P_GLOBAL, &Globals.szInterfaces, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, - {"bind interfaces only", P_BOOL, P_GLOBAL, &Globals.bBindInterfacesOnly, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, + { + .label = "netbios name", + .type = P_USTRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szNetbiosName, + .special = handle_netbios_name, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "netbios aliases", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szNetbiosAliases, + .special = handle_netbios_aliases, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "netbios scope", + .type = P_USTRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szNetbiosScope, + .special = handle_netbios_scope, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "server string", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szServerString, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "interfaces", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szInterfaces, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "bind interfaces only", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bBindInterfacesOnly, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_WIZARD, + }, - {"config backend", P_ENUM, P_GLOBAL, &Globals.ConfigBackend, NULL, enum_config_backend, FLAG_ADVANCED}, + { + .label = "config backend", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.ConfigBackend, + .special = NULL, + .enum_list = enum_config_backend, + .flags = FLAG_ADVANCED, + }, {N_("Security Options"), P_SEP, P_SEPARATOR}, - {"security", P_ENUM, P_GLOBAL, &Globals.security, NULL, enum_security, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, - {"auth methods", P_LIST, P_GLOBAL, &Globals.AuthMethods, NULL, NULL, FLAG_ADVANCED}, - {"encrypt passwords", P_BOOL, P_GLOBAL, &Globals.bEncryptPasswords, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, - {"update encrypted", P_BOOL, P_GLOBAL, &Globals.bUpdateEncrypt, NULL, NULL, FLAG_ADVANCED}, - {"client schannel", P_ENUM, P_GLOBAL, &Globals.clientSchannel, NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED}, - {"server schannel", P_ENUM, P_GLOBAL, &Globals.serverSchannel, NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED}, - {"allow trusted domains", P_BOOL, P_GLOBAL, &Globals.bAllowTrustedDomains, NULL, NULL, FLAG_ADVANCED}, - {"map to guest", P_ENUM, P_GLOBAL, &Globals.map_to_guest, NULL, enum_map_to_guest, FLAG_ADVANCED}, - {"null passwords", P_BOOL, P_GLOBAL, &Globals.bNullPasswords, NULL, NULL, FLAG_ADVANCED}, - {"obey pam restrictions", P_BOOL, P_GLOBAL, &Globals.bObeyPamRestrictions, NULL, NULL, FLAG_ADVANCED}, - {"password server", P_STRING, P_GLOBAL, &Globals.szPasswordServer, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, - {"smb passwd file", P_STRING, P_GLOBAL, &Globals.szSMBPasswdFile, NULL, NULL, FLAG_ADVANCED}, - {"private dir", P_STRING, P_GLOBAL, &Globals.szPrivateDir, NULL, NULL, FLAG_ADVANCED}, - {"passdb backend", P_STRING, P_GLOBAL, &Globals.szPassdbBackend, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, - {"algorithmic rid base", P_INTEGER, P_GLOBAL, &Globals.AlgorithmicRidBase, NULL, NULL, FLAG_ADVANCED}, - {"root directory", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, FLAG_ADVANCED}, - {"root dir", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, FLAG_HIDE}, - {"root", P_STRING, P_GLOBAL, &Globals.szRootdir, NULL, NULL, FLAG_HIDE}, - {"guest account", P_STRING, P_GLOBAL, &Globals.szGuestaccount, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED}, - {"enable privileges", P_BOOL, P_GLOBAL, &Globals.bEnablePrivileges, NULL, NULL, FLAG_ADVANCED}, - - {"pam password change", P_BOOL, P_GLOBAL, &Globals.bPamPasswordChange, NULL, NULL, FLAG_ADVANCED}, - {"passwd program", P_STRING, P_GLOBAL, &Globals.szPasswdProgram, NULL, NULL, FLAG_ADVANCED}, - {"passwd chat", P_STRING, P_GLOBAL, &Globals.szPasswdChat, NULL, NULL, FLAG_ADVANCED}, - {"passwd chat debug", P_BOOL, P_GLOBAL, &Globals.bPasswdChatDebug, NULL, NULL, FLAG_ADVANCED}, - {"passwd chat timeout", P_INTEGER, P_GLOBAL, &Globals.iPasswdChatTimeout, NULL, NULL, FLAG_ADVANCED}, - {"check password script", P_STRING, P_GLOBAL, &Globals.szCheckPasswordScript, NULL, NULL, FLAG_ADVANCED}, - {"username map", P_STRING, P_GLOBAL, &Globals.szUsernameMap, NULL, NULL, FLAG_ADVANCED}, - {"password level", P_INTEGER, P_GLOBAL, &Globals.pwordlevel, NULL, NULL, FLAG_ADVANCED}, - {"username level", P_INTEGER, P_GLOBAL, &Globals.unamelevel, NULL, NULL, FLAG_ADVANCED}, - {"unix password sync", P_BOOL, P_GLOBAL, &Globals.bUnixPasswdSync, NULL, NULL, FLAG_ADVANCED}, - {"restrict anonymous", P_INTEGER, P_GLOBAL, &Globals.restrict_anonymous, NULL, NULL, FLAG_ADVANCED}, - {"lanman auth", P_BOOL, P_GLOBAL, &Globals.bLanmanAuth, NULL, NULL, FLAG_ADVANCED}, - {"ntlm auth", P_BOOL, P_GLOBAL, &Globals.bNTLMAuth, NULL, NULL, FLAG_ADVANCED}, - {"client NTLMv2 auth", P_BOOL, P_GLOBAL, &Globals.bClientNTLMv2Auth, NULL, NULL, FLAG_ADVANCED}, - {"client lanman auth", P_BOOL, P_GLOBAL, &Globals.bClientLanManAuth, NULL, NULL, FLAG_ADVANCED}, - {"client plaintext auth", P_BOOL, P_GLOBAL, &Globals.bClientPlaintextAuth, NULL, NULL, FLAG_ADVANCED}, - - {"username", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"user", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_HIDE}, - {"users", P_STRING, P_LOCAL, &sDefault.szUsername, NULL, NULL, FLAG_HIDE}, - - {"invalid users", P_LIST, P_LOCAL, &sDefault.szInvalidUsers, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"valid users", P_LIST, P_LOCAL, &sDefault.szValidUsers, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"admin users", P_LIST, P_LOCAL, &sDefault.szAdminUsers, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"read list", P_LIST, P_LOCAL, &sDefault.readlist, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"write list", P_LIST, P_LOCAL, &sDefault.writelist, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"printer admin", P_LIST, P_LOCAL, &sDefault.printer_admin, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_PRINT | FLAG_DEPRECATED }, - {"force user", P_STRING, P_LOCAL, &sDefault.force_user, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"force group", P_STRING, P_LOCAL, &sDefault.force_group, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"group", P_STRING, P_LOCAL, &sDefault.force_group, NULL, NULL, FLAG_ADVANCED}, - - {"read only", P_BOOL, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE}, - {"write ok", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_HIDE}, - {"writeable", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_HIDE}, - {"writable", P_BOOLREV, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_HIDE}, - - {"acl check permissions", P_BOOL, P_LOCAL, &sDefault.bAclCheckPermissions, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"acl group control", P_BOOL, P_LOCAL, &sDefault.bAclGroupControl, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED }, - {"acl map full control", P_BOOL, P_LOCAL, &sDefault.bAclMapFullControl, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"create mask", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL, FLAG_HIDE}, - {"force create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"security mask", P_OCTAL, P_LOCAL, &sDefault.iSecurity_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"force security mode", P_OCTAL, P_LOCAL, &sDefault.iSecurity_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"directory mask", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - {"force directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"directory security mask", P_OCTAL, P_LOCAL, &sDefault.iDir_Security_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"force directory security mode", P_OCTAL, P_LOCAL, &sDefault.iDir_Security_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"force unknown acl user", P_BOOL, P_LOCAL, &sDefault.bForceUnknownAclUser, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - {"inherit permissions", P_BOOL, P_LOCAL, &sDefault.bInheritPerms, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"inherit acls", P_BOOL, P_LOCAL, &sDefault.bInheritACLS, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"inherit owner", P_BOOL, P_LOCAL, &sDefault.bInheritOwner, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"guest only", P_BOOL, P_LOCAL, &sDefault.bGuest_only, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"only guest", P_BOOL, P_LOCAL, &sDefault.bGuest_only, NULL, NULL, FLAG_HIDE}, - {"administrative share", P_BOOL, P_LOCAL, &sDefault.bAdministrative_share, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - - {"guest ok", P_BOOL, P_LOCAL, &sDefault.bGuest_ok, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"public", P_BOOL, P_LOCAL, &sDefault.bGuest_ok, NULL, NULL, FLAG_HIDE}, - - {"only user", P_BOOL, P_LOCAL, &sDefault.bOnlyUser, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED}, - {"hosts allow", P_LIST, P_LOCAL, &sDefault.szHostsallow, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"allow hosts", P_LIST, P_LOCAL, &sDefault.szHostsallow, NULL, NULL, FLAG_HIDE}, - {"hosts deny", P_LIST, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"deny hosts", P_LIST, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_HIDE}, - {"preload modules", P_LIST, P_GLOBAL, &Globals.szPreloadModules, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - {"use kerberos keytab", P_BOOL, P_GLOBAL, &Globals.bUseKerberosKeytab, NULL, NULL, FLAG_ADVANCED}, + { + .label = "security", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.security, + .special = NULL, + .enum_list = enum_security, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "auth methods", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.AuthMethods, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "encrypt passwords", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bEncryptPasswords, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "update encrypted", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUpdateEncrypt, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "client schannel", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.clientSchannel, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "server schannel", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.serverSchannel, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "allow trusted domains", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bAllowTrustedDomains, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "map to guest", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.map_to_guest, + .special = NULL, + .enum_list = enum_map_to_guest, + .flags = FLAG_ADVANCED, + }, + { + .label = "null passwords", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bNullPasswords, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "obey pam restrictions", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bObeyPamRestrictions, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "password server", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPasswordServer, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "smb passwd file", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szSMBPasswdFile, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "private dir", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPrivateDir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "passdb backend", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPassdbBackend, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "algorithmic rid base", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.AlgorithmicRidBase, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "root directory", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRootdir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "root dir", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRootdir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "root", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRootdir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "guest account", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szGuestaccount, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "enable privileges", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bEnablePrivileges, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "pam password change", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bPamPasswordChange, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "passwd program", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPasswdProgram, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "passwd chat", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPasswdChat, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "passwd chat debug", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bPasswdChatDebug, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "passwd chat timeout", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iPasswdChatTimeout, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "check password script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szCheckPasswordScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "username map", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szUsernameMap, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "password level", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.pwordlevel, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "username level", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.unamelevel, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "unix password sync", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUnixPasswdSync, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "restrict anonymous", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.restrict_anonymous, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "lanman auth", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bLanmanAuth, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ntlm auth", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bNTLMAuth, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "client NTLMv2 auth", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bClientNTLMv2Auth, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "client lanman auth", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bClientLanManAuth, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "client plaintext auth", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bClientPlaintextAuth, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "username", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szUsername, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "user", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szUsername, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "users", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szUsername, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + + { + .label = "invalid users", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szInvalidUsers, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "valid users", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szValidUsers, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "admin users", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szAdminUsers, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "read list", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.readlist, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "write list", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.writelist, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "printer admin", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.printer_admin, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_PRINT | FLAG_DEPRECATED, + }, + { + .label = "force user", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.force_user, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "force group", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.force_group, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "group", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.force_group, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "read only", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bRead_only, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "write ok", + .type = P_BOOLREV, + .p_class = P_LOCAL, + .ptr = &sDefault.bRead_only, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "writeable", + .type = P_BOOLREV, + .p_class = P_LOCAL, + .ptr = &sDefault.bRead_only, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "writable", + .type = P_BOOLREV, + .p_class = P_LOCAL, + .ptr = &sDefault.bRead_only, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + + { + .label = "acl check permissions", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bAclCheckPermissions, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "acl group control", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bAclGroupControl, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED, + }, + { + .label = "acl map full control", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bAclMapFullControl, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "create mask", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iCreate_mask, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "create mode", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iCreate_mask, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "force create mode", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iCreate_force_mode, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "security mask", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iSecurity_mask, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "force security mode", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iSecurity_force_mode, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "directory mask", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iDir_mask, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "directory mode", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iDir_mask, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, + { + .label = "force directory mode", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iDir_force_mode, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "directory security mask", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iDir_Security_mask, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "force directory security mode", + .type = P_OCTAL, + .p_class = P_LOCAL, + .ptr = &sDefault.iDir_Security_force_mode, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "force unknown acl user", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bForceUnknownAclUser, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + { + .label = "inherit permissions", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bInheritPerms, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "inherit acls", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bInheritACLS, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "inherit owner", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bInheritOwner, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "guest only", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bGuest_only, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "only guest", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bGuest_only, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "administrative share", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bAdministrative_share, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + + { + .label = "guest ok", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bGuest_ok, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "public", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bGuest_ok, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + + { + .label = "only user", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bOnlyUser, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED, + }, + { + .label = "hosts allow", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szHostsallow, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "allow hosts", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szHostsallow, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "hosts deny", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szHostsdeny, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "deny hosts", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szHostsdeny, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "preload modules", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szPreloadModules, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, + { + .label = "use kerberos keytab", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUseKerberosKeytab, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("Logging Options"), P_SEP, P_SEPARATOR}, - {"log level", P_STRING, P_GLOBAL, &Globals.szLogLevel, handle_debug_list, NULL, FLAG_ADVANCED}, - {"debuglevel", P_STRING, P_GLOBAL, &Globals.szLogLevel, handle_debug_list, NULL, FLAG_HIDE}, - {"syslog", P_INTEGER, P_GLOBAL, &Globals.syslog, NULL, NULL, FLAG_ADVANCED}, - {"syslog only", P_BOOL, P_GLOBAL, &Globals.bSyslogOnly, NULL, NULL, FLAG_ADVANCED}, - {"log file", P_STRING, P_GLOBAL, &Globals.szLogFile, NULL, NULL, FLAG_ADVANCED}, - - {"max log size", P_INTEGER, P_GLOBAL, &Globals.max_log_size, NULL, NULL, FLAG_ADVANCED}, - {"debug timestamp", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL, NULL, FLAG_ADVANCED}, - {"timestamp logs", P_BOOL, P_GLOBAL, &Globals.bTimestampLogs, NULL, NULL, FLAG_ADVANCED}, - {"debug prefix timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugPrefixTimestamp, NULL, NULL, FLAG_ADVANCED}, - {"debug hires timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugHiresTimestamp, NULL, NULL, FLAG_ADVANCED}, - {"debug pid", P_BOOL, P_GLOBAL, &Globals.bDebugPid, NULL, NULL, FLAG_ADVANCED}, - {"debug uid", P_BOOL, P_GLOBAL, &Globals.bDebugUid, NULL, NULL, FLAG_ADVANCED}, - {"debug class", P_BOOL, P_GLOBAL, &Globals.bDebugClass, NULL, NULL, FLAG_ADVANCED}, - {"enable core files", P_BOOL, P_GLOBAL, &Globals.bEnableCoreFiles, NULL, NULL, FLAG_ADVANCED}, + { + .label = "log level", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogLevel, + .special = handle_debug_list, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "debuglevel", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogLevel, + .special = handle_debug_list, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "syslog", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.syslog, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "syslog only", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bSyslogOnly, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "log file", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogFile, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "max log size", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.max_log_size, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "debug timestamp", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bTimestampLogs, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "timestamp logs", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bTimestampLogs, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "debug prefix timestamp", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDebugPrefixTimestamp, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "debug hires timestamp", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDebugHiresTimestamp, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "debug pid", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDebugPid, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "debug uid", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDebugUid, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "debug class", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDebugClass, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "enable core files", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bEnableCoreFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("Protocol Options"), P_SEP, P_SEPARATOR}, - {"allocation roundup size", P_INTEGER, P_LOCAL, &sDefault.iallocation_roundup_size, NULL, NULL, FLAG_ADVANCED}, - {"aio read size", P_INTEGER, P_LOCAL, &sDefault.iAioReadSize, NULL, NULL, FLAG_ADVANCED}, - {"aio write size", P_INTEGER, P_LOCAL, &sDefault.iAioWriteSize, NULL, NULL, FLAG_ADVANCED}, - {"aio write behind", P_STRING, P_LOCAL, &sDefault.szAioWriteBehind, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, - {"smb ports", P_STRING, P_GLOBAL, &Globals.smb_ports, NULL, NULL, FLAG_ADVANCED}, - {"large readwrite", P_BOOL, P_GLOBAL, &Globals.bLargeReadwrite, NULL, NULL, FLAG_ADVANCED}, - {"max protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, FLAG_ADVANCED}, - {"protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, FLAG_ADVANCED}, - {"min protocol", P_ENUM, P_GLOBAL, &Globals.minprotocol, NULL, enum_protocol, FLAG_ADVANCED}, - {"min receivefile size", P_INTEGER, P_GLOBAL, &Globals.iminreceivefile, NULL, NULL, FLAG_ADVANCED}, - {"read raw", P_BOOL, P_GLOBAL, &Globals.bReadRaw, NULL, NULL, FLAG_ADVANCED}, - {"write raw", P_BOOL, P_GLOBAL, &Globals.bWriteRaw, NULL, NULL, FLAG_ADVANCED}, - {"disable netbios", P_BOOL, P_GLOBAL, &Globals.bDisableNetbios, NULL, NULL, FLAG_ADVANCED}, - {"reset on zero vc", P_BOOL, P_GLOBAL, &Globals.bResetOnZeroVC, NULL, NULL, FLAG_ADVANCED}, - - {"acl compatibility", P_ENUM, P_GLOBAL, &Globals.iAclCompat, NULL, enum_acl_compat_vals, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"defer sharing violations", P_BOOL, P_GLOBAL, &Globals.bDeferSharingViolations, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - {"ea support", P_BOOL, P_LOCAL, &sDefault.bEASupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"nt acl support", P_BOOL, P_LOCAL, &sDefault.bNTAclSupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"nt pipe support", P_BOOL, P_GLOBAL, &Globals.bNTPipeSupport, NULL, NULL, FLAG_ADVANCED}, - {"nt status support", P_BOOL, P_GLOBAL, &Globals.bNTStatusSupport, NULL, NULL, FLAG_ADVANCED}, - {"profile acls", P_BOOL, P_LOCAL, &sDefault.bProfileAcls, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, - - {"announce version", P_STRING, P_GLOBAL, &Globals.szAnnounceVersion, NULL, NULL, FLAG_ADVANCED}, - {"announce as", P_ENUM, P_GLOBAL, &Globals.announce_as, NULL, enum_announce_as, FLAG_ADVANCED}, - {"map acl inherit", P_BOOL, P_LOCAL, &sDefault.bMap_acl_inherit, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"afs share", P_BOOL, P_LOCAL, &sDefault.bAfs_Share, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"max mux", P_INTEGER, P_GLOBAL, &Globals.max_mux, NULL, NULL, FLAG_ADVANCED}, - {"max xmit", P_INTEGER, P_GLOBAL, &Globals.max_xmit, NULL, NULL, FLAG_ADVANCED}, - - {"name resolve order", P_STRING, P_GLOBAL, &Globals.szNameResolveOrder, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, - {"max ttl", P_INTEGER, P_GLOBAL, &Globals.max_ttl, NULL, NULL, FLAG_ADVANCED}, - {"max wins ttl", P_INTEGER, P_GLOBAL, &Globals.max_wins_ttl, NULL, NULL, FLAG_ADVANCED}, - {"min wins ttl", P_INTEGER, P_GLOBAL, &Globals.min_wins_ttl, NULL, NULL, FLAG_ADVANCED}, - {"time server", P_BOOL, P_GLOBAL, &Globals.bTimeServer, NULL, NULL, FLAG_ADVANCED}, - {"unix extensions", P_BOOL, P_GLOBAL, &Globals.bUnixExtensions, NULL, NULL, FLAG_ADVANCED}, - {"use spnego", P_BOOL, P_GLOBAL, &Globals.bUseSpnego, NULL, NULL, FLAG_ADVANCED}, - {"client signing", P_ENUM, P_GLOBAL, &Globals.client_signing, NULL, enum_smb_signing_vals, FLAG_ADVANCED}, - {"server signing", P_ENUM, P_GLOBAL, &Globals.server_signing, NULL, enum_smb_signing_vals, FLAG_ADVANCED}, - {"smb encrypt", P_ENUM, P_LOCAL, &sDefault.ismb_encrypt, NULL, enum_smb_signing_vals, FLAG_ADVANCED}, - {"client use spnego", P_BOOL, P_GLOBAL, &Globals.bClientUseSpnego, NULL, NULL, FLAG_ADVANCED}, - {"client ldap sasl wrapping", P_ENUM, P_GLOBAL, &Globals.client_ldap_sasl_wrapping, NULL, enum_ldap_sasl_wrapping, FLAG_ADVANCED}, - {"enable asu support", P_BOOL, P_GLOBAL, &Globals.bASUSupport, NULL, NULL, FLAG_ADVANCED}, - {"svcctl list", P_LIST, P_GLOBAL, &Globals.szServicesList, NULL, NULL, FLAG_ADVANCED}, + { + .label = "allocation roundup size", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iallocation_roundup_size, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "aio read size", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iAioReadSize, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "aio write size", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iAioWriteSize, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "aio write behind", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szAioWriteBehind, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "smb ports", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.smb_ports, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "large readwrite", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bLargeReadwrite, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "max protocol", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.maxprotocol, + .special = NULL, + .enum_list = enum_protocol, + .flags = FLAG_ADVANCED, + }, + { + .label = "protocol", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.maxprotocol, + .special = NULL, + .enum_list = enum_protocol, + .flags = FLAG_ADVANCED, + }, + { + .label = "min protocol", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.minprotocol, + .special = NULL, + .enum_list = enum_protocol, + .flags = FLAG_ADVANCED, + }, + { + .label = "min receivefile size", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iminreceivefile, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "read raw", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bReadRaw, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "write raw", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWriteRaw, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "disable netbios", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDisableNetbios, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "reset on zero vc", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bResetOnZeroVC, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "acl compatibility", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.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, + .ptr = &Globals.bDeferSharingViolations, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, + { + .label = "ea support", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bEASupport, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "nt acl support", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bNTAclSupport, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "nt pipe support", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bNTPipeSupport, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "nt status support", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bNTStatusSupport, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "profile acls", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bProfileAcls, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, + + { + .label = "announce version", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAnnounceVersion, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "announce as", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.announce_as, + .special = NULL, + .enum_list = enum_announce_as, + .flags = FLAG_ADVANCED, + }, + { + .label = "map acl inherit", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &sDefault.bAfs_Share, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "max mux", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.max_mux, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "max xmit", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.max_xmit, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "name resolve order", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szNameResolveOrder, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "max ttl", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.max_ttl, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "max wins ttl", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.max_wins_ttl, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "min wins ttl", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.min_wins_ttl, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "time server", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bTimeServer, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "unix extensions", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUnixExtensions, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "use spnego", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUseSpnego, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "client signing", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.client_signing, + .special = NULL, + .enum_list = enum_smb_signing_vals, + .flags = FLAG_ADVANCED, + }, + { + .label = "server signing", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.server_signing, + .special = NULL, + .enum_list = enum_smb_signing_vals, + .flags = FLAG_ADVANCED, + }, + { + .label = "smb encrypt", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.ismb_encrypt, + .special = NULL, + .enum_list = enum_smb_signing_vals, + .flags = FLAG_ADVANCED, + }, + { + .label = "client use spnego", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bClientUseSpnego, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "client ldap sasl wrapping", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.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, + .ptr = &Globals.bASUSupport, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "svcctl list", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szServicesList, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("Tuning Options"), P_SEP, P_SEPARATOR}, - {"block size", P_INTEGER, P_LOCAL, &sDefault.iBlock_size, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"deadtime", P_INTEGER, P_GLOBAL, &Globals.deadtime, NULL, NULL, FLAG_ADVANCED}, - {"getwd cache", P_BOOL, P_GLOBAL, &Globals.getwd_cache, NULL, NULL, FLAG_ADVANCED}, - {"keepalive", P_INTEGER, P_GLOBAL, &Globals.iKeepalive, NULL, NULL, FLAG_ADVANCED}, - {"change notify", P_BOOL, P_LOCAL, &sDefault.bChangeNotify, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE }, - {"directory name cache size", P_INTEGER, P_LOCAL, &sDefault.iDirectoryNameCacheSize, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE }, - {"kernel change notify", P_BOOL, P_LOCAL, &sDefault.bKernelChangeNotify, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE }, - - {"lpq cache time", P_INTEGER, P_GLOBAL, &Globals.lpqcachetime, NULL, NULL, FLAG_ADVANCED}, - {"max smbd processes", P_INTEGER, P_GLOBAL, &Globals.iMaxSmbdProcesses, NULL, NULL, FLAG_ADVANCED}, - {"max connections", P_INTEGER, P_LOCAL, &sDefault.iMaxConnections, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"paranoid server security", P_BOOL, P_GLOBAL, &Globals.paranoid_server_security, NULL, NULL, FLAG_ADVANCED}, - {"max disk size", P_INTEGER, P_GLOBAL, &Globals.maxdisksize, NULL, NULL, FLAG_ADVANCED}, - {"max open files", P_INTEGER, P_GLOBAL, &Globals.max_open_files, NULL, NULL, FLAG_ADVANCED}, - {"min print space", P_INTEGER, P_LOCAL, &sDefault.iMinPrintSpace, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - - {"socket options", P_STRING, P_GLOBAL, &Globals.szSocketOptions, NULL, NULL, FLAG_ADVANCED}, - {"strict allocate", P_BOOL, P_LOCAL, &sDefault.bStrictAllocate, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"strict sync", P_BOOL, P_LOCAL, &sDefault.bStrictSync, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"sync always", P_BOOL, P_LOCAL, &sDefault.bSyncAlways, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"use mmap", P_BOOL, P_GLOBAL, &Globals.bUseMmap, NULL, NULL, FLAG_ADVANCED}, - {"use sendfile", P_BOOL, P_LOCAL, &sDefault.bUseSendfile, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"hostname lookups", P_BOOL, P_GLOBAL, &Globals.bHostnameLookups, NULL, NULL, FLAG_ADVANCED}, - {"write cache size", P_INTEGER, P_LOCAL, &sDefault.iWriteCacheSize, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED}, - - {"name cache timeout", P_INTEGER, P_GLOBAL, &Globals.name_cache_timeout, NULL, NULL, FLAG_ADVANCED}, - {"ctdbd socket", P_STRING, P_GLOBAL, &Globals.ctdbdSocket, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - {"cluster addresses", P_LIST, P_GLOBAL, &Globals.szClusterAddresses, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - {"clustering", P_BOOL, P_GLOBAL, &Globals.clustering, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, + { + .label = "block size", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iBlock_size, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "deadtime", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.deadtime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "getwd cache", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.getwd_cache, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "keepalive", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iKeepalive, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "change notify", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bChangeNotify, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "directory name cache size", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iDirectoryNameCacheSize, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "kernel change notify", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bKernelChangeNotify, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + + { + .label = "lpq cache time", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.lpqcachetime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "max smbd processes", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iMaxSmbdProcesses, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "max connections", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iMaxConnections, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "paranoid server security", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.paranoid_server_security, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "max disk size", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.maxdisksize, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "max open files", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.max_open_files, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "min print space", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iMinPrintSpace, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + + { + .label = "socket options", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szSocketOptions, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "strict allocate", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bStrictAllocate, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "strict sync", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bStrictSync, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "sync always", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bSyncAlways, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "use mmap", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUseMmap, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "use sendfile", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bUseSendfile, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "hostname lookups", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bHostnameLookups, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "write cache size", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iWriteCacheSize, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED, + }, + + { + .label = "name cache timeout", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.name_cache_timeout, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ctdbd socket", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.ctdbdSocket, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, + { + .label = "cluster addresses", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szClusterAddresses, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, + { + .label = "clustering", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.clustering, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, {N_("Printing Options"), P_SEP, P_SEPARATOR}, - {"max reported print jobs", P_INTEGER, P_LOCAL, &sDefault.iMaxReportedPrintJobs, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"max print jobs", P_INTEGER, P_LOCAL, &sDefault.iMaxPrintJobs, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"load printers", P_BOOL, P_GLOBAL, &Globals.bLoadPrinters, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"printcap cache time", P_INTEGER, P_GLOBAL, &Globals.PrintcapCacheTime, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"printcap name", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"printcap", P_STRING, P_GLOBAL, &Globals.szPrintcapname, NULL, NULL, FLAG_HIDE}, - {"printable", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"print ok", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_HIDE}, - {"printing", P_ENUM, P_LOCAL, &sDefault.iPrinting, handle_printing, enum_printing, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"cups options", P_STRING, P_LOCAL, &sDefault.szCupsOptions, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"cups server", P_STRING, P_GLOBAL, &Globals.szCupsServer, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"iprint server", P_STRING, P_GLOBAL, &Globals.szIPrintServer, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"print command", P_STRING, P_LOCAL, &sDefault.szPrintcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"disable spoolss", P_BOOL, P_GLOBAL, &Globals.bDisableSpoolss, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"enable spoolss", P_BOOLREV, P_GLOBAL, &Globals.bDisableSpoolss, NULL, NULL, FLAG_HIDE}, - {"lpq command", P_STRING, P_LOCAL, &sDefault.szLpqcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"lprm command", P_STRING, P_LOCAL, &sDefault.szLprmcommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"lppause command", P_STRING, P_LOCAL, &sDefault.szLppausecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"lpresume command", P_STRING, P_LOCAL, &sDefault.szLpresumecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"queuepause command", P_STRING, P_LOCAL, &sDefault.szQueuepausecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - {"queueresume command", P_STRING, P_LOCAL, &sDefault.szQueueresumecommand, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL}, - - {"addport command", P_STRING, P_GLOBAL, &Globals.szAddPortCommand, NULL, NULL, FLAG_ADVANCED}, - {"enumports command", P_STRING, P_GLOBAL, &Globals.szEnumPortsCommand, NULL, NULL, FLAG_ADVANCED}, - {"addprinter command", P_STRING, P_GLOBAL, &Globals.szAddPrinterCommand, NULL, NULL, FLAG_ADVANCED}, - {"deleteprinter command", P_STRING, P_GLOBAL, &Globals.szDeletePrinterCommand, NULL, NULL, FLAG_ADVANCED}, - {"show add printer wizard", P_BOOL, P_GLOBAL, &Globals.bMsAddPrinterWizard, NULL, NULL, FLAG_ADVANCED}, - {"os2 driver map", P_STRING, P_GLOBAL, &Globals.szOs2DriverMap, NULL, NULL, FLAG_ADVANCED}, - - {"printer name", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"printer", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, FLAG_HIDE}, - {"use client driver", P_BOOL, P_LOCAL, &sDefault.bUseClientDriver, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"default devmode", P_BOOL, P_LOCAL, &sDefault.bDefaultDevmode, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"force printername", P_BOOL, P_LOCAL, &sDefault.bForcePrintername, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"printjob username", P_STRING, P_LOCAL, &sDefault.szPrintjobUsername, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, + { + .label = "max reported print jobs", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iMaxReportedPrintJobs, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "max print jobs", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iMaxPrintJobs, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "load printers", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bLoadPrinters, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "printcap cache time", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.PrintcapCacheTime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "printcap name", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPrintcapname, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "printcap", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPrintcapname, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "printable", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bPrint_ok, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "print ok", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bPrint_ok, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "printing", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &sDefault.szCupsOptions, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "cups server", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szCupsServer, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "iprint server", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szIPrintServer, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "print command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPrintcommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "disable spoolss", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDisableSpoolss, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "enable spoolss", + .type = P_BOOLREV, + .p_class = P_GLOBAL, + .ptr = &Globals.bDisableSpoolss, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "lpq command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szLpqcommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "lprm command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szLprmcommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "lppause command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szLppausecommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "lpresume command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szLpresumecommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "queuepause command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szQueuepausecommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + { + .label = "queueresume command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szQueueresumecommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL, + }, + + { + .label = "addport command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAddPortCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "enumports command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szEnumPortsCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "addprinter command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAddPrinterCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "deleteprinter command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szDeletePrinterCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "show add printer wizard", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bMsAddPrinterWizard, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "os2 driver map", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szOs2DriverMap, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "printer name", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPrintername, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "printer", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPrintername, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "use client driver", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bUseClientDriver, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "default devmode", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bDefaultDevmode, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "force printername", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bForcePrintername, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, + { + .label = "printjob username", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPrintjobUsername, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_PRINT, + }, {N_("Filename Handling"), P_SEP, P_SEPARATOR}, - {"mangling method", P_STRING, P_GLOBAL, &Globals.szManglingMethod, NULL, NULL, FLAG_ADVANCED}, - {"mangle prefix", P_INTEGER, P_GLOBAL, &Globals.mangle_prefix, NULL, NULL, FLAG_ADVANCED}, - - {"default case", P_ENUM, P_LOCAL, &sDefault.iDefaultCase, NULL, enum_case, FLAG_ADVANCED | FLAG_SHARE}, - {"case sensitive", P_ENUM, P_LOCAL, &sDefault.iCaseSensitive, NULL, enum_bool_auto, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"casesignames", P_ENUM, P_LOCAL, &sDefault.iCaseSensitive, NULL, enum_bool_auto, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_HIDE}, - {"preserve case", P_BOOL, P_LOCAL, &sDefault.bCasePreserve, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"short preserve case", P_BOOL, P_LOCAL, &sDefault.bShortCasePreserve, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"mangling char", P_CHAR, P_LOCAL, &sDefault.magic_char, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"hide dot files", P_BOOL, P_LOCAL, &sDefault.bHideDotFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"hide special files", P_BOOL, P_LOCAL, &sDefault.bHideSpecialFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"hide unreadable", P_BOOL, P_LOCAL, &sDefault.bHideUnReadable, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"hide unwriteable files", P_BOOL, P_LOCAL, &sDefault.bHideUnWriteableFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"delete veto files", P_BOOL, P_LOCAL, &sDefault.bDeleteVetoFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"veto files", P_STRING, P_LOCAL, &sDefault.szVetoFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, - {"hide files", P_STRING, P_LOCAL, &sDefault.szHideFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, - {"veto oplock files", P_STRING, P_LOCAL, &sDefault.szVetoOplockFiles, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL }, - {"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"map hidden", P_BOOL, P_LOCAL, &sDefault.bMap_hidden, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"map system", P_BOOL, P_LOCAL, &sDefault.bMap_system, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"map readonly", P_ENUM, P_LOCAL, &sDefault.iMap_readonly, NULL, enum_map_readonly, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"mangled names", P_BOOL, P_LOCAL, &sDefault.bMangledNames, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"max stat cache size", P_INTEGER, P_GLOBAL, &Globals.iMaxStatCacheSize, NULL, NULL, FLAG_ADVANCED}, - {"stat cache", P_BOOL, P_GLOBAL, &Globals.bStatCache, NULL, NULL, FLAG_ADVANCED}, - {"store dos attributes", P_BOOL, P_LOCAL, &sDefault.bStoreDosAttributes, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"dmapi support", P_BOOL, P_LOCAL, &sDefault.bDmapiSupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, + { + .label = "mangling method", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szManglingMethod, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "mangle prefix", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.mangle_prefix, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "default case", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.iDefaultCase, + .special = NULL, + .enum_list = enum_case, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "case sensitive", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.iCaseSensitive, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "casesignames", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &sDefault.bCasePreserve, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "short preserve case", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bShortCasePreserve, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "mangling char", + .type = P_CHAR, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &sDefault.bHideDotFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "hide special files", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bHideSpecialFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "hide unreadable", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bHideUnReadable, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "hide unwriteable files", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bHideUnWriteableFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "delete veto files", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bDeleteVetoFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "veto files", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szVetoFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "hide files", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szHideFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "veto oplock files", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szVetoOplockFiles, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "map archive", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bMap_archive, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "map hidden", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bMap_hidden, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "map system", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bMap_system, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "map readonly", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &sDefault.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, + .ptr = &Globals.iMaxStatCacheSize, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "stat cache", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bStatCache, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "store dos attributes", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bStoreDosAttributes, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "dmapi support", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bDmapiSupport, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, {N_("Domain Options"), P_SEP, P_SEPARATOR}, - {"machine password timeout", P_INTEGER, P_GLOBAL, &Globals.machine_password_timeout, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD}, + { + .label = "machine password timeout", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.machine_password_timeout, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_WIZARD, + }, {N_("Logon Options"), P_SEP, P_SEPARATOR}, - {"add user script", P_STRING, P_GLOBAL, &Globals.szAddUserScript, NULL, NULL, FLAG_ADVANCED}, - {"rename user script", P_STRING, P_GLOBAL, &Globals.szRenameUserScript, NULL, NULL, FLAG_ADVANCED}, - {"delete user script", P_STRING, P_GLOBAL, &Globals.szDelUserScript, NULL, NULL, FLAG_ADVANCED}, - {"add group script", P_STRING, P_GLOBAL, &Globals.szAddGroupScript, NULL, NULL, FLAG_ADVANCED}, - {"delete group script", P_STRING, P_GLOBAL, &Globals.szDelGroupScript, NULL, NULL, FLAG_ADVANCED}, - {"add user to group script", P_STRING, P_GLOBAL, &Globals.szAddUserToGroupScript, NULL, NULL, FLAG_ADVANCED}, - {"delete user from group script", P_STRING, P_GLOBAL, &Globals.szDelUserFromGroupScript, NULL, NULL, FLAG_ADVANCED}, - {"set primary group script", P_STRING, P_GLOBAL, &Globals.szSetPrimaryGroupScript, NULL, NULL, FLAG_ADVANCED}, - {"add machine script", P_STRING, P_GLOBAL, &Globals.szAddMachineScript, NULL, NULL, FLAG_ADVANCED}, - {"shutdown script", P_STRING, P_GLOBAL, &Globals.szShutdownScript, NULL, NULL, FLAG_ADVANCED}, - {"abort shutdown script", P_STRING, P_GLOBAL, &Globals.szAbortShutdownScript, NULL, NULL, FLAG_ADVANCED}, - {"username map script", P_STRING, P_GLOBAL, &Globals.szUsernameMapScript, NULL, NULL, FLAG_ADVANCED}, - - {"logon script", P_STRING, P_GLOBAL, &Globals.szLogonScript, NULL, NULL, FLAG_ADVANCED}, - {"logon path", P_STRING, P_GLOBAL, &Globals.szLogonPath, NULL, NULL, FLAG_ADVANCED}, - {"logon drive", P_STRING, P_GLOBAL, &Globals.szLogonDrive, NULL, NULL, FLAG_ADVANCED}, - {"logon home", P_STRING, P_GLOBAL, &Globals.szLogonHome, NULL, NULL, FLAG_ADVANCED}, - {"domain logons", P_BOOL, P_GLOBAL, &Globals.bDomainLogons, NULL, NULL, FLAG_ADVANCED}, + { + .label = "add user script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAddUserScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "rename user script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRenameUserScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "delete user script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szDelUserScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "add group script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAddGroupScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "delete group script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szDelGroupScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "add user to group script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAddUserToGroupScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "delete user from group script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szDelUserFromGroupScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "set primary group script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szSetPrimaryGroupScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "add machine script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAddMachineScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "shutdown script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szShutdownScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "abort shutdown script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAbortShutdownScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "username map script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szUsernameMapScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "logon script", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogonScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "logon path", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogonPath, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "logon drive", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogonDrive, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "logon home", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogonHome, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "domain logons", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDomainLogons, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("Browse Options"), P_SEP, P_SEPARATOR}, - {"os level", P_INTEGER, P_GLOBAL, &Globals.os_level, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED}, - {"lm announce", P_ENUM, P_GLOBAL, &Globals.lm_announce, NULL, enum_bool_auto, FLAG_ADVANCED}, - {"lm interval", P_INTEGER, P_GLOBAL, &Globals.lm_interval, NULL, NULL, FLAG_ADVANCED}, - {"preferred master", P_ENUM, P_GLOBAL, &Globals.iPreferredMaster, NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED}, - {"prefered master", P_ENUM, P_GLOBAL, &Globals.iPreferredMaster, NULL, enum_bool_auto, FLAG_HIDE}, - {"local master", P_BOOL, P_GLOBAL, &Globals.bLocalMaster, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED}, - {"domain master", P_ENUM, P_GLOBAL, &Globals.iDomainMaster, NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED}, - {"browse list", P_BOOL, P_GLOBAL, &Globals.bBrowseList, NULL, NULL, FLAG_ADVANCED}, - {"browseable", P_BOOL, P_LOCAL, &sDefault.bBrowseable, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"browsable", P_BOOL, P_LOCAL, &sDefault.bBrowseable, NULL, NULL, FLAG_HIDE}, - {"enhanced browsing", P_BOOL, P_GLOBAL, &Globals.enhanced_browsing, NULL, NULL, FLAG_ADVANCED}, + { + .label = "os level", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.os_level, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "lm announce", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.lm_announce, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_ADVANCED, + }, + { + .label = "lm interval", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.lm_interval, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "preferred master", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.iPreferredMaster, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "prefered master", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.iPreferredMaster, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_HIDE, + }, + { + .label = "local master", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bLocalMaster, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "domain master", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.iDomainMaster, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_BASIC | FLAG_ADVANCED, + }, + { + .label = "browse list", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bBrowseList, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "browseable", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bBrowseable, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "browsable", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bBrowseable, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "enhanced browsing", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.enhanced_browsing, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("WINS Options"), P_SEP, P_SEPARATOR}, - {"dns proxy", P_BOOL, P_GLOBAL, &Globals.bDNSproxy, NULL, NULL, FLAG_ADVANCED}, - {"wins proxy", P_BOOL, P_GLOBAL, &Globals.bWINSproxy, NULL, NULL, FLAG_ADVANCED}, + { + .label = "dns proxy", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bDNSproxy, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "wins proxy", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWINSproxy, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, - {"wins server", P_LIST, P_GLOBAL, &Globals.szWINSservers, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, - {"wins support", P_BOOL, P_GLOBAL, &Globals.bWINSsupport, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD}, - {"wins hook", P_STRING, P_GLOBAL, &Globals.szWINSHook, NULL, NULL, FLAG_ADVANCED}, + { + .label = "wins server", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szWINSservers, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "wins support", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWINSsupport, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD, + }, + { + .label = "wins hook", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szWINSHook, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("Locking Options"), P_SEP, P_SEPARATOR}, - {"blocking locks", P_BOOL, P_LOCAL, &sDefault.bBlockingLocks, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"csc policy", P_ENUM, P_LOCAL, &sDefault.iCSCPolicy, NULL, enum_csc_policy, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"fake oplocks", P_BOOL, P_LOCAL, &sDefault.bFakeOplocks, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"kernel oplocks", P_BOOL, P_GLOBAL, &Globals.bKernelOplocks, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - {"locking", P_BOOL, P_LOCAL, &sDefault.bLocking, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"lock spin time", P_INTEGER, P_GLOBAL, &Globals.iLockSpinTime, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - - {"oplocks", P_BOOL, P_LOCAL, &sDefault.bOpLocks, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"level2 oplocks", P_BOOL, P_LOCAL, &sDefault.bLevel2OpLocks, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"oplock break wait time", P_INTEGER, P_GLOBAL, &Globals.oplock_break_wait_time, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL}, - {"oplock contention limit", P_INTEGER, P_LOCAL, &sDefault.iOplockContentionLimit, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"posix locking", P_BOOL, P_LOCAL, &sDefault.bPosixLocking, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"strict locking", P_ENUM, P_LOCAL, &sDefault.iStrictLocking, NULL, enum_bool_auto, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"share modes", P_BOOL, P_LOCAL, &sDefault.bShareModes, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, + { + .label = "blocking locks", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bBlockingLocks, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "csc policy", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &sDefault.bFakeOplocks, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "kernel oplocks", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bKernelOplocks, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, + { + .label = "locking", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bLocking, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "lock spin time", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iLockSpinTime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL, + }, + + { + .label = "oplocks", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bOpLocks, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "level2 oplocks", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &Globals.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, + .ptr = &sDefault.iOplockContentionLimit, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "posix locking", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bPosixLocking, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "strict locking", + .type = P_ENUM, + .p_class = P_LOCAL, + .ptr = &sDefault.iStrictLocking, + .special = NULL, + .enum_list = enum_bool_auto, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "share modes", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bShareModes, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, {N_("Ldap Options"), P_SEP, P_SEPARATOR}, - {"ldap admin dn", P_STRING, P_GLOBAL, &Globals.szLdapAdminDn, NULL, NULL, FLAG_ADVANCED}, - {"ldap delete dn", P_BOOL, P_GLOBAL, &Globals.ldap_delete_dn, NULL, NULL, FLAG_ADVANCED}, - {"ldap group suffix", P_STRING, P_GLOBAL, &Globals.szLdapGroupSuffix, NULL, NULL, FLAG_ADVANCED}, - {"ldap idmap suffix", P_STRING, P_GLOBAL, &Globals.szLdapIdmapSuffix, NULL, NULL, FLAG_ADVANCED}, - {"ldap machine suffix", P_STRING, P_GLOBAL, &Globals.szLdapMachineSuffix, NULL, NULL, FLAG_ADVANCED}, - {"ldap passwd sync", P_ENUM, P_GLOBAL, &Globals.ldap_passwd_sync, NULL, enum_ldap_passwd_sync, FLAG_ADVANCED}, - {"ldap password sync", P_ENUM, P_GLOBAL, &Globals.ldap_passwd_sync, NULL, enum_ldap_passwd_sync, FLAG_HIDE}, - {"ldap replication sleep", P_INTEGER, P_GLOBAL, &Globals.ldap_replication_sleep, NULL, NULL, FLAG_ADVANCED}, - {"ldap suffix", P_STRING, P_GLOBAL, &Globals.szLdapSuffix, NULL, NULL, FLAG_ADVANCED}, - {"ldap ssl", P_ENUM, P_GLOBAL, &Globals.ldap_ssl, NULL, enum_ldap_ssl, FLAG_ADVANCED}, - {"ldap timeout", P_INTEGER, P_GLOBAL, &Globals.ldap_timeout, NULL, NULL, FLAG_ADVANCED}, - {"ldap page size", P_INTEGER, P_GLOBAL, &Globals.ldap_page_size, NULL, NULL, FLAG_ADVANCED}, - {"ldap user suffix", P_STRING, P_GLOBAL, &Globals.szLdapUserSuffix, NULL, NULL, FLAG_ADVANCED}, + { + .label = "ldap admin dn", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLdapAdminDn, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap delete dn", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.ldap_delete_dn, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap group suffix", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLdapGroupSuffix, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap idmap suffix", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLdapIdmapSuffix, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap machine suffix", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLdapMachineSuffix, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap passwd sync", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.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, + .ptr = &Globals.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, + .ptr = &Globals.ldap_replication_sleep, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap suffix", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLdapSuffix, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap ssl", + .type = P_ENUM, + .p_class = P_GLOBAL, + .ptr = &Globals.ldap_ssl, + .special = NULL, + .enum_list = enum_ldap_ssl, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap timeout", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.ldap_timeout, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap page size", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.ldap_page_size, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "ldap user suffix", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLdapUserSuffix, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, - {"ldap debug level", P_INTEGER, P_GLOBAL, &Globals.ldap_debug_level, handle_ldap_debug_level, NULL, FLAG_ADVANCED}, - {"ldap debug threshold", P_INTEGER, P_GLOBAL, &Globals.ldap_debug_threshold, NULL, NULL, FLAG_ADVANCED}, + { + .label = "ldap debug level", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.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, + .ptr = &Globals.ldap_debug_threshold, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("EventLog Options"), P_SEP, P_SEPARATOR}, - {"eventlog list", P_LIST, P_GLOBAL, &Globals.szEventLogs, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, + { + .label = "eventlog list", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szEventLogs, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE, + }, {N_("Miscellaneous Options"), P_SEP, P_SEPARATOR}, - {"add share command", P_STRING, P_GLOBAL, &Globals.szAddShareCommand, NULL, NULL, FLAG_ADVANCED}, - {"change share command", P_STRING, P_GLOBAL, &Globals.szChangeShareCommand, NULL, NULL, FLAG_ADVANCED}, - {"delete share command", P_STRING, P_GLOBAL, &Globals.szDeleteShareCommand, NULL, NULL, FLAG_ADVANCED}, - - {"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile, NULL, NULL, FLAG_HIDE}, - {"preload", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED}, - {"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED}, - {"lock directory", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_ADVANCED}, - {"lock dir", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_HIDE}, - {"pid directory", P_STRING, P_GLOBAL, &Globals.szPidDir, NULL, NULL, FLAG_ADVANCED}, + { + .label = "add share command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAddShareCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "change share command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szChangeShareCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "delete share command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szDeleteShareCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "config file", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szConfigFile, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "preload", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAutoServices, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "auto services", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAutoServices, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "lock directory", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLockDir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "lock dir", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLockDir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "pid directory", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPidDir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, #ifdef WITH_UTMP - {"utmp directory", P_STRING, P_GLOBAL, &Globals.szUtmpDir, NULL, NULL, FLAG_ADVANCED}, - {"wtmp directory", P_STRING, P_GLOBAL, &Globals.szWtmpDir, NULL, NULL, FLAG_ADVANCED}, - {"utmp", P_BOOL, P_GLOBAL, &Globals.bUtmp, NULL, NULL, FLAG_ADVANCED}, + { + .label = "utmp directory", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szUtmpDir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "wtmp directory", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szWtmpDir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "utmp", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUtmp, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, #endif - {"default service", P_STRING, P_GLOBAL, &Globals.szDefaultService, NULL, NULL, FLAG_ADVANCED}, - {"default", P_STRING, P_GLOBAL, &Globals.szDefaultService, NULL, NULL, FLAG_ADVANCED}, - {"message command", P_STRING, P_GLOBAL, &Globals.szMsgCommand, NULL, NULL, FLAG_ADVANCED}, - {"dfree cache time", P_INTEGER, P_LOCAL, &sDefault.iDfreeCacheTime, NULL, NULL, FLAG_ADVANCED}, - {"dfree command", P_STRING, P_LOCAL, &sDefault.szDfree, NULL, NULL, FLAG_ADVANCED}, - {"get quota command", P_STRING, P_GLOBAL, &Globals.szGetQuota, NULL, NULL, FLAG_ADVANCED}, - {"set quota command", P_STRING, P_GLOBAL, &Globals.szSetQuota, NULL, NULL, FLAG_ADVANCED}, - {"remote announce", P_STRING, P_GLOBAL, &Globals.szRemoteAnnounce, NULL, NULL, FLAG_ADVANCED}, - {"remote browse sync", P_STRING, P_GLOBAL, &Globals.szRemoteBrowseSync, NULL, NULL, FLAG_ADVANCED}, - {"socket address", P_STRING, P_GLOBAL, &Globals.szSocketAddress, NULL, NULL, FLAG_ADVANCED}, - {"homedir map", P_STRING, P_GLOBAL, &Globals.szNISHomeMapName, NULL, NULL, FLAG_ADVANCED}, - {"afs username map", P_STRING, P_GLOBAL, &Globals.szAfsUsernameMap, NULL, NULL, FLAG_ADVANCED}, - {"afs token lifetime", P_INTEGER, P_GLOBAL, &Globals.iAfsTokenLifetime, NULL, NULL, FLAG_ADVANCED}, - {"log nt token command", P_STRING, P_GLOBAL, &Globals.szLogNtTokenCommand, NULL, NULL, FLAG_ADVANCED}, - {"time offset", P_INTEGER, P_GLOBAL, &extra_time_offset, NULL, NULL, FLAG_ADVANCED}, - {"NIS homedir", P_BOOL, P_GLOBAL, &Globals.bNISHomeMap, NULL, NULL, FLAG_ADVANCED}, - {"-valid", P_BOOL, P_LOCAL, &sDefault.valid, NULL, NULL, FLAG_HIDE}, - - {"copy", P_STRING, P_LOCAL, &sDefault.szCopy, handle_copy, NULL, FLAG_HIDE}, - {"include", P_STRING, P_LOCAL, &sDefault.szInclude, handle_include, NULL, FLAG_HIDE}, - {"preexec", P_STRING, P_LOCAL, &sDefault.szPreExec, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"exec", P_STRING, P_LOCAL, &sDefault.szPreExec, NULL, NULL, FLAG_ADVANCED}, - - {"preexec close", P_BOOL, P_LOCAL, &sDefault.bPreexecClose, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"postexec", P_STRING, P_LOCAL, &sDefault.szPostExec, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"root preexec", P_STRING, P_LOCAL, &sDefault.szRootPreExec, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"root preexec close", P_BOOL, P_LOCAL, &sDefault.bRootpreexecClose, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"root postexec", P_STRING, P_LOCAL, &sDefault.szRootPostExec, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"available", P_BOOL, P_LOCAL, &sDefault.bAvailable, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT}, - {"registry shares", P_BOOL, P_GLOBAL, &Globals.bRegistryShares, NULL, NULL, FLAG_ADVANCED}, - {"usershare allow guests", P_BOOL, P_GLOBAL, &Globals.bUsershareAllowGuests, NULL, NULL, FLAG_ADVANCED}, - {"usershare max shares", P_INTEGER, P_GLOBAL, &Globals.iUsershareMaxShares, NULL, NULL, FLAG_ADVANCED}, - {"usershare owner only", P_BOOL, P_GLOBAL, &Globals.bUsershareOwnerOnly, NULL, NULL, FLAG_ADVANCED}, - {"usershare path", P_STRING, P_GLOBAL, &Globals.szUsersharePath, NULL, NULL, FLAG_ADVANCED}, - {"usershare prefix allow list", P_LIST, P_GLOBAL, &Globals.szUsersharePrefixAllowList, NULL, NULL, FLAG_ADVANCED}, - {"usershare prefix deny list", P_LIST, P_GLOBAL, &Globals.szUsersharePrefixDenyList, NULL, NULL, FLAG_ADVANCED}, - {"usershare template share", P_STRING, P_GLOBAL, &Globals.szUsershareTemplateShare, NULL, NULL, FLAG_ADVANCED}, - {"volume", P_STRING, P_LOCAL, &sDefault.volume, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE }, - {"fstype", P_STRING, P_LOCAL, &sDefault.fstype, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"set directory", P_BOOLREV, P_LOCAL, &sDefault.bNo_set_dir, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"wide links", P_BOOL, P_LOCAL, &sDefault.bWidelinks, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"follow symlinks", P_BOOL, P_LOCAL, &sDefault.bSymlinks, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"dont descend", P_STRING, P_LOCAL, &sDefault.szDontdescend, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"magic script", P_STRING, P_LOCAL, &sDefault.szMagicScript, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"magic output", P_STRING, P_LOCAL, &sDefault.szMagicOutput, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"delete readonly", P_BOOL, P_LOCAL, &sDefault.bDeleteReadonly, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"dos filemode", P_BOOL, P_LOCAL, &sDefault.bDosFilemode, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"dos filetimes", P_BOOL, P_LOCAL, &sDefault.bDosFiletimes, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"dos filetime resolution", P_BOOL, P_LOCAL, &sDefault.bDosFiletimeResolution, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - - {"fake directory create times", P_BOOL, P_LOCAL, &sDefault.bFakeDirCreateTimes, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, - {"panic action", P_STRING, P_GLOBAL, &Globals.szPanicAction, NULL, NULL, FLAG_ADVANCED}, + { + .label = "default service", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szDefaultService, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "default", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szDefaultService, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "message command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szMsgCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "dfree cache time", + .type = P_INTEGER, + .p_class = P_LOCAL, + .ptr = &sDefault.iDfreeCacheTime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "dfree command", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szDfree, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "get quota command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szGetQuota, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "set quota command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szSetQuota, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "remote announce", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRemoteAnnounce, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "remote browse sync", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szRemoteBrowseSync, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "socket address", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szSocketAddress, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "homedir map", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szNISHomeMapName, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "afs username map", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szAfsUsernameMap, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "afs token lifetime", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iAfsTokenLifetime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "log nt token command", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szLogNtTokenCommand, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "time offset", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &extra_time_offset, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "NIS homedir", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bNISHomeMap, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "-valid", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.valid, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + + { + .label = "copy", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szCopy, + .special = handle_copy, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "include", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szInclude, + .special = handle_include, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "preexec", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPreExec, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "exec", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPreExec, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + + { + .label = "preexec close", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bPreexecClose, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "postexec", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szPostExec, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "root preexec", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szRootPreExec, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "root preexec close", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bRootpreexecClose, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "root postexec", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szRootPostExec, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT, + }, + { + .label = "available", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &Globals.bRegistryShares, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "usershare allow guests", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUsershareAllowGuests, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "usershare max shares", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iUsershareMaxShares, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "usershare owner only", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bUsershareOwnerOnly, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "usershare path", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szUsersharePath, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "usershare prefix allow list", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szUsersharePrefixAllowList, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "usershare prefix deny list", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szUsersharePrefixDenyList, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "usershare template share", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szUsershareTemplateShare, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "volume", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.volume, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "fstype", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.fstype, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "set directory", + .type = P_BOOLREV, + .p_class = P_LOCAL, + .ptr = &sDefault.bNo_set_dir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "wide links", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bWidelinks, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "follow symlinks", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bSymlinks, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "dont descend", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szDontdescend, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "magic script", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szMagicScript, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "magic output", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szMagicOutput, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "delete readonly", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bDeleteReadonly, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "dos filemode", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bDosFilemode, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "dos filetimes", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bDosFiletimes, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "dos filetime resolution", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.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, + .ptr = &sDefault.bFakeDirCreateTimes, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL, + }, + { + .label = "panic action", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szPanicAction, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("VFS module options"), P_SEP, P_SEPARATOR}, - {"vfs objects", P_LIST, P_LOCAL, &sDefault.szVfsObjects, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"vfs object", P_LIST, P_LOCAL, &sDefault.szVfsObjects, NULL, NULL, FLAG_HIDE}, + { + .label = "vfs objects", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szVfsObjects, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "vfs object", + .type = P_LIST, + .p_class = P_LOCAL, + .ptr = &sDefault.szVfsObjects, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, {N_("MSDFS options"), P_SEP, P_SEPARATOR}, - {"msdfs root", P_BOOL, P_LOCAL, &sDefault.bMSDfsRoot, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"msdfs proxy", P_STRING, P_LOCAL, &sDefault.szMSDfsProxy, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, - {"host msdfs", P_BOOL, P_GLOBAL, &Globals.bHostMSDfs, NULL, NULL, FLAG_ADVANCED}, + { + .label = "msdfs root", + .type = P_BOOL, + .p_class = P_LOCAL, + .ptr = &sDefault.bMSDfsRoot, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "msdfs proxy", + .type = P_STRING, + .p_class = P_LOCAL, + .ptr = &sDefault.szMSDfsProxy, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED | FLAG_SHARE, + }, + { + .label = "host msdfs", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bHostMSDfs, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("Winbind options"), P_SEP, P_SEPARATOR}, - {"passdb expand explicit", P_BOOL, P_GLOBAL, &Globals.bPassdbExpandExplicit, NULL, NULL, FLAG_ADVANCED}, - {"idmap domains", P_LIST, P_GLOBAL, &Globals.szIdmapDomains, NULL, NULL, FLAG_ADVANCED}, - {"idmap backend", P_LIST, P_GLOBAL, &Globals.szIdmapBackend, NULL, NULL, FLAG_ADVANCED }, - {"idmap alloc backend", P_STRING, P_GLOBAL, &Globals.szIdmapAllocBackend, NULL, NULL, FLAG_ADVANCED}, - {"idmap cache time", P_INTEGER, P_GLOBAL, &Globals.iIdmapCacheTime, NULL, NULL, FLAG_ADVANCED}, - {"idmap negative cache time", P_INTEGER, P_GLOBAL, &Globals.iIdmapNegativeCacheTime, NULL, NULL, FLAG_ADVANCED}, - {"idmap uid", P_STRING, P_GLOBAL, &Globals.szIdmapUID, handle_idmap_uid, NULL, FLAG_ADVANCED }, - {"winbind uid", P_STRING, P_GLOBAL, &Globals.szIdmapUID, handle_idmap_uid, NULL, FLAG_HIDE }, - {"idmap gid", P_STRING, P_GLOBAL, &Globals.szIdmapGID, handle_idmap_gid, NULL, FLAG_ADVANCED }, - {"winbind gid", P_STRING, P_GLOBAL, &Globals.szIdmapGID, handle_idmap_gid, NULL, FLAG_HIDE }, - {"template homedir", P_STRING, P_GLOBAL, &Globals.szTemplateHomedir, NULL, NULL, FLAG_ADVANCED}, - {"template shell", P_STRING, P_GLOBAL, &Globals.szTemplateShell, NULL, NULL, FLAG_ADVANCED}, - {"winbind separator", P_STRING, P_GLOBAL, &Globals.szWinbindSeparator, NULL, NULL, FLAG_ADVANCED}, - {"winbind cache time", P_INTEGER, P_GLOBAL, &Globals.winbind_cache_time, NULL, NULL, FLAG_ADVANCED}, - {"winbind enum users", P_BOOL, P_GLOBAL, &Globals.bWinbindEnumUsers, NULL, NULL, FLAG_ADVANCED}, - {"winbind enum groups", P_BOOL, P_GLOBAL, &Globals.bWinbindEnumGroups, NULL, NULL, FLAG_ADVANCED}, - {"winbind use default domain", P_BOOL, P_GLOBAL, &Globals.bWinbindUseDefaultDomain, NULL, NULL, FLAG_ADVANCED}, - {"winbind trusted domains only", P_BOOL, P_GLOBAL, &Globals.bWinbindTrustedDomainsOnly, NULL, NULL, FLAG_ADVANCED}, - {"winbind nested groups", P_BOOL, P_GLOBAL, &Globals.bWinbindNestedGroups, NULL, NULL, FLAG_ADVANCED}, - {"winbind expand groups", P_INTEGER, P_GLOBAL, &Globals.winbind_expand_groups, NULL, NULL, FLAG_ADVANCED}, - {"winbind nss info", P_LIST, P_GLOBAL, &Globals.szWinbindNssInfo, NULL, NULL, FLAG_ADVANCED}, - {"winbind refresh tickets", P_BOOL, P_GLOBAL, &Globals.bWinbindRefreshTickets, NULL, NULL, FLAG_ADVANCED}, - {"winbind offline logon", P_BOOL, P_GLOBAL, &Globals.bWinbindOfflineLogon, NULL, NULL, FLAG_ADVANCED}, - {"winbind normalize names", P_BOOL, P_GLOBAL, &Globals.bWinbindNormalizeNames, NULL, NULL, FLAG_ADVANCED}, - {"winbind rpc only", P_BOOL, P_GLOBAL, &Globals.bWinbindRpcOnly, NULL, NULL, FLAG_ADVANCED}, + { + .label = "passdb expand explicit", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bPassdbExpandExplicit, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "idmap domains", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szIdmapDomains, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "idmap backend", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szIdmapBackend, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "idmap alloc backend", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szIdmapAllocBackend, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "idmap cache time", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iIdmapCacheTime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "idmap negative cache time", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.iIdmapNegativeCacheTime, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "idmap uid", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szIdmapUID, + .special = handle_idmap_uid, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind uid", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szIdmapUID, + .special = handle_idmap_uid, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "idmap gid", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szIdmapGID, + .special = handle_idmap_gid, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind gid", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szIdmapGID, + .special = handle_idmap_gid, + .enum_list = NULL, + .flags = FLAG_HIDE, + }, + { + .label = "template homedir", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szTemplateHomedir, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "template shell", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szTemplateShell, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind separator", + .type = P_STRING, + .p_class = P_GLOBAL, + .ptr = &Globals.szWinbindSeparator, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind cache time", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.winbind_cache_time, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind enum users", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindEnumUsers, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind enum groups", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindEnumGroups, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind use default domain", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindUseDefaultDomain, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind trusted domains only", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindTrustedDomainsOnly, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind nested groups", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindNestedGroups, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind expand groups", + .type = P_INTEGER, + .p_class = P_GLOBAL, + .ptr = &Globals.winbind_expand_groups, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind nss info", + .type = P_LIST, + .p_class = P_GLOBAL, + .ptr = &Globals.szWinbindNssInfo, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind refresh tickets", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindRefreshTickets, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind offline logon", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindOfflineLogon, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind normalize names", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindNormalizeNames, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, + { + .label = "winbind rpc only", + .type = P_BOOL, + .p_class = P_GLOBAL, + .ptr = &Globals.bWinbindRpcOnly, + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {NULL, P_BOOL, P_NONE, NULL, NULL, NULL, 0} }; -- cgit