s3-loadparm: Add synonym "private directory".
[Samba/gebeck_regimport.git] / source3 / param / loadparm.c
blob7d82b615e723444d07eddb5265ae9cc2049271c6
1 /*
2 Unix SMB/CIFS implementation.
3 Parameter loading functions
4 Copyright (C) Karl Auer 1993-1998
6 Largely re-written by Andrew Tridgell, September 1994
8 Copyright (C) Simo Sorce 2001
9 Copyright (C) Alexander Bokovoy 2002
10 Copyright (C) Stefan (metze) Metzmacher 2002
11 Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003
12 Copyright (C) Michael Adam 2008
13 Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
14 Copyright (C) Andrew Bartlett 2011
16 This program is free software; you can redistribute it and/or modify
17 it under the terms of the GNU General Public License as published by
18 the Free Software Foundation; either version 3 of the License, or
19 (at your option) any later version.
21 This program is distributed in the hope that it will be useful,
22 but WITHOUT ANY WARRANTY; without even the implied warranty of
23 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 GNU General Public License for more details.
26 You should have received a copy of the GNU General Public License
27 along with this program. If not, see <http://www.gnu.org/licenses/>.
31 * Load parameters.
33 * This module provides suitable callback functions for the params
34 * module. It builds the internal table of service details which is
35 * then used by the rest of the server.
37 * To add a parameter:
39 * 1) add it to the global or service structure definition
40 * 2) add it to the parm_table
41 * 3) add it to the list of available functions (eg: using FN_GLOBAL_STRING())
42 * 4) If it's a global then initialise it in init_globals. If a local
43 * (ie. service) parameter then initialise it in the sDefault structure
46 * Notes:
47 * The configuration file is processed sequentially for speed. It is NOT
48 * accessed randomly as happens in 'real' Windows. For this reason, there
49 * is a fair bit of sequence-dependent code here - ie., code which assumes
50 * that certain things happen before others. In particular, the code which
51 * happens at the boundary between sections is delicately poised, so be
52 * careful!
56 #include "includes.h"
57 #include "system/filesys.h"
58 #include "util_tdb.h"
59 #include "printing.h"
60 #include "lib/smbconf/smbconf.h"
61 #include "lib/smbconf/smbconf_init.h"
62 #include "lib/param/loadparm.h"
64 #include "ads.h"
65 #include "../librpc/gen_ndr/svcctl.h"
66 #include "intl.h"
67 #include "../libcli/smb/smb_signing.h"
68 #include "dbwrap/dbwrap.h"
69 #include "dbwrap/dbwrap_rbt.h"
70 #include "../lib/util/bitmap.h"
71 #include "../source4/dns_server/dns_update.h"
73 #ifdef HAVE_SYS_SYSCTL_H
74 #include <sys/sysctl.h>
75 #endif
77 #ifdef HAVE_HTTPCONNECTENCRYPT
78 #include <cups/http.h>
79 #endif
81 #ifdef CLUSTER_SUPPORT
82 #include "ctdb_private.h"
83 #endif
85 bool bLoaded = false;
87 extern userdom_struct current_user_info;
89 /* the special value for the include parameter
90 * to be interpreted not as a file name but to
91 * trigger loading of the global smb.conf options
92 * from registry. */
93 #ifndef INCLUDE_REGISTRY_NAME
94 #define INCLUDE_REGISTRY_NAME "registry"
95 #endif
97 static bool in_client = false; /* Not in the client by default */
98 static struct smbconf_csn conf_last_csn;
100 #define CONFIG_BACKEND_FILE 0
101 #define CONFIG_BACKEND_REGISTRY 1
103 static int config_backend = CONFIG_BACKEND_FILE;
105 /* some helpful bits */
106 #define LP_SNUM_OK(i) (((i) >= 0) && ((i) < iNumServices) && (ServicePtrs != NULL) && ServicePtrs[(i)]->valid)
107 #define VALID(i) (ServicePtrs != NULL && ServicePtrs[i]->valid)
109 #define USERSHARE_VALID 1
110 #define USERSHARE_PENDING_DELETE 2
112 static bool defaults_saved = false;
114 #define LOADPARM_EXTRA_GLOBALS \
115 struct parmlist_entry *param_opt; \
116 char *szRealm; \
117 char *szLogLevel; \
118 int iminreceivefile; \
119 char *szPrintcapname; \
120 int CupsEncrypt; \
121 int iPreferredMaster; \
122 int iDomainMaster; \
123 char *szLdapMachineSuffix; \
124 char *szLdapUserSuffix; \
125 char *szLdapIdmapSuffix; \
126 char *szLdapGroupSuffix; \
127 char *szStateDir; \
128 char *szCacheDir; \
129 char *szSocketAddress; \
130 char *szUsershareTemplateShare; \
131 char *szIdmapUID; \
132 char *szIdmapGID; \
133 int winbindMaxDomainConnections; \
134 int ismb2_max_credits;
136 #include "param/param_global.h"
138 static struct loadparm_global Globals;
140 /* This is a default service used to prime a services structure */
141 static struct loadparm_service sDefault =
143 .valid = true,
144 .autoloaded = false,
145 .usershare = 0,
146 .usershare_last_mod = {0, 0},
147 .szService = NULL,
148 .szPath = NULL,
149 .szUsername = NULL,
150 .szInvalidUsers = NULL,
151 .szValidUsers = NULL,
152 .szAdminUsers = NULL,
153 .szCopy = NULL,
154 .szInclude = NULL,
155 .szPreExec = NULL,
156 .szPostExec = NULL,
157 .szRootPreExec = NULL,
158 .szRootPostExec = NULL,
159 .szCupsOptions = NULL,
160 .szPrintcommand = NULL,
161 .szLpqcommand = NULL,
162 .szLprmcommand = NULL,
163 .szLppausecommand = NULL,
164 .szLpresumecommand = NULL,
165 .szQueuepausecommand = NULL,
166 .szQueueresumecommand = NULL,
167 .szPrintername = NULL,
168 .szPrintjobUsername = NULL,
169 .szDontdescend = NULL,
170 .szHostsallow = NULL,
171 .szHostsdeny = NULL,
172 .szMagicScript = NULL,
173 .szMagicOutput = NULL,
174 .szVetoFiles = NULL,
175 .szHideFiles = NULL,
176 .szVetoOplockFiles = NULL,
177 .comment = NULL,
178 .force_user = NULL,
179 .force_group = NULL,
180 .readlist = NULL,
181 .writelist = NULL,
182 .printer_admin = NULL,
183 .volume = NULL,
184 .fstype = NULL,
185 .szVfsObjects = NULL,
186 .szMSDfsProxy = NULL,
187 .szAioWriteBehind = NULL,
188 .szDfree = NULL,
189 .iMinPrintSpace = 0,
190 .iMaxPrintJobs = 1000,
191 .iMaxReportedPrintJobs = 0,
192 .iWriteCacheSize = 0,
193 .iCreate_mask = 0744,
194 .iCreate_force_mode = 0,
195 .iSecurity_mask = 0777,
196 .iSecurity_force_mode = 0,
197 .iDir_mask = 0755,
198 .iDir_force_mode = 0,
199 .iDir_Security_mask = 0777,
200 .iDir_Security_force_mode = 0,
201 .iMaxConnections = 0,
202 .iDefaultCase = CASE_LOWER,
203 .iPrinting = DEFAULT_PRINTING,
204 .iOplockContentionLimit = 2,
205 .iCSCPolicy = 0,
206 .iBlock_size = 1024,
207 .iDfreeCacheTime = 0,
208 .bPreexecClose = false,
209 .bRootpreexecClose = false,
210 .iCaseSensitive = Auto,
211 .bCasePreserve = true,
212 .bShortCasePreserve = true,
213 .bHideDotFiles = true,
214 .bHideSpecialFiles = false,
215 .bHideUnReadable = false,
216 .bHideUnWriteableFiles = false,
217 .bBrowseable = true,
218 .bAccessBasedShareEnum = false,
219 .bAvailable = true,
220 .bRead_only = true,
221 .bNo_set_dir = true,
222 .bGuest_only = false,
223 .bAdministrative_share = false,
224 .bGuest_ok = false,
225 .bPrint_ok = false,
226 .bPrintNotifyBackchannel = true,
227 .bMap_system = false,
228 .bMap_hidden = false,
229 .bMap_archive = true,
230 .bStoreDosAttributes = false,
231 .bDmapiSupport = false,
232 .bLocking = true,
233 .iStrictLocking = Auto,
234 .bPosixLocking = true,
235 .bShareModes = true,
236 .bOpLocks = true,
237 .bKernelOplocks = false,
238 .bLevel2OpLocks = true,
239 .bOnlyUser = false,
240 .bMangledNames = true,
241 .bWidelinks = false,
242 .bSymlinks = true,
243 .bSyncAlways = false,
244 .bStrictAllocate = false,
245 .bStrictSync = false,
246 .magic_char = '~',
247 .copymap = NULL,
248 .bDeleteReadonly = false,
249 .bFakeOplocks = false,
250 .bDeleteVetoFiles = false,
251 .bDosFilemode = false,
252 .bDosFiletimes = true,
253 .bDosFiletimeResolution = false,
254 .bFakeDirCreateTimes = false,
255 .bBlockingLocks = true,
256 .bInheritPerms = false,
257 .bInheritACLS = false,
258 .bInheritOwner = false,
259 .bMSDfsRoot = false,
260 .bUseClientDriver = false,
261 .bDefaultDevmode = true,
262 .bForcePrintername = false,
263 .bNTAclSupport = true,
264 .bForceUnknownAclUser = false,
265 .bUseSendfile = false,
266 .bProfileAcls = false,
267 .bMap_acl_inherit = false,
268 .bAfs_Share = false,
269 .bEASupport = false,
270 .bAclCheckPermissions = true,
271 .bAclMapFullControl = true,
272 .bAclGroupControl = false,
273 .bChangeNotify = true,
274 .bKernelChangeNotify = true,
275 .iallocation_roundup_size = SMB_ROUNDUP_ALLOCATION_SIZE,
276 .iAioReadSize = 0,
277 .iAioWriteSize = 0,
278 .iMap_readonly = MAP_READONLY_YES,
279 #ifdef BROKEN_DIRECTORY_HANDLING
280 .iDirectoryNameCacheSize = 0,
281 #else
282 .iDirectoryNameCacheSize = 100,
283 #endif
284 .ismb_encrypt = Auto,
285 .param_opt = NULL,
286 .dummy = ""
289 /* local variables */
290 static struct loadparm_service **ServicePtrs = NULL;
291 static int iNumServices = 0;
292 static int iServiceIndex = 0;
293 static struct db_context *ServiceHash;
294 static int *invalid_services = NULL;
295 static int num_invalid_services = 0;
296 static bool bInGlobalSection = true;
297 static bool bGlobalOnly = false;
299 #define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct))
301 /* prototypes for the special type handlers */
302 static bool handle_include(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
303 static bool handle_copy(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
304 static bool handle_idmap_backend(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
305 static bool handle_idmap_uid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
306 static bool handle_idmap_gid(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
307 static bool handle_debug_list(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
308 static bool handle_realm(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
309 static bool handle_netbios_aliases(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
310 static bool handle_charset(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
311 static bool handle_dos_charset(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr );
312 static bool handle_printing(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
313 static bool handle_ldap_debug_level(struct loadparm_context *unused, int snum, const char *pszParmValue, char **ptr);
315 static void set_allowed_client_auth(void);
317 static void add_to_file_list(const char *fname, const char *subfname);
318 static bool lp_set_cmdline_helper(const char *pszParmName, const char *pszParmValue, bool store_values);
319 static void free_param_opts(struct parmlist_entry **popts);
321 #include "lib/param/param_enums.c"
323 static const struct enum_list enum_printing[] = {
324 {PRINT_SYSV, "sysv"},
325 {PRINT_AIX, "aix"},
326 {PRINT_HPUX, "hpux"},
327 {PRINT_BSD, "bsd"},
328 {PRINT_QNX, "qnx"},
329 {PRINT_PLP, "plp"},
330 {PRINT_LPRNG, "lprng"},
331 {PRINT_CUPS, "cups"},
332 {PRINT_IPRINT, "iprint"},
333 {PRINT_LPRNT, "nt"},
334 {PRINT_LPROS2, "os2"},
335 #if defined(DEVELOPER) || defined(ENABLE_BUILD_FARM_HACKS)
336 {PRINT_TEST, "test"},
337 {PRINT_VLP, "vlp"},
338 #endif /* DEVELOPER */
339 {-1, NULL}
342 static const struct enum_list enum_ldap_sasl_wrapping[] = {
343 {0, "plain"},
344 {ADS_AUTH_SASL_SIGN, "sign"},
345 {ADS_AUTH_SASL_SEAL, "seal"},
346 {-1, NULL}
349 static const struct enum_list enum_ldap_ssl[] = {
350 {LDAP_SSL_OFF, "no"},
351 {LDAP_SSL_OFF, "off"},
352 {LDAP_SSL_START_TLS, "start tls"},
353 {LDAP_SSL_START_TLS, "start_tls"},
354 {-1, NULL}
357 /* LDAP Dereferencing Alias types */
358 #define SAMBA_LDAP_DEREF_NEVER 0
359 #define SAMBA_LDAP_DEREF_SEARCHING 1
360 #define SAMBA_LDAP_DEREF_FINDING 2
361 #define SAMBA_LDAP_DEREF_ALWAYS 3
363 static const struct enum_list enum_ldap_deref[] = {
364 {SAMBA_LDAP_DEREF_NEVER, "never"},
365 {SAMBA_LDAP_DEREF_SEARCHING, "searching"},
366 {SAMBA_LDAP_DEREF_FINDING, "finding"},
367 {SAMBA_LDAP_DEREF_ALWAYS, "always"},
368 {-1, "auto"}
371 static const struct enum_list enum_ldap_passwd_sync[] = {
372 {LDAP_PASSWD_SYNC_OFF, "no"},
373 {LDAP_PASSWD_SYNC_OFF, "off"},
374 {LDAP_PASSWD_SYNC_ON, "yes"},
375 {LDAP_PASSWD_SYNC_ON, "on"},
376 {LDAP_PASSWD_SYNC_ONLY, "only"},
377 {-1, NULL}
380 static const struct enum_list enum_map_readonly[] = {
381 {MAP_READONLY_NO, "no"},
382 {MAP_READONLY_NO, "false"},
383 {MAP_READONLY_NO, "0"},
384 {MAP_READONLY_YES, "yes"},
385 {MAP_READONLY_YES, "true"},
386 {MAP_READONLY_YES, "1"},
387 {MAP_READONLY_PERMISSIONS, "permissions"},
388 {MAP_READONLY_PERMISSIONS, "perms"},
389 {-1, NULL}
392 static const struct enum_list enum_case[] = {
393 {CASE_LOWER, "lower"},
394 {CASE_UPPER, "upper"},
395 {-1, NULL}
399 /* ACL compatibility options. */
400 static const struct enum_list enum_acl_compat_vals[] = {
401 { ACL_COMPAT_AUTO, "auto" },
402 { ACL_COMPAT_WINNT, "winnt" },
403 { ACL_COMPAT_WIN2K, "win2k" },
404 { -1, NULL}
408 Do you want session setups at user level security with a invalid
409 password to be rejected or allowed in as guest? WinNT rejects them
410 but it can be a pain as it means "net view" needs to use a password
412 You have 3 choices in the setting of map_to_guest:
414 "Never" means session setups with an invalid password
415 are rejected. This is the default.
417 "Bad User" means session setups with an invalid password
418 are rejected, unless the username does not exist, in which case it
419 is treated as a guest login
421 "Bad Password" means session setups with an invalid password
422 are treated as a guest login
424 Note that map_to_guest only has an effect in user or server
425 level security.
428 static const struct enum_list enum_map_to_guest[] = {
429 {NEVER_MAP_TO_GUEST, "Never"},
430 {MAP_TO_GUEST_ON_BAD_USER, "Bad User"},
431 {MAP_TO_GUEST_ON_BAD_PASSWORD, "Bad Password"},
432 {MAP_TO_GUEST_ON_BAD_UID, "Bad Uid"},
433 {-1, NULL}
436 /* Config backend options */
438 static const struct enum_list enum_config_backend[] = {
439 {CONFIG_BACKEND_FILE, "file"},
440 {CONFIG_BACKEND_REGISTRY, "registry"},
441 {-1, NULL}
444 /* ADS kerberos ticket verification options */
446 static const struct enum_list enum_kerberos_method[] = {
447 {KERBEROS_VERIFY_SECRETS, "default"},
448 {KERBEROS_VERIFY_SECRETS, "secrets only"},
449 {KERBEROS_VERIFY_SYSTEM_KEYTAB, "system keytab"},
450 {KERBEROS_VERIFY_DEDICATED_KEYTAB, "dedicated keytab"},
451 {KERBEROS_VERIFY_SECRETS_AND_KEYTAB, "secrets and keytab"},
452 {-1, NULL}
455 /* Note: We do not initialise the defaults union - it is not allowed in ANSI C
457 * The FLAG_HIDE is explicit. Parameters set this way do NOT appear in any edit
458 * screen in SWAT. This is used to exclude parameters as well as to squash all
459 * parameters that have been duplicated by pseudonyms.
461 * NOTE: To display a parameter in BASIC view set FLAG_BASIC
462 * Any parameter that does NOT have FLAG_ADVANCED will not disply at all
463 * Set FLAG_SHARE and FLAG_PRINT to specifically display parameters in
464 * respective views.
466 * NOTE2: Handling of duplicated (synonym) parameters:
467 * Only the first occurance of a parameter should be enabled by FLAG_BASIC
468 * and/or FLAG_ADVANCED. All duplicates following the first mention should be
469 * set to FLAG_HIDE. ie: Make you must place the parameter that has the preferred
470 * name first, and all synonyms must follow it with the FLAG_HIDE attribute.
473 #define GLOBAL_VAR(name) offsetof(struct loadparm_global, name)
474 #define LOCAL_VAR(name) offsetof(struct loadparm_service, name)
476 static struct parm_struct parm_table[] = {
477 {N_("Base Options"), P_SEP, P_SEPARATOR},
480 .label = "dos charset",
481 .type = P_STRING,
482 .p_class = P_GLOBAL,
483 .offset = GLOBAL_VAR(dos_charset),
484 .special = handle_dos_charset,
485 .enum_list = NULL,
486 .flags = FLAG_ADVANCED
489 .label = "unix charset",
490 .type = P_STRING,
491 .p_class = P_GLOBAL,
492 .offset = GLOBAL_VAR(unix_charset),
493 .special = handle_charset,
494 .enum_list = NULL,
495 .flags = FLAG_ADVANCED
498 .label = "comment",
499 .type = P_STRING,
500 .p_class = P_LOCAL,
501 .offset = LOCAL_VAR(comment),
502 .special = NULL,
503 .enum_list = NULL,
504 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT
507 .label = "path",
508 .type = P_STRING,
509 .p_class = P_LOCAL,
510 .offset = LOCAL_VAR(szPath),
511 .special = NULL,
512 .enum_list = NULL,
513 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
516 .label = "directory",
517 .type = P_STRING,
518 .p_class = P_LOCAL,
519 .offset = LOCAL_VAR(szPath),
520 .special = NULL,
521 .enum_list = NULL,
522 .flags = FLAG_HIDE,
525 .label = "workgroup",
526 .type = P_USTRING,
527 .p_class = P_GLOBAL,
528 .offset = GLOBAL_VAR(szWorkgroup),
529 .special = NULL,
530 .enum_list = NULL,
531 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
534 .label = "realm",
535 .type = P_STRING,
536 .p_class = P_GLOBAL,
537 .offset = GLOBAL_VAR(szRealm),
538 .special = handle_realm,
539 .enum_list = NULL,
540 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
543 .label = "netbios name",
544 .type = P_USTRING,
545 .p_class = P_GLOBAL,
546 .offset = GLOBAL_VAR(szNetbiosName),
547 .special = NULL,
548 .enum_list = NULL,
549 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
552 .label = "netbios aliases",
553 .type = P_LIST,
554 .p_class = P_GLOBAL,
555 .offset = GLOBAL_VAR(szNetbiosAliases),
556 .special = handle_netbios_aliases,
557 .enum_list = NULL,
558 .flags = FLAG_ADVANCED,
561 .label = "netbios scope",
562 .type = P_USTRING,
563 .p_class = P_GLOBAL,
564 .offset = GLOBAL_VAR(szNetbiosScope),
565 .special = NULL,
566 .enum_list = NULL,
567 .flags = FLAG_ADVANCED,
570 .label = "server string",
571 .type = P_STRING,
572 .p_class = P_GLOBAL,
573 .offset = GLOBAL_VAR(szServerString),
574 .special = NULL,
575 .enum_list = NULL,
576 .flags = FLAG_BASIC | FLAG_ADVANCED,
579 .label = "interfaces",
580 .type = P_LIST,
581 .p_class = P_GLOBAL,
582 .offset = GLOBAL_VAR(szInterfaces),
583 .special = NULL,
584 .enum_list = NULL,
585 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
588 .label = "bind interfaces only",
589 .type = P_BOOL,
590 .p_class = P_GLOBAL,
591 .offset = GLOBAL_VAR(bBindInterfacesOnly),
592 .special = NULL,
593 .enum_list = NULL,
594 .flags = FLAG_ADVANCED | FLAG_WIZARD,
597 .label = "config backend",
598 .type = P_ENUM,
599 .p_class = P_GLOBAL,
600 .offset = GLOBAL_VAR(ConfigBackend),
601 .special = NULL,
602 .enum_list = enum_config_backend,
603 .flags = FLAG_HIDE|FLAG_ADVANCED|FLAG_META,
606 .label = "server role",
607 .type = P_ENUM,
608 .p_class = P_GLOBAL,
609 .offset = GLOBAL_VAR(ServerRole),
610 .special = NULL,
611 .enum_list = enum_server_role,
612 .flags = FLAG_BASIC | FLAG_ADVANCED,
615 {N_("Security Options"), P_SEP, P_SEPARATOR},
618 .label = "security",
619 .type = P_ENUM,
620 .p_class = P_GLOBAL,
621 .offset = GLOBAL_VAR(security),
622 .special = NULL,
623 .enum_list = enum_security,
624 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
627 .label = "auth methods",
628 .type = P_LIST,
629 .p_class = P_GLOBAL,
630 .offset = GLOBAL_VAR(AuthMethods),
631 .special = NULL,
632 .enum_list = NULL,
633 .flags = FLAG_ADVANCED,
636 .label = "encrypt passwords",
637 .type = P_BOOL,
638 .p_class = P_GLOBAL,
639 .offset = GLOBAL_VAR(bEncryptPasswords),
640 .special = NULL,
641 .enum_list = NULL,
642 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
645 .label = "client schannel",
646 .type = P_ENUM,
647 .p_class = P_GLOBAL,
648 .offset = GLOBAL_VAR(clientSchannel),
649 .special = NULL,
650 .enum_list = enum_bool_auto,
651 .flags = FLAG_BASIC | FLAG_ADVANCED,
654 .label = "server schannel",
655 .type = P_ENUM,
656 .p_class = P_GLOBAL,
657 .offset = GLOBAL_VAR(serverSchannel),
658 .special = NULL,
659 .enum_list = enum_bool_auto,
660 .flags = FLAG_BASIC | FLAG_ADVANCED,
663 .label = "allow trusted domains",
664 .type = P_BOOL,
665 .p_class = P_GLOBAL,
666 .offset = GLOBAL_VAR(bAllowTrustedDomains),
667 .special = NULL,
668 .enum_list = NULL,
669 .flags = FLAG_ADVANCED,
672 .label = "map to guest",
673 .type = P_ENUM,
674 .p_class = P_GLOBAL,
675 .offset = GLOBAL_VAR(map_to_guest),
676 .special = NULL,
677 .enum_list = enum_map_to_guest,
678 .flags = FLAG_ADVANCED,
681 .label = "null passwords",
682 .type = P_BOOL,
683 .p_class = P_GLOBAL,
684 .offset = GLOBAL_VAR(bNullPasswords),
685 .special = NULL,
686 .enum_list = NULL,
687 .flags = FLAG_ADVANCED | FLAG_DEPRECATED,
690 .label = "obey pam restrictions",
691 .type = P_BOOL,
692 .p_class = P_GLOBAL,
693 .offset = GLOBAL_VAR(bObeyPamRestrictions),
694 .special = NULL,
695 .enum_list = NULL,
696 .flags = FLAG_ADVANCED,
699 .label = "password server",
700 .type = P_STRING,
701 .p_class = P_GLOBAL,
702 .offset = GLOBAL_VAR(szPasswordServer),
703 .special = NULL,
704 .enum_list = NULL,
705 .flags = FLAG_ADVANCED | FLAG_WIZARD,
708 .label = "smb passwd file",
709 .type = P_STRING,
710 .p_class = P_GLOBAL,
711 .offset = GLOBAL_VAR(szSMBPasswdFile),
712 .special = NULL,
713 .enum_list = NULL,
714 .flags = FLAG_ADVANCED,
717 .label = "private dir",
718 .type = P_STRING,
719 .p_class = P_GLOBAL,
720 .offset = GLOBAL_VAR(szPrivateDir),
721 .special = NULL,
722 .enum_list = NULL,
723 .flags = FLAG_ADVANCED,
726 .label = "private directory",
727 .type = P_STRING,
728 .p_class = P_GLOBAL,
729 .offset = GLOBAL_VAR(szPrivateDir),
730 .special = NULL,
731 .enum_list = NULL,
732 .flags = FLAG_HIDE,
735 .label = "passdb backend",
736 .type = P_STRING,
737 .p_class = P_GLOBAL,
738 .offset = GLOBAL_VAR(szPassdbBackend),
739 .special = NULL,
740 .enum_list = NULL,
741 .flags = FLAG_ADVANCED | FLAG_WIZARD,
744 .label = "algorithmic rid base",
745 .type = P_INTEGER,
746 .p_class = P_GLOBAL,
747 .offset = GLOBAL_VAR(AlgorithmicRidBase),
748 .special = NULL,
749 .enum_list = NULL,
750 .flags = FLAG_ADVANCED,
753 .label = "root directory",
754 .type = P_STRING,
755 .p_class = P_GLOBAL,
756 .offset = GLOBAL_VAR(szRootdir),
757 .special = NULL,
758 .enum_list = NULL,
759 .flags = FLAG_ADVANCED,
762 .label = "root dir",
763 .type = P_STRING,
764 .p_class = P_GLOBAL,
765 .offset = GLOBAL_VAR(szRootdir),
766 .special = NULL,
767 .enum_list = NULL,
768 .flags = FLAG_HIDE,
771 .label = "root",
772 .type = P_STRING,
773 .p_class = P_GLOBAL,
774 .offset = GLOBAL_VAR(szRootdir),
775 .special = NULL,
776 .enum_list = NULL,
777 .flags = FLAG_HIDE,
780 .label = "guest account",
781 .type = P_STRING,
782 .p_class = P_GLOBAL,
783 .offset = GLOBAL_VAR(szGuestaccount),
784 .special = NULL,
785 .enum_list = NULL,
786 .flags = FLAG_BASIC | FLAG_ADVANCED,
789 .label = "enable privileges",
790 .type = P_BOOL,
791 .p_class = P_GLOBAL,
792 .offset = GLOBAL_VAR(bEnablePrivileges),
793 .special = NULL,
794 .enum_list = NULL,
795 .flags = FLAG_ADVANCED | FLAG_DEPRECATED,
799 .label = "pam password change",
800 .type = P_BOOL,
801 .p_class = P_GLOBAL,
802 .offset = GLOBAL_VAR(bPamPasswordChange),
803 .special = NULL,
804 .enum_list = NULL,
805 .flags = FLAG_ADVANCED,
808 .label = "passwd program",
809 .type = P_STRING,
810 .p_class = P_GLOBAL,
811 .offset = GLOBAL_VAR(szPasswdProgram),
812 .special = NULL,
813 .enum_list = NULL,
814 .flags = FLAG_ADVANCED,
817 .label = "passwd chat",
818 .type = P_STRING,
819 .p_class = P_GLOBAL,
820 .offset = GLOBAL_VAR(szPasswdChat),
821 .special = NULL,
822 .enum_list = NULL,
823 .flags = FLAG_ADVANCED,
826 .label = "passwd chat debug",
827 .type = P_BOOL,
828 .p_class = P_GLOBAL,
829 .offset = GLOBAL_VAR(bPasswdChatDebug),
830 .special = NULL,
831 .enum_list = NULL,
832 .flags = FLAG_ADVANCED,
835 .label = "passwd chat timeout",
836 .type = P_INTEGER,
837 .p_class = P_GLOBAL,
838 .offset = GLOBAL_VAR(iPasswdChatTimeout),
839 .special = NULL,
840 .enum_list = NULL,
841 .flags = FLAG_ADVANCED,
844 .label = "check password script",
845 .type = P_STRING,
846 .p_class = P_GLOBAL,
847 .offset = GLOBAL_VAR(szCheckPasswordScript),
848 .special = NULL,
849 .enum_list = NULL,
850 .flags = FLAG_ADVANCED,
853 .label = "username map",
854 .type = P_STRING,
855 .p_class = P_GLOBAL,
856 .offset = GLOBAL_VAR(szUsernameMap),
857 .special = NULL,
858 .enum_list = NULL,
859 .flags = FLAG_ADVANCED,
862 .label = "password level",
863 .type = P_INTEGER,
864 .p_class = P_GLOBAL,
865 .offset = GLOBAL_VAR(pwordlevel),
866 .special = NULL,
867 .enum_list = NULL,
868 .flags = FLAG_ADVANCED | FLAG_DEPRECATED,
871 .label = "username level",
872 .type = P_INTEGER,
873 .p_class = P_GLOBAL,
874 .offset = GLOBAL_VAR(unamelevel),
875 .special = NULL,
876 .enum_list = NULL,
877 .flags = FLAG_ADVANCED,
880 .label = "unix password sync",
881 .type = P_BOOL,
882 .p_class = P_GLOBAL,
883 .offset = GLOBAL_VAR(bUnixPasswdSync),
884 .special = NULL,
885 .enum_list = NULL,
886 .flags = FLAG_ADVANCED,
889 .label = "restrict anonymous",
890 .type = P_INTEGER,
891 .p_class = P_GLOBAL,
892 .offset = GLOBAL_VAR(restrict_anonymous),
893 .special = NULL,
894 .enum_list = NULL,
895 .flags = FLAG_ADVANCED,
898 .label = "lanman auth",
899 .type = P_BOOL,
900 .p_class = P_GLOBAL,
901 .offset = GLOBAL_VAR(bLanmanAuth),
902 .special = NULL,
903 .enum_list = NULL,
904 .flags = FLAG_ADVANCED,
907 .label = "ntlm auth",
908 .type = P_BOOL,
909 .p_class = P_GLOBAL,
910 .offset = GLOBAL_VAR(bNTLMAuth),
911 .special = NULL,
912 .enum_list = NULL,
913 .flags = FLAG_ADVANCED,
916 .label = "client NTLMv2 auth",
917 .type = P_BOOL,
918 .p_class = P_GLOBAL,
919 .offset = GLOBAL_VAR(bClientNTLMv2Auth),
920 .special = NULL,
921 .enum_list = NULL,
922 .flags = FLAG_ADVANCED,
925 .label = "client lanman auth",
926 .type = P_BOOL,
927 .p_class = P_GLOBAL,
928 .offset = GLOBAL_VAR(bClientLanManAuth),
929 .special = NULL,
930 .enum_list = NULL,
931 .flags = FLAG_ADVANCED,
934 .label = "client plaintext auth",
935 .type = P_BOOL,
936 .p_class = P_GLOBAL,
937 .offset = GLOBAL_VAR(bClientPlaintextAuth),
938 .special = NULL,
939 .enum_list = NULL,
940 .flags = FLAG_ADVANCED,
943 .label = "client use spnego principal",
944 .type = P_BOOL,
945 .p_class = P_GLOBAL,
946 .offset = GLOBAL_VAR(client_use_spnego_principal),
947 .special = NULL,
948 .enum_list = NULL,
949 .flags = FLAG_ADVANCED,
952 .label = "username",
953 .type = P_STRING,
954 .p_class = P_LOCAL,
955 .offset = LOCAL_VAR(szUsername),
956 .special = NULL,
957 .enum_list = NULL,
958 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED,
961 .label = "user",
962 .type = P_STRING,
963 .p_class = P_LOCAL,
964 .offset = LOCAL_VAR(szUsername),
965 .special = NULL,
966 .enum_list = NULL,
967 .flags = FLAG_HIDE,
970 .label = "users",
971 .type = P_STRING,
972 .p_class = P_LOCAL,
973 .offset = LOCAL_VAR(szUsername),
974 .special = NULL,
975 .enum_list = NULL,
976 .flags = FLAG_HIDE,
979 .label = "invalid users",
980 .type = P_LIST,
981 .p_class = P_LOCAL,
982 .offset = LOCAL_VAR(szInvalidUsers),
983 .special = NULL,
984 .enum_list = NULL,
985 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
988 .label = "valid users",
989 .type = P_LIST,
990 .p_class = P_LOCAL,
991 .offset = LOCAL_VAR(szValidUsers),
992 .special = NULL,
993 .enum_list = NULL,
994 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
997 .label = "admin users",
998 .type = P_LIST,
999 .p_class = P_LOCAL,
1000 .offset = LOCAL_VAR(szAdminUsers),
1001 .special = NULL,
1002 .enum_list = NULL,
1003 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1006 .label = "read list",
1007 .type = P_LIST,
1008 .p_class = P_LOCAL,
1009 .offset = LOCAL_VAR(readlist),
1010 .special = NULL,
1011 .enum_list = NULL,
1012 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1015 .label = "write list",
1016 .type = P_LIST,
1017 .p_class = P_LOCAL,
1018 .offset = LOCAL_VAR(writelist),
1019 .special = NULL,
1020 .enum_list = NULL,
1021 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1024 .label = "printer admin",
1025 .type = P_LIST,
1026 .p_class = P_LOCAL,
1027 .offset = LOCAL_VAR(printer_admin),
1028 .special = NULL,
1029 .enum_list = NULL,
1030 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_PRINT | FLAG_DEPRECATED,
1033 .label = "force user",
1034 .type = P_STRING,
1035 .p_class = P_LOCAL,
1036 .offset = LOCAL_VAR(force_user),
1037 .special = NULL,
1038 .enum_list = NULL,
1039 .flags = FLAG_ADVANCED | FLAG_SHARE,
1042 .label = "force group",
1043 .type = P_STRING,
1044 .p_class = P_LOCAL,
1045 .offset = LOCAL_VAR(force_group),
1046 .special = NULL,
1047 .enum_list = NULL,
1048 .flags = FLAG_ADVANCED | FLAG_SHARE,
1051 .label = "group",
1052 .type = P_STRING,
1053 .p_class = P_LOCAL,
1054 .offset = LOCAL_VAR(force_group),
1055 .special = NULL,
1056 .enum_list = NULL,
1057 .flags = FLAG_ADVANCED,
1060 .label = "read only",
1061 .type = P_BOOL,
1062 .p_class = P_LOCAL,
1063 .offset = LOCAL_VAR(bRead_only),
1064 .special = NULL,
1065 .enum_list = NULL,
1066 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE,
1069 .label = "write ok",
1070 .type = P_BOOLREV,
1071 .p_class = P_LOCAL,
1072 .offset = LOCAL_VAR(bRead_only),
1073 .special = NULL,
1074 .enum_list = NULL,
1075 .flags = FLAG_HIDE,
1078 .label = "writeable",
1079 .type = P_BOOLREV,
1080 .p_class = P_LOCAL,
1081 .offset = LOCAL_VAR(bRead_only),
1082 .special = NULL,
1083 .enum_list = NULL,
1084 .flags = FLAG_HIDE,
1087 .label = "writable",
1088 .type = P_BOOLREV,
1089 .p_class = P_LOCAL,
1090 .offset = LOCAL_VAR(bRead_only),
1091 .special = NULL,
1092 .enum_list = NULL,
1093 .flags = FLAG_HIDE,
1096 .label = "acl check permissions",
1097 .type = P_BOOL,
1098 .p_class = P_LOCAL,
1099 .offset = LOCAL_VAR(bAclCheckPermissions),
1100 .special = NULL,
1101 .enum_list = NULL,
1102 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED,
1105 .label = "acl group control",
1106 .type = P_BOOL,
1107 .p_class = P_LOCAL,
1108 .offset = LOCAL_VAR(bAclGroupControl),
1109 .special = NULL,
1110 .enum_list = NULL,
1111 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1114 .label = "acl map full control",
1115 .type = P_BOOL,
1116 .p_class = P_LOCAL,
1117 .offset = LOCAL_VAR(bAclMapFullControl),
1118 .special = NULL,
1119 .enum_list = NULL,
1120 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1123 .label = "create mask",
1124 .type = P_OCTAL,
1125 .p_class = P_LOCAL,
1126 .offset = LOCAL_VAR(iCreate_mask),
1127 .special = NULL,
1128 .enum_list = NULL,
1129 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1132 .label = "create mode",
1133 .type = P_OCTAL,
1134 .p_class = P_LOCAL,
1135 .offset = LOCAL_VAR(iCreate_mask),
1136 .special = NULL,
1137 .enum_list = NULL,
1138 .flags = FLAG_HIDE,
1141 .label = "force create mode",
1142 .type = P_OCTAL,
1143 .p_class = P_LOCAL,
1144 .offset = LOCAL_VAR(iCreate_force_mode),
1145 .special = NULL,
1146 .enum_list = NULL,
1147 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1150 .label = "security mask",
1151 .type = P_OCTAL,
1152 .p_class = P_LOCAL,
1153 .offset = LOCAL_VAR(iSecurity_mask),
1154 .special = NULL,
1155 .enum_list = NULL,
1156 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1159 .label = "force security mode",
1160 .type = P_OCTAL,
1161 .p_class = P_LOCAL,
1162 .offset = LOCAL_VAR(iSecurity_force_mode),
1163 .special = NULL,
1164 .enum_list = NULL,
1165 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1168 .label = "directory mask",
1169 .type = P_OCTAL,
1170 .p_class = P_LOCAL,
1171 .offset = LOCAL_VAR(iDir_mask),
1172 .special = NULL,
1173 .enum_list = NULL,
1174 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1177 .label = "directory mode",
1178 .type = P_OCTAL,
1179 .p_class = P_LOCAL,
1180 .offset = LOCAL_VAR(iDir_mask),
1181 .special = NULL,
1182 .enum_list = NULL,
1183 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
1186 .label = "force directory mode",
1187 .type = P_OCTAL,
1188 .p_class = P_LOCAL,
1189 .offset = LOCAL_VAR(iDir_force_mode),
1190 .special = NULL,
1191 .enum_list = NULL,
1192 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1195 .label = "directory security mask",
1196 .type = P_OCTAL,
1197 .p_class = P_LOCAL,
1198 .offset = LOCAL_VAR(iDir_Security_mask),
1199 .special = NULL,
1200 .enum_list = NULL,
1201 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1204 .label = "force directory security mode",
1205 .type = P_OCTAL,
1206 .p_class = P_LOCAL,
1207 .offset = LOCAL_VAR(iDir_Security_force_mode),
1208 .special = NULL,
1209 .enum_list = NULL,
1210 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1213 .label = "force unknown acl user",
1214 .type = P_BOOL,
1215 .p_class = P_LOCAL,
1216 .offset = LOCAL_VAR(bForceUnknownAclUser),
1217 .special = NULL,
1218 .enum_list = NULL,
1219 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1222 .label = "inherit permissions",
1223 .type = P_BOOL,
1224 .p_class = P_LOCAL,
1225 .offset = LOCAL_VAR(bInheritPerms),
1226 .special = NULL,
1227 .enum_list = NULL,
1228 .flags = FLAG_ADVANCED | FLAG_SHARE,
1231 .label = "inherit acls",
1232 .type = P_BOOL,
1233 .p_class = P_LOCAL,
1234 .offset = LOCAL_VAR(bInheritACLS),
1235 .special = NULL,
1236 .enum_list = NULL,
1237 .flags = FLAG_ADVANCED | FLAG_SHARE,
1240 .label = "inherit owner",
1241 .type = P_BOOL,
1242 .p_class = P_LOCAL,
1243 .offset = LOCAL_VAR(bInheritOwner),
1244 .special = NULL,
1245 .enum_list = NULL,
1246 .flags = FLAG_ADVANCED | FLAG_SHARE,
1249 .label = "guest only",
1250 .type = P_BOOL,
1251 .p_class = P_LOCAL,
1252 .offset = LOCAL_VAR(bGuest_only),
1253 .special = NULL,
1254 .enum_list = NULL,
1255 .flags = FLAG_ADVANCED | FLAG_SHARE,
1258 .label = "only guest",
1259 .type = P_BOOL,
1260 .p_class = P_LOCAL,
1261 .offset = LOCAL_VAR(bGuest_only),
1262 .special = NULL,
1263 .enum_list = NULL,
1264 .flags = FLAG_HIDE,
1267 .label = "administrative share",
1268 .type = P_BOOL,
1269 .p_class = P_LOCAL,
1270 .offset = LOCAL_VAR(bAdministrative_share),
1271 .special = NULL,
1272 .enum_list = NULL,
1273 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1277 .label = "guest ok",
1278 .type = P_BOOL,
1279 .p_class = P_LOCAL,
1280 .offset = LOCAL_VAR(bGuest_ok),
1281 .special = NULL,
1282 .enum_list = NULL,
1283 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1286 .label = "public",
1287 .type = P_BOOL,
1288 .p_class = P_LOCAL,
1289 .offset = LOCAL_VAR(bGuest_ok),
1290 .special = NULL,
1291 .enum_list = NULL,
1292 .flags = FLAG_HIDE,
1295 .label = "only user",
1296 .type = P_BOOL,
1297 .p_class = P_LOCAL,
1298 .offset = LOCAL_VAR(bOnlyUser),
1299 .special = NULL,
1300 .enum_list = NULL,
1301 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED,
1304 .label = "hosts allow",
1305 .type = P_LIST,
1306 .p_class = P_LOCAL,
1307 .offset = LOCAL_VAR(szHostsallow),
1308 .special = NULL,
1309 .enum_list = NULL,
1310 .flags = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1313 .label = "allow hosts",
1314 .type = P_LIST,
1315 .p_class = P_LOCAL,
1316 .offset = LOCAL_VAR(szHostsallow),
1317 .special = NULL,
1318 .enum_list = NULL,
1319 .flags = FLAG_HIDE,
1322 .label = "hosts deny",
1323 .type = P_LIST,
1324 .p_class = P_LOCAL,
1325 .offset = LOCAL_VAR(szHostsdeny),
1326 .special = NULL,
1327 .enum_list = NULL,
1328 .flags = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1331 .label = "deny hosts",
1332 .type = P_LIST,
1333 .p_class = P_LOCAL,
1334 .offset = LOCAL_VAR(szHostsdeny),
1335 .special = NULL,
1336 .enum_list = NULL,
1337 .flags = FLAG_HIDE,
1340 .label = "preload modules",
1341 .type = P_LIST,
1342 .p_class = P_GLOBAL,
1343 .offset = GLOBAL_VAR(szPreloadModules),
1344 .special = NULL,
1345 .enum_list = NULL,
1346 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
1349 .label = "dedicated keytab file",
1350 .type = P_STRING,
1351 .p_class = P_GLOBAL,
1352 .offset = GLOBAL_VAR(szDedicatedKeytabFile),
1353 .special = NULL,
1354 .enum_list = NULL,
1355 .flags = FLAG_ADVANCED,
1358 .label = "kerberos method",
1359 .type = P_ENUM,
1360 .p_class = P_GLOBAL,
1361 .offset = GLOBAL_VAR(iKerberosMethod),
1362 .special = NULL,
1363 .enum_list = enum_kerberos_method,
1364 .flags = FLAG_ADVANCED,
1367 .label = "map untrusted to domain",
1368 .type = P_BOOL,
1369 .p_class = P_GLOBAL,
1370 .offset = GLOBAL_VAR(bMapUntrustedToDomain),
1371 .special = NULL,
1372 .enum_list = NULL,
1373 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
1377 {N_("Logging Options"), P_SEP, P_SEPARATOR},
1380 .label = "log level",
1381 .type = P_STRING,
1382 .p_class = P_GLOBAL,
1383 .offset = GLOBAL_VAR(szLogLevel),
1384 .special = handle_debug_list,
1385 .enum_list = NULL,
1386 .flags = FLAG_ADVANCED,
1389 .label = "debuglevel",
1390 .type = P_STRING,
1391 .p_class = P_GLOBAL,
1392 .offset = GLOBAL_VAR(szLogLevel),
1393 .special = handle_debug_list,
1394 .enum_list = NULL,
1395 .flags = FLAG_HIDE,
1398 .label = "syslog",
1399 .type = P_INTEGER,
1400 .p_class = P_GLOBAL,
1401 .offset = GLOBAL_VAR(syslog),
1402 .special = NULL,
1403 .enum_list = NULL,
1404 .flags = FLAG_ADVANCED,
1407 .label = "syslog only",
1408 .type = P_BOOL,
1409 .p_class = P_GLOBAL,
1410 .offset = GLOBAL_VAR(bSyslogOnly),
1411 .special = NULL,
1412 .enum_list = NULL,
1413 .flags = FLAG_ADVANCED,
1416 .label = "log file",
1417 .type = P_STRING,
1418 .p_class = P_GLOBAL,
1419 .offset = GLOBAL_VAR(logfile),
1420 .special = NULL,
1421 .enum_list = NULL,
1422 .flags = FLAG_ADVANCED,
1425 .label = "max log size",
1426 .type = P_BYTES,
1427 .p_class = P_GLOBAL,
1428 .offset = GLOBAL_VAR(max_log_size),
1429 .special = NULL,
1430 .enum_list = NULL,
1431 .flags = FLAG_ADVANCED,
1434 .label = "debug timestamp",
1435 .type = P_BOOL,
1436 .p_class = P_GLOBAL,
1437 .offset = GLOBAL_VAR(bTimestampLogs),
1438 .special = NULL,
1439 .enum_list = NULL,
1440 .flags = FLAG_ADVANCED,
1443 .label = "timestamp logs",
1444 .type = P_BOOL,
1445 .p_class = P_GLOBAL,
1446 .offset = GLOBAL_VAR(bTimestampLogs),
1447 .special = NULL,
1448 .enum_list = NULL,
1449 .flags = FLAG_ADVANCED,
1452 .label = "debug prefix timestamp",
1453 .type = P_BOOL,
1454 .p_class = P_GLOBAL,
1455 .offset = GLOBAL_VAR(bDebugPrefixTimestamp),
1456 .special = NULL,
1457 .enum_list = NULL,
1458 .flags = FLAG_ADVANCED,
1461 .label = "debug hires timestamp",
1462 .type = P_BOOL,
1463 .p_class = P_GLOBAL,
1464 .offset = GLOBAL_VAR(bDebugHiresTimestamp),
1465 .special = NULL,
1466 .enum_list = NULL,
1467 .flags = FLAG_ADVANCED,
1470 .label = "debug pid",
1471 .type = P_BOOL,
1472 .p_class = P_GLOBAL,
1473 .offset = GLOBAL_VAR(bDebugPid),
1474 .special = NULL,
1475 .enum_list = NULL,
1476 .flags = FLAG_ADVANCED,
1479 .label = "debug uid",
1480 .type = P_BOOL,
1481 .p_class = P_GLOBAL,
1482 .offset = GLOBAL_VAR(bDebugUid),
1483 .special = NULL,
1484 .enum_list = NULL,
1485 .flags = FLAG_ADVANCED,
1488 .label = "debug class",
1489 .type = P_BOOL,
1490 .p_class = P_GLOBAL,
1491 .offset = GLOBAL_VAR(bDebugClass),
1492 .special = NULL,
1493 .enum_list = NULL,
1494 .flags = FLAG_ADVANCED,
1497 .label = "enable core files",
1498 .type = P_BOOL,
1499 .p_class = P_GLOBAL,
1500 .offset = GLOBAL_VAR(bEnableCoreFiles),
1501 .special = NULL,
1502 .enum_list = NULL,
1503 .flags = FLAG_ADVANCED,
1506 {N_("Protocol Options"), P_SEP, P_SEPARATOR},
1509 .label = "allocation roundup size",
1510 .type = P_BYTES,
1511 .p_class = P_LOCAL,
1512 .offset = LOCAL_VAR(iallocation_roundup_size),
1513 .special = NULL,
1514 .enum_list = NULL,
1515 .flags = FLAG_ADVANCED,
1518 .label = "aio read size",
1519 .type = P_BYTES,
1520 .p_class = P_LOCAL,
1521 .offset = LOCAL_VAR(iAioReadSize),
1522 .special = NULL,
1523 .enum_list = NULL,
1524 .flags = FLAG_ADVANCED,
1527 .label = "aio write size",
1528 .type = P_BYTES,
1529 .p_class = P_LOCAL,
1530 .offset = LOCAL_VAR(iAioWriteSize),
1531 .special = NULL,
1532 .enum_list = NULL,
1533 .flags = FLAG_ADVANCED,
1536 .label = "aio write behind",
1537 .type = P_STRING,
1538 .p_class = P_LOCAL,
1539 .offset = LOCAL_VAR(szAioWriteBehind),
1540 .special = NULL,
1541 .enum_list = NULL,
1542 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1545 .label = "smb ports",
1546 .type = P_STRING,
1547 .p_class = P_GLOBAL,
1548 .offset = GLOBAL_VAR(smb_ports),
1549 .special = NULL,
1550 .enum_list = NULL,
1551 .flags = FLAG_ADVANCED,
1554 .label = "large readwrite",
1555 .type = P_BOOL,
1556 .p_class = P_GLOBAL,
1557 .offset = GLOBAL_VAR(bLargeReadwrite),
1558 .special = NULL,
1559 .enum_list = NULL,
1560 .flags = FLAG_ADVANCED,
1563 .label = "max protocol",
1564 .type = P_ENUM,
1565 .p_class = P_GLOBAL,
1566 .offset = GLOBAL_VAR(srv_maxprotocol),
1567 .special = NULL,
1568 .enum_list = enum_protocol,
1569 .flags = FLAG_ADVANCED,
1572 .label = "server max protocol",
1573 .type = P_ENUM,
1574 .p_class = P_GLOBAL,
1575 .offset = GLOBAL_VAR(srv_maxprotocol),
1576 .special = NULL,
1577 .enum_list = enum_protocol,
1578 .flags = FLAG_ADVANCED,
1581 .label = "protocol",
1582 .type = P_ENUM,
1583 .p_class = P_GLOBAL,
1584 .offset = GLOBAL_VAR(srv_maxprotocol),
1585 .special = NULL,
1586 .enum_list = enum_protocol,
1587 .flags = FLAG_ADVANCED,
1590 .label = "min protocol",
1591 .type = P_ENUM,
1592 .p_class = P_GLOBAL,
1593 .offset = GLOBAL_VAR(srv_minprotocol),
1594 .special = NULL,
1595 .enum_list = enum_protocol,
1596 .flags = FLAG_ADVANCED,
1599 .label = "server min protocol",
1600 .type = P_ENUM,
1601 .p_class = P_GLOBAL,
1602 .offset = GLOBAL_VAR(srv_minprotocol),
1603 .special = NULL,
1604 .enum_list = enum_protocol,
1605 .flags = FLAG_ADVANCED,
1608 .label = "min receivefile size",
1609 .type = P_BYTES,
1610 .p_class = P_GLOBAL,
1611 .offset = GLOBAL_VAR(iminreceivefile),
1612 .special = NULL,
1613 .enum_list = NULL,
1614 .flags = FLAG_ADVANCED,
1617 .label = "read raw",
1618 .type = P_BOOL,
1619 .p_class = P_GLOBAL,
1620 .offset = GLOBAL_VAR(bReadRaw),
1621 .special = NULL,
1622 .enum_list = NULL,
1623 .flags = FLAG_ADVANCED,
1626 .label = "write raw",
1627 .type = P_BOOL,
1628 .p_class = P_GLOBAL,
1629 .offset = GLOBAL_VAR(bWriteRaw),
1630 .special = NULL,
1631 .enum_list = NULL,
1632 .flags = FLAG_ADVANCED,
1635 .label = "disable netbios",
1636 .type = P_BOOL,
1637 .p_class = P_GLOBAL,
1638 .offset = GLOBAL_VAR(bDisableNetbios),
1639 .special = NULL,
1640 .enum_list = NULL,
1641 .flags = FLAG_ADVANCED,
1644 .label = "reset on zero vc",
1645 .type = P_BOOL,
1646 .p_class = P_GLOBAL,
1647 .offset = GLOBAL_VAR(bResetOnZeroVC),
1648 .special = NULL,
1649 .enum_list = NULL,
1650 .flags = FLAG_ADVANCED,
1653 .label = "log writeable files on exit",
1654 .type = P_BOOL,
1655 .p_class = P_GLOBAL,
1656 .offset = GLOBAL_VAR(bLogWriteableFilesOnExit),
1657 .special = NULL,
1658 .enum_list = NULL,
1659 .flags = FLAG_ADVANCED,
1662 .label = "acl compatibility",
1663 .type = P_ENUM,
1664 .p_class = P_GLOBAL,
1665 .offset = GLOBAL_VAR(iAclCompat),
1666 .special = NULL,
1667 .enum_list = enum_acl_compat_vals,
1668 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1671 .label = "defer sharing violations",
1672 .type = P_BOOL,
1673 .p_class = P_GLOBAL,
1674 .offset = GLOBAL_VAR(bDeferSharingViolations),
1675 .special = NULL,
1676 .enum_list = NULL,
1677 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
1680 .label = "ea support",
1681 .type = P_BOOL,
1682 .p_class = P_LOCAL,
1683 .offset = LOCAL_VAR(bEASupport),
1684 .special = NULL,
1685 .enum_list = NULL,
1686 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1689 .label = "nt acl support",
1690 .type = P_BOOL,
1691 .p_class = P_LOCAL,
1692 .offset = LOCAL_VAR(bNTAclSupport),
1693 .special = NULL,
1694 .enum_list = NULL,
1695 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1698 .label = "nt pipe support",
1699 .type = P_BOOL,
1700 .p_class = P_GLOBAL,
1701 .offset = GLOBAL_VAR(bNTPipeSupport),
1702 .special = NULL,
1703 .enum_list = NULL,
1704 .flags = FLAG_ADVANCED,
1707 .label = "nt status support",
1708 .type = P_BOOL,
1709 .p_class = P_GLOBAL,
1710 .offset = GLOBAL_VAR(bNTStatusSupport),
1711 .special = NULL,
1712 .enum_list = NULL,
1713 .flags = FLAG_ADVANCED,
1716 .label = "profile acls",
1717 .type = P_BOOL,
1718 .p_class = P_LOCAL,
1719 .offset = LOCAL_VAR(bProfileAcls),
1720 .special = NULL,
1721 .enum_list = NULL,
1722 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1725 .label = "map acl inherit",
1726 .type = P_BOOL,
1727 .p_class = P_LOCAL,
1728 .offset = LOCAL_VAR(bMap_acl_inherit),
1729 .special = NULL,
1730 .enum_list = NULL,
1731 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1734 .label = "afs share",
1735 .type = P_BOOL,
1736 .p_class = P_LOCAL,
1737 .offset = LOCAL_VAR(bAfs_Share),
1738 .special = NULL,
1739 .enum_list = NULL,
1740 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1743 .label = "max mux",
1744 .type = P_INTEGER,
1745 .p_class = P_GLOBAL,
1746 .offset = GLOBAL_VAR(max_mux),
1747 .special = NULL,
1748 .enum_list = NULL,
1749 .flags = FLAG_ADVANCED,
1752 .label = "max xmit",
1753 .type = P_BYTES,
1754 .p_class = P_GLOBAL,
1755 .offset = GLOBAL_VAR(max_xmit),
1756 .special = NULL,
1757 .enum_list = NULL,
1758 .flags = FLAG_ADVANCED,
1761 .label = "name resolve order",
1762 .type = P_STRING,
1763 .p_class = P_GLOBAL,
1764 .offset = GLOBAL_VAR(szNameResolveOrder),
1765 .special = NULL,
1766 .enum_list = NULL,
1767 .flags = FLAG_ADVANCED | FLAG_WIZARD,
1770 .label = "max ttl",
1771 .type = P_INTEGER,
1772 .p_class = P_GLOBAL,
1773 .offset = GLOBAL_VAR(max_ttl),
1774 .special = NULL,
1775 .enum_list = NULL,
1776 .flags = FLAG_ADVANCED,
1779 .label = "max wins ttl",
1780 .type = P_INTEGER,
1781 .p_class = P_GLOBAL,
1782 .offset = GLOBAL_VAR(max_wins_ttl),
1783 .special = NULL,
1784 .enum_list = NULL,
1785 .flags = FLAG_ADVANCED,
1788 .label = "min wins ttl",
1789 .type = P_INTEGER,
1790 .p_class = P_GLOBAL,
1791 .offset = GLOBAL_VAR(min_wins_ttl),
1792 .special = NULL,
1793 .enum_list = NULL,
1794 .flags = FLAG_ADVANCED,
1797 .label = "time server",
1798 .type = P_BOOL,
1799 .p_class = P_GLOBAL,
1800 .offset = GLOBAL_VAR(bTimeServer),
1801 .special = NULL,
1802 .enum_list = NULL,
1803 .flags = FLAG_ADVANCED,
1806 .label = "unix extensions",
1807 .type = P_BOOL,
1808 .p_class = P_GLOBAL,
1809 .offset = GLOBAL_VAR(bUnixExtensions),
1810 .special = NULL,
1811 .enum_list = NULL,
1812 .flags = FLAG_ADVANCED,
1815 .label = "use spnego",
1816 .type = P_BOOL,
1817 .p_class = P_GLOBAL,
1818 .offset = GLOBAL_VAR(bUseSpnego),
1819 .special = NULL,
1820 .enum_list = NULL,
1821 .flags = FLAG_ADVANCED | FLAG_DEPRECATED,
1824 .label = "client signing",
1825 .type = P_ENUM,
1826 .p_class = P_GLOBAL,
1827 .offset = GLOBAL_VAR(client_signing),
1828 .special = NULL,
1829 .enum_list = enum_smb_signing_vals,
1830 .flags = FLAG_ADVANCED,
1833 .label = "server signing",
1834 .type = P_ENUM,
1835 .p_class = P_GLOBAL,
1836 .offset = GLOBAL_VAR(server_signing),
1837 .special = NULL,
1838 .enum_list = enum_smb_signing_vals,
1839 .flags = FLAG_ADVANCED,
1842 .label = "smb encrypt",
1843 .type = P_ENUM,
1844 .p_class = P_LOCAL,
1845 .offset = LOCAL_VAR(ismb_encrypt),
1846 .special = NULL,
1847 .enum_list = enum_smb_signing_vals,
1848 .flags = FLAG_ADVANCED,
1851 .label = "client use spnego",
1852 .type = P_BOOL,
1853 .p_class = P_GLOBAL,
1854 .offset = GLOBAL_VAR(bClientUseSpnego),
1855 .special = NULL,
1856 .enum_list = NULL,
1857 .flags = FLAG_ADVANCED,
1860 .label = "client ldap sasl wrapping",
1861 .type = P_ENUM,
1862 .p_class = P_GLOBAL,
1863 .offset = GLOBAL_VAR(client_ldap_sasl_wrapping),
1864 .special = NULL,
1865 .enum_list = enum_ldap_sasl_wrapping,
1866 .flags = FLAG_ADVANCED,
1869 .label = "enable asu support",
1870 .type = P_BOOL,
1871 .p_class = P_GLOBAL,
1872 .offset = GLOBAL_VAR(bASUSupport),
1873 .special = NULL,
1874 .enum_list = NULL,
1875 .flags = FLAG_ADVANCED,
1878 .label = "svcctl list",
1879 .type = P_LIST,
1880 .p_class = P_GLOBAL,
1881 .offset = GLOBAL_VAR(szServicesList),
1882 .special = NULL,
1883 .enum_list = NULL,
1884 .flags = FLAG_ADVANCED,
1887 {N_("Tuning Options"), P_SEP, P_SEPARATOR},
1890 .label = "block size",
1891 .type = P_BYTES,
1892 .p_class = P_LOCAL,
1893 .offset = LOCAL_VAR(iBlock_size),
1894 .special = NULL,
1895 .enum_list = NULL,
1896 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1899 .label = "deadtime",
1900 .type = P_INTEGER,
1901 .p_class = P_GLOBAL,
1902 .offset = GLOBAL_VAR(deadtime),
1903 .special = NULL,
1904 .enum_list = NULL,
1905 .flags = FLAG_ADVANCED,
1908 .label = "getwd cache",
1909 .type = P_BOOL,
1910 .p_class = P_GLOBAL,
1911 .offset = GLOBAL_VAR(getwd_cache),
1912 .special = NULL,
1913 .enum_list = NULL,
1914 .flags = FLAG_ADVANCED,
1917 .label = "keepalive",
1918 .type = P_INTEGER,
1919 .p_class = P_GLOBAL,
1920 .offset = GLOBAL_VAR(iKeepalive),
1921 .special = NULL,
1922 .enum_list = NULL,
1923 .flags = FLAG_ADVANCED,
1926 .label = "change notify",
1927 .type = P_BOOL,
1928 .p_class = P_LOCAL,
1929 .offset = LOCAL_VAR(bChangeNotify),
1930 .special = NULL,
1931 .enum_list = NULL,
1932 .flags = FLAG_ADVANCED | FLAG_SHARE,
1935 .label = "directory name cache size",
1936 .type = P_INTEGER,
1937 .p_class = P_LOCAL,
1938 .offset = LOCAL_VAR(iDirectoryNameCacheSize),
1939 .special = NULL,
1940 .enum_list = NULL,
1941 .flags = FLAG_ADVANCED | FLAG_SHARE,
1944 .label = "kernel change notify",
1945 .type = P_BOOL,
1946 .p_class = P_LOCAL,
1947 .offset = LOCAL_VAR(bKernelChangeNotify),
1948 .special = NULL,
1949 .enum_list = NULL,
1950 .flags = FLAG_ADVANCED | FLAG_SHARE,
1953 .label = "lpq cache time",
1954 .type = P_INTEGER,
1955 .p_class = P_GLOBAL,
1956 .offset = GLOBAL_VAR(lpqcachetime),
1957 .special = NULL,
1958 .enum_list = NULL,
1959 .flags = FLAG_ADVANCED,
1962 .label = "max smbd processes",
1963 .type = P_INTEGER,
1964 .p_class = P_GLOBAL,
1965 .offset = GLOBAL_VAR(iMaxSmbdProcesses),
1966 .special = NULL,
1967 .enum_list = NULL,
1968 .flags = FLAG_ADVANCED,
1971 .label = "max connections",
1972 .type = P_INTEGER,
1973 .p_class = P_LOCAL,
1974 .offset = LOCAL_VAR(iMaxConnections),
1975 .special = NULL,
1976 .enum_list = NULL,
1977 .flags = FLAG_ADVANCED | FLAG_SHARE,
1980 .label = "paranoid server security",
1981 .type = P_BOOL,
1982 .p_class = P_GLOBAL,
1983 .offset = GLOBAL_VAR(paranoid_server_security),
1984 .special = NULL,
1985 .enum_list = NULL,
1986 .flags = FLAG_ADVANCED,
1989 .label = "max disk size",
1990 .type = P_BYTES,
1991 .p_class = P_GLOBAL,
1992 .offset = GLOBAL_VAR(maxdisksize),
1993 .special = NULL,
1994 .enum_list = NULL,
1995 .flags = FLAG_ADVANCED,
1998 .label = "max open files",
1999 .type = P_INTEGER,
2000 .p_class = P_GLOBAL,
2001 .offset = GLOBAL_VAR(max_open_files),
2002 .special = NULL,
2003 .enum_list = NULL,
2004 .flags = FLAG_ADVANCED,
2007 .label = "min print space",
2008 .type = P_INTEGER,
2009 .p_class = P_LOCAL,
2010 .offset = LOCAL_VAR(iMinPrintSpace),
2011 .special = NULL,
2012 .enum_list = NULL,
2013 .flags = FLAG_ADVANCED | FLAG_PRINT,
2016 .label = "socket options",
2017 .type = P_STRING,
2018 .p_class = P_GLOBAL,
2019 .offset = GLOBAL_VAR(szSocketOptions),
2020 .special = NULL,
2021 .enum_list = NULL,
2022 .flags = FLAG_ADVANCED,
2025 .label = "strict allocate",
2026 .type = P_BOOL,
2027 .p_class = P_LOCAL,
2028 .offset = LOCAL_VAR(bStrictAllocate),
2029 .special = NULL,
2030 .enum_list = NULL,
2031 .flags = FLAG_ADVANCED | FLAG_SHARE,
2034 .label = "strict sync",
2035 .type = P_BOOL,
2036 .p_class = P_LOCAL,
2037 .offset = LOCAL_VAR(bStrictSync),
2038 .special = NULL,
2039 .enum_list = NULL,
2040 .flags = FLAG_ADVANCED | FLAG_SHARE,
2043 .label = "sync always",
2044 .type = P_BOOL,
2045 .p_class = P_LOCAL,
2046 .offset = LOCAL_VAR(bSyncAlways),
2047 .special = NULL,
2048 .enum_list = NULL,
2049 .flags = FLAG_ADVANCED | FLAG_SHARE,
2052 .label = "use mmap",
2053 .type = P_BOOL,
2054 .p_class = P_GLOBAL,
2055 .offset = GLOBAL_VAR(bUseMmap),
2056 .special = NULL,
2057 .enum_list = NULL,
2058 .flags = FLAG_ADVANCED,
2061 .label = "use sendfile",
2062 .type = P_BOOL,
2063 .p_class = P_LOCAL,
2064 .offset = LOCAL_VAR(bUseSendfile),
2065 .special = NULL,
2066 .enum_list = NULL,
2067 .flags = FLAG_ADVANCED | FLAG_SHARE,
2070 .label = "hostname lookups",
2071 .type = P_BOOL,
2072 .p_class = P_GLOBAL,
2073 .offset = GLOBAL_VAR(bHostnameLookups),
2074 .special = NULL,
2075 .enum_list = NULL,
2076 .flags = FLAG_ADVANCED,
2079 .label = "write cache size",
2080 .type = P_BYTES,
2081 .p_class = P_LOCAL,
2082 .offset = LOCAL_VAR(iWriteCacheSize),
2083 .special = NULL,
2084 .enum_list = NULL,
2085 .flags = FLAG_ADVANCED | FLAG_SHARE,
2088 .label = "name cache timeout",
2089 .type = P_INTEGER,
2090 .p_class = P_GLOBAL,
2091 .offset = GLOBAL_VAR(name_cache_timeout),
2092 .special = NULL,
2093 .enum_list = NULL,
2094 .flags = FLAG_ADVANCED,
2097 .label = "ctdbd socket",
2098 .type = P_STRING,
2099 .p_class = P_GLOBAL,
2100 .offset = GLOBAL_VAR(ctdbdSocket),
2101 .special = NULL,
2102 .enum_list = NULL,
2103 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
2106 .label = "cluster addresses",
2107 .type = P_LIST,
2108 .p_class = P_GLOBAL,
2109 .offset = GLOBAL_VAR(szClusterAddresses),
2110 .special = NULL,
2111 .enum_list = NULL,
2112 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
2115 .label = "clustering",
2116 .type = P_BOOL,
2117 .p_class = P_GLOBAL,
2118 .offset = GLOBAL_VAR(clustering),
2119 .special = NULL,
2120 .enum_list = NULL,
2121 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
2124 .label = "ctdb timeout",
2125 .type = P_INTEGER,
2126 .p_class = P_GLOBAL,
2127 .offset = GLOBAL_VAR(ctdb_timeout),
2128 .special = NULL,
2129 .enum_list = NULL,
2130 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
2133 .label = "ctdb locktime warn threshold",
2134 .type = P_INTEGER,
2135 .p_class = P_GLOBAL,
2136 .offset = GLOBAL_VAR(ctdb_locktime_warn_threshold),
2137 .special = NULL,
2138 .enum_list = NULL,
2139 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
2142 .label = "smb2 max read",
2143 .type = P_BYTES,
2144 .p_class = P_GLOBAL,
2145 .offset = GLOBAL_VAR(ismb2_max_read),
2146 .special = NULL,
2147 .enum_list = NULL,
2148 .flags = FLAG_ADVANCED,
2151 .label = "smb2 max write",
2152 .type = P_BYTES,
2153 .p_class = P_GLOBAL,
2154 .offset = GLOBAL_VAR(ismb2_max_write),
2155 .special = NULL,
2156 .enum_list = NULL,
2157 .flags = FLAG_ADVANCED,
2160 .label = "smb2 max trans",
2161 .type = P_BYTES,
2162 .p_class = P_GLOBAL,
2163 .offset = GLOBAL_VAR(ismb2_max_trans),
2164 .special = NULL,
2165 .enum_list = NULL,
2166 .flags = FLAG_ADVANCED,
2169 .label = "smb2 max credits",
2170 .type = P_INTEGER,
2171 .p_class = P_GLOBAL,
2172 .offset = GLOBAL_VAR(ismb2_max_credits),
2173 .special = NULL,
2174 .enum_list = NULL,
2175 .flags = FLAG_ADVANCED,
2178 {N_("Printing Options"), P_SEP, P_SEPARATOR},
2181 .label = "max reported print jobs",
2182 .type = P_INTEGER,
2183 .p_class = P_LOCAL,
2184 .offset = LOCAL_VAR(iMaxReportedPrintJobs),
2185 .special = NULL,
2186 .enum_list = NULL,
2187 .flags = FLAG_ADVANCED | FLAG_PRINT,
2190 .label = "max print jobs",
2191 .type = P_INTEGER,
2192 .p_class = P_LOCAL,
2193 .offset = LOCAL_VAR(iMaxPrintJobs),
2194 .special = NULL,
2195 .enum_list = NULL,
2196 .flags = FLAG_ADVANCED | FLAG_PRINT,
2199 .label = "load printers",
2200 .type = P_BOOL,
2201 .p_class = P_GLOBAL,
2202 .offset = GLOBAL_VAR(bLoadPrinters),
2203 .special = NULL,
2204 .enum_list = NULL,
2205 .flags = FLAG_ADVANCED | FLAG_PRINT,
2208 .label = "printcap cache time",
2209 .type = P_INTEGER,
2210 .p_class = P_GLOBAL,
2211 .offset = GLOBAL_VAR(PrintcapCacheTime),
2212 .special = NULL,
2213 .enum_list = NULL,
2214 .flags = FLAG_ADVANCED | FLAG_PRINT,
2217 .label = "printcap name",
2218 .type = P_STRING,
2219 .p_class = P_GLOBAL,
2220 .offset = GLOBAL_VAR(szPrintcapname),
2221 .special = NULL,
2222 .enum_list = NULL,
2223 .flags = FLAG_ADVANCED | FLAG_PRINT,
2226 .label = "printcap",
2227 .type = P_STRING,
2228 .p_class = P_GLOBAL,
2229 .offset = GLOBAL_VAR(szPrintcapname),
2230 .special = NULL,
2231 .enum_list = NULL,
2232 .flags = FLAG_HIDE,
2235 .label = "printable",
2236 .type = P_BOOL,
2237 .p_class = P_LOCAL,
2238 .offset = LOCAL_VAR(bPrint_ok),
2239 .special = NULL,
2240 .enum_list = NULL,
2241 .flags = FLAG_ADVANCED | FLAG_PRINT,
2244 .label = "print notify backchannel",
2245 .type = P_BOOL,
2246 .p_class = P_LOCAL,
2247 .offset = LOCAL_VAR(bPrintNotifyBackchannel),
2248 .special = NULL,
2249 .enum_list = NULL,
2250 .flags = FLAG_ADVANCED,
2253 .label = "print ok",
2254 .type = P_BOOL,
2255 .p_class = P_LOCAL,
2256 .offset = LOCAL_VAR(bPrint_ok),
2257 .special = NULL,
2258 .enum_list = NULL,
2259 .flags = FLAG_HIDE,
2262 .label = "printing",
2263 .type = P_ENUM,
2264 .p_class = P_LOCAL,
2265 .offset = LOCAL_VAR(iPrinting),
2266 .special = handle_printing,
2267 .enum_list = enum_printing,
2268 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2271 .label = "cups options",
2272 .type = P_STRING,
2273 .p_class = P_LOCAL,
2274 .offset = LOCAL_VAR(szCupsOptions),
2275 .special = NULL,
2276 .enum_list = NULL,
2277 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2280 .label = "cups server",
2281 .type = P_STRING,
2282 .p_class = P_GLOBAL,
2283 .offset = GLOBAL_VAR(szCupsServer),
2284 .special = NULL,
2285 .enum_list = NULL,
2286 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2289 .label = "cups encrypt",
2290 .type = P_ENUM,
2291 .p_class = P_GLOBAL,
2292 .offset = GLOBAL_VAR(CupsEncrypt),
2293 .special = NULL,
2294 .enum_list = enum_bool_auto,
2295 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2299 .label = "cups connection timeout",
2300 .type = P_INTEGER,
2301 .p_class = P_GLOBAL,
2302 .offset = GLOBAL_VAR(cups_connection_timeout),
2303 .special = NULL,
2304 .enum_list = NULL,
2305 .flags = FLAG_ADVANCED,
2308 .label = "iprint server",
2309 .type = P_STRING,
2310 .p_class = P_GLOBAL,
2311 .offset = GLOBAL_VAR(szIPrintServer),
2312 .special = NULL,
2313 .enum_list = NULL,
2314 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2317 .label = "print command",
2318 .type = P_STRING,
2319 .p_class = P_LOCAL,
2320 .offset = LOCAL_VAR(szPrintcommand),
2321 .special = NULL,
2322 .enum_list = NULL,
2323 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2326 .label = "disable spoolss",
2327 .type = P_BOOL,
2328 .p_class = P_GLOBAL,
2329 .offset = GLOBAL_VAR(bDisableSpoolss),
2330 .special = NULL,
2331 .enum_list = NULL,
2332 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2335 .label = "enable spoolss",
2336 .type = P_BOOLREV,
2337 .p_class = P_GLOBAL,
2338 .offset = GLOBAL_VAR(bDisableSpoolss),
2339 .special = NULL,
2340 .enum_list = NULL,
2341 .flags = FLAG_HIDE,
2344 .label = "lpq command",
2345 .type = P_STRING,
2346 .p_class = P_LOCAL,
2347 .offset = LOCAL_VAR(szLpqcommand),
2348 .special = NULL,
2349 .enum_list = NULL,
2350 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2353 .label = "lprm command",
2354 .type = P_STRING,
2355 .p_class = P_LOCAL,
2356 .offset = LOCAL_VAR(szLprmcommand),
2357 .special = NULL,
2358 .enum_list = NULL,
2359 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2362 .label = "lppause command",
2363 .type = P_STRING,
2364 .p_class = P_LOCAL,
2365 .offset = LOCAL_VAR(szLppausecommand),
2366 .special = NULL,
2367 .enum_list = NULL,
2368 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2371 .label = "lpresume command",
2372 .type = P_STRING,
2373 .p_class = P_LOCAL,
2374 .offset = LOCAL_VAR(szLpresumecommand),
2375 .special = NULL,
2376 .enum_list = NULL,
2377 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2380 .label = "queuepause command",
2381 .type = P_STRING,
2382 .p_class = P_LOCAL,
2383 .offset = LOCAL_VAR(szQueuepausecommand),
2384 .special = NULL,
2385 .enum_list = NULL,
2386 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2389 .label = "queueresume command",
2390 .type = P_STRING,
2391 .p_class = P_LOCAL,
2392 .offset = LOCAL_VAR(szQueueresumecommand),
2393 .special = NULL,
2394 .enum_list = NULL,
2395 .flags = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2398 .label = "addport command",
2399 .type = P_STRING,
2400 .p_class = P_GLOBAL,
2401 .offset = GLOBAL_VAR(szAddPortCommand),
2402 .special = NULL,
2403 .enum_list = NULL,
2404 .flags = FLAG_ADVANCED,
2407 .label = "enumports command",
2408 .type = P_STRING,
2409 .p_class = P_GLOBAL,
2410 .offset = GLOBAL_VAR(szEnumPortsCommand),
2411 .special = NULL,
2412 .enum_list = NULL,
2413 .flags = FLAG_ADVANCED,
2416 .label = "addprinter command",
2417 .type = P_STRING,
2418 .p_class = P_GLOBAL,
2419 .offset = GLOBAL_VAR(szAddPrinterCommand),
2420 .special = NULL,
2421 .enum_list = NULL,
2422 .flags = FLAG_ADVANCED,
2425 .label = "deleteprinter command",
2426 .type = P_STRING,
2427 .p_class = P_GLOBAL,
2428 .offset = GLOBAL_VAR(szDeletePrinterCommand),
2429 .special = NULL,
2430 .enum_list = NULL,
2431 .flags = FLAG_ADVANCED,
2434 .label = "show add printer wizard",
2435 .type = P_BOOL,
2436 .p_class = P_GLOBAL,
2437 .offset = GLOBAL_VAR(bMsAddPrinterWizard),
2438 .special = NULL,
2439 .enum_list = NULL,
2440 .flags = FLAG_ADVANCED,
2443 .label = "os2 driver map",
2444 .type = P_STRING,
2445 .p_class = P_GLOBAL,
2446 .offset = GLOBAL_VAR(szOs2DriverMap),
2447 .special = NULL,
2448 .enum_list = NULL,
2449 .flags = FLAG_ADVANCED,
2453 .label = "printer name",
2454 .type = P_STRING,
2455 .p_class = P_LOCAL,
2456 .offset = LOCAL_VAR(szPrintername),
2457 .special = NULL,
2458 .enum_list = NULL,
2459 .flags = FLAG_ADVANCED | FLAG_PRINT,
2462 .label = "printer",
2463 .type = P_STRING,
2464 .p_class = P_LOCAL,
2465 .offset = LOCAL_VAR(szPrintername),
2466 .special = NULL,
2467 .enum_list = NULL,
2468 .flags = FLAG_HIDE,
2471 .label = "use client driver",
2472 .type = P_BOOL,
2473 .p_class = P_LOCAL,
2474 .offset = LOCAL_VAR(bUseClientDriver),
2475 .special = NULL,
2476 .enum_list = NULL,
2477 .flags = FLAG_ADVANCED | FLAG_PRINT,
2480 .label = "default devmode",
2481 .type = P_BOOL,
2482 .p_class = P_LOCAL,
2483 .offset = LOCAL_VAR(bDefaultDevmode),
2484 .special = NULL,
2485 .enum_list = NULL,
2486 .flags = FLAG_ADVANCED | FLAG_PRINT,
2489 .label = "force printername",
2490 .type = P_BOOL,
2491 .p_class = P_LOCAL,
2492 .offset = LOCAL_VAR(bForcePrintername),
2493 .special = NULL,
2494 .enum_list = NULL,
2495 .flags = FLAG_ADVANCED | FLAG_PRINT,
2498 .label = "printjob username",
2499 .type = P_STRING,
2500 .p_class = P_LOCAL,
2501 .offset = LOCAL_VAR(szPrintjobUsername),
2502 .special = NULL,
2503 .enum_list = NULL,
2504 .flags = FLAG_ADVANCED | FLAG_PRINT,
2507 {N_("Filename Handling"), P_SEP, P_SEPARATOR},
2510 .label = "mangling method",
2511 .type = P_STRING,
2512 .p_class = P_GLOBAL,
2513 .offset = GLOBAL_VAR(szManglingMethod),
2514 .special = NULL,
2515 .enum_list = NULL,
2516 .flags = FLAG_ADVANCED,
2519 .label = "mangle prefix",
2520 .type = P_INTEGER,
2521 .p_class = P_GLOBAL,
2522 .offset = GLOBAL_VAR(mangle_prefix),
2523 .special = NULL,
2524 .enum_list = NULL,
2525 .flags = FLAG_ADVANCED,
2529 .label = "default case",
2530 .type = P_ENUM,
2531 .p_class = P_LOCAL,
2532 .offset = LOCAL_VAR(iDefaultCase),
2533 .special = NULL,
2534 .enum_list = enum_case,
2535 .flags = FLAG_ADVANCED | FLAG_SHARE,
2538 .label = "case sensitive",
2539 .type = P_ENUM,
2540 .p_class = P_LOCAL,
2541 .offset = LOCAL_VAR(iCaseSensitive),
2542 .special = NULL,
2543 .enum_list = enum_bool_auto,
2544 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2547 .label = "casesignames",
2548 .type = P_ENUM,
2549 .p_class = P_LOCAL,
2550 .offset = LOCAL_VAR(iCaseSensitive),
2551 .special = NULL,
2552 .enum_list = enum_bool_auto,
2553 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_HIDE,
2556 .label = "preserve case",
2557 .type = P_BOOL,
2558 .p_class = P_LOCAL,
2559 .offset = LOCAL_VAR(bCasePreserve),
2560 .special = NULL,
2561 .enum_list = NULL,
2562 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2565 .label = "short preserve case",
2566 .type = P_BOOL,
2567 .p_class = P_LOCAL,
2568 .offset = LOCAL_VAR(bShortCasePreserve),
2569 .special = NULL,
2570 .enum_list = NULL,
2571 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2574 .label = "mangling char",
2575 .type = P_CHAR,
2576 .p_class = P_LOCAL,
2577 .offset = LOCAL_VAR(magic_char),
2578 .special = NULL,
2579 .enum_list = NULL,
2580 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2583 .label = "hide dot files",
2584 .type = P_BOOL,
2585 .p_class = P_LOCAL,
2586 .offset = LOCAL_VAR(bHideDotFiles),
2587 .special = NULL,
2588 .enum_list = NULL,
2589 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2592 .label = "hide special files",
2593 .type = P_BOOL,
2594 .p_class = P_LOCAL,
2595 .offset = LOCAL_VAR(bHideSpecialFiles),
2596 .special = NULL,
2597 .enum_list = NULL,
2598 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2601 .label = "hide unreadable",
2602 .type = P_BOOL,
2603 .p_class = P_LOCAL,
2604 .offset = LOCAL_VAR(bHideUnReadable),
2605 .special = NULL,
2606 .enum_list = NULL,
2607 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2610 .label = "hide unwriteable files",
2611 .type = P_BOOL,
2612 .p_class = P_LOCAL,
2613 .offset = LOCAL_VAR(bHideUnWriteableFiles),
2614 .special = NULL,
2615 .enum_list = NULL,
2616 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2619 .label = "delete veto files",
2620 .type = P_BOOL,
2621 .p_class = P_LOCAL,
2622 .offset = LOCAL_VAR(bDeleteVetoFiles),
2623 .special = NULL,
2624 .enum_list = NULL,
2625 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2628 .label = "veto files",
2629 .type = P_STRING,
2630 .p_class = P_LOCAL,
2631 .offset = LOCAL_VAR(szVetoFiles),
2632 .special = NULL,
2633 .enum_list = NULL,
2634 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2637 .label = "hide files",
2638 .type = P_STRING,
2639 .p_class = P_LOCAL,
2640 .offset = LOCAL_VAR(szHideFiles),
2641 .special = NULL,
2642 .enum_list = NULL,
2643 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2646 .label = "veto oplock files",
2647 .type = P_STRING,
2648 .p_class = P_LOCAL,
2649 .offset = LOCAL_VAR(szVetoOplockFiles),
2650 .special = NULL,
2651 .enum_list = NULL,
2652 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2655 .label = "map archive",
2656 .type = P_BOOL,
2657 .p_class = P_LOCAL,
2658 .offset = LOCAL_VAR(bMap_archive),
2659 .special = NULL,
2660 .enum_list = NULL,
2661 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2664 .label = "map hidden",
2665 .type = P_BOOL,
2666 .p_class = P_LOCAL,
2667 .offset = LOCAL_VAR(bMap_hidden),
2668 .special = NULL,
2669 .enum_list = NULL,
2670 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2673 .label = "map system",
2674 .type = P_BOOL,
2675 .p_class = P_LOCAL,
2676 .offset = LOCAL_VAR(bMap_system),
2677 .special = NULL,
2678 .enum_list = NULL,
2679 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2682 .label = "map readonly",
2683 .type = P_ENUM,
2684 .p_class = P_LOCAL,
2685 .offset = LOCAL_VAR(iMap_readonly),
2686 .special = NULL,
2687 .enum_list = enum_map_readonly,
2688 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2691 .label = "mangled names",
2692 .type = P_BOOL,
2693 .p_class = P_LOCAL,
2694 .offset = LOCAL_VAR(bMangledNames),
2695 .special = NULL,
2696 .enum_list = NULL,
2697 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2700 .label = "max stat cache size",
2701 .type = P_INTEGER,
2702 .p_class = P_GLOBAL,
2703 .offset = GLOBAL_VAR(iMaxStatCacheSize),
2704 .special = NULL,
2705 .enum_list = NULL,
2706 .flags = FLAG_ADVANCED,
2709 .label = "stat cache",
2710 .type = P_BOOL,
2711 .p_class = P_GLOBAL,
2712 .offset = GLOBAL_VAR(bStatCache),
2713 .special = NULL,
2714 .enum_list = NULL,
2715 .flags = FLAG_ADVANCED,
2718 .label = "store dos attributes",
2719 .type = P_BOOL,
2720 .p_class = P_LOCAL,
2721 .offset = LOCAL_VAR(bStoreDosAttributes),
2722 .special = NULL,
2723 .enum_list = NULL,
2724 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2727 .label = "dmapi support",
2728 .type = P_BOOL,
2729 .p_class = P_LOCAL,
2730 .offset = LOCAL_VAR(bDmapiSupport),
2731 .special = NULL,
2732 .enum_list = NULL,
2733 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2737 {N_("Domain Options"), P_SEP, P_SEPARATOR},
2740 .label = "machine password timeout",
2741 .type = P_INTEGER,
2742 .p_class = P_GLOBAL,
2743 .offset = GLOBAL_VAR(machine_password_timeout),
2744 .special = NULL,
2745 .enum_list = NULL,
2746 .flags = FLAG_ADVANCED | FLAG_WIZARD,
2749 {N_("Logon Options"), P_SEP, P_SEPARATOR},
2752 .label = "add user script",
2753 .type = P_STRING,
2754 .p_class = P_GLOBAL,
2755 .offset = GLOBAL_VAR(szAddUserScript),
2756 .special = NULL,
2757 .enum_list = NULL,
2758 .flags = FLAG_ADVANCED,
2761 .label = "rename user script",
2762 .type = P_STRING,
2763 .p_class = P_GLOBAL,
2764 .offset = GLOBAL_VAR(szRenameUserScript),
2765 .special = NULL,
2766 .enum_list = NULL,
2767 .flags = FLAG_ADVANCED,
2770 .label = "delete user script",
2771 .type = P_STRING,
2772 .p_class = P_GLOBAL,
2773 .offset = GLOBAL_VAR(szDelUserScript),
2774 .special = NULL,
2775 .enum_list = NULL,
2776 .flags = FLAG_ADVANCED,
2779 .label = "add group script",
2780 .type = P_STRING,
2781 .p_class = P_GLOBAL,
2782 .offset = GLOBAL_VAR(szAddGroupScript),
2783 .special = NULL,
2784 .enum_list = NULL,
2785 .flags = FLAG_ADVANCED,
2788 .label = "delete group script",
2789 .type = P_STRING,
2790 .p_class = P_GLOBAL,
2791 .offset = GLOBAL_VAR(szDelGroupScript),
2792 .special = NULL,
2793 .enum_list = NULL,
2794 .flags = FLAG_ADVANCED,
2797 .label = "add user to group script",
2798 .type = P_STRING,
2799 .p_class = P_GLOBAL,
2800 .offset = GLOBAL_VAR(szAddUserToGroupScript),
2801 .special = NULL,
2802 .enum_list = NULL,
2803 .flags = FLAG_ADVANCED,
2806 .label = "delete user from group script",
2807 .type = P_STRING,
2808 .p_class = P_GLOBAL,
2809 .offset = GLOBAL_VAR(szDelUserFromGroupScript),
2810 .special = NULL,
2811 .enum_list = NULL,
2812 .flags = FLAG_ADVANCED,
2815 .label = "set primary group script",
2816 .type = P_STRING,
2817 .p_class = P_GLOBAL,
2818 .offset = GLOBAL_VAR(szSetPrimaryGroupScript),
2819 .special = NULL,
2820 .enum_list = NULL,
2821 .flags = FLAG_ADVANCED,
2824 .label = "add machine script",
2825 .type = P_STRING,
2826 .p_class = P_GLOBAL,
2827 .offset = GLOBAL_VAR(szAddMachineScript),
2828 .special = NULL,
2829 .enum_list = NULL,
2830 .flags = FLAG_ADVANCED,
2833 .label = "shutdown script",
2834 .type = P_STRING,
2835 .p_class = P_GLOBAL,
2836 .offset = GLOBAL_VAR(szShutdownScript),
2837 .special = NULL,
2838 .enum_list = NULL,
2839 .flags = FLAG_ADVANCED,
2842 .label = "abort shutdown script",
2843 .type = P_STRING,
2844 .p_class = P_GLOBAL,
2845 .offset = GLOBAL_VAR(szAbortShutdownScript),
2846 .special = NULL,
2847 .enum_list = NULL,
2848 .flags = FLAG_ADVANCED,
2851 .label = "username map script",
2852 .type = P_STRING,
2853 .p_class = P_GLOBAL,
2854 .offset = GLOBAL_VAR(szUsernameMapScript),
2855 .special = NULL,
2856 .enum_list = NULL,
2857 .flags = FLAG_ADVANCED,
2860 .label = "username map cache time",
2861 .type = P_INTEGER,
2862 .p_class = P_GLOBAL,
2863 .offset = GLOBAL_VAR(iUsernameMapCacheTime),
2864 .special = NULL,
2865 .enum_list = NULL,
2866 .flags = FLAG_ADVANCED,
2869 .label = "logon script",
2870 .type = P_STRING,
2871 .p_class = P_GLOBAL,
2872 .offset = GLOBAL_VAR(szLogonScript),
2873 .special = NULL,
2874 .enum_list = NULL,
2875 .flags = FLAG_ADVANCED,
2878 .label = "logon path",
2879 .type = P_STRING,
2880 .p_class = P_GLOBAL,
2881 .offset = GLOBAL_VAR(szLogonPath),
2882 .special = NULL,
2883 .enum_list = NULL,
2884 .flags = FLAG_ADVANCED,
2887 .label = "logon drive",
2888 .type = P_STRING,
2889 .p_class = P_GLOBAL,
2890 .offset = GLOBAL_VAR(szLogonDrive),
2891 .special = NULL,
2892 .enum_list = NULL,
2893 .flags = FLAG_ADVANCED,
2896 .label = "logon home",
2897 .type = P_STRING,
2898 .p_class = P_GLOBAL,
2899 .offset = GLOBAL_VAR(szLogonHome),
2900 .special = NULL,
2901 .enum_list = NULL,
2902 .flags = FLAG_ADVANCED,
2905 .label = "domain logons",
2906 .type = P_BOOL,
2907 .p_class = P_GLOBAL,
2908 .offset = GLOBAL_VAR(bDomainLogons),
2909 .special = NULL,
2910 .enum_list = NULL,
2911 .flags = FLAG_ADVANCED,
2915 .label = "init logon delayed hosts",
2916 .type = P_LIST,
2917 .p_class = P_GLOBAL,
2918 .offset = GLOBAL_VAR(szInitLogonDelayedHosts),
2919 .special = NULL,
2920 .enum_list = NULL,
2921 .flags = FLAG_ADVANCED,
2925 .label = "init logon delay",
2926 .type = P_INTEGER,
2927 .p_class = P_GLOBAL,
2928 .offset = GLOBAL_VAR(InitLogonDelay),
2929 .special = NULL,
2930 .enum_list = NULL,
2931 .flags = FLAG_ADVANCED,
2935 {N_("Browse Options"), P_SEP, P_SEPARATOR},
2938 .label = "os level",
2939 .type = P_INTEGER,
2940 .p_class = P_GLOBAL,
2941 .offset = GLOBAL_VAR(os_level),
2942 .special = NULL,
2943 .enum_list = NULL,
2944 .flags = FLAG_BASIC | FLAG_ADVANCED,
2947 .label = "lm announce",
2948 .type = P_ENUM,
2949 .p_class = P_GLOBAL,
2950 .offset = GLOBAL_VAR(lm_announce),
2951 .special = NULL,
2952 .enum_list = enum_bool_auto,
2953 .flags = FLAG_ADVANCED,
2956 .label = "lm interval",
2957 .type = P_INTEGER,
2958 .p_class = P_GLOBAL,
2959 .offset = GLOBAL_VAR(lm_interval),
2960 .special = NULL,
2961 .enum_list = NULL,
2962 .flags = FLAG_ADVANCED,
2965 .label = "preferred master",
2966 .type = P_ENUM,
2967 .p_class = P_GLOBAL,
2968 .offset = GLOBAL_VAR(iPreferredMaster),
2969 .special = NULL,
2970 .enum_list = enum_bool_auto,
2971 .flags = FLAG_BASIC | FLAG_ADVANCED,
2974 .label = "prefered master",
2975 .type = P_ENUM,
2976 .p_class = P_GLOBAL,
2977 .offset = GLOBAL_VAR(iPreferredMaster),
2978 .special = NULL,
2979 .enum_list = enum_bool_auto,
2980 .flags = FLAG_HIDE,
2983 .label = "local master",
2984 .type = P_BOOL,
2985 .p_class = P_GLOBAL,
2986 .offset = GLOBAL_VAR(bLocalMaster),
2987 .special = NULL,
2988 .enum_list = NULL,
2989 .flags = FLAG_BASIC | FLAG_ADVANCED,
2992 .label = "domain master",
2993 .type = P_ENUM,
2994 .p_class = P_GLOBAL,
2995 .offset = GLOBAL_VAR(iDomainMaster),
2996 .special = NULL,
2997 .enum_list = enum_bool_auto,
2998 .flags = FLAG_BASIC | FLAG_ADVANCED,
3001 .label = "browse list",
3002 .type = P_BOOL,
3003 .p_class = P_GLOBAL,
3004 .offset = GLOBAL_VAR(bBrowseList),
3005 .special = NULL,
3006 .enum_list = NULL,
3007 .flags = FLAG_ADVANCED,
3010 .label = "browseable",
3011 .type = P_BOOL,
3012 .p_class = P_LOCAL,
3013 .offset = LOCAL_VAR(bBrowseable),
3014 .special = NULL,
3015 .enum_list = NULL,
3016 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
3019 .label = "browsable",
3020 .type = P_BOOL,
3021 .p_class = P_LOCAL,
3022 .offset = LOCAL_VAR(bBrowseable),
3023 .special = NULL,
3024 .enum_list = NULL,
3025 .flags = FLAG_HIDE,
3028 .label = "access based share enum",
3029 .type = P_BOOL,
3030 .p_class = P_LOCAL,
3031 .offset = LOCAL_VAR(bAccessBasedShareEnum),
3032 .special = NULL,
3033 .enum_list = NULL,
3034 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE
3037 .label = "enhanced browsing",
3038 .type = P_BOOL,
3039 .p_class = P_GLOBAL,
3040 .offset = GLOBAL_VAR(enhanced_browsing),
3041 .special = NULL,
3042 .enum_list = NULL,
3043 .flags = FLAG_ADVANCED,
3046 {N_("WINS Options"), P_SEP, P_SEPARATOR},
3049 .label = "dns proxy",
3050 .type = P_BOOL,
3051 .p_class = P_GLOBAL,
3052 .offset = GLOBAL_VAR(bWINSdnsProxy),
3053 .special = NULL,
3054 .enum_list = NULL,
3055 .flags = FLAG_ADVANCED,
3058 .label = "wins proxy",
3059 .type = P_BOOL,
3060 .p_class = P_GLOBAL,
3061 .offset = GLOBAL_VAR(bWINSproxy),
3062 .special = NULL,
3063 .enum_list = NULL,
3064 .flags = FLAG_ADVANCED,
3067 .label = "wins server",
3068 .type = P_LIST,
3069 .p_class = P_GLOBAL,
3070 .offset = GLOBAL_VAR(szWINSservers),
3071 .special = NULL,
3072 .enum_list = NULL,
3073 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
3076 .label = "wins support",
3077 .type = P_BOOL,
3078 .p_class = P_GLOBAL,
3079 .offset = GLOBAL_VAR(bWINSsupport),
3080 .special = NULL,
3081 .enum_list = NULL,
3082 .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
3085 .label = "wins hook",
3086 .type = P_STRING,
3087 .p_class = P_GLOBAL,
3088 .offset = GLOBAL_VAR(szWINSHook),
3089 .special = NULL,
3090 .enum_list = NULL,
3091 .flags = FLAG_ADVANCED,
3094 {N_("Locking Options"), P_SEP, P_SEPARATOR},
3097 .label = "blocking locks",
3098 .type = P_BOOL,
3099 .p_class = P_LOCAL,
3100 .offset = LOCAL_VAR(bBlockingLocks),
3101 .special = NULL,
3102 .enum_list = NULL,
3103 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3106 .label = "csc policy",
3107 .type = P_ENUM,
3108 .p_class = P_LOCAL,
3109 .offset = LOCAL_VAR(iCSCPolicy),
3110 .special = NULL,
3111 .enum_list = enum_csc_policy,
3112 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3115 .label = "fake oplocks",
3116 .type = P_BOOL,
3117 .p_class = P_LOCAL,
3118 .offset = LOCAL_VAR(bFakeOplocks),
3119 .special = NULL,
3120 .enum_list = NULL,
3121 .flags = FLAG_ADVANCED | FLAG_SHARE,
3124 .label = "kernel oplocks",
3125 .type = P_BOOL,
3126 .p_class = P_LOCAL,
3127 .offset = LOCAL_VAR(bKernelOplocks),
3128 .special = NULL,
3129 .enum_list = NULL,
3130 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3133 .label = "locking",
3134 .type = P_BOOL,
3135 .p_class = P_LOCAL,
3136 .offset = LOCAL_VAR(bLocking),
3137 .special = NULL,
3138 .enum_list = NULL,
3139 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3142 .label = "lock spin time",
3143 .type = P_INTEGER,
3144 .p_class = P_GLOBAL,
3145 .offset = GLOBAL_VAR(iLockSpinTime),
3146 .special = NULL,
3147 .enum_list = NULL,
3148 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
3151 .label = "oplocks",
3152 .type = P_BOOL,
3153 .p_class = P_LOCAL,
3154 .offset = LOCAL_VAR(bOpLocks),
3155 .special = NULL,
3156 .enum_list = NULL,
3157 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3160 .label = "level2 oplocks",
3161 .type = P_BOOL,
3162 .p_class = P_LOCAL,
3163 .offset = LOCAL_VAR(bLevel2OpLocks),
3164 .special = NULL,
3165 .enum_list = NULL,
3166 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3169 .label = "oplock break wait time",
3170 .type = P_INTEGER,
3171 .p_class = P_GLOBAL,
3172 .offset = GLOBAL_VAR(oplock_break_wait_time),
3173 .special = NULL,
3174 .enum_list = NULL,
3175 .flags = FLAG_ADVANCED | FLAG_GLOBAL,
3178 .label = "oplock contention limit",
3179 .type = P_INTEGER,
3180 .p_class = P_LOCAL,
3181 .offset = LOCAL_VAR(iOplockContentionLimit),
3182 .special = NULL,
3183 .enum_list = NULL,
3184 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3187 .label = "posix locking",
3188 .type = P_BOOL,
3189 .p_class = P_LOCAL,
3190 .offset = LOCAL_VAR(bPosixLocking),
3191 .special = NULL,
3192 .enum_list = NULL,
3193 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3196 .label = "strict locking",
3197 .type = P_ENUM,
3198 .p_class = P_LOCAL,
3199 .offset = LOCAL_VAR(iStrictLocking),
3200 .special = NULL,
3201 .enum_list = enum_bool_auto,
3202 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3205 .label = "share modes",
3206 .type = P_BOOL,
3207 .p_class = P_LOCAL,
3208 .offset = LOCAL_VAR(bShareModes),
3209 .special = NULL,
3210 .enum_list = NULL,
3211 .flags = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_DEPRECATED,
3214 {N_("Ldap Options"), P_SEP, P_SEPARATOR},
3217 .label = "ldap admin dn",
3218 .type = P_STRING,
3219 .p_class = P_GLOBAL,
3220 .offset = GLOBAL_VAR(szLdapAdminDn),
3221 .special = NULL,
3222 .enum_list = NULL,
3223 .flags = FLAG_ADVANCED,
3226 .label = "ldap delete dn",
3227 .type = P_BOOL,
3228 .p_class = P_GLOBAL,
3229 .offset = GLOBAL_VAR(ldap_delete_dn),
3230 .special = NULL,
3231 .enum_list = NULL,
3232 .flags = FLAG_ADVANCED,
3235 .label = "ldap group suffix",
3236 .type = P_STRING,
3237 .p_class = P_GLOBAL,
3238 .offset = GLOBAL_VAR(szLdapGroupSuffix),
3239 .special = NULL,
3240 .enum_list = NULL,
3241 .flags = FLAG_ADVANCED,
3244 .label = "ldap idmap suffix",
3245 .type = P_STRING,
3246 .p_class = P_GLOBAL,
3247 .offset = GLOBAL_VAR(szLdapIdmapSuffix),
3248 .special = NULL,
3249 .enum_list = NULL,
3250 .flags = FLAG_ADVANCED,
3253 .label = "ldap machine suffix",
3254 .type = P_STRING,
3255 .p_class = P_GLOBAL,
3256 .offset = GLOBAL_VAR(szLdapMachineSuffix),
3257 .special = NULL,
3258 .enum_list = NULL,
3259 .flags = FLAG_ADVANCED,
3262 .label = "ldap passwd sync",
3263 .type = P_ENUM,
3264 .p_class = P_GLOBAL,
3265 .offset = GLOBAL_VAR(ldap_passwd_sync),
3266 .special = NULL,
3267 .enum_list = enum_ldap_passwd_sync,
3268 .flags = FLAG_ADVANCED,
3271 .label = "ldap password sync",
3272 .type = P_ENUM,
3273 .p_class = P_GLOBAL,
3274 .offset = GLOBAL_VAR(ldap_passwd_sync),
3275 .special = NULL,
3276 .enum_list = enum_ldap_passwd_sync,
3277 .flags = FLAG_HIDE,
3280 .label = "ldap replication sleep",
3281 .type = P_INTEGER,
3282 .p_class = P_GLOBAL,
3283 .offset = GLOBAL_VAR(ldap_replication_sleep),
3284 .special = NULL,
3285 .enum_list = NULL,
3286 .flags = FLAG_ADVANCED,
3289 .label = "ldap suffix",
3290 .type = P_STRING,
3291 .p_class = P_GLOBAL,
3292 .offset = GLOBAL_VAR(szLdapSuffix),
3293 .special = NULL,
3294 .enum_list = NULL,
3295 .flags = FLAG_ADVANCED,
3298 .label = "ldap ssl",
3299 .type = P_ENUM,
3300 .p_class = P_GLOBAL,
3301 .offset = GLOBAL_VAR(ldap_ssl),
3302 .special = NULL,
3303 .enum_list = enum_ldap_ssl,
3304 .flags = FLAG_ADVANCED,
3307 .label = "ldap ssl ads",
3308 .type = P_BOOL,
3309 .p_class = P_GLOBAL,
3310 .offset = GLOBAL_VAR(ldap_ssl_ads),
3311 .special = NULL,
3312 .enum_list = NULL,
3313 .flags = FLAG_ADVANCED,
3316 .label = "ldap deref",
3317 .type = P_ENUM,
3318 .p_class = P_GLOBAL,
3319 .offset = GLOBAL_VAR(ldap_deref),
3320 .special = NULL,
3321 .enum_list = enum_ldap_deref,
3322 .flags = FLAG_ADVANCED,
3325 .label = "ldap follow referral",
3326 .type = P_ENUM,
3327 .p_class = P_GLOBAL,
3328 .offset = GLOBAL_VAR(ldap_follow_referral),
3329 .special = NULL,
3330 .enum_list = enum_bool_auto,
3331 .flags = FLAG_ADVANCED,
3334 .label = "ldap timeout",
3335 .type = P_INTEGER,
3336 .p_class = P_GLOBAL,
3337 .offset = GLOBAL_VAR(ldap_timeout),
3338 .special = NULL,
3339 .enum_list = NULL,
3340 .flags = FLAG_ADVANCED,
3343 .label = "ldap connection timeout",
3344 .type = P_INTEGER,
3345 .p_class = P_GLOBAL,
3346 .offset = GLOBAL_VAR(ldap_connection_timeout),
3347 .special = NULL,
3348 .enum_list = NULL,
3349 .flags = FLAG_ADVANCED,
3352 .label = "ldap page size",
3353 .type = P_INTEGER,
3354 .p_class = P_GLOBAL,
3355 .offset = GLOBAL_VAR(ldap_page_size),
3356 .special = NULL,
3357 .enum_list = NULL,
3358 .flags = FLAG_ADVANCED,
3361 .label = "ldap user suffix",
3362 .type = P_STRING,
3363 .p_class = P_GLOBAL,
3364 .offset = GLOBAL_VAR(szLdapUserSuffix),
3365 .special = NULL,
3366 .enum_list = NULL,
3367 .flags = FLAG_ADVANCED,
3370 .label = "ldap debug level",
3371 .type = P_INTEGER,
3372 .p_class = P_GLOBAL,
3373 .offset = GLOBAL_VAR(ldap_debug_level),
3374 .special = handle_ldap_debug_level,
3375 .enum_list = NULL,
3376 .flags = FLAG_ADVANCED,
3379 .label = "ldap debug threshold",
3380 .type = P_INTEGER,
3381 .p_class = P_GLOBAL,
3382 .offset = GLOBAL_VAR(ldap_debug_threshold),
3383 .special = NULL,
3384 .enum_list = NULL,
3385 .flags = FLAG_ADVANCED,
3388 {N_("EventLog Options"), P_SEP, P_SEPARATOR},
3391 .label = "eventlog list",
3392 .type = P_LIST,
3393 .p_class = P_GLOBAL,
3394 .offset = GLOBAL_VAR(szEventLogs),
3395 .special = NULL,
3396 .enum_list = NULL,
3397 .flags = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
3400 {N_("Miscellaneous Options"), P_SEP, P_SEPARATOR},
3403 .label = "add share command",
3404 .type = P_STRING,
3405 .p_class = P_GLOBAL,
3406 .offset = GLOBAL_VAR(szAddShareCommand),
3407 .special = NULL,
3408 .enum_list = NULL,
3409 .flags = FLAG_ADVANCED,
3412 .label = "change share command",
3413 .type = P_STRING,
3414 .p_class = P_GLOBAL,
3415 .offset = GLOBAL_VAR(szChangeShareCommand),
3416 .special = NULL,
3417 .enum_list = NULL,
3418 .flags = FLAG_ADVANCED,
3421 .label = "delete share command",
3422 .type = P_STRING,
3423 .p_class = P_GLOBAL,
3424 .offset = GLOBAL_VAR(szDeleteShareCommand),
3425 .special = NULL,
3426 .enum_list = NULL,
3427 .flags = FLAG_ADVANCED,
3430 .label = "config file",
3431 .type = P_STRING,
3432 .p_class = P_GLOBAL,
3433 .offset = GLOBAL_VAR(szConfigFile),
3434 .special = NULL,
3435 .enum_list = NULL,
3436 .flags = FLAG_HIDE|FLAG_META,
3439 .label = "preload",
3440 .type = P_STRING,
3441 .p_class = P_GLOBAL,
3442 .offset = GLOBAL_VAR(szAutoServices),
3443 .special = NULL,
3444 .enum_list = NULL,
3445 .flags = FLAG_ADVANCED,
3448 .label = "auto services",
3449 .type = P_STRING,
3450 .p_class = P_GLOBAL,
3451 .offset = GLOBAL_VAR(szAutoServices),
3452 .special = NULL,
3453 .enum_list = NULL,
3454 .flags = FLAG_ADVANCED,
3457 .label = "lock directory",
3458 .type = P_STRING,
3459 .p_class = P_GLOBAL,
3460 .offset = GLOBAL_VAR(szLockDir),
3461 .special = NULL,
3462 .enum_list = NULL,
3463 .flags = FLAG_ADVANCED,
3466 .label = "lock dir",
3467 .type = P_STRING,
3468 .p_class = P_GLOBAL,
3469 .offset = GLOBAL_VAR(szLockDir),
3470 .special = NULL,
3471 .enum_list = NULL,
3472 .flags = FLAG_HIDE,
3475 .label = "state directory",
3476 .type = P_STRING,
3477 .p_class = P_GLOBAL,
3478 .offset = GLOBAL_VAR(szStateDir),
3479 .special = NULL,
3480 .enum_list = NULL,
3481 .flags = FLAG_ADVANCED,
3484 .label = "cache directory",
3485 .type = P_STRING,
3486 .p_class = P_GLOBAL,
3487 .offset = GLOBAL_VAR(szCacheDir),
3488 .special = NULL,
3489 .enum_list = NULL,
3490 .flags = FLAG_ADVANCED,
3493 .label = "pid directory",
3494 .type = P_STRING,
3495 .p_class = P_GLOBAL,
3496 .offset = GLOBAL_VAR(szPidDir),
3497 .special = NULL,
3498 .enum_list = NULL,
3499 .flags = FLAG_ADVANCED,
3501 #ifdef WITH_UTMP
3503 .label = "utmp directory",
3504 .type = P_STRING,
3505 .p_class = P_GLOBAL,
3506 .offset = GLOBAL_VAR(szUtmpDir),
3507 .special = NULL,
3508 .enum_list = NULL,
3509 .flags = FLAG_ADVANCED,
3512 .label = "wtmp directory",
3513 .type = P_STRING,
3514 .p_class = P_GLOBAL,
3515 .offset = GLOBAL_VAR(szWtmpDir),
3516 .special = NULL,
3517 .enum_list = NULL,
3518 .flags = FLAG_ADVANCED,
3521 .label = "utmp",
3522 .type = P_BOOL,
3523 .p_class = P_GLOBAL,
3524 .offset = GLOBAL_VAR(bUtmp),
3525 .special = NULL,
3526 .enum_list =</