#include "lib/param/s3_param.h"
#include "lib/util/bitmap.h"
#include "libcli/smb/smb_constants.h"
-#include "source4/dns_server/dns_update.h"
#define standard_sub_basic talloc_strdup
#define LOADPARM_EXTRA_GLOBALS \
struct parmlist_entry *param_opt; \
char *szRealm; \
+ char *szConfigFile; \
+ int iminreceivefile; \
+ char *szPrintcapname; \
+ int CupsEncrypt; \
+ int iPreferredMaster; \
+ char *szLdapMachineSuffix; \
+ char *szLdapUserSuffix; \
+ char *szLdapIdmapSuffix; \
+ char *szLdapGroupSuffix; \
+ char *szUsershareTemplateShare; \
+ char *szIdmapUID; \
+ char *szIdmapGID; \
+ int winbindMaxDomainConnections; \
+ int ismb2_max_credits; \
char *tls_keyfile; \
char *tls_certfile; \
char *tls_cafile; \
char *tls_crlfile; \
char *tls_dhpfile; \
char *loglevel; \
- char *panic_action; \
- int bPreferredMaster;
+ char *panic_action;
#include "lib/param/param_global.h"
* non-source3 code
*/
#define handle_netbios_aliases NULL
-#define handle_debug_list NULL
#define handle_printing NULL
#define handle_ldap_debug_level NULL
#define handle_idmap_backend NULL
const char *pszParmValue, char **ptr);
static bool handle_copy(struct loadparm_context *lp_ctx, int unused,
const char *pszParmValue, char **ptr);
-static bool handle_debuglevel(struct loadparm_context *lp_ctx, int unused,
+static bool handle_debug_list(struct loadparm_context *lp_ctx, int unused,
const char *pszParmValue, char **ptr);
static bool handle_logfile(struct loadparm_context *lp_ctx, int unused,
const char *pszParmValue, char **ptr);
#include "lib/param/param_table.c"
-#define GLOBAL_VAR(name) offsetof(struct loadparm_global, name)
-#define LOCAL_VAR(name) offsetof(struct loadparm_service, name)
-
-static struct parm_struct parm_table[] = {
- {
- .label = "server role",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(server_role),
- .special = NULL,
- .enum_list = enum_server_role
- },
- {
- .label = "domain logons",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bDomainLogons),
- .special = NULL,
- .enum_list = enum_bool_auto
- },
- {
- .label = "domain master",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(domain_master),
- .special = NULL,
- .enum_list = enum_bool_auto
- },
- {
- .label = "dos charset",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(dos_charset),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "unix charset",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(unix_charset),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "ncalrpc dir",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(ncalrpc_dir),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "comment",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(comment),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT
- },
- {
- .label = "path",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szPath),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
- },
- {
- .label = "directory",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szPath),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_HIDE,
- },
- {
- .label = "workgroup",
- .type = P_USTRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szWorkgroup),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
- },
- {
- .label = "realm",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szRealm),
- .special = handle_realm,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
- },
- {
- .label = "netbios name",
- .type = P_USTRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szNetbiosName),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
- },
- {
- .label = "netbios aliases",
- .type = P_LIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szNetbiosAliases),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "netbios scope",
- .type = P_USTRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szNetbiosScope),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "server string",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szServerString),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED,
- },
- {
- .label = "interfaces",
- .type = P_LIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szInterfaces),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
- },
- {
- .label = "bind interfaces only",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bBindInterfacesOnly),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED | FLAG_WIZARD,
- },
- {
- .label = "ntvfs handler",
- .type = P_LIST,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(ntvfs_handler),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "passdb backend",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(passdb_backend),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "dcerpc endpoint servers",
- .type = P_LIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(dcerpc_ep_servers),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "server services",
- .type = P_LIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(server_services),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "security",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(security),
- .special = NULL,
- .enum_list = enum_security
- },
- {
- .label = "encrypt passwords",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bEncryptPasswords),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "null passwords",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bNullPasswords),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED | FLAG_DEPRECATED,
- },
- {
- .label = "obey pam restrictions",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bObeyPamRestrictions),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "password server",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szPasswordServer),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "private dir",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szPrivateDir),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "passwd chat",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szPasswdChat),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "password level",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(pwordlevel),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "lanman auth",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bLanmanAuth),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "ntlm auth",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bNTLMAuth),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "client NTLMv2 auth",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bClientNTLMv2Auth),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "client lanman auth",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bClientLanManAuth),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "client plaintext auth",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bClientPlaintextAuth),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "client use spnego principal",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(client_use_spnego_principal),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "read only",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bRead_only),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "create mask",
- .type = P_OCTAL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iCreate_mask),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "force create mode",
- .type = P_OCTAL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iCreate_force_mode),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "directory mask",
- .type = P_OCTAL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iDir_mask),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "force directory mode",
- .type = P_OCTAL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iDir_force_mode),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "hosts allow",
- .type = P_LIST,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szHostsallow),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "hosts deny",
- .type = P_LIST,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szHostsdeny),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "log level",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(loglevel),
- .special = handle_debuglevel,
- .enum_list = NULL
- },
- {
- .label = "debuglevel",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(loglevel),
- .special = handle_debuglevel,
- .enum_list = NULL
- },
- {
- .label = "log file",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(logfile),
- .special = handle_logfile,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
-
- {
- .label = "smb ports",
- .type = P_LIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(smb_ports),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "nbt port",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(nbt_port),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "dgram port",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(dgram_port),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "cldap port",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(cldap_port),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "krb5 port",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(krb5_port),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "kpasswd port",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(kpasswd_port),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "web port",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(web_port),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "tls enabled",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(tls_enabled),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "tls keyfile",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(tls_keyfile),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "tls certfile",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(tls_certfile),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "tls cafile",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(tls_cafile),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "tls crlfile",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(tls_crlfile),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "tls dh params file",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(tls_dhpfile),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "large readwrite",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bLargeReadwrite),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "server max protocol",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(srv_maxprotocol),
- .special = NULL,
- .enum_list = enum_protocol,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "max protocol",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(srv_maxprotocol),
- .special = NULL,
- .enum_list = enum_protocol,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "protocol",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(srv_maxprotocol),
- .special = NULL,
- .enum_list = enum_protocol,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "server min protocol",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(srv_minprotocol),
- .special = NULL,
- .enum_list = enum_protocol,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "min protocol",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(srv_minprotocol),
- .special = NULL,
- .enum_list = enum_protocol,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "client max protocol",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(cli_maxprotocol),
- .special = NULL,
- .enum_list = enum_protocol
- },
- {
- .label = "client min protocol",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(cli_minprotocol),
- .special = NULL,
- .enum_list = enum_protocol
- },
- {
- .label = "unicode",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bUnicode),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "read raw",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bReadRaw),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "write raw",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bWriteRaw),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "disable netbios",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bDisableNetbios),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "nt status support",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bNTStatusSupport),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "max mux",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(max_mux),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "max xmit",
- .type = P_BYTES,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(max_xmit),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
-
- {
- .label = "name resolve order",
- .type = P_LIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szNameResolveOrder),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "max wins ttl",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(max_wins_ttl),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "min wins ttl",
- .type = P_INTEGER,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(min_wins_ttl),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "time server",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bTimeServer),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "unix extensions",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bUnixExtensions),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "use spnego",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bUseSpnego),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "server signing",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(server_signing),
- .special = NULL,
- .enum_list = enum_smb_signing_vals,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "client signing",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(client_signing),
- .special = NULL,
- .enum_list = enum_smb_signing_vals
- },
- {
- .label = "rpc big endian",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bRpcBigEndian),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "max connections",
- .type = P_INTEGER,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iMaxConnections),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED | FLAG_SHARE,
- },
- {
- .label = "paranoid server security",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(paranoid_server_security),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "socket options",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(socket_options),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "strict sync",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bStrictSync),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "use mmap",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bUseMmap),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
-
- {
- .label = "max print jobs",
- .type = P_INTEGER,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iMaxPrintJobs),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "printable",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bPrint_ok),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "print ok",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bPrint_ok),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "printer name",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szPrintername),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED | FLAG_PRINT,
- },
- {
- .label = "printer",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szPrintername),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_HIDE,
- },
-
- {
- .label = "map system",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bMap_system),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "map hidden",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bMap_hidden),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "map archive",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bMap_archive),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "preferred master",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bPreferredMaster),
- .special = NULL,
- .enum_list = enum_bool_auto,
- .flags = FLAG_BASIC | FLAG_ADVANCED,
- },
- {
- .label = "prefered master",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bPreferredMaster),
- .special = NULL,
- .enum_list = enum_bool_auto,
- .flags = FLAG_HIDE,
- },
- {
- .label = "local master",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bLocalMaster),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "browseable",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bBrowseable),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
- },
- {
- .label = "browsable",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bBrowseable),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "dns proxy",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bWINSdnsProxy),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "wins server",
- .type = P_LIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szWINSservers),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
- },
- {
- .label = "wins support",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bWINSsupport),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
- },
- {
- .label = "wins hook",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szWINSHook),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
-
- {
- .label = "csc policy",
- .type = P_ENUM,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iCSCPolicy),
- .special = NULL,
- .enum_list = enum_csc_policy,
- .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
- },
-
- {
- .label = "strict locking",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(iStrictLocking),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "oplocks",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bOpLocks),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "share backend",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szShareBackend),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "preload",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szAutoServices),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "auto services",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szAutoServices),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "lock directory",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szLockDir),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "lock dir",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szLockDir),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_HIDE,
- },
- {
- .label = "state directory",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szStateDir),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "cache directory",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szCacheDir),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "pid directory",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szPidDir),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "socket address",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szSocketAddress),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "copy",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szCopy),
- .special = handle_copy,
- .enum_list = NULL,
- .flags = FLAG_HIDE,
- },
- {
- .label = "include",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(szInclude),
- .special = handle_include,
- .enum_list = NULL
- },
-
- {
- .label = "available",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bAvailable),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "volume",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(volume),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED | FLAG_SHARE,
- },
- {
- .label = "fstype",
- .type = P_STRING,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(fstype),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "panic action",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(panic_action),
- .special = NULL,
- .enum_list = NULL
- },
-
- {
- .label = "msdfs root",
- .type = P_BOOL,
- .p_class = P_LOCAL,
- .offset = LOCAL_VAR(bMSDfsRoot),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "host msdfs",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bHostMSDfs),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "winbind separator",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szWinbindSeparator),
- .special = NULL,
- .enum_list = NULL
- },
- {
- .label = "winbindd socket directory",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szWinbinddSocketDirectory),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "winbindd privileged socket directory",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szWinbinddPrivilegedSocketDirectory),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "winbind sealed pipes",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(bWinbindSealedPipes),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "template shell",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szTemplateShell),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "template homedir",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szTemplateHomedir),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "ntp signd socket directory",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szNTPSignDSocketDirectory),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "rndc command",
- .type = P_CMDLIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szRNDCCommand),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "dns update command",
- .type = P_CMDLIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szDNSUpdateCommand),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "spn update command",
- .type = P_CMDLIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szSPNUpdateCommand),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "samba kcc command",
- .type = P_CMDLIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szSambaKCCCommand),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "nsupdate command",
- .type = P_CMDLIST,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(szNSUpdateCommand),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "allow dns updates",
- .type = P_ENUM,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(allow_dns_updates),
- .special = NULL,
- .enum_list = enum_dns_update_settings,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "dns forwarder",
- .type = P_STRING,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(dns_forwarder),
- .special = NULL,
- .enum_list = NULL,
- .flags = FLAG_ADVANCED,
- },
- {
- .label = "dns recursive queries",
- .type = P_BOOL,
- .p_class = P_GLOBAL,
- .offset = GLOBAL_VAR(dns_recursive_queries),
- .special = NULL,
- .enum_list = NULL
- },
-
- {NULL, P_BOOL, P_NONE, 0, NULL, NULL, 0}
-};
-
-
/* local variables */
struct loadparm_context {
const char *szConfigFile;
#define FN_LOCAL_PARM_INTEGER(fn_name, val) FN_LOCAL_INTEGER(fn_name, val)
-#define FN_LOCAL_PARM_CHAR(fn_name, val) FN_LOCAL_CHAR(fn_name, val)
-
#define FN_LOCAL_CHAR(fn_name,val) \
_PUBLIC_ char lpcfg_ ## fn_name(struct loadparm_service *service, \
struct loadparm_service *sDefault) { \
/* These functions remain only in lib/param for now */
FN_GLOBAL_BOOL(readraw, bReadRaw)
FN_GLOBAL_BOOL(writeraw, bWriteRaw)
-FN_GLOBAL_STRING(cachedir, szCacheDir)
-FN_GLOBAL_STRING(socket_address, szSocketAddress)
-FN_GLOBAL_STRING(statedir, szStateDir)
+FN_GLOBAL_CONST_STRING(cachedir, szCacheDir)
+FN_GLOBAL_CONST_STRING(statedir, szStateDir)
/* local prototypes */
static int map_parameter(const char *pszParmName);
return bRetval;
}
-static bool handle_debuglevel(struct loadparm_context *lp_ctx, int unused,
+static bool handle_debug_list(struct loadparm_context *lp_ctx, int unused,
const char *pszParmValue, char **ptr)
{
char **new_list = str_list_make(mem_ctx,
pszParmValue, NULL);
for (i=0; new_list[i]; i++) {
- if (new_list[i][0] == '+' && new_list[i][1]) {
+ if (*(const char ***)parm_ptr != NULL &&
+ new_list[i][0] == '+' &&
+ new_list[i][1])
+ {
if (!str_list_check(*(const char ***)parm_ptr,
&new_list[i][1])) {
*(const char ***)parm_ptr = str_list_add(*(const char ***)parm_ptr,
&new_list[i][1]);
}
- } else if (new_list[i][0] == '-' && new_list[i][1]) {
+ } else if (*(const char ***)parm_ptr != NULL &&
+ new_list[i][0] == '-' &&
+ new_list[i][1])
+ {
str_list_remove(*(const char ***)parm_ptr,
&new_list[i][1]);
} else {
lpcfg_do_global_parameter(lp_ctx, "max connections", "-1");
lpcfg_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi dssetup unixinfo browser eventlog6 backupkey dnsserver");
- lpcfg_do_global_parameter(lp_ctx, "server services", "s3fs rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate");
+ lpcfg_do_global_parameter(lp_ctx, "server services", "s3fs rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate dns");
/* the winbind method for domain controllers is for both RODC
auth forwarding and for trusted domains */
lpcfg_do_global_parameter(lp_ctx, "private dir", dyn_PRIVATE_DIR);
lpcfg_do_global_parameter(lp_ctx, "cache directory", dyn_CACHEDIR);
lpcfg_do_global_parameter(lp_ctx, "ncalrpc dir", dyn_NCALRPCDIR);
- lpcfg_do_global_parameter(lp_ctx, "socket address", "");
+ lpcfg_do_global_parameter(lp_ctx, "nbt client socket address", "");
lpcfg_do_global_parameter_var(lp_ctx, "server string",
"Samba %s", SAMBA_VERSION_STRING);
lpcfg_do_global_parameter(lp_ctx, "client min protocol", "CORE");
lpcfg_do_global_parameter(lp_ctx, "client max protocol", "NT1");
lpcfg_do_global_parameter(lp_ctx, "security", "AUTO");
- lpcfg_do_global_parameter(lp_ctx, "paranoid server security", "True");
lpcfg_do_global_parameter(lp_ctx, "EncryptPasswords", "True");
lpcfg_do_global_parameter(lp_ctx, "ReadRaw", "True");
lpcfg_do_global_parameter(lp_ctx, "WriteRaw", "True");
lpcfg_do_global_parameter(lp_ctx, "rndc command", "/usr/sbin/rndc");
lpcfg_do_global_parameter(lp_ctx, "nsupdate command", "/usr/bin/nsupdate -g");
- lpcfg_do_global_parameter(lp_ctx, "allow dns updates", "False");
- lpcfg_do_global_parameter(lp_ctx, "dns recursive queries", "False");
+ lpcfg_do_global_parameter(lp_ctx, "allow dns updates", "secure only");
lpcfg_do_global_parameter(lp_ctx, "dns forwarder", "");
for (i = 0; parm_table[i].label; i++) {