dns_server: Remove parameter 'dns recursive queries' and base this on 'dns forwarder'
[obnox/samba/samba-obnox.git] / lib / param / param_table.c
1 /*
2    Unix SMB/CIFS implementation.
3    Parameter loading functions
4    Copyright (C) Karl Auer 1993-1998
5
6    Largely re-written by Andrew Tridgell, September 1994
7
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
15
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.
20
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.
25
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/>.
28 */
29
30 static const struct enum_list enum_protocol[] = {
31         {PROTOCOL_SMB2_10, "SMB2"}, /* for now keep PROTOCOL_SMB2_10 */
32         {PROTOCOL_SMB3_00, "SMB3"}, /* for now keep PROTOCOL_SMB3_00 */
33         {PROTOCOL_SMB3_00, "SMB3_00"},
34         {PROTOCOL_SMB2_24, "SMB2_24"},
35         {PROTOCOL_SMB2_22, "SMB2_22"},
36         {PROTOCOL_SMB2_10, "SMB2_10"},
37         {PROTOCOL_SMB2_02, "SMB2_02"},
38         {PROTOCOL_NT1, "NT1"},
39         {PROTOCOL_LANMAN2, "LANMAN2"},
40         {PROTOCOL_LANMAN1, "LANMAN1"},
41         {PROTOCOL_CORE, "CORE"},
42         {PROTOCOL_COREPLUS, "COREPLUS"},
43         {PROTOCOL_COREPLUS, "CORE+"},
44         {-1, NULL}
45 };
46
47 static const struct enum_list enum_security[] = {
48         {SEC_AUTO, "AUTO"},
49         {SEC_USER, "USER"},
50         {SEC_DOMAIN, "DOMAIN"},
51 #if (defined(HAVE_ADS) || _SAMBA_BUILD_ >= 4)
52         {SEC_ADS, "ADS"},
53 #endif
54         {-1, NULL}
55 };
56
57 static const struct enum_list enum_bool_auto[] = {
58         {false, "No"},
59         {false, "False"},
60         {false, "0"},
61         {true, "Yes"},
62         {true, "True"},
63         {true, "1"},
64         {Auto, "Auto"},
65         {-1, NULL}
66 };
67
68 static const struct enum_list enum_csc_policy[] = {
69         {CSC_POLICY_MANUAL, "manual"},
70         {CSC_POLICY_DOCUMENTS, "documents"},
71         {CSC_POLICY_PROGRAMS, "programs"},
72         {CSC_POLICY_DISABLE, "disable"},
73         {-1, NULL}
74 };
75
76 /* Server role options */
77 static const struct enum_list enum_server_role[] = {
78         {ROLE_AUTO, "auto"},
79         {ROLE_STANDALONE, "standalone server"},
80         {ROLE_STANDALONE, "standalone"},
81         {ROLE_DOMAIN_MEMBER, "member server"},
82         {ROLE_DOMAIN_MEMBER, "member"},
83         {ROLE_DOMAIN_PDC, "classic primary domain controller"},
84         {ROLE_DOMAIN_BDC, "classic backup domain controller"},
85         {ROLE_ACTIVE_DIRECTORY_DC, "active directory domain controller"},
86         {ROLE_ACTIVE_DIRECTORY_DC, "domain controller"},
87         {ROLE_ACTIVE_DIRECTORY_DC, "dc"},
88         {-1, NULL}
89 };
90
91 /* SMB signing types. */
92 static const struct enum_list enum_smb_signing_vals[] = {
93         {SMB_SIGNING_DEFAULT, "default"},
94         {SMB_SIGNING_OFF, "No"},
95         {SMB_SIGNING_OFF, "False"},
96         {SMB_SIGNING_OFF, "0"},
97         {SMB_SIGNING_OFF, "Off"},
98         {SMB_SIGNING_OFF, "disabled"},
99         {SMB_SIGNING_IF_REQUIRED, "if_required"},
100         {SMB_SIGNING_IF_REQUIRED, "Yes"},
101         {SMB_SIGNING_IF_REQUIRED, "True"},
102         {SMB_SIGNING_IF_REQUIRED, "1"},
103         {SMB_SIGNING_IF_REQUIRED, "On"},
104         {SMB_SIGNING_IF_REQUIRED, "enabled"},
105         {SMB_SIGNING_IF_REQUIRED, "auto"},
106         {SMB_SIGNING_REQUIRED, "required"},
107         {SMB_SIGNING_REQUIRED, "mandatory"},
108         {SMB_SIGNING_REQUIRED, "force"},
109         {SMB_SIGNING_REQUIRED, "forced"},
110         {SMB_SIGNING_REQUIRED, "enforced"},
111         {-1, NULL}
112 };
113
114 /* DNS update options. */
115 static const struct enum_list enum_dns_update_settings[] = {
116         {DNS_UPDATE_OFF, "disabled"},
117         {DNS_UPDATE_OFF, "No"},
118         {DNS_UPDATE_OFF, "False"},
119         {DNS_UPDATE_OFF, "0"},
120         {DNS_UPDATE_OFF, "Off"},
121         {DNS_UPDATE_ON, "nonsecure and secure"},
122         {DNS_UPDATE_ON, "nonsecure"},
123         {DNS_UPDATE_ON, "Yes"},
124         {DNS_UPDATE_ON, "True"},
125         {DNS_UPDATE_ON, "1"},
126         {DNS_UPDATE_ON, "On"},
127         {DNS_UPDATE_ON, "enabled"},
128         {DNS_UPDATE_SIGNED, "secure only"},
129         {DNS_UPDATE_SIGNED, "secure"},
130         {DNS_UPDATE_SIGNED, "signed"},
131         {-1, NULL}
132 };
133
134 /*
135    Do you want session setups at user level security with a invalid
136    password to be rejected or allowed in as guest? WinNT rejects them
137    but it can be a pain as it means "net view" needs to use a password
138
139    You have 3 choices in the setting of map_to_guest:
140
141    "Never" means session setups with an invalid password
142    are rejected. This is the default.
143
144    "Bad User" means session setups with an invalid password
145    are rejected, unless the username does not exist, in which case it
146    is treated as a guest login
147
148    "Bad Password" means session setups with an invalid password
149    are treated as a guest login
150
151    Note that map_to_guest only has an effect in user or server
152    level security.
153 */
154
155 static const struct enum_list enum_map_to_guest[] = {
156         {NEVER_MAP_TO_GUEST, "Never"},
157         {MAP_TO_GUEST_ON_BAD_USER, "Bad User"},
158         {MAP_TO_GUEST_ON_BAD_PASSWORD, "Bad Password"},
159         {MAP_TO_GUEST_ON_BAD_UID, "Bad Uid"},
160         {-1, NULL}
161 };
162
163 /* Config backend options */
164
165 static const struct enum_list enum_config_backend[] = {
166         {CONFIG_BACKEND_FILE, "file"},
167         {CONFIG_BACKEND_REGISTRY, "registry"},
168         {-1, NULL}
169 };
170
171
172 /* ADS kerberos ticket verification options */
173
174 static const struct enum_list enum_kerberos_method[] = {
175         {KERBEROS_VERIFY_SECRETS, "default"},
176         {KERBEROS_VERIFY_SECRETS, "secrets only"},
177         {KERBEROS_VERIFY_SYSTEM_KEYTAB, "system keytab"},
178         {KERBEROS_VERIFY_DEDICATED_KEYTAB, "dedicated keytab"},
179         {KERBEROS_VERIFY_SECRETS_AND_KEYTAB, "secrets and keytab"},
180         {-1, NULL}
181 };
182
183
184 /* ACL compatibility options. */
185 static const struct enum_list enum_acl_compat_vals[] = {
186     { ACL_COMPAT_AUTO, "auto" },
187     { ACL_COMPAT_WINNT, "winnt" },
188     { ACL_COMPAT_WIN2K, "win2k" },
189     { -1, NULL}
190 };
191
192
193 static const struct enum_list enum_printing[] = {
194         {PRINT_SYSV, "sysv"},
195         {PRINT_AIX, "aix"},
196         {PRINT_HPUX, "hpux"},
197         {PRINT_BSD, "bsd"},
198         {PRINT_QNX, "qnx"},
199         {PRINT_PLP, "plp"},
200         {PRINT_LPRNG, "lprng"},
201 #ifdef HAVE_CUPS
202         {PRINT_CUPS, "cups"},
203 #endif
204 #ifdef HAVE_IPRINT
205         {PRINT_IPRINT, "iprint"},
206 #endif
207         {PRINT_LPRNT, "nt"},
208         {PRINT_LPROS2, "os2"},
209 #if defined(DEVELOPER) || defined(ENABLE_SELFTEST)
210         {PRINT_TEST, "test"},
211         {PRINT_VLP, "vlp"},
212 #endif /* DEVELOPER */
213         {-1, NULL}
214 };
215
216 static const struct enum_list enum_ldap_sasl_wrapping[] = {
217         {0, "plain"},
218         {ADS_AUTH_SASL_SIGN, "sign"},
219         {ADS_AUTH_SASL_SEAL, "seal"},
220         {-1, NULL}
221 };
222
223 static const struct enum_list enum_ldap_ssl[] = {
224         {LDAP_SSL_OFF, "no"},
225         {LDAP_SSL_OFF, "off"},
226         {LDAP_SSL_START_TLS, "start tls"},
227         {LDAP_SSL_START_TLS, "start_tls"},
228         {-1, NULL}
229 };
230
231 /* LDAP Dereferencing Alias types */
232 #define SAMBA_LDAP_DEREF_NEVER          0
233 #define SAMBA_LDAP_DEREF_SEARCHING      1
234 #define SAMBA_LDAP_DEREF_FINDING        2
235 #define SAMBA_LDAP_DEREF_ALWAYS         3
236
237 static const struct enum_list enum_ldap_deref[] = {
238         {SAMBA_LDAP_DEREF_NEVER, "never"},
239         {SAMBA_LDAP_DEREF_SEARCHING, "searching"},
240         {SAMBA_LDAP_DEREF_FINDING, "finding"},
241         {SAMBA_LDAP_DEREF_ALWAYS, "always"},
242         {-1, "auto"}
243 };
244
245 static const struct enum_list enum_ldap_passwd_sync[] = {
246         {LDAP_PASSWD_SYNC_OFF, "no"},
247         {LDAP_PASSWD_SYNC_OFF, "off"},
248         {LDAP_PASSWD_SYNC_ON, "yes"},
249         {LDAP_PASSWD_SYNC_ON, "on"},
250         {LDAP_PASSWD_SYNC_ONLY, "only"},
251         {-1, NULL}
252 };
253
254 static const struct enum_list enum_map_readonly[] = {
255         {MAP_READONLY_NO, "no"},
256         {MAP_READONLY_NO, "false"},
257         {MAP_READONLY_NO, "0"},
258         {MAP_READONLY_YES, "yes"},
259         {MAP_READONLY_YES, "true"},
260         {MAP_READONLY_YES, "1"},
261         {MAP_READONLY_PERMISSIONS, "permissions"},
262         {MAP_READONLY_PERMISSIONS, "perms"},
263         {-1, NULL}
264 };
265
266 static const struct enum_list enum_case[] = {
267         {CASE_LOWER, "lower"},
268         {CASE_UPPER, "upper"},
269         {-1, NULL}
270 };
271
272
273 /* Note: We do not initialise the defaults union - it is not allowed in ANSI C
274  *
275  * The FLAG_HIDE is explicit. Parameters set this way do NOT appear in any edit
276  * screen in SWAT. This is used to exclude parameters as well as to squash all
277  * parameters that have been duplicated by pseudonyms.
278  *
279  * NOTE: To display a parameter in BASIC view set FLAG_BASIC
280  *       Any parameter that does NOT have FLAG_ADVANCED will not disply at all
281  *       Set FLAG_SHARE and FLAG_PRINT to specifically display parameters in
282  *        respective views.
283  *
284  * NOTE2: Handling of duplicated (synonym) parameters:
285  *      Only the first occurance of a parameter should be enabled by FLAG_BASIC
286  *      and/or FLAG_ADVANCED. All duplicates following the first mention should be
287  *      set to FLAG_HIDE. ie: Make you must place the parameter that has the preferred
288  *      name first, and all synonyms must follow it with the FLAG_HIDE attribute.
289  */
290
291 #define GLOBAL_VAR(name) offsetof(struct loadparm_global, name)
292 #define LOCAL_VAR(name) offsetof(struct loadparm_service, name)
293
294
295 static struct parm_struct parm_table[] = {
296         {N_("Base Options"), P_SEP, P_SEPARATOR},
297
298         {
299                 .label          = "dos charset",
300                 .type           = P_STRING,
301                 .p_class        = P_GLOBAL,
302                 .offset         = GLOBAL_VAR(dos_charset),
303                 .special        = handle_dos_charset,
304                 .enum_list      = NULL,
305                 .flags          = FLAG_ADVANCED
306         },
307         {
308                 .label          = "unix charset",
309                 .type           = P_STRING,
310                 .p_class        = P_GLOBAL,
311                 .offset         = GLOBAL_VAR(unix_charset),
312                 .special        = handle_charset,
313                 .enum_list      = NULL,
314                 .flags          = FLAG_ADVANCED
315         },
316         {
317                 .label          = "comment",
318                 .type           = P_STRING,
319                 .p_class        = P_LOCAL,
320                 .offset         = LOCAL_VAR(comment),
321                 .special        = NULL,
322                 .enum_list      = NULL,
323                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT
324         },
325         {
326                 .label          = "path",
327                 .type           = P_STRING,
328                 .p_class        = P_LOCAL,
329                 .offset         = LOCAL_VAR(szPath),
330                 .special        = NULL,
331                 .enum_list      = NULL,
332                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
333         },
334         {
335                 .label          = "directory",
336                 .type           = P_STRING,
337                 .p_class        = P_LOCAL,
338                 .offset         = LOCAL_VAR(szPath),
339                 .special        = NULL,
340                 .enum_list      = NULL,
341                 .flags          = FLAG_HIDE,
342         },
343         {
344                 .label          = "workgroup",
345                 .type           = P_USTRING,
346                 .p_class        = P_GLOBAL,
347                 .offset         = GLOBAL_VAR(szWorkgroup),
348                 .special        = NULL,
349                 .enum_list      = NULL,
350                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
351         },
352         {
353                 .label          = "realm",
354                 .type           = P_STRING,
355                 .p_class        = P_GLOBAL,
356                 .offset         = GLOBAL_VAR(szRealm),
357                 .special        = handle_realm,
358                 .enum_list      = NULL,
359                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
360         },
361         {
362                 .label          = "netbios name",
363                 .type           = P_USTRING,
364                 .p_class        = P_GLOBAL,
365                 .offset         = GLOBAL_VAR(szNetbiosName),
366                 .special        = NULL,
367                 .enum_list      = NULL,
368                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
369         },
370         {
371                 .label          = "netbios aliases",
372                 .type           = P_LIST,
373                 .p_class        = P_GLOBAL,
374                 .offset         = GLOBAL_VAR(szNetbiosAliases),
375                 .special        = handle_netbios_aliases,
376                 .enum_list      = NULL,
377                 .flags          = FLAG_ADVANCED,
378         },
379         {
380                 .label          = "netbios scope",
381                 .type           = P_USTRING,
382                 .p_class        = P_GLOBAL,
383                 .offset         = GLOBAL_VAR(szNetbiosScope),
384                 .special        = NULL,
385                 .enum_list      = NULL,
386                 .flags          = FLAG_ADVANCED,
387         },
388         {
389                 .label          = "server string",
390                 .type           = P_STRING,
391                 .p_class        = P_GLOBAL,
392                 .offset         = GLOBAL_VAR(szServerString),
393                 .special        = NULL,
394                 .enum_list      = NULL,
395                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
396         },
397         {
398                 .label          = "interfaces",
399                 .type           = P_LIST,
400                 .p_class        = P_GLOBAL,
401                 .offset         = GLOBAL_VAR(szInterfaces),
402                 .special        = NULL,
403                 .enum_list      = NULL,
404                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
405         },
406         {
407                 .label          = "bind interfaces only",
408                 .type           = P_BOOL,
409                 .p_class        = P_GLOBAL,
410                 .offset         = GLOBAL_VAR(bBindInterfacesOnly),
411                 .special        = NULL,
412                 .enum_list      = NULL,
413                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
414         },
415         {
416                 .label          = "config backend",
417                 .type           = P_ENUM,
418                 .p_class        = P_GLOBAL,
419                 .offset         = GLOBAL_VAR(ConfigBackend),
420                 .special        = NULL,
421                 .enum_list      = enum_config_backend,
422                 .flags          = FLAG_HIDE|FLAG_ADVANCED|FLAG_META,
423         },
424         {
425                 .label          = "server role",
426                 .type           = P_ENUM,
427                 .p_class        = P_GLOBAL,
428                 .offset         = GLOBAL_VAR(server_role),
429                 .special        = NULL,
430                 .enum_list      = enum_server_role,
431                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
432         },
433
434         {N_("Security Options"), P_SEP, P_SEPARATOR},
435
436         {
437                 .label          = "security",
438                 .type           = P_ENUM,
439                 .p_class        = P_GLOBAL,
440                 .offset         = GLOBAL_VAR(security),
441                 .special        = NULL,
442                 .enum_list      = enum_security,
443                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
444         },
445         {
446                 .label          = "auth methods",
447                 .type           = P_LIST,
448                 .p_class        = P_GLOBAL,
449                 .offset         = GLOBAL_VAR(AuthMethods),
450                 .special        = NULL,
451                 .enum_list      = NULL,
452                 .flags          = FLAG_ADVANCED,
453         },
454         {
455                 .label          = "encrypt passwords",
456                 .type           = P_BOOL,
457                 .p_class        = P_GLOBAL,
458                 .offset         = GLOBAL_VAR(bEncryptPasswords),
459                 .special        = NULL,
460                 .enum_list      = NULL,
461                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
462         },
463         {
464                 .label          = "client schannel",
465                 .type           = P_ENUM,
466                 .p_class        = P_GLOBAL,
467                 .offset         = GLOBAL_VAR(clientSchannel),
468                 .special        = NULL,
469                 .enum_list      = enum_bool_auto,
470                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
471         },
472         {
473                 .label          = "server schannel",
474                 .type           = P_ENUM,
475                 .p_class        = P_GLOBAL,
476                 .offset         = GLOBAL_VAR(serverSchannel),
477                 .special        = NULL,
478                 .enum_list      = enum_bool_auto,
479                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
480         },
481         {
482                 .label          = "allow trusted domains",
483                 .type           = P_BOOL,
484                 .p_class        = P_GLOBAL,
485                 .offset         = GLOBAL_VAR(bAllowTrustedDomains),
486                 .special        = NULL,
487                 .enum_list      = NULL,
488                 .flags          = FLAG_ADVANCED,
489         },
490         {
491                 .label          = "map to guest",
492                 .type           = P_ENUM,
493                 .p_class        = P_GLOBAL,
494                 .offset         = GLOBAL_VAR(map_to_guest),
495                 .special        = NULL,
496                 .enum_list      = enum_map_to_guest,
497                 .flags          = FLAG_ADVANCED,
498         },
499         {
500                 .label          = "null passwords",
501                 .type           = P_BOOL,
502                 .p_class        = P_GLOBAL,
503                 .offset         = GLOBAL_VAR(bNullPasswords),
504                 .special        = NULL,
505                 .enum_list      = NULL,
506                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
507         },
508         {
509                 .label          = "obey pam restrictions",
510                 .type           = P_BOOL,
511                 .p_class        = P_GLOBAL,
512                 .offset         = GLOBAL_VAR(bObeyPamRestrictions),
513                 .special        = NULL,
514                 .enum_list      = NULL,
515                 .flags          = FLAG_ADVANCED,
516         },
517         {
518                 .label          = "password server",
519                 .type           = P_STRING,
520                 .p_class        = P_GLOBAL,
521                 .offset         = GLOBAL_VAR(szPasswordServer),
522                 .special        = NULL,
523                 .enum_list      = NULL,
524                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
525         },
526         {
527                 .label          = "smb passwd file",
528                 .type           = P_STRING,
529                 .p_class        = P_GLOBAL,
530                 .offset         = GLOBAL_VAR(szSMBPasswdFile),
531                 .special        = NULL,
532                 .enum_list      = NULL,
533                 .flags          = FLAG_ADVANCED,
534         },
535         {
536                 .label          = "private dir",
537                 .type           = P_STRING,
538                 .p_class        = P_GLOBAL,
539                 .offset         = GLOBAL_VAR(szPrivateDir),
540                 .special        = NULL,
541                 .enum_list      = NULL,
542                 .flags          = FLAG_ADVANCED,
543         },
544         {
545                 .label          = "private directory",
546                 .type           = P_STRING,
547                 .p_class        = P_GLOBAL,
548                 .offset         = GLOBAL_VAR(szPrivateDir),
549                 .special        = NULL,
550                 .enum_list      = NULL,
551                 .flags          = FLAG_HIDE,
552         },
553         {
554                 .label          = "passdb backend",
555                 .type           = P_STRING,
556                 .p_class        = P_GLOBAL,
557                 .offset         = GLOBAL_VAR(passdb_backend),
558                 .special        = NULL,
559                 .enum_list      = NULL,
560                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
561         },
562         {
563                 .label          = "algorithmic rid base",
564                 .type           = P_INTEGER,
565                 .p_class        = P_GLOBAL,
566                 .offset         = GLOBAL_VAR(AlgorithmicRidBase),
567                 .special        = NULL,
568                 .enum_list      = NULL,
569                 .flags          = FLAG_ADVANCED,
570         },
571         {
572                 .label          = "root directory",
573                 .type           = P_STRING,
574                 .p_class        = P_GLOBAL,
575                 .offset         = GLOBAL_VAR(szRootdir),
576                 .special        = NULL,
577                 .enum_list      = NULL,
578                 .flags          = FLAG_ADVANCED,
579         },
580         {
581                 .label          = "root dir",
582                 .type           = P_STRING,
583                 .p_class        = P_GLOBAL,
584                 .offset         = GLOBAL_VAR(szRootdir),
585                 .special        = NULL,
586                 .enum_list      = NULL,
587                 .flags          = FLAG_HIDE,
588         },
589         {
590                 .label          = "root",
591                 .type           = P_STRING,
592                 .p_class        = P_GLOBAL,
593                 .offset         = GLOBAL_VAR(szRootdir),
594                 .special        = NULL,
595                 .enum_list      = NULL,
596                 .flags          = FLAG_HIDE,
597         },
598         {
599                 .label          = "guest account",
600                 .type           = P_STRING,
601                 .p_class        = P_GLOBAL,
602                 .offset         = GLOBAL_VAR(szGuestaccount),
603                 .special        = NULL,
604                 .enum_list      = NULL,
605                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
606         },
607         {
608                 .label          = "enable privileges",
609                 .type           = P_BOOL,
610                 .p_class        = P_GLOBAL,
611                 .offset         = GLOBAL_VAR(bEnablePrivileges),
612                 .special        = NULL,
613                 .enum_list      = NULL,
614                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
615         },
616
617         {
618                 .label          = "pam password change",
619                 .type           = P_BOOL,
620                 .p_class        = P_GLOBAL,
621                 .offset         = GLOBAL_VAR(bPamPasswordChange),
622                 .special        = NULL,
623                 .enum_list      = NULL,
624                 .flags          = FLAG_ADVANCED,
625         },
626         {
627                 .label          = "passwd program",
628                 .type           = P_STRING,
629                 .p_class        = P_GLOBAL,
630                 .offset         = GLOBAL_VAR(szPasswdProgram),
631                 .special        = NULL,
632                 .enum_list      = NULL,
633                 .flags          = FLAG_ADVANCED,
634         },
635         {
636                 .label          = "passwd chat",
637                 .type           = P_STRING,
638                 .p_class        = P_GLOBAL,
639                 .offset         = GLOBAL_VAR(szPasswdChat),
640                 .special        = NULL,
641                 .enum_list      = NULL,
642                 .flags          = FLAG_ADVANCED,
643         },
644         {
645                 .label          = "passwd chat debug",
646                 .type           = P_BOOL,
647                 .p_class        = P_GLOBAL,
648                 .offset         = GLOBAL_VAR(bPasswdChatDebug),
649                 .special        = NULL,
650                 .enum_list      = NULL,
651                 .flags          = FLAG_ADVANCED,
652         },
653         {
654                 .label          = "passwd chat timeout",
655                 .type           = P_INTEGER,
656                 .p_class        = P_GLOBAL,
657                 .offset         = GLOBAL_VAR(iPasswdChatTimeout),
658                 .special        = NULL,
659                 .enum_list      = NULL,
660                 .flags          = FLAG_ADVANCED,
661         },
662         {
663                 .label          = "check password script",
664                 .type           = P_STRING,
665                 .p_class        = P_GLOBAL,
666                 .offset         = GLOBAL_VAR(szCheckPasswordScript),
667                 .special        = NULL,
668                 .enum_list      = NULL,
669                 .flags          = FLAG_ADVANCED,
670         },
671         {
672                 .label          = "username map",
673                 .type           = P_STRING,
674                 .p_class        = P_GLOBAL,
675                 .offset         = GLOBAL_VAR(szUsernameMap),
676                 .special        = NULL,
677                 .enum_list      = NULL,
678                 .flags          = FLAG_ADVANCED,
679         },
680         {
681                 .label          = "password level",
682                 .type           = P_INTEGER,
683                 .p_class        = P_GLOBAL,
684                 .offset         = GLOBAL_VAR(pwordlevel),
685                 .special        = NULL,
686                 .enum_list      = NULL,
687                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
688         },
689         {
690                 .label          = "username level",
691                 .type           = P_INTEGER,
692                 .p_class        = P_GLOBAL,
693                 .offset         = GLOBAL_VAR(unamelevel),
694                 .special        = NULL,
695                 .enum_list      = NULL,
696                 .flags          = FLAG_ADVANCED,
697         },
698         {
699                 .label          = "unix password sync",
700                 .type           = P_BOOL,
701                 .p_class        = P_GLOBAL,
702                 .offset         = GLOBAL_VAR(bUnixPasswdSync),
703                 .special        = NULL,
704                 .enum_list      = NULL,
705                 .flags          = FLAG_ADVANCED,
706         },
707         {
708                 .label          = "restrict anonymous",
709                 .type           = P_INTEGER,
710                 .p_class        = P_GLOBAL,
711                 .offset         = GLOBAL_VAR(restrict_anonymous),
712                 .special        = NULL,
713                 .enum_list      = NULL,
714                 .flags          = FLAG_ADVANCED,
715         },
716         {
717                 .label          = "lanman auth",
718                 .type           = P_BOOL,
719                 .p_class        = P_GLOBAL,
720                 .offset         = GLOBAL_VAR(bLanmanAuth),
721                 .special        = NULL,
722                 .enum_list      = NULL,
723                 .flags          = FLAG_ADVANCED,
724         },
725         {
726                 .label          = "ntlm auth",
727                 .type           = P_BOOL,
728                 .p_class        = P_GLOBAL,
729                 .offset         = GLOBAL_VAR(bNTLMAuth),
730                 .special        = NULL,
731                 .enum_list      = NULL,
732                 .flags          = FLAG_ADVANCED,
733         },
734         {
735                 .label          = "client NTLMv2 auth",
736                 .type           = P_BOOL,
737                 .p_class        = P_GLOBAL,
738                 .offset         = GLOBAL_VAR(bClientNTLMv2Auth),
739                 .special        = NULL,
740                 .enum_list      = NULL,
741                 .flags          = FLAG_ADVANCED,
742         },
743         {
744                 .label          = "client lanman auth",
745                 .type           = P_BOOL,
746                 .p_class        = P_GLOBAL,
747                 .offset         = GLOBAL_VAR(bClientLanManAuth),
748                 .special        = NULL,
749                 .enum_list      = NULL,
750                 .flags          = FLAG_ADVANCED,
751         },
752         {
753                 .label          = "client plaintext auth",
754                 .type           = P_BOOL,
755                 .p_class        = P_GLOBAL,
756                 .offset         = GLOBAL_VAR(bClientPlaintextAuth),
757                 .special        = NULL,
758                 .enum_list      = NULL,
759                 .flags          = FLAG_ADVANCED,
760         },
761         {
762                 .label          = "client use spnego principal",
763                 .type           = P_BOOL,
764                 .p_class        = P_GLOBAL,
765                 .offset         = GLOBAL_VAR(client_use_spnego_principal),
766                 .special        = NULL,
767                 .enum_list      = NULL,
768                 .flags          = FLAG_ADVANCED,
769         },
770         {
771                 .label          = "username",
772                 .type           = P_STRING,
773                 .p_class        = P_LOCAL,
774                 .offset         = LOCAL_VAR(szUsername),
775                 .special        = NULL,
776                 .enum_list      = NULL,
777                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED,
778         },
779         {
780                 .label          = "user",
781                 .type           = P_STRING,
782                 .p_class        = P_LOCAL,
783                 .offset         = LOCAL_VAR(szUsername),
784                 .special        = NULL,
785                 .enum_list      = NULL,
786                 .flags          = FLAG_HIDE,
787         },
788         {
789                 .label          = "users",
790                 .type           = P_STRING,
791                 .p_class        = P_LOCAL,
792                 .offset         = LOCAL_VAR(szUsername),
793                 .special        = NULL,
794                 .enum_list      = NULL,
795                 .flags          = FLAG_HIDE,
796         },
797         {
798                 .label          = "invalid users",
799                 .type           = P_LIST,
800                 .p_class        = P_LOCAL,
801                 .offset         = LOCAL_VAR(szInvalidUsers),
802                 .special        = NULL,
803                 .enum_list      = NULL,
804                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
805         },
806         {
807                 .label          = "valid users",
808                 .type           = P_LIST,
809                 .p_class        = P_LOCAL,
810                 .offset         = LOCAL_VAR(szValidUsers),
811                 .special        = NULL,
812                 .enum_list      = NULL,
813                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
814         },
815         {
816                 .label          = "admin users",
817                 .type           = P_LIST,
818                 .p_class        = P_LOCAL,
819                 .offset         = LOCAL_VAR(szAdminUsers),
820                 .special        = NULL,
821                 .enum_list      = NULL,
822                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
823         },
824         {
825                 .label          = "read list",
826                 .type           = P_LIST,
827                 .p_class        = P_LOCAL,
828                 .offset         = LOCAL_VAR(readlist),
829                 .special        = NULL,
830                 .enum_list      = NULL,
831                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
832         },
833         {
834                 .label          = "write list",
835                 .type           = P_LIST,
836                 .p_class        = P_LOCAL,
837                 .offset         = LOCAL_VAR(writelist),
838                 .special        = NULL,
839                 .enum_list      = NULL,
840                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
841         },
842         {
843                 .label          = "force user",
844                 .type           = P_STRING,
845                 .p_class        = P_LOCAL,
846                 .offset         = LOCAL_VAR(force_user),
847                 .special        = NULL,
848                 .enum_list      = NULL,
849                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
850         },
851         {
852                 .label          = "force group",
853                 .type           = P_STRING,
854                 .p_class        = P_LOCAL,
855                 .offset         = LOCAL_VAR(force_group),
856                 .special        = NULL,
857                 .enum_list      = NULL,
858                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
859         },
860         {
861                 .label          = "group",
862                 .type           = P_STRING,
863                 .p_class        = P_LOCAL,
864                 .offset         = LOCAL_VAR(force_group),
865                 .special        = NULL,
866                 .enum_list      = NULL,
867                 .flags          = FLAG_ADVANCED,
868         },
869         {
870                 .label          = "read only",
871                 .type           = P_BOOL,
872                 .p_class        = P_LOCAL,
873                 .offset         = LOCAL_VAR(bRead_only),
874                 .special        = NULL,
875                 .enum_list      = NULL,
876                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE,
877         },
878         {
879                 .label          = "write ok",
880                 .type           = P_BOOLREV,
881                 .p_class        = P_LOCAL,
882                 .offset         = LOCAL_VAR(bRead_only),
883                 .special        = NULL,
884                 .enum_list      = NULL,
885                 .flags          = FLAG_HIDE,
886         },
887         {
888                 .label          = "writeable",
889                 .type           = P_BOOLREV,
890                 .p_class        = P_LOCAL,
891                 .offset         = LOCAL_VAR(bRead_only),
892                 .special        = NULL,
893                 .enum_list      = NULL,
894                 .flags          = FLAG_HIDE,
895         },
896         {
897                 .label          = "writable",
898                 .type           = P_BOOLREV,
899                 .p_class        = P_LOCAL,
900                 .offset         = LOCAL_VAR(bRead_only),
901                 .special        = NULL,
902                 .enum_list      = NULL,
903                 .flags          = FLAG_HIDE,
904         },
905         {
906                 .label          = "acl check permissions",
907                 .type           = P_BOOL,
908                 .p_class        = P_LOCAL,
909                 .offset         = LOCAL_VAR(bAclCheckPermissions),
910                 .special        = NULL,
911                 .enum_list      = NULL,
912                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED,
913         },
914         {
915                 .label          = "acl group control",
916                 .type           = P_BOOL,
917                 .p_class        = P_LOCAL,
918                 .offset         = LOCAL_VAR(bAclGroupControl),
919                 .special        = NULL,
920                 .enum_list      = NULL,
921                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
922         },
923         {
924                 .label          = "acl map full control",
925                 .type           = P_BOOL,
926                 .p_class        = P_LOCAL,
927                 .offset         = LOCAL_VAR(bAclMapFullControl),
928                 .special        = NULL,
929                 .enum_list      = NULL,
930                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
931         },
932         {
933                 .label          = "create mask",
934                 .type           = P_OCTAL,
935                 .p_class        = P_LOCAL,
936                 .offset         = LOCAL_VAR(iCreate_mask),
937                 .special        = NULL,
938                 .enum_list      = NULL,
939                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
940         },
941         {
942                 .label          = "create mode",
943                 .type           = P_OCTAL,
944                 .p_class        = P_LOCAL,
945                 .offset         = LOCAL_VAR(iCreate_mask),
946                 .special        = NULL,
947                 .enum_list      = NULL,
948                 .flags          = FLAG_HIDE,
949         },
950         {
951                 .label          = "force create mode",
952                 .type           = P_OCTAL,
953                 .p_class        = P_LOCAL,
954                 .offset         = LOCAL_VAR(iCreate_force_mode),
955                 .special        = NULL,
956                 .enum_list      = NULL,
957                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
958         },
959         {
960                 .label          = "security mask",
961                 .type           = P_OCTAL,
962                 .p_class        = P_LOCAL,
963                 .offset         = LOCAL_VAR(iSecurity_mask),
964                 .special        = NULL,
965                 .enum_list      = NULL,
966                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
967         },
968         {
969                 .label          = "force security mode",
970                 .type           = P_OCTAL,
971                 .p_class        = P_LOCAL,
972                 .offset         = LOCAL_VAR(iSecurity_force_mode),
973                 .special        = NULL,
974                 .enum_list      = NULL,
975                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
976         },
977         {
978                 .label          = "directory mask",
979                 .type           = P_OCTAL,
980                 .p_class        = P_LOCAL,
981                 .offset         = LOCAL_VAR(iDir_mask),
982                 .special        = NULL,
983                 .enum_list      = NULL,
984                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
985         },
986         {
987                 .label          = "directory mode",
988                 .type           = P_OCTAL,
989                 .p_class        = P_LOCAL,
990                 .offset         = LOCAL_VAR(iDir_mask),
991                 .special        = NULL,
992                 .enum_list      = NULL,
993                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
994         },
995         {
996                 .label          = "force directory mode",
997                 .type           = P_OCTAL,
998                 .p_class        = P_LOCAL,
999                 .offset         = LOCAL_VAR(iDir_force_mode),
1000                 .special        = NULL,
1001                 .enum_list      = NULL,
1002                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1003         },
1004         {
1005                 .label          = "directory security mask",
1006                 .type           = P_OCTAL,
1007                 .p_class        = P_LOCAL,
1008                 .offset         = LOCAL_VAR(iDir_Security_mask),
1009                 .special        = NULL,
1010                 .enum_list      = NULL,
1011                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1012         },
1013         {
1014                 .label          = "force directory security mode",
1015                 .type           = P_OCTAL,
1016                 .p_class        = P_LOCAL,
1017                 .offset         = LOCAL_VAR(iDir_Security_force_mode),
1018                 .special        = NULL,
1019                 .enum_list      = NULL,
1020                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1021         },
1022         {
1023                 .label          = "force unknown acl user",
1024                 .type           = P_BOOL,
1025                 .p_class        = P_LOCAL,
1026                 .offset         = LOCAL_VAR(bForceUnknownAclUser),
1027                 .special        = NULL,
1028                 .enum_list      = NULL,
1029                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1030         },
1031         {
1032                 .label          = "inherit permissions",
1033                 .type           = P_BOOL,
1034                 .p_class        = P_LOCAL,
1035                 .offset         = LOCAL_VAR(bInheritPerms),
1036                 .special        = NULL,
1037                 .enum_list      = NULL,
1038                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1039         },
1040         {
1041                 .label          = "inherit acls",
1042                 .type           = P_BOOL,
1043                 .p_class        = P_LOCAL,
1044                 .offset         = LOCAL_VAR(bInheritACLS),
1045                 .special        = NULL,
1046                 .enum_list      = NULL,
1047                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1048         },
1049         {
1050                 .label          = "inherit owner",
1051                 .type           = P_BOOL,
1052                 .p_class        = P_LOCAL,
1053                 .offset         = LOCAL_VAR(bInheritOwner),
1054                 .special        = NULL,
1055                 .enum_list      = NULL,
1056                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1057         },
1058         {
1059                 .label          = "guest only",
1060                 .type           = P_BOOL,
1061                 .p_class        = P_LOCAL,
1062                 .offset         = LOCAL_VAR(bGuest_only),
1063                 .special        = NULL,
1064                 .enum_list      = NULL,
1065                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1066         },
1067         {
1068                 .label          = "only guest",
1069                 .type           = P_BOOL,
1070                 .p_class        = P_LOCAL,
1071                 .offset         = LOCAL_VAR(bGuest_only),
1072                 .special        = NULL,
1073                 .enum_list      = NULL,
1074                 .flags          = FLAG_HIDE,
1075         },
1076         {
1077                 .label          = "administrative share",
1078                 .type           = P_BOOL,
1079                 .p_class        = P_LOCAL,
1080                 .offset         = LOCAL_VAR(bAdministrative_share),
1081                 .special        = NULL,
1082                 .enum_list      = NULL,
1083                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1084         },
1085
1086         {
1087                 .label          = "guest ok",
1088                 .type           = P_BOOL,
1089                 .p_class        = P_LOCAL,
1090                 .offset         = LOCAL_VAR(bGuest_ok),
1091                 .special        = NULL,
1092                 .enum_list      = NULL,
1093                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1094         },
1095         {
1096                 .label          = "public",
1097                 .type           = P_BOOL,
1098                 .p_class        = P_LOCAL,
1099                 .offset         = LOCAL_VAR(bGuest_ok),
1100                 .special        = NULL,
1101                 .enum_list      = NULL,
1102                 .flags          = FLAG_HIDE,
1103         },
1104         {
1105                 .label          = "only user",
1106                 .type           = P_BOOL,
1107                 .p_class        = P_LOCAL,
1108                 .offset         = LOCAL_VAR(bOnlyUser),
1109                 .special        = NULL,
1110                 .enum_list      = NULL,
1111                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED,
1112         },
1113         {
1114                 .label          = "hosts allow",
1115                 .type           = P_LIST,
1116                 .p_class        = P_LOCAL,
1117                 .offset         = LOCAL_VAR(szHostsallow),
1118                 .special        = NULL,
1119                 .enum_list      = NULL,
1120                 .flags          = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1121         },
1122         {
1123                 .label          = "allow hosts",
1124                 .type           = P_LIST,
1125                 .p_class        = P_LOCAL,
1126                 .offset         = LOCAL_VAR(szHostsallow),
1127                 .special        = NULL,
1128                 .enum_list      = NULL,
1129                 .flags          = FLAG_HIDE,
1130         },
1131         {
1132                 .label          = "hosts deny",
1133                 .type           = P_LIST,
1134                 .p_class        = P_LOCAL,
1135                 .offset         = LOCAL_VAR(szHostsdeny),
1136                 .special        = NULL,
1137                 .enum_list      = NULL,
1138                 .flags          = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1139         },
1140         {
1141                 .label          = "deny hosts",
1142                 .type           = P_LIST,
1143                 .p_class        = P_LOCAL,
1144                 .offset         = LOCAL_VAR(szHostsdeny),
1145                 .special        = NULL,
1146                 .enum_list      = NULL,
1147                 .flags          = FLAG_HIDE,
1148         },
1149         {
1150                 .label          = "preload modules",
1151                 .type           = P_LIST,
1152                 .p_class        = P_GLOBAL,
1153                 .offset         = GLOBAL_VAR(szPreloadModules),
1154                 .special        = NULL,
1155                 .enum_list      = NULL,
1156                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1157         },
1158         {
1159                 .label          = "dedicated keytab file",
1160                 .type           = P_STRING,
1161                 .p_class        = P_GLOBAL,
1162                 .offset         = GLOBAL_VAR(szDedicatedKeytabFile),
1163                 .special        = NULL,
1164                 .enum_list      = NULL,
1165                 .flags          = FLAG_ADVANCED,
1166         },
1167         {
1168                 .label          = "kerberos method",
1169                 .type           = P_ENUM,
1170                 .p_class        = P_GLOBAL,
1171                 .offset         = GLOBAL_VAR(iKerberosMethod),
1172                 .special        = NULL,
1173                 .enum_list      = enum_kerberos_method,
1174                 .flags          = FLAG_ADVANCED,
1175         },
1176         {
1177                 .label          = "map untrusted to domain",
1178                 .type           = P_BOOL,
1179                 .p_class        = P_GLOBAL,
1180                 .offset         = GLOBAL_VAR(bMapUntrustedToDomain),
1181                 .special        = NULL,
1182                 .enum_list      = NULL,
1183                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1184         },
1185
1186
1187         {N_("Logging Options"), P_SEP, P_SEPARATOR},
1188
1189         {
1190                 .label          = "log level",
1191                 .type           = P_STRING,
1192                 .p_class        = P_GLOBAL,
1193                 .offset         = GLOBAL_VAR(loglevel),
1194                 .special        = handle_debug_list,
1195                 .enum_list      = NULL,
1196                 .flags          = FLAG_ADVANCED,
1197         },
1198         {
1199                 .label          = "debuglevel",
1200                 .type           = P_STRING,
1201                 .p_class        = P_GLOBAL,
1202                 .offset         = GLOBAL_VAR(loglevel),
1203                 .special        = handle_debug_list,
1204                 .enum_list      = NULL,
1205                 .flags          = FLAG_HIDE,
1206         },
1207         {
1208                 .label          = "syslog",
1209                 .type           = P_INTEGER,
1210                 .p_class        = P_GLOBAL,
1211                 .offset         = GLOBAL_VAR(syslog),
1212                 .special        = NULL,
1213                 .enum_list      = NULL,
1214                 .flags          = FLAG_ADVANCED,
1215         },
1216         {
1217                 .label          = "syslog only",
1218                 .type           = P_BOOL,
1219                 .p_class        = P_GLOBAL,
1220                 .offset         = GLOBAL_VAR(bSyslogOnly),
1221                 .special        = NULL,
1222                 .enum_list      = NULL,
1223                 .flags          = FLAG_ADVANCED,
1224         },
1225         {
1226                 .label          = "log file",
1227                 .type           = P_STRING,
1228                 .p_class        = P_GLOBAL,
1229                 .offset         = GLOBAL_VAR(logfile),
1230                 .special        = handle_logfile,
1231                 .enum_list      = NULL,
1232                 .flags          = FLAG_ADVANCED,
1233         },
1234         {
1235                 .label          = "max log size",
1236                 .type           = P_BYTES,
1237                 .p_class        = P_GLOBAL,
1238                 .offset         = GLOBAL_VAR(max_log_size),
1239                 .special        = NULL,
1240                 .enum_list      = NULL,
1241                 .flags          = FLAG_ADVANCED,
1242         },
1243         {
1244                 .label          = "debug timestamp",
1245                 .type           = P_BOOL,
1246                 .p_class        = P_GLOBAL,
1247                 .offset         = GLOBAL_VAR(bTimestampLogs),
1248                 .special        = NULL,
1249                 .enum_list      = NULL,
1250                 .flags          = FLAG_ADVANCED,
1251         },
1252         {
1253                 .label          = "timestamp logs",
1254                 .type           = P_BOOL,
1255                 .p_class        = P_GLOBAL,
1256                 .offset         = GLOBAL_VAR(bTimestampLogs),
1257                 .special        = NULL,
1258                 .enum_list      = NULL,
1259                 .flags          = FLAG_ADVANCED,
1260         },
1261         {
1262                 .label          = "debug prefix timestamp",
1263                 .type           = P_BOOL,
1264                 .p_class        = P_GLOBAL,
1265                 .offset         = GLOBAL_VAR(bDebugPrefixTimestamp),
1266                 .special        = NULL,
1267                 .enum_list      = NULL,
1268                 .flags          = FLAG_ADVANCED,
1269         },
1270         {
1271                 .label          = "debug hires timestamp",
1272                 .type           = P_BOOL,
1273                 .p_class        = P_GLOBAL,
1274                 .offset         = GLOBAL_VAR(bDebugHiresTimestamp),
1275                 .special        = NULL,
1276                 .enum_list      = NULL,
1277                 .flags          = FLAG_ADVANCED,
1278         },
1279         {
1280                 .label          = "debug pid",
1281                 .type           = P_BOOL,
1282                 .p_class        = P_GLOBAL,
1283                 .offset         = GLOBAL_VAR(bDebugPid),
1284                 .special        = NULL,
1285                 .enum_list      = NULL,
1286                 .flags          = FLAG_ADVANCED,
1287         },
1288         {
1289                 .label          = "debug uid",
1290                 .type           = P_BOOL,
1291                 .p_class        = P_GLOBAL,
1292                 .offset         = GLOBAL_VAR(bDebugUid),
1293                 .special        = NULL,
1294                 .enum_list      = NULL,
1295                 .flags          = FLAG_ADVANCED,
1296         },
1297         {
1298                 .label          = "debug class",
1299                 .type           = P_BOOL,
1300                 .p_class        = P_GLOBAL,
1301                 .offset         = GLOBAL_VAR(bDebugClass),
1302                 .special        = NULL,
1303                 .enum_list      = NULL,
1304                 .flags          = FLAG_ADVANCED,
1305         },
1306         {
1307                 .label          = "enable core files",
1308                 .type           = P_BOOL,
1309                 .p_class        = P_GLOBAL,
1310                 .offset         = GLOBAL_VAR(bEnableCoreFiles),
1311                 .special        = NULL,
1312                 .enum_list      = NULL,
1313                 .flags          = FLAG_ADVANCED,
1314         },
1315
1316         {N_("Protocol Options"), P_SEP, P_SEPARATOR},
1317
1318         {
1319                 .label          = "allocation roundup size",
1320                 .type           = P_BYTES,
1321                 .p_class        = P_LOCAL,
1322                 .offset         = LOCAL_VAR(iallocation_roundup_size),
1323                 .special        = NULL,
1324                 .enum_list      = NULL,
1325                 .flags          = FLAG_ADVANCED,
1326         },
1327         {
1328                 .label          = "aio read size",
1329                 .type           = P_BYTES,
1330                 .p_class        = P_LOCAL,
1331                 .offset         = LOCAL_VAR(iAioReadSize),
1332                 .special        = NULL,
1333                 .enum_list      = NULL,
1334                 .flags          = FLAG_ADVANCED,
1335         },
1336         {
1337                 .label          = "aio write size",
1338                 .type           = P_BYTES,
1339                 .p_class        = P_LOCAL,
1340                 .offset         = LOCAL_VAR(iAioWriteSize),
1341                 .special        = NULL,
1342                 .enum_list      = NULL,
1343                 .flags          = FLAG_ADVANCED,
1344         },
1345         {
1346                 .label          = "aio write behind",
1347                 .type           = P_STRING,
1348                 .p_class        = P_LOCAL,
1349                 .offset         = LOCAL_VAR(szAioWriteBehind),
1350                 .special        = NULL,
1351                 .enum_list      = NULL,
1352                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1353         },
1354         {
1355                 .label          = "smb ports",
1356                 .type           = P_LIST,
1357                 .p_class        = P_GLOBAL,
1358                 .offset         = GLOBAL_VAR(smb_ports),
1359                 .special        = NULL,
1360                 .enum_list      = NULL,
1361                 .flags          = FLAG_ADVANCED,
1362         },
1363         {
1364                 .label          = "large readwrite",
1365                 .type           = P_BOOL,
1366                 .p_class        = P_GLOBAL,
1367                 .offset         = GLOBAL_VAR(bLargeReadwrite),
1368                 .special        = NULL,
1369                 .enum_list      = NULL,
1370                 .flags          = FLAG_ADVANCED,
1371         },
1372         {
1373                 .label          = "server max protocol",
1374                 .type           = P_ENUM,
1375                 .p_class        = P_GLOBAL,
1376                 .offset         = GLOBAL_VAR(srv_maxprotocol),
1377                 .special        = NULL,
1378                 .enum_list      = enum_protocol,
1379                 .flags          = FLAG_ADVANCED,
1380         },
1381         {
1382                 .label          = "max protocol",
1383                 .type           = P_ENUM,
1384                 .p_class        = P_GLOBAL,
1385                 .offset         = GLOBAL_VAR(srv_maxprotocol),
1386                 .special        = NULL,
1387                 .enum_list      = enum_protocol,
1388                 .flags          = FLAG_ADVANCED,
1389         },
1390         {
1391                 .label          = "protocol",
1392                 .type           = P_ENUM,
1393                 .p_class        = P_GLOBAL,
1394                 .offset         = GLOBAL_VAR(srv_maxprotocol),
1395                 .special        = NULL,
1396                 .enum_list      = enum_protocol,
1397                 .flags          = FLAG_ADVANCED,
1398         },
1399         {
1400                 .label          = "server min protocol",
1401                 .type           = P_ENUM,
1402                 .p_class        = P_GLOBAL,
1403                 .offset         = GLOBAL_VAR(srv_minprotocol),
1404                 .special        = NULL,
1405                 .enum_list      = enum_protocol,
1406                 .flags          = FLAG_ADVANCED,
1407         },
1408         {
1409                 .label          = "min protocol",
1410                 .type           = P_ENUM,
1411                 .p_class        = P_GLOBAL,
1412                 .offset         = GLOBAL_VAR(srv_minprotocol),
1413                 .special        = NULL,
1414                 .enum_list      = enum_protocol,
1415                 .flags          = FLAG_ADVANCED,
1416         },
1417         {
1418                 .label          = "client max protocol",
1419                 .type           = P_ENUM,
1420                 .p_class        = P_GLOBAL,
1421                 .offset         = GLOBAL_VAR(cli_maxprotocol),
1422                 .special        = NULL,
1423                 .enum_list      = enum_protocol,
1424                 .flags          = FLAG_ADVANCED,
1425         },
1426         {
1427                 .label          = "client min protocol",
1428                 .type           = P_ENUM,
1429                 .p_class        = P_GLOBAL,
1430                 .offset         = GLOBAL_VAR(cli_minprotocol),
1431                 .special        = NULL,
1432                 .enum_list      = enum_protocol,
1433                 .flags          = FLAG_ADVANCED,
1434         },
1435         {
1436                 .label          = "unicode",
1437                 .type           = P_BOOL,
1438                 .p_class        = P_GLOBAL,
1439                 .offset         = GLOBAL_VAR(bUnicode),
1440                 .special        = NULL,
1441                 .enum_list      = NULL
1442         },
1443         {
1444                 .label          = "min receivefile size",
1445                 .type           = P_BYTES,
1446                 .p_class        = P_GLOBAL,
1447                 .offset         = GLOBAL_VAR(iminreceivefile),
1448                 .special        = NULL,
1449                 .enum_list      = NULL,
1450                 .flags          = FLAG_ADVANCED,
1451         },
1452         {
1453                 .label          = "read raw",
1454                 .type           = P_BOOL,
1455                 .p_class        = P_GLOBAL,
1456                 .offset         = GLOBAL_VAR(bReadRaw),
1457                 .special        = NULL,
1458                 .enum_list      = NULL,
1459                 .flags          = FLAG_ADVANCED,
1460         },
1461         {
1462                 .label          = "write raw",
1463                 .type           = P_BOOL,
1464                 .p_class        = P_GLOBAL,
1465                 .offset         = GLOBAL_VAR(bWriteRaw),
1466                 .special        = NULL,
1467                 .enum_list      = NULL,
1468                 .flags          = FLAG_ADVANCED,
1469         },
1470         {
1471                 .label          = "disable netbios",
1472                 .type           = P_BOOL,
1473                 .p_class        = P_GLOBAL,
1474                 .offset         = GLOBAL_VAR(bDisableNetbios),
1475                 .special        = NULL,
1476                 .enum_list      = NULL,
1477                 .flags          = FLAG_ADVANCED,
1478         },
1479         {
1480                 .label          = "reset on zero vc",
1481                 .type           = P_BOOL,
1482                 .p_class        = P_GLOBAL,
1483                 .offset         = GLOBAL_VAR(bResetOnZeroVC),
1484                 .special        = NULL,
1485                 .enum_list      = NULL,
1486                 .flags          = FLAG_ADVANCED,
1487         },
1488         {
1489                 .label          = "log writeable files on exit",
1490                 .type           = P_BOOL,
1491                 .p_class        = P_GLOBAL,
1492                 .offset         = GLOBAL_VAR(bLogWriteableFilesOnExit),
1493                 .special        = NULL,
1494                 .enum_list      = NULL,
1495                 .flags          = FLAG_ADVANCED,
1496         },
1497         {
1498                 .label          = "acl compatibility",
1499                 .type           = P_ENUM,
1500                 .p_class        = P_GLOBAL,
1501                 .offset         = GLOBAL_VAR(iAclCompat),
1502                 .special        = NULL,
1503                 .enum_list      = enum_acl_compat_vals,
1504                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1505         },
1506         {
1507                 .label          = "defer sharing violations",
1508                 .type           = P_BOOL,
1509                 .p_class        = P_GLOBAL,
1510                 .offset         = GLOBAL_VAR(bDeferSharingViolations),
1511                 .special        = NULL,
1512                 .enum_list      = NULL,
1513                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1514         },
1515         {
1516                 .label          = "ea support",
1517                 .type           = P_BOOL,
1518                 .p_class        = P_LOCAL,
1519                 .offset         = LOCAL_VAR(bEASupport),
1520                 .special        = NULL,
1521                 .enum_list      = NULL,
1522                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1523         },
1524         {
1525                 .label          = "nt acl support",
1526                 .type           = P_BOOL,
1527                 .p_class        = P_LOCAL,
1528                 .offset         = LOCAL_VAR(bNTAclSupport),
1529                 .special        = NULL,
1530                 .enum_list      = NULL,
1531                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1532         },
1533         {
1534                 .label          = "nt pipe support",
1535                 .type           = P_BOOL,
1536                 .p_class        = P_GLOBAL,
1537                 .offset         = GLOBAL_VAR(bNTPipeSupport),
1538                 .special        = NULL,
1539                 .enum_list      = NULL,
1540                 .flags          = FLAG_ADVANCED,
1541         },
1542         {
1543                 .label          = "nt status support",
1544                 .type           = P_BOOL,
1545                 .p_class        = P_GLOBAL,
1546                 .offset         = GLOBAL_VAR(bNTStatusSupport),
1547                 .special        = NULL,
1548                 .enum_list      = NULL,
1549                 .flags          = FLAG_ADVANCED,
1550         },
1551         {
1552                 .label          = "profile acls",
1553                 .type           = P_BOOL,
1554                 .p_class        = P_LOCAL,
1555                 .offset         = LOCAL_VAR(bProfileAcls),
1556                 .special        = NULL,
1557                 .enum_list      = NULL,
1558                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1559         },
1560         {
1561                 .label          = "map acl inherit",
1562                 .type           = P_BOOL,
1563                 .p_class        = P_LOCAL,
1564                 .offset         = LOCAL_VAR(bMap_acl_inherit),
1565                 .special        = NULL,
1566                 .enum_list      = NULL,
1567                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1568         },
1569         {
1570                 .label          = "afs share",
1571                 .type           = P_BOOL,
1572                 .p_class        = P_LOCAL,
1573                 .offset         = LOCAL_VAR(bAfs_Share),
1574                 .special        = NULL,
1575                 .enum_list      = NULL,
1576                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1577         },
1578         {
1579                 .label          = "max mux",
1580                 .type           = P_INTEGER,
1581                 .p_class        = P_GLOBAL,
1582                 .offset         = GLOBAL_VAR(max_mux),
1583                 .special        = NULL,
1584                 .enum_list      = NULL,
1585                 .flags          = FLAG_ADVANCED,
1586         },
1587         {
1588                 .label          = "max xmit",
1589                 .type           = P_BYTES,
1590                 .p_class        = P_GLOBAL,
1591                 .offset         = GLOBAL_VAR(max_xmit),
1592                 .special        = NULL,
1593                 .enum_list      = NULL,
1594                 .flags          = FLAG_ADVANCED,
1595         },
1596         {
1597                 .label          = "name resolve order",
1598                 .type           = P_LIST,
1599                 .p_class        = P_GLOBAL,
1600                 .offset         = GLOBAL_VAR(szNameResolveOrder),
1601                 .special        = NULL,
1602                 .enum_list      = NULL,
1603                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
1604         },
1605         {
1606                 .label          = "max ttl",
1607                 .type           = P_INTEGER,
1608                 .p_class        = P_GLOBAL,
1609                 .offset         = GLOBAL_VAR(max_ttl),
1610                 .special        = NULL,
1611                 .enum_list      = NULL,
1612                 .flags          = FLAG_ADVANCED,
1613         },
1614         {
1615                 .label          = "max wins ttl",
1616                 .type           = P_INTEGER,
1617                 .p_class        = P_GLOBAL,
1618                 .offset         = GLOBAL_VAR(max_wins_ttl),
1619                 .special        = NULL,
1620                 .enum_list      = NULL,
1621                 .flags          = FLAG_ADVANCED,
1622         },
1623         {
1624                 .label          = "min wins ttl",
1625                 .type           = P_INTEGER,
1626                 .p_class        = P_GLOBAL,
1627                 .offset         = GLOBAL_VAR(min_wins_ttl),
1628                 .special        = NULL,
1629                 .enum_list      = NULL,
1630                 .flags          = FLAG_ADVANCED,
1631         },
1632         {
1633                 .label          = "time server",
1634                 .type           = P_BOOL,
1635                 .p_class        = P_GLOBAL,
1636                 .offset         = GLOBAL_VAR(bTimeServer),
1637                 .special        = NULL,
1638                 .enum_list      = NULL,
1639                 .flags          = FLAG_ADVANCED,
1640         },
1641         {
1642                 .label          = "unix extensions",
1643                 .type           = P_BOOL,
1644                 .p_class        = P_GLOBAL,
1645                 .offset         = GLOBAL_VAR(bUnixExtensions),
1646                 .special        = NULL,
1647                 .enum_list      = NULL,
1648                 .flags          = FLAG_ADVANCED,
1649         },
1650         {
1651                 .label          = "use spnego",
1652                 .type           = P_BOOL,
1653                 .p_class        = P_GLOBAL,
1654                 .offset         = GLOBAL_VAR(bUseSpnego),
1655                 .special        = NULL,
1656                 .enum_list      = NULL,
1657                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
1658         },
1659         {
1660                 .label          = "client signing",
1661                 .type           = P_ENUM,
1662                 .p_class        = P_GLOBAL,
1663                 .offset         = GLOBAL_VAR(client_signing),
1664                 .special        = NULL,
1665                 .enum_list      = enum_smb_signing_vals,
1666                 .flags          = FLAG_ADVANCED,
1667         },
1668         {
1669                 .label          = "server signing",
1670                 .type           = P_ENUM,
1671                 .p_class        = P_GLOBAL,
1672                 .offset         = GLOBAL_VAR(server_signing),
1673                 .special        = NULL,
1674                 .enum_list      = enum_smb_signing_vals,
1675                 .flags          = FLAG_ADVANCED,
1676         },
1677         {
1678                 .label          = "smb encrypt",
1679                 .type           = P_ENUM,
1680                 .p_class        = P_LOCAL,
1681                 .offset         = LOCAL_VAR(ismb_encrypt),
1682                 .special        = NULL,
1683                 .enum_list      = enum_smb_signing_vals,
1684                 .flags          = FLAG_ADVANCED,
1685         },
1686         {
1687                 .label          = "client use spnego",
1688                 .type           = P_BOOL,
1689                 .p_class        = P_GLOBAL,
1690                 .offset         = GLOBAL_VAR(bClientUseSpnego),
1691                 .special        = NULL,
1692                 .enum_list      = NULL,
1693                 .flags          = FLAG_ADVANCED,
1694         },
1695         {
1696                 .label          = "client ldap sasl wrapping",
1697                 .type           = P_ENUM,
1698                 .p_class        = P_GLOBAL,
1699                 .offset         = GLOBAL_VAR(client_ldap_sasl_wrapping),
1700                 .special        = NULL,
1701                 .enum_list      = enum_ldap_sasl_wrapping,
1702                 .flags          = FLAG_ADVANCED,
1703         },
1704         {
1705                 .label          = "enable asu support",
1706                 .type           = P_BOOL,
1707                 .p_class        = P_GLOBAL,
1708                 .offset         = GLOBAL_VAR(bASUSupport),
1709                 .special        = NULL,
1710                 .enum_list      = NULL,
1711                 .flags          = FLAG_ADVANCED,
1712         },
1713         {
1714                 .label          = "svcctl list",
1715                 .type           = P_LIST,
1716                 .p_class        = P_GLOBAL,
1717                 .offset         = GLOBAL_VAR(szServicesList),
1718                 .special        = NULL,
1719                 .enum_list      = NULL,
1720                 .flags          = FLAG_ADVANCED,
1721         },
1722         {
1723                 .label          = "cldap port",
1724                 .type           = P_INTEGER,
1725                 .p_class        = P_GLOBAL,
1726                 .offset         = GLOBAL_VAR(cldap_port),
1727                 .special        = NULL,
1728                 .enum_list      = NULL
1729         },
1730         {
1731                 .label          = "dgram port",
1732                 .type           = P_INTEGER,
1733                 .p_class        = P_GLOBAL,
1734                 .offset         = GLOBAL_VAR(dgram_port),
1735                 .special        = NULL,
1736                 .enum_list      = NULL
1737         },
1738         {
1739                 .label          = "nbt port",
1740                 .type           = P_INTEGER,
1741                 .p_class        = P_GLOBAL,
1742                 .offset         = GLOBAL_VAR(nbt_port),
1743                 .special        = NULL,
1744                 .enum_list      = NULL
1745         },
1746         {
1747                 .label          = "krb5 port",
1748                 .type           = P_INTEGER,
1749                 .p_class        = P_GLOBAL,
1750                 .offset         = GLOBAL_VAR(krb5_port),
1751                 .special        = NULL,
1752                 .enum_list      = NULL
1753         },
1754         {
1755                 .label          = "kpasswd port",
1756                 .type           = P_INTEGER,
1757                 .p_class        = P_GLOBAL,
1758                 .offset         = GLOBAL_VAR(kpasswd_port),
1759                 .special        = NULL,
1760                 .enum_list      = NULL
1761         },
1762         {
1763                 .label          = "web port",
1764                 .type           = P_INTEGER,
1765                 .p_class        = P_GLOBAL,
1766                 .offset         = GLOBAL_VAR(web_port),
1767                 .special        = NULL,
1768                 .enum_list      = NULL
1769         },
1770         {
1771                 .label          = "rpc big endian",
1772                 .type           = P_BOOL,
1773                 .p_class        = P_GLOBAL,
1774                 .offset         = GLOBAL_VAR(bRpcBigEndian),
1775                 .special        = NULL,
1776                 .enum_list      = NULL
1777         },
1778         {
1779                 .label          = "durable handles",
1780                 .type           = P_BOOL,
1781                 .p_class        = P_LOCAL,
1782                 .offset         = LOCAL_VAR(bDurableHandles),
1783                 .special        = NULL,
1784                 .enum_list      = NULL,
1785                 .flags          = FLAG_ADVANCED,
1786         },
1787
1788         {N_("Tuning Options"), P_SEP, P_SEPARATOR},
1789
1790         {
1791                 .label          = "block size",
1792                 .type           = P_BYTES,
1793                 .p_class        = P_LOCAL,
1794                 .offset         = LOCAL_VAR(iBlock_size),
1795                 .special        = NULL,
1796                 .enum_list      = NULL,
1797                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1798         },
1799         {
1800                 .label          = "deadtime",
1801                 .type           = P_INTEGER,
1802                 .p_class        = P_GLOBAL,
1803                 .offset         = GLOBAL_VAR(deadtime),
1804                 .special        = NULL,
1805                 .enum_list      = NULL,
1806                 .flags          = FLAG_ADVANCED,
1807         },
1808         {
1809                 .label          = "getwd cache",
1810                 .type           = P_BOOL,
1811                 .p_class        = P_GLOBAL,
1812                 .offset         = GLOBAL_VAR(getwd_cache),
1813                 .special        = NULL,
1814                 .enum_list      = NULL,
1815                 .flags          = FLAG_ADVANCED,
1816         },
1817         {
1818                 .label          = "keepalive",
1819                 .type           = P_INTEGER,
1820                 .p_class        = P_GLOBAL,
1821                 .offset         = GLOBAL_VAR(iKeepalive),
1822                 .special        = NULL,
1823                 .enum_list      = NULL,
1824                 .flags          = FLAG_ADVANCED,
1825         },
1826         {
1827                 .label          = "change notify",
1828                 .type           = P_BOOL,
1829                 .p_class        = P_LOCAL,
1830                 .offset         = LOCAL_VAR(bChangeNotify),
1831                 .special        = NULL,
1832                 .enum_list      = NULL,
1833                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1834         },
1835         {
1836                 .label          = "directory name cache size",
1837                 .type           = P_INTEGER,
1838                 .p_class        = P_LOCAL,
1839                 .offset         = LOCAL_VAR(iDirectoryNameCacheSize),
1840                 .special        = NULL,
1841                 .enum_list      = NULL,
1842                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1843         },
1844         {
1845                 .label          = "kernel change notify",
1846                 .type           = P_BOOL,
1847                 .p_class        = P_LOCAL,
1848                 .offset         = LOCAL_VAR(bKernelChangeNotify),
1849                 .special        = NULL,
1850                 .enum_list      = NULL,
1851                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1852         },
1853         {
1854                 .label          = "lpq cache time",
1855                 .type           = P_INTEGER,
1856                 .p_class        = P_GLOBAL,
1857                 .offset         = GLOBAL_VAR(lpqcachetime),
1858                 .special        = NULL,
1859                 .enum_list      = NULL,
1860                 .flags          = FLAG_ADVANCED,
1861         },
1862         {
1863                 .label          = "max smbd processes",
1864                 .type           = P_INTEGER,
1865                 .p_class        = P_GLOBAL,
1866                 .offset         = GLOBAL_VAR(iMaxSmbdProcesses),
1867                 .special        = NULL,
1868                 .enum_list      = NULL,
1869                 .flags          = FLAG_ADVANCED,
1870         },
1871         {
1872                 .label          = "max connections",
1873                 .type           = P_INTEGER,
1874                 .p_class        = P_LOCAL,
1875                 .offset         = LOCAL_VAR(iMaxConnections),
1876                 .special        = NULL,
1877                 .enum_list      = NULL,
1878                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1879         },
1880         {
1881                 .label          = "max disk size",
1882                 .type           = P_BYTES,
1883                 .p_class        = P_GLOBAL,
1884                 .offset         = GLOBAL_VAR(maxdisksize),
1885                 .special        = NULL,
1886                 .enum_list      = NULL,
1887                 .flags          = FLAG_ADVANCED,
1888         },
1889         {
1890                 .label          = "max open files",
1891                 .type           = P_INTEGER,
1892                 .p_class        = P_GLOBAL,
1893                 .offset         = GLOBAL_VAR(max_open_files),
1894                 .special        = NULL,
1895                 .enum_list      = NULL,
1896                 .flags          = FLAG_ADVANCED,
1897         },
1898         {
1899                 .label          = "min print space",
1900                 .type           = P_INTEGER,
1901                 .p_class        = P_LOCAL,
1902                 .offset         = LOCAL_VAR(iMinPrintSpace),
1903                 .special        = NULL,
1904                 .enum_list      = NULL,
1905                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
1906         },
1907         {
1908                 .label          = "socket options",
1909                 .type           = P_STRING,
1910                 .p_class        = P_GLOBAL,
1911                 .offset         = GLOBAL_VAR(socket_options),
1912                 .special        = NULL,
1913                 .enum_list      = NULL,
1914                 .flags          = FLAG_ADVANCED,
1915         },
1916         {
1917                 .label          = "strict allocate",
1918                 .type           = P_BOOL,
1919                 .p_class        = P_LOCAL,
1920                 .offset         = LOCAL_VAR(bStrictAllocate),
1921                 .special        = NULL,
1922                 .enum_list      = NULL,
1923                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1924         },
1925         {
1926                 .label          = "strict sync",
1927                 .type           = P_BOOL,
1928                 .p_class        = P_LOCAL,
1929                 .offset         = LOCAL_VAR(bStrictSync),
1930                 .special        = NULL,
1931                 .enum_list      = NULL,
1932                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1933         },
1934         {
1935                 .label          = "sync always",
1936                 .type           = P_BOOL,
1937                 .p_class        = P_LOCAL,
1938                 .offset         = LOCAL_VAR(bSyncAlways),
1939                 .special        = NULL,
1940                 .enum_list      = NULL,
1941                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1942         },
1943         {
1944                 .label          = "use mmap",
1945                 .type           = P_BOOL,
1946                 .p_class        = P_GLOBAL,
1947                 .offset         = GLOBAL_VAR(bUseMmap),
1948                 .special        = NULL,
1949                 .enum_list      = NULL,
1950                 .flags          = FLAG_ADVANCED,
1951         },
1952         {
1953                 .label          = "use sendfile",
1954                 .type           = P_BOOL,
1955                 .p_class        = P_LOCAL,
1956                 .offset         = LOCAL_VAR(bUseSendfile),
1957                 .special        = NULL,
1958                 .enum_list      = NULL,
1959                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1960         },
1961         {
1962                 .label          = "hostname lookups",
1963                 .type           = P_BOOL,
1964                 .p_class        = P_GLOBAL,
1965                 .offset         = GLOBAL_VAR(bHostnameLookups),
1966                 .special        = NULL,
1967                 .enum_list      = NULL,
1968                 .flags          = FLAG_ADVANCED,
1969         },
1970         {
1971                 .label          = "write cache size",
1972                 .type           = P_BYTES,
1973                 .p_class        = P_LOCAL,
1974                 .offset         = LOCAL_VAR(iWriteCacheSize),
1975                 .special        = NULL,
1976                 .enum_list      = NULL,
1977                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1978         },
1979         {
1980                 .label          = "name cache timeout",
1981                 .type           = P_INTEGER,
1982                 .p_class        = P_GLOBAL,
1983                 .offset         = GLOBAL_VAR(name_cache_timeout),
1984                 .special        = NULL,
1985                 .enum_list      = NULL,
1986                 .flags          = FLAG_ADVANCED,
1987         },
1988         {
1989                 .label          = "ctdbd socket",
1990                 .type           = P_STRING,
1991                 .p_class        = P_GLOBAL,
1992                 .offset         = GLOBAL_VAR(ctdbdSocket),
1993                 .special        = NULL,
1994                 .enum_list      = NULL,
1995                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1996         },
1997         {
1998                 .label          = "cluster addresses",
1999                 .type           = P_LIST,
2000                 .p_class        = P_GLOBAL,
2001                 .offset         = GLOBAL_VAR(szClusterAddresses),
2002                 .special        = NULL,
2003                 .enum_list      = NULL,
2004                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
2005         },
2006         {
2007                 .label          = "clustering",
2008                 .type           = P_BOOL,
2009                 .p_class        = P_GLOBAL,
2010                 .offset         = GLOBAL_VAR(clustering),
2011                 .special        = NULL,
2012                 .enum_list      = NULL,
2013                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
2014         },
2015         {
2016                 .label          = "ctdb timeout",
2017                 .type           = P_INTEGER,
2018                 .p_class        = P_GLOBAL,
2019                 .offset         = GLOBAL_VAR(ctdb_timeout),
2020                 .special        = NULL,
2021                 .enum_list      = NULL,
2022                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
2023         },
2024         {
2025                 .label          = "ctdb locktime warn threshold",
2026                 .type           = P_INTEGER,
2027                 .p_class        = P_GLOBAL,
2028                 .offset         = GLOBAL_VAR(ctdb_locktime_warn_threshold),
2029                 .special        = NULL,
2030                 .enum_list      = NULL,
2031                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
2032         },
2033         {
2034                 .label          = "smb2 max read",
2035                 .type           = P_BYTES,
2036                 .p_class        = P_GLOBAL,
2037                 .offset         = GLOBAL_VAR(ismb2_max_read),
2038                 .special        = NULL,
2039                 .enum_list      = NULL,
2040                 .flags          = FLAG_ADVANCED,
2041         },
2042         {
2043                 .label          = "smb2 max write",
2044                 .type           = P_BYTES,
2045                 .p_class        = P_GLOBAL,
2046                 .offset         = GLOBAL_VAR(ismb2_max_write),
2047                 .special        = NULL,
2048                 .enum_list      = NULL,
2049                 .flags          = FLAG_ADVANCED,
2050         },
2051         {
2052                 .label          = "smb2 max trans",
2053                 .type           = P_BYTES,
2054                 .p_class        = P_GLOBAL,
2055                 .offset         = GLOBAL_VAR(ismb2_max_trans),
2056                 .special        = NULL,
2057                 .enum_list      = NULL,
2058                 .flags          = FLAG_ADVANCED,
2059         },
2060         {
2061                 .label          = "smb2 max credits",
2062                 .type           = P_INTEGER,
2063                 .p_class        = P_GLOBAL,
2064                 .offset         = GLOBAL_VAR(ismb2_max_credits),
2065                 .special        = NULL,
2066                 .enum_list      = NULL,
2067                 .flags          = FLAG_ADVANCED,
2068         },
2069
2070         {N_("Printing Options"), P_SEP, P_SEPARATOR},
2071
2072         {
2073                 .label          = "max reported print jobs",
2074                 .type           = P_INTEGER,
2075                 .p_class        = P_LOCAL,
2076                 .offset         = LOCAL_VAR(iMaxReportedPrintJobs),
2077                 .special        = NULL,
2078                 .enum_list      = NULL,
2079                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2080         },
2081         {
2082                 .label          = "max print jobs",
2083                 .type           = P_INTEGER,
2084                 .p_class        = P_LOCAL,
2085                 .offset         = LOCAL_VAR(iMaxPrintJobs),
2086                 .special        = NULL,
2087                 .enum_list      = NULL,
2088                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2089         },
2090         {
2091                 .label          = "load printers",
2092                 .type           = P_BOOL,
2093                 .p_class        = P_GLOBAL,
2094                 .offset         = GLOBAL_VAR(bLoadPrinters),
2095                 .special        = NULL,
2096                 .enum_list      = NULL,
2097                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2098         },
2099         {
2100                 .label          = "printcap cache time",
2101                 .type           = P_INTEGER,
2102                 .p_class        = P_GLOBAL,
2103                 .offset         = GLOBAL_VAR(PrintcapCacheTime),
2104                 .special        = NULL,
2105                 .enum_list      = NULL,
2106                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2107         },
2108         {
2109                 .label          = "printcap name",
2110                 .type           = P_STRING,
2111                 .p_class        = P_GLOBAL,
2112                 .offset         = GLOBAL_VAR(szPrintcapname),
2113                 .special        = NULL,
2114                 .enum_list      = NULL,
2115                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2116         },
2117         {
2118                 .label          = "printcap",
2119                 .type           = P_STRING,
2120                 .p_class        = P_GLOBAL,
2121                 .offset         = GLOBAL_VAR(szPrintcapname),
2122                 .special        = NULL,
2123                 .enum_list      = NULL,
2124                 .flags          = FLAG_HIDE,
2125         },
2126         {
2127                 .label          = "printable",
2128                 .type           = P_BOOL,
2129                 .p_class        = P_LOCAL,
2130                 .offset         = LOCAL_VAR(bPrint_ok),
2131                 .special        = NULL,
2132                 .enum_list      = NULL,
2133                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2134         },
2135         {
2136                 .label          = "print notify backchannel",
2137                 .type           = P_BOOL,
2138                 .p_class        = P_LOCAL,
2139                 .offset         = LOCAL_VAR(bPrintNotifyBackchannel),
2140                 .special        = NULL,
2141                 .enum_list      = NULL,
2142                 .flags          = FLAG_ADVANCED,
2143         },
2144         {
2145                 .label          = "print ok",
2146                 .type           = P_BOOL,
2147                 .p_class        = P_LOCAL,
2148                 .offset         = LOCAL_VAR(bPrint_ok),
2149                 .special        = NULL,
2150                 .enum_list      = NULL,
2151                 .flags          = FLAG_HIDE,
2152         },
2153         {
2154                 .label          = "printing",
2155                 .type           = P_ENUM,
2156                 .p_class        = P_LOCAL,
2157                 .offset         = LOCAL_VAR(iPrinting),
2158                 .special        = handle_printing,
2159                 .enum_list      = enum_printing,
2160                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2161         },
2162         {
2163                 .label          = "cups options",
2164                 .type           = P_STRING,
2165                 .p_class        = P_LOCAL,
2166                 .offset         = LOCAL_VAR(szCupsOptions),
2167                 .special        = NULL,
2168                 .enum_list      = NULL,
2169                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2170         },
2171         {
2172                 .label          = "cups server",
2173                 .type           = P_STRING,
2174                 .p_class        = P_GLOBAL,
2175                 .offset         = GLOBAL_VAR(szCupsServer),
2176                 .special        = NULL,
2177                 .enum_list      = NULL,
2178                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2179         },
2180         {
2181                 .label          = "cups encrypt",
2182                 .type           = P_ENUM,
2183                 .p_class        = P_GLOBAL,
2184                 .offset         = GLOBAL_VAR(CupsEncrypt),
2185                 .special        = NULL,
2186                 .enum_list      = enum_bool_auto,
2187                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2188         },
2189         {
2190
2191                 .label          = "cups connection timeout",
2192                 .type           = P_INTEGER,
2193                 .p_class        = P_GLOBAL,
2194                 .offset         = GLOBAL_VAR(cups_connection_timeout),
2195                 .special        = NULL,
2196                 .enum_list      = NULL,
2197                 .flags          = FLAG_ADVANCED,
2198         },
2199         {
2200                 .label          = "iprint server",
2201                 .type           = P_STRING,
2202                 .p_class        = P_GLOBAL,
2203                 .offset         = GLOBAL_VAR(szIPrintServer),
2204                 .special        = NULL,
2205                 .enum_list      = NULL,
2206                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2207         },
2208         {
2209                 .label          = "print command",
2210                 .type           = P_STRING,
2211                 .p_class        = P_LOCAL,
2212                 .offset         = LOCAL_VAR(szPrintcommand),
2213                 .special        = NULL,
2214                 .enum_list      = NULL,
2215                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2216         },
2217         {
2218                 .label          = "disable spoolss",
2219                 .type           = P_BOOL,
2220                 .p_class        = P_GLOBAL,
2221                 .offset         = GLOBAL_VAR(bDisableSpoolss),
2222                 .special        = NULL,
2223                 .enum_list      = NULL,
2224                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2225         },
2226         {
2227                 .label          = "enable spoolss",
2228                 .type           = P_BOOLREV,
2229                 .p_class        = P_GLOBAL,
2230                 .offset         = GLOBAL_VAR(bDisableSpoolss),
2231                 .special        = NULL,
2232                 .enum_list      = NULL,
2233                 .flags          = FLAG_HIDE,
2234         },
2235         {
2236                 .label          = "lpq command",
2237                 .type           = P_STRING,
2238                 .p_class        = P_LOCAL,
2239                 .offset         = LOCAL_VAR(szLpqcommand),
2240                 .special        = NULL,
2241                 .enum_list      = NULL,
2242                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2243         },
2244         {
2245                 .label          = "lprm command",
2246                 .type           = P_STRING,
2247                 .p_class        = P_LOCAL,
2248                 .offset         = LOCAL_VAR(szLprmcommand),
2249                 .special        = NULL,
2250                 .enum_list      = NULL,
2251                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2252         },
2253         {
2254                 .label          = "lppause command",
2255                 .type           = P_STRING,
2256                 .p_class        = P_LOCAL,
2257                 .offset         = LOCAL_VAR(szLppausecommand),
2258                 .special        = NULL,
2259                 .enum_list      = NULL,
2260                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2261         },
2262         {
2263                 .label          = "lpresume command",
2264                 .type           = P_STRING,
2265                 .p_class        = P_LOCAL,
2266                 .offset         = LOCAL_VAR(szLpresumecommand),
2267                 .special        = NULL,
2268                 .enum_list      = NULL,
2269                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2270         },
2271         {
2272                 .label          = "queuepause command",
2273                 .type           = P_STRING,
2274                 .p_class        = P_LOCAL,
2275                 .offset         = LOCAL_VAR(szQueuepausecommand),
2276                 .special        = NULL,
2277                 .enum_list      = NULL,
2278                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2279         },
2280         {
2281                 .label          = "queueresume command",
2282                 .type           = P_STRING,
2283                 .p_class        = P_LOCAL,
2284                 .offset         = LOCAL_VAR(szQueueresumecommand),
2285                 .special        = NULL,
2286                 .enum_list      = NULL,
2287                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2288         },
2289         {
2290                 .label          = "addport command",
2291                 .type           = P_STRING,
2292                 .p_class        = P_GLOBAL,
2293                 .offset         = GLOBAL_VAR(szAddPortCommand),
2294                 .special        = NULL,
2295                 .enum_list      = NULL,
2296                 .flags          = FLAG_ADVANCED,
2297         },
2298         {
2299                 .label          = "enumports command",
2300                 .type           = P_STRING,
2301                 .p_class        = P_GLOBAL,
2302                 .offset         = GLOBAL_VAR(szEnumPortsCommand),
2303                 .special        = NULL,
2304                 .enum_list      = NULL,
2305                 .flags          = FLAG_ADVANCED,
2306         },
2307         {
2308                 .label          = "addprinter command",
2309                 .type           = P_STRING,
2310                 .p_class        = P_GLOBAL,
2311                 .offset         = GLOBAL_VAR(szAddPrinterCommand),
2312                 .special        = NULL,
2313                 .enum_list      = NULL,
2314                 .flags          = FLAG_ADVANCED,
2315         },
2316         {
2317                 .label          = "deleteprinter command",
2318                 .type           = P_STRING,
2319                 .p_class        = P_GLOBAL,
2320                 .offset         = GLOBAL_VAR(szDeletePrinterCommand),
2321                 .special        = NULL,
2322                 .enum_list      = NULL,
2323                 .flags          = FLAG_ADVANCED,
2324         },
2325         {
2326                 .label          = "show add printer wizard",
2327                 .type           = P_BOOL,
2328                 .p_class        = P_GLOBAL,
2329                 .offset         = GLOBAL_VAR(bMsAddPrinterWizard),
2330                 .special        = NULL,
2331                 .enum_list      = NULL,
2332                 .flags          = FLAG_ADVANCED,
2333         },
2334         {
2335                 .label          = "os2 driver map",
2336                 .type           = P_STRING,
2337                 .p_class        = P_GLOBAL,
2338                 .offset         = GLOBAL_VAR(szOs2DriverMap),
2339                 .special        = NULL,
2340                 .enum_list      = NULL,
2341                 .flags          = FLAG_ADVANCED,
2342         },
2343
2344         {
2345                 .label          = "printer name",
2346                 .type           = P_STRING,
2347                 .p_class        = P_LOCAL,
2348                 .offset         = LOCAL_VAR(szPrintername),
2349                 .special        = NULL,
2350                 .enum_list      = NULL,
2351                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2352         },
2353         {
2354                 .label          = "printer",
2355                 .type           = P_STRING,
2356                 .p_class        = P_LOCAL,
2357                 .offset         = LOCAL_VAR(szPrintername),
2358                 .special        = NULL,
2359                 .enum_list      = NULL,
2360                 .flags          = FLAG_HIDE,
2361         },
2362         {
2363                 .label          = "use client driver",
2364                 .type           = P_BOOL,
2365                 .p_class        = P_LOCAL,
2366                 .offset         = LOCAL_VAR(bUseClientDriver),
2367                 .special        = NULL,
2368                 .enum_list      = NULL,
2369                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2370         },
2371         {
2372                 .label          = "default devmode",
2373                 .type           = P_BOOL,
2374                 .p_class        = P_LOCAL,
2375                 .offset         = LOCAL_VAR(bDefaultDevmode),
2376                 .special        = NULL,
2377                 .enum_list      = NULL,
2378                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2379         },
2380         {
2381                 .label          = "force printername",
2382                 .type           = P_BOOL,
2383                 .p_class        = P_LOCAL,
2384                 .offset         = LOCAL_VAR(bForcePrintername),
2385                 .special        = NULL,
2386                 .enum_list      = NULL,
2387                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2388         },
2389         {
2390                 .label          = "printjob username",
2391                 .type           = P_STRING,
2392                 .p_class        = P_LOCAL,
2393                 .offset         = LOCAL_VAR(szPrintjobUsername),
2394                 .special        = NULL,
2395                 .enum_list      = NULL,
2396                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2397         },
2398
2399         {N_("Filename Handling"), P_SEP, P_SEPARATOR},
2400
2401         {
2402                 .label          = "mangling method",
2403                 .type           = P_STRING,
2404                 .p_class        = P_GLOBAL,
2405                 .offset         = GLOBAL_VAR(szManglingMethod),
2406                 .special        = NULL,
2407                 .enum_list      = NULL,
2408                 .flags          = FLAG_ADVANCED,
2409         },
2410         {
2411                 .label          = "mangle prefix",
2412                 .type           = P_INTEGER,
2413                 .p_class        = P_GLOBAL,
2414                 .offset         = GLOBAL_VAR(mangle_prefix),
2415                 .special        = NULL,
2416                 .enum_list      = NULL,
2417                 .flags          = FLAG_ADVANCED,
2418         },
2419
2420         {
2421                 .label          = "default case",
2422                 .type           = P_ENUM,
2423                 .p_class        = P_LOCAL,
2424                 .offset         = LOCAL_VAR(iDefaultCase),
2425                 .special        = NULL,
2426                 .enum_list      = enum_case,
2427                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
2428         },
2429         {
2430                 .label          = "case sensitive",
2431                 .type           = P_ENUM,
2432                 .p_class        = P_LOCAL,
2433                 .offset         = LOCAL_VAR(iCaseSensitive),
2434                 .special        = NULL,
2435                 .enum_list      = enum_bool_auto,
2436                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2437         },
2438         {
2439                 .label          = "casesignames",
2440                 .type           = P_ENUM,
2441                 .p_class        = P_LOCAL,
2442                 .offset         = LOCAL_VAR(iCaseSensitive),
2443                 .special        = NULL,
2444                 .enum_list      = enum_bool_auto,
2445                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_HIDE,
2446         },
2447         {
2448                 .label          = "preserve case",
2449                 .type           = P_BOOL,
2450                 .p_class        = P_LOCAL,
2451                 .offset         = LOCAL_VAR(bCasePreserve),
2452                 .special        = NULL,
2453                 .enum_list      = NULL,
2454                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2455         },
2456         {
2457                 .label          = "short preserve case",
2458                 .type           = P_BOOL,
2459                 .p_class        = P_LOCAL,
2460                 .offset         = LOCAL_VAR(bShortCasePreserve),
2461                 .special        = NULL,
2462                 .enum_list      = NULL,
2463                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2464         },
2465         {
2466                 .label          = "mangling char",
2467                 .type           = P_CHAR,
2468                 .p_class        = P_LOCAL,
2469                 .offset         = LOCAL_VAR(magic_char),
2470                 .special        = NULL,
2471                 .enum_list      = NULL,
2472                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2473         },
2474         {
2475                 .label          = "hide dot files",
2476                 .type           = P_BOOL,
2477                 .p_class        = P_LOCAL,
2478                 .offset         = LOCAL_VAR(bHideDotFiles),
2479                 .special        = NULL,
2480                 .enum_list      = NULL,
2481                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2482         },
2483         {
2484                 .label          = "hide special files",
2485                 .type           = P_BOOL,
2486                 .p_class        = P_LOCAL,
2487                 .offset         = LOCAL_VAR(bHideSpecialFiles),
2488                 .special        = NULL,
2489                 .enum_list      = NULL,
2490                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2491         },
2492         {
2493                 .label          = "hide unreadable",
2494                 .type           = P_BOOL,
2495                 .p_class        = P_LOCAL,
2496                 .offset         = LOCAL_VAR(bHideUnReadable),
2497                 .special        = NULL,
2498                 .enum_list      = NULL,
2499                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2500         },
2501         {
2502                 .label          = "hide unwriteable files",
2503                 .type           = P_BOOL,
2504                 .p_class        = P_LOCAL,
2505                 .offset         = LOCAL_VAR(bHideUnWriteableFiles),
2506                 .special        = NULL,
2507                 .enum_list      = NULL,
2508                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2509         },
2510         {
2511                 .label          = "delete veto files",
2512                 .type           = P_BOOL,
2513                 .p_class        = P_LOCAL,
2514                 .offset         = LOCAL_VAR(bDeleteVetoFiles),
2515                 .special        = NULL,
2516                 .enum_list      = NULL,
2517                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2518         },
2519         {
2520                 .label          = "veto files",
2521                 .type           = P_STRING,
2522                 .p_class        = P_LOCAL,
2523                 .offset         = LOCAL_VAR(szVetoFiles),
2524                 .special        = NULL,
2525                 .enum_list      = NULL,
2526                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2527         },
2528         {
2529                 .label          = "hide files",
2530                 .type           = P_STRING,
2531                 .p_class        = P_LOCAL,
2532                 .offset         = LOCAL_VAR(szHideFiles),
2533                 .special        = NULL,
2534                 .enum_list      = NULL,
2535                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2536         },
2537         {
2538                 .label          = "veto oplock files",
2539                 .type           = P_STRING,
2540                 .p_class        = P_LOCAL,
2541                 .offset         = LOCAL_VAR(szVetoOplockFiles),
2542                 .special        = NULL,
2543                 .enum_list      = NULL,
2544                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2545         },
2546         {
2547                 .label          = "map archive",
2548                 .type           = P_BOOL,
2549                 .p_class        = P_LOCAL,
2550                 .offset         = LOCAL_VAR(bMap_archive),
2551                 .special        = NULL,
2552                 .enum_list      = NULL,
2553                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2554         },
2555         {
2556                 .label          = "map hidden",
2557                 .type           = P_BOOL,
2558                 .p_class        = P_LOCAL,
2559                 .offset         = LOCAL_VAR(bMap_hidden),
2560                 .special        = NULL,
2561                 .enum_list      = NULL,
2562                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2563         },
2564         {
2565                 .label          = "map system",
2566                 .type           = P_BOOL,
2567                 .p_class        = P_LOCAL,
2568                 .offset         = LOCAL_VAR(bMap_system),
2569                 .special        = NULL,
2570                 .enum_list      = NULL,
2571                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2572         },
2573         {
2574                 .label          = "map readonly",
2575                 .type           = P_ENUM,
2576                 .p_class        = P_LOCAL,
2577                 .offset         = LOCAL_VAR(iMap_readonly),
2578                 .special        = NULL,
2579                 .enum_list      = enum_map_readonly,
2580                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2581         },
2582         {
2583                 .label          = "mangled names",
2584                 .type           = P_BOOL,
2585                 .p_class        = P_LOCAL,
2586                 .offset         = LOCAL_VAR(bMangledNames),
2587                 .special        = NULL,
2588                 .enum_list      = NULL,
2589                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2590         },
2591         {
2592                 .label          = "max stat cache size",
2593                 .type           = P_INTEGER,
2594                 .p_class        = P_GLOBAL,
2595                 .offset         = GLOBAL_VAR(iMaxStatCacheSize),
2596                 .special        = NULL,
2597                 .enum_list      = NULL,
2598                 .flags          = FLAG_ADVANCED,
2599         },
2600         {
2601                 .label          = "stat cache",
2602                 .type           = P_BOOL,
2603                 .p_class        = P_GLOBAL,
2604                 .offset         = GLOBAL_VAR(bStatCache),
2605                 .special        = NULL,
2606                 .enum_list      = NULL,
2607                 .flags          = FLAG_ADVANCED,
2608         },
2609         {
2610                 .label          = "store dos attributes",
2611                 .type           = P_BOOL,
2612                 .p_class        = P_LOCAL,
2613                 .offset         = LOCAL_VAR(bStoreDosAttributes),
2614                 .special        = NULL,
2615                 .enum_list      = NULL,
2616                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2617         },
2618         {
2619                 .label          = "dmapi support",
2620                 .type           = P_BOOL,
2621                 .p_class        = P_LOCAL,
2622                 .offset         = LOCAL_VAR(bDmapiSupport),
2623                 .special        = NULL,
2624                 .enum_list      = NULL,
2625                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2626         },
2627
2628
2629         {N_("Domain Options"), P_SEP, P_SEPARATOR},
2630
2631         {
2632                 .label          = "machine password timeout",
2633                 .type           = P_INTEGER,
2634                 .p_class        = P_GLOBAL,
2635                 .offset         = GLOBAL_VAR(machine_password_timeout),
2636                 .special        = NULL,
2637                 .enum_list      = NULL,
2638                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
2639         },
2640
2641         {N_("Logon Options"), P_SEP, P_SEPARATOR},
2642
2643         {
2644                 .label          = "add user script",
2645                 .type           = P_STRING,
2646                 .p_class        = P_GLOBAL,
2647                 .offset         = GLOBAL_VAR(szAddUserScript),
2648                 .special        = NULL,
2649                 .enum_list      = NULL,
2650                 .flags          = FLAG_ADVANCED,
2651         },
2652         {
2653                 .label          = "rename user script",
2654                 .type           = P_STRING,
2655                 .p_class        = P_GLOBAL,
2656                 .offset         = GLOBAL_VAR(szRenameUserScript),
2657                 .special        = NULL,
2658                 .enum_list      = NULL,
2659                 .flags          = FLAG_ADVANCED,
2660         },
2661         {
2662                 .label          = "delete user script",
2663                 .type           = P_STRING,
2664                 .p_class        = P_GLOBAL,
2665                 .offset         = GLOBAL_VAR(szDelUserScript),
2666                 .special        = NULL,
2667                 .enum_list      = NULL,
2668                 .flags          = FLAG_ADVANCED,
2669         },
2670         {
2671                 .label          = "add group script",
2672                 .type           = P_STRING,
2673                 .p_class        = P_GLOBAL,
2674                 .offset         = GLOBAL_VAR(szAddGroupScript),
2675                 .special        = NULL,
2676                 .enum_list      = NULL,
2677                 .flags          = FLAG_ADVANCED,
2678         },
2679         {
2680                 .label          = "delete group script",
2681                 .type           = P_STRING,
2682                 .p_class        = P_GLOBAL,
2683                 .offset         = GLOBAL_VAR(szDelGroupScript),
2684                 .special        = NULL,
2685                 .enum_list      = NULL,
2686                 .flags          = FLAG_ADVANCED,
2687         },
2688         {
2689                 .label          = "add user to group script",
2690                 .type           = P_STRING,
2691                 .p_class        = P_GLOBAL,
2692                 .offset         = GLOBAL_VAR(szAddUserToGroupScript),
2693                 .special        = NULL,
2694                 .enum_list      = NULL,
2695                 .flags          = FLAG_ADVANCED,
2696         },
2697         {
2698                 .label          = "delete user from group script",
2699                 .type           = P_STRING,
2700                 .p_class        = P_GLOBAL,
2701                 .offset         = GLOBAL_VAR(szDelUserFromGroupScript),
2702                 .special        = NULL,
2703                 .enum_list      = NULL,
2704                 .flags          = FLAG_ADVANCED,
2705         },
2706         {
2707                 .label          = "set primary group script",
2708                 .type           = P_STRING,
2709                 .p_class        = P_GLOBAL,
2710                 .offset         = GLOBAL_VAR(szSetPrimaryGroupScript),
2711                 .special        = NULL,
2712                 .enum_list      = NULL,
2713                 .flags          = FLAG_ADVANCED,
2714         },
2715         {
2716                 .label          = "add machine script",
2717                 .type           = P_STRING,
2718                 .p_class        = P_GLOBAL,
2719                 .offset         = GLOBAL_VAR(szAddMachineScript),
2720                 .special        = NULL,
2721                 .enum_list      = NULL,
2722                 .flags          = FLAG_ADVANCED,
2723         },
2724         {
2725                 .label          = "shutdown script",
2726                 .type           = P_STRING,
2727                 .p_class        = P_GLOBAL,
2728                 .offset         = GLOBAL_VAR(szShutdownScript),
2729                 .special        = NULL,
2730                 .enum_list      = NULL,
2731                 .flags          = FLAG_ADVANCED,
2732         },
2733         {
2734                 .label          = "abort shutdown script",
2735                 .type           = P_STRING,
2736                 .p_class        = P_GLOBAL,
2737                 .offset         = GLOBAL_VAR(szAbortShutdownScript),
2738                 .special        = NULL,
2739                 .enum_list      = NULL,
2740                 .flags          = FLAG_ADVANCED,
2741         },
2742         {
2743                 .label          = "username map script",
2744                 .type           = P_STRING,
2745                 .p_class        = P_GLOBAL,
2746                 .offset         = GLOBAL_VAR(szUsernameMapScript),
2747                 .special        = NULL,
2748                 .enum_list      = NULL,
2749                 .flags          = FLAG_ADVANCED,
2750         },
2751         {
2752                 .label          = "username map cache time",
2753                 .type           = P_INTEGER,
2754                 .p_class        = P_GLOBAL,
2755                 .offset         = GLOBAL_VAR(iUsernameMapCacheTime),
2756                 .special        = NULL,
2757                 .enum_list      = NULL,
2758                 .flags          = FLAG_ADVANCED,
2759         },
2760         {
2761                 .label          = "logon script",
2762                 .type           = P_STRING,
2763                 .p_class        = P_GLOBAL,
2764                 .offset         = GLOBAL_VAR(szLogonScript),
2765                 .special        = NULL,
2766                 .enum_list      = NULL,
2767                 .flags          = FLAG_ADVANCED,
2768         },
2769         {
2770                 .label          = "logon path",
2771                 .type           = P_STRING,
2772                 .p_class        = P_GLOBAL,
2773                 .offset         = GLOBAL_VAR(szLogonPath),
2774                 .special        = NULL,
2775                 .enum_list      = NULL,
2776                 .flags          = FLAG_ADVANCED,
2777         },
2778         {
2779                 .label          = "logon drive",
2780                 .type           = P_STRING,
2781                 .p_class        = P_GLOBAL,
2782                 .offset         = GLOBAL_VAR(szLogonDrive),
2783                 .special        = NULL,
2784                 .enum_list      = NULL,
2785                 .flags          = FLAG_ADVANCED,
2786         },
2787         {
2788                 .label          = "logon home",
2789                 .type           = P_STRING,
2790                 .p_class        = P_GLOBAL,
2791                 .offset         = GLOBAL_VAR(szLogonHome),
2792                 .special        = NULL,
2793                 .enum_list      = NULL,
2794                 .flags          = FLAG_ADVANCED,
2795         },
2796         {
2797                 .label          = "domain logons",
2798                 .type           = P_BOOL,
2799                 .p_class        = P_GLOBAL,
2800                 .offset         = GLOBAL_VAR(bDomainLogons),
2801                 .special        = NULL,
2802                 .enum_list      = NULL,
2803                 .flags          = FLAG_ADVANCED,
2804         },
2805
2806         {
2807                 .label          = "init logon delayed hosts",
2808                 .type           = P_LIST,
2809                 .p_class        = P_GLOBAL,
2810                 .offset         = GLOBAL_VAR(szInitLogonDelayedHosts),
2811                 .special        = NULL,
2812                 .enum_list      = NULL,
2813                 .flags          = FLAG_ADVANCED,
2814         },
2815
2816         {
2817                 .label          = "init logon delay",
2818                 .type           = P_INTEGER,
2819                 .p_class        = P_GLOBAL,
2820                 .offset         = GLOBAL_VAR(InitLogonDelay),
2821                 .special        = NULL,
2822                 .enum_list      = NULL,
2823                 .flags          = FLAG_ADVANCED,
2824
2825         },
2826
2827         {N_("Browse Options"), P_SEP, P_SEPARATOR},
2828
2829         {
2830                 .label          = "os level",
2831                 .type           = P_INTEGER,
2832                 .p_class        = P_GLOBAL,
2833                 .offset         = GLOBAL_VAR(os_level),
2834                 .special        = NULL,
2835                 .enum_list      = NULL,
2836                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2837         },
2838         {
2839                 .label          = "lm announce",
2840                 .type           = P_ENUM,
2841                 .p_class        = P_GLOBAL,
2842                 .offset         = GLOBAL_VAR(lm_announce),
2843                 .special        = NULL,
2844                 .enum_list      = enum_bool_auto,
2845                 .flags          = FLAG_ADVANCED,
2846         },
2847         {
2848                 .label          = "lm interval",
2849                 .type           = P_INTEGER,
2850                 .p_class        = P_GLOBAL,
2851                 .offset         = GLOBAL_VAR(lm_interval),
2852                 .special        = NULL,
2853                 .enum_list      = NULL,
2854                 .flags          = FLAG_ADVANCED,
2855         },
2856         {
2857                 .label          = "preferred master",
2858                 .type           = P_ENUM,
2859                 .p_class        = P_GLOBAL,
2860                 .offset         = GLOBAL_VAR(iPreferredMaster),
2861                 .special        = NULL,
2862                 .enum_list      = enum_bool_auto,
2863                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2864         },
2865         {
2866                 .label          = "prefered master",
2867                 .type           = P_ENUM,
2868                 .p_class        = P_GLOBAL,
2869                 .offset         = GLOBAL_VAR(iPreferredMaster),
2870                 .special        = NULL,
2871                 .enum_list      = enum_bool_auto,
2872                 .flags          = FLAG_HIDE,
2873         },
2874         {
2875                 .label          = "local master",
2876                 .type           = P_BOOL,
2877                 .p_class        = P_GLOBAL,
2878                 .offset         = GLOBAL_VAR(bLocalMaster),
2879                 .special        = NULL,
2880                 .enum_list      = NULL,
2881                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2882         },
2883         {
2884                 .label          = "domain master",
2885                 .type           = P_ENUM,
2886                 .p_class        = P_GLOBAL,
2887                 .offset         = GLOBAL_VAR(domain_master),
2888                 .special        = NULL,
2889                 .enum_list      = enum_bool_auto,
2890                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2891         },
2892         {
2893                 .label          = "browse list",
2894                 .type           = P_BOOL,
2895                 .p_class        = P_GLOBAL,
2896                 .offset         = GLOBAL_VAR(bBrowseList),
2897                 .special        = NULL,
2898                 .enum_list      = NULL,
2899                 .flags          = FLAG_ADVANCED,
2900         },
2901         {
2902                 .label          = "browseable",
2903                 .type           = P_BOOL,
2904                 .p_class        = P_LOCAL,
2905                 .offset         = LOCAL_VAR(bBrowseable),
2906                 .special        = NULL,
2907                 .enum_list      = NULL,
2908                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
2909         },
2910         {
2911                 .label          = "browsable",
2912                 .type           = P_BOOL,
2913                 .p_class        = P_LOCAL,
2914                 .offset         = LOCAL_VAR(bBrowseable),
2915                 .special        = NULL,
2916                 .enum_list      = NULL,
2917                 .flags          = FLAG_HIDE,
2918         },
2919         {
2920                 .label          = "access based share enum",
2921                 .type           = P_BOOL,
2922                 .p_class        = P_LOCAL,
2923                 .offset         = LOCAL_VAR(bAccessBasedShareEnum),
2924                 .special        = NULL,
2925                 .enum_list      = NULL,
2926                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE
2927         },
2928         {
2929                 .label          = "enhanced browsing",
2930                 .type           = P_BOOL,
2931                 .p_class        = P_GLOBAL,
2932                 .offset         = GLOBAL_VAR(enhanced_browsing),
2933                 .special        = NULL,
2934                 .enum_list      = NULL,
2935                 .flags          = FLAG_ADVANCED,
2936         },
2937
2938         {N_("WINS Options"), P_SEP, P_SEPARATOR},
2939
2940         {
2941                 .label          = "dns proxy",
2942                 .type           = P_BOOL,
2943                 .p_class        = P_GLOBAL,
2944                 .offset         = GLOBAL_VAR(bWINSdnsProxy),
2945                 .special        = NULL,
2946                 .enum_list      = NULL,
2947                 .flags          = FLAG_ADVANCED,
2948         },
2949         {
2950                 .label          = "wins proxy",
2951                 .type           = P_BOOL,
2952                 .p_class        = P_GLOBAL,
2953                 .offset         = GLOBAL_VAR(bWINSproxy),
2954                 .special        = NULL,
2955                 .enum_list      = NULL,
2956                 .flags          = FLAG_ADVANCED,
2957         },
2958         {
2959                 .label          = "wins server",
2960                 .type           = P_LIST,
2961                 .p_class        = P_GLOBAL,
2962                 .offset         = GLOBAL_VAR(szWINSservers),
2963                 .special        = NULL,
2964                 .enum_list      = NULL,
2965                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
2966         },
2967         {
2968                 .label          = "wins support",
2969                 .type           = P_BOOL,
2970                 .p_class        = P_GLOBAL,
2971                 .offset         = GLOBAL_VAR(bWINSsupport),
2972                 .special        = NULL,
2973                 .enum_list      = NULL,
2974                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
2975         },
2976         {
2977                 .label          = "wins hook",
2978                 .type           = P_STRING,
2979                 .p_class        = P_GLOBAL,
2980                 .offset         = GLOBAL_VAR(szWINSHook),
2981                 .special        = NULL,
2982                 .enum_list      = NULL,
2983                 .flags          = FLAG_ADVANCED,
2984         },
2985
2986         {N_("Locking Options"), P_SEP, P_SEPARATOR},
2987
2988         {
2989                 .label          = "blocking locks",
2990                 .type           = P_BOOL,
2991                 .p_class        = P_LOCAL,
2992                 .offset         = LOCAL_VAR(bBlockingLocks),
2993                 .special        = NULL,
2994                 .enum_list      = NULL,
2995                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2996         },
2997         {
2998                 .label          = "csc policy",
2999                 .type           = P_ENUM,
3000                 .p_class        = P_LOCAL,
3001                 .offset         = LOCAL_VAR(iCSCPolicy),
3002                 .special        = NULL,
3003                 .enum_list      = enum_csc_policy,
3004                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3005         },
3006         {
3007                 .label          = "fake oplocks",
3008                 .type           = P_BOOL,
3009                 .p_class        = P_LOCAL,
3010                 .offset         = LOCAL_VAR(bFakeOplocks),
3011                 .special        = NULL,
3012                 .enum_list      = NULL,
3013                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3014         },
3015         {
3016                 .label          = "kernel oplocks",
3017                 .type           = P_BOOL,
3018                 .p_class        = P_LOCAL,
3019                 .offset         = LOCAL_VAR(bKernelOplocks),
3020                 .special        = NULL,
3021                 .enum_list      = NULL,
3022                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3023         },
3024         {
3025                 .label          = "kernel share modes",
3026                 .type           = P_BOOL,
3027                 .p_class        = P_LOCAL,
3028                 .offset         = LOCAL_VAR(bKernelShareModes),
3029                 .special        = NULL,
3030                 .enum_list      = NULL,
3031                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3032         },
3033         {
3034                 .label          = "locking",
3035                 .type           = P_BOOL,
3036                 .p_class        = P_LOCAL,
3037                 .offset         = LOCAL_VAR(bLocking),
3038                 .special        = NULL,
3039                 .enum_list      = NULL,
3040                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3041         },
3042         {
3043                 .label          = "lock spin time",
3044                 .type           = P_INTEGER,
3045                 .p_class        = P_GLOBAL,
3046                 .offset         = GLOBAL_VAR(iLockSpinTime),
3047                 .special        = NULL,
3048                 .enum_list      = NULL,
3049                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
3050         },
3051         {
3052                 .label          = "oplocks",
3053                 .type           = P_BOOL,
3054                 .p_class        = P_LOCAL,
3055                 .offset         = LOCAL_VAR(bOpLocks),
3056                 .special        = NULL,
3057                 .enum_list      = NULL,
3058                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3059         },
3060         {
3061                 .label          = "level2 oplocks",
3062                 .type           = P_BOOL,
3063                 .p_class        = P_LOCAL,
3064                 .offset         = LOCAL_VAR(bLevel2OpLocks),
3065                 .special        = NULL,
3066                 .enum_list      = NULL,
3067                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3068         },
3069         {
3070                 .label          = "oplock break wait time",
3071                 .type           = P_INTEGER,
3072                 .p_class        = P_GLOBAL,
3073                 .offset         = GLOBAL_VAR(oplock_break_wait_time),
3074                 .special        = NULL,
3075                 .enum_list      = NULL,
3076                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
3077         },
3078         {
3079                 .label          = "oplock contention limit",
3080                 .type           = P_INTEGER,
3081                 .p_class        = P_LOCAL,
3082                 .offset         = LOCAL_VAR(iOplockContentionLimit),
3083                 .special        = NULL,
3084                 .enum_list      = NULL,
3085                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3086         },
3087         {
3088                 .label          = "posix locking",
3089                 .type           = P_BOOL,
3090                 .p_class        = P_LOCAL,
3091                 .offset         = LOCAL_VAR(bPosixLocking),
3092                 .special        = NULL,
3093                 .enum_list      = NULL,
3094                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3095         },
3096         {
3097                 .label          = "strict locking",
3098                 .type           = P_ENUM,
3099                 .p_class        = P_LOCAL,
3100                 .offset         = LOCAL_VAR(iStrictLocking),
3101                 .special        = NULL,
3102                 .enum_list      = enum_bool_auto,
3103                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3104         },
3105
3106         {N_("Ldap Options"), P_SEP, P_SEPARATOR},
3107
3108         {
3109                 .label          = "ldap admin dn",
3110                 .type           = P_STRING,
3111                 .p_class        = P_GLOBAL,
3112                 .offset         = GLOBAL_VAR(szLdapAdminDn),
3113                 .special        = NULL,
3114                 .enum_list      = NULL,
3115                 .flags          = FLAG_ADVANCED,
3116         },
3117         {
3118                 .label          = "ldap delete dn",
3119                 .type           = P_BOOL,
3120                 .p_class        = P_GLOBAL,
3121                 .offset         = GLOBAL_VAR(ldap_delete_dn),
3122                 .special        = NULL,
3123                 .enum_list      = NULL,
3124                 .flags          = FLAG_ADVANCED,
3125         },
3126         {
3127                 .label          = "ldap group suffix",
3128                 .type           = P_STRING,
3129                 .p_class        = P_GLOBAL,
3130                 .offset         = GLOBAL_VAR(szLdapGroupSuffix),
3131                 .special        = NULL,
3132                 .enum_list      = NULL,
3133                 .flags          = FLAG_ADVANCED,
3134         },
3135         {
3136                 .label          = "ldap idmap suffix",
3137                 .type           = P_STRING,
3138                 .p_class        = P_GLOBAL,
3139                 .offset         = GLOBAL_VAR(szLdapIdmapSuffix),
3140                 .special        = NULL,
3141                 .enum_list      = NULL,
3142                 .flags          = FLAG_ADVANCED,
3143         },
3144         {
3145                 .label          = "ldap machine suffix",
3146                 .type           = P_STRING,
3147                 .p_class        = P_GLOBAL,
3148                 .offset         = GLOBAL_VAR(szLdapMachineSuffix),
3149                 .special        = NULL,
3150                 .enum_list      = NULL,
3151                 .flags          = FLAG_ADVANCED,
3152         },
3153         {
3154                 .label          = "ldap passwd sync",
3155                 .type           = P_ENUM,
3156                 .p_class        = P_GLOBAL,
3157                 .offset         = GLOBAL_VAR(ldap_passwd_sync),
3158                 .special        = NULL,
3159                 .enum_list      = enum_ldap_passwd_sync,
3160                 .flags          = FLAG_ADVANCED,
3161         },
3162         {
3163                 .label          = "ldap password sync",
3164                 .type           = P_ENUM,
3165                 .p_class        = P_GLOBAL,
3166                 .offset         = GLOBAL_VAR(ldap_passwd_sync),
3167                 .special        = NULL,
3168                 .enum_list      = enum_ldap_passwd_sync,
3169                 .flags          = FLAG_HIDE,
3170         },
3171         {
3172                 .label          = "ldap replication sleep",
3173                 .type           = P_INTEGER,
3174                 .p_class        = P_GLOBAL,
3175                 .offset         = GLOBAL_VAR(ldap_replication_sleep),
3176                 .special        = NULL,
3177                 .enum_list      = NULL,
3178                 .flags          = FLAG_ADVANCED,
3179         },
3180         {
3181                 .label          = "ldap suffix",
3182                 .type           = P_STRING,
3183                 .p_class        = P_GLOBAL,
3184                 .offset         = GLOBAL_VAR(szLdapSuffix),
3185                 .special        = NULL,
3186                 .enum_list      = NULL,
3187                 .flags          = FLAG_ADVANCED,
3188         },
3189         {
3190                 .label          = "ldap ssl",
3191                 .type           = P_ENUM,
3192                 .p_class        = P_GLOBAL,
3193                 .offset         = GLOBAL_VAR(ldap_ssl),
3194                 .special        = NULL,
3195                 .enum_list      = enum_ldap_ssl,
3196                 .flags          = FLAG_ADVANCED,
3197         },
3198         {
3199                 .label          = "ldap ssl ads",
3200                 .type           = P_BOOL,
3201                 .p_class        = P_GLOBAL,
3202                 .offset         = GLOBAL_VAR(ldap_ssl_ads),
3203                 .special        = NULL,
3204                 .enum_list      = NULL,
3205                 .flags          = FLAG_ADVANCED,
3206         },
3207         {
3208                 .label          = "ldap deref",
3209                 .type           = P_ENUM,
3210                 .p_class        = P_GLOBAL,
3211                 .offset         = GLOBAL_VAR(ldap_deref),
3212                 .special        = NULL,
3213                 .enum_list      = enum_ldap_deref,
3214                 .flags          = FLAG_ADVANCED,
3215         },
3216         {
3217                 .label          = "ldap follow referral",
3218                 .type           = P_ENUM,
3219                 .p_class        = P_GLOBAL,
3220                 .offset         = GLOBAL_VAR(ldap_follow_referral),
3221                 .special        = NULL,
3222                 .enum_list      = enum_bool_auto,
3223                 .flags          = FLAG_ADVANCED,
3224         },
3225         {
3226                 .label          = "ldap timeout",
3227                 .type           = P_INTEGER,
3228                 .p_class        = P_GLOBAL,
3229                 .offset         = GLOBAL_VAR(ldap_timeout),
3230                 .special        = NULL,
3231                 .enum_list      = NULL,
3232                 .flags          = FLAG_ADVANCED,
3233         },
3234         {
3235                 .label          = "ldap connection timeout",
3236                 .type           = P_INTEGER,
3237                 .p_class        = P_GLOBAL,
3238                 .offset         = GLOBAL_VAR(ldap_connection_timeout),
3239                 .special        = NULL,
3240                 .enum_list      = NULL,
3241                 .flags          = FLAG_ADVANCED,
3242         },
3243         {
3244                 .label          = "ldap page size",
3245                 .type           = P_INTEGER,
3246                 .p_class        = P_GLOBAL,
3247                 .offset         = GLOBAL_VAR(ldap_page_size),
3248                 .special        = NULL,
3249                 .enum_list      = NULL,
3250                 .flags          = FLAG_ADVANCED,
3251         },
3252         {
3253                 .label          = "ldap user suffix",
3254                 .type           = P_STRING,
3255                 .p_class        = P_GLOBAL,
3256                 .offset         = GLOBAL_VAR(szLdapUserSuffix),
3257                 .special        = NULL,
3258                 .enum_list      = NULL,
3259                 .flags          = FLAG_ADVANCED,
3260         },
3261         {
3262                 .label          = "ldap debug level",
3263                 .type           = P_INTEGER,
3264                 .p_class        = P_GLOBAL,
3265                 .offset         = GLOBAL_VAR(ldap_debug_level),
3266                 .special        = handle_ldap_debug_level,
3267                 .enum_list      = NULL,
3268                 .flags          = FLAG_ADVANCED,
3269         },
3270         {
3271                 .label          = "ldap debug threshold",
3272                 .type           = P_INTEGER,
3273                 .p_class        = P_GLOBAL,
3274                 .offset         = GLOBAL_VAR(ldap_debug_threshold),
3275                 .special        = NULL,
3276                 .enum_list      = NULL,
3277                 .flags          = FLAG_ADVANCED,
3278         },
3279
3280         {N_("EventLog Options"), P_SEP, P_SEPARATOR},
3281
3282         {
3283                 .label          = "eventlog list",
3284                 .type           = P_LIST,
3285                 .p_class        = P_GLOBAL,
3286                 .offset         = GLOBAL_VAR(szEventLogs),
3287                 .special        = NULL,
3288                 .enum_list      = NULL,
3289                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
3290         },
3291
3292         {N_("Miscellaneous Options"), P_SEP, P_SEPARATOR},
3293
3294         {
3295                 .label          = "add share command",
3296                 .type           = P_STRING,
3297                 .p_class        = P_GLOBAL,
3298                 .offset         = GLOBAL_VAR(szAddShareCommand),
3299                 .special        = NULL,
3300                 .enum_list      = NULL,
3301                 .flags          = FLAG_ADVANCED,
3302         },
3303         {
3304                 .label          = "change share command",
3305                 .type           = P_STRING,
3306                 .p_class        = P_GLOBAL,
3307                 .offset         = GLOBAL_VAR(szChangeShareCommand),
3308                 .special        = NULL,
3309                 .enum_list      = NULL,
3310                 .flags          = FLAG_ADVANCED,
3311         },
3312         {
3313                 .label          = "delete share command",
3314                 .type           = P_STRING,
3315                 .p_class        = P_GLOBAL,
3316                 .offset         = GLOBAL_VAR(szDeleteShareCommand),
3317                 .special        = NULL,
3318                 .enum_list      = NULL,
3319                 .flags          = FLAG_ADVANCED,
3320         },
3321         {
3322                 .label          = "config file",
3323                 .type           = P_STRING,
3324                 .p_class        = P_GLOBAL,
3325                 .offset         = GLOBAL_VAR(szConfigFile),
3326                 .special        = NULL,
3327                 .enum_list      = NULL,
3328                 .flags          = FLAG_HIDE|FLAG_META,
3329         },
3330         {
3331                 .label          = "preload",
3332                 .type           = P_STRING,
3333                 .p_class        = P_GLOBAL,
3334                 .offset         = GLOBAL_VAR(szAutoServices),
3335                 .special        = NULL,
3336                 .enum_list      = NULL,
3337                 .flags          = FLAG_ADVANCED,
3338         },
3339         {
3340                 .label          = "auto services",
3341                 .type           = P_STRING,
3342                 .p_class        = P_GLOBAL,
3343                 .offset         = GLOBAL_VAR(szAutoServices),
3344                 .special        = NULL,
3345                 .enum_list      = NULL,
3346                 .flags          = FLAG_ADVANCED,
3347         },
3348         {
3349                 .label          = "lock directory",
3350                 .type           = P_STRING,
3351                 .p_class        = P_GLOBAL,
3352                 .offset         = GLOBAL_VAR(szLockDir),
3353                 .special        = NULL,
3354                 .enum_list      = NULL,
3355                 .flags          = FLAG_ADVANCED,
3356         },
3357         {
3358                 .label          = "lock dir",
3359                 .type           = P_STRING,
3360                 .p_class        = P_GLOBAL,
3361                 .offset         = GLOBAL_VAR(szLockDir),
3362                 .special        = NULL,
3363                 .enum_list      = NULL,
3364                 .flags          = FLAG_HIDE,
3365         },
3366         {
3367                 .label          = "state directory",
3368                 .type           = P_STRING,
3369                 .p_class        = P_GLOBAL,
3370                 .offset         = GLOBAL_VAR(szStateDir),
3371                 .special        = NULL,
3372                 .enum_list      = NULL,
3373                 .flags          = FLAG_ADVANCED,
3374         },
3375         {
3376                 .label          = "cache directory",
3377                 .type           = P_STRING,
3378                 .p_class        = P_GLOBAL,
3379                 .offset         = GLOBAL_VAR(szCacheDir),
3380                 .special        = NULL,
3381                 .enum_list      = NULL,
3382                 .flags          = FLAG_ADVANCED,
3383         },
3384         {
3385                 .label          = "pid directory",
3386                 .type           = P_STRING,
3387                 .p_class        = P_GLOBAL,
3388                 .offset         = GLOBAL_VAR(szPidDir),
3389                 .special        = NULL,
3390                 .enum_list      = NULL,
3391                 .flags          = FLAG_ADVANCED,
3392         },
3393         {
3394                 .label          = "ntp signd socket directory",
3395                 .type           = P_STRING,
3396                 .p_class        = P_GLOBAL,
3397                 .offset         = GLOBAL_VAR(szNTPSignDSocketDirectory),
3398                 .special        = NULL,
3399                 .enum_list      = NULL,
3400                 .flags          = FLAG_ADVANCED,
3401         },
3402
3403 #ifdef WITH_UTMP
3404         {
3405                 .label          = "utmp directory",
3406                 .type           = P_STRING,
3407                 .p_class        = P_GLOBAL,
3408                 .offset         = GLOBAL_VAR(szUtmpDir),
3409                 .special        = NULL,
3410                 .enum_list      = NULL,
3411                 .flags          = FLAG_ADVANCED,
3412         },
3413         {
3414                 .label          = "wtmp directory",
3415                 .type           = P_STRING,
3416                 .p_class        = P_GLOBAL,
3417                 .offset         = GLOBAL_VAR(szWtmpDir),
3418                 .special        = NULL,
3419                 .enum_list      = NULL,
3420                 .flags          = FLAG_ADVANCED,
3421         },
3422         {
3423                 .label          = "utmp",
3424                 .type           = P_BOOL,
3425                 .p_class        = P_GLOBAL,
3426                 .offset         = GLOBAL_VAR(bUtmp),
3427                 .special        = NULL,
3428                 .enum_list      = NULL,
3429                 .flags          = FLAG_ADVANCED,
3430         },
3431 #endif
3432         {
3433                 .label          = "default service",
3434                 .type           = P_STRING,
3435                 .p_class        = P_GLOBAL,
3436                 .offset         = GLOBAL_VAR(szDefaultService),
3437                 .special        = NULL,
3438                 .enum_list      = NULL,
3439                 .flags          = FLAG_ADVANCED,
3440         },
3441         {
3442                 .label          = "default",
3443                 .type           = P_STRING,
3444                 .p_class        = P_GLOBAL,
3445                 .offset         = GLOBAL_VAR(szDefaultService),
3446                 .special        = NULL,
3447                 .enum_list      = NULL,
3448                 .flags          = FLAG_ADVANCED,
3449         },
3450         {
3451                 .label          = "message command",
3452                 .type           = P_STRING,
3453                 .p_class        = P_GLOBAL,
3454                 .offset         = GLOBAL_VAR(szMsgCommand),
3455                 .special        = NULL,
3456                 .enum_list      = NULL,
3457                 .flags          = FLAG_ADVANCED,
3458         },
3459         {
3460                 .label          = "dfree cache time",
3461                 .type           = P_INTEGER,
3462                 .p_class        = P_LOCAL,
3463                 .offset         = LOCAL_VAR(iDfreeCacheTime),
3464                 .special        = NULL,
3465                 .enum_list      = NULL,
3466                 .flags          = FLAG_ADVANCED,
3467         },
3468         {
3469                 .label          = "dfree command",
3470                 .type           = P_STRING,
3471                 .p_class        = P_LOCAL,
3472                 .offset         = LOCAL_VAR(szDfree),
3473                 .special        = NULL,
3474                 .enum_list      = NULL,
3475                 .flags          = FLAG_ADVANCED,
3476         },
3477         {
3478                 .label          = "get quota command",
3479                 .type           = P_STRING,
3480                 .p_class        = P_GLOBAL,
3481                 .offset         = GLOBAL_VAR(szGetQuota),
3482                 .special        = NULL,
3483                 .enum_list      = NULL,
3484                 .flags          = FLAG_ADVANCED,
3485         },
3486         {
3487                 .label          = "set quota command",
3488                 .type           = P_STRING,
3489                 .p_class        = P_GLOBAL,
3490                 .offset         = GLOBAL_VAR(szSetQuota),
3491                 .special        = NULL,
3492                 .enum_list      = NULL,
3493                 .flags          = FLAG_ADVANCED,
3494         },
3495         {
3496                 .label          = "remote announce",
3497                 .type           = P_STRING,
3498                 .p_class        = P_GLOBAL,
3499                 .offset         = GLOBAL_VAR(szRemoteAnnounce),
3500                 .special        = NULL,
3501                 .enum_list      = NULL,
3502                 .flags          = FLAG_ADVANCED,
3503         },
3504         {
3505                 .label          = "remote browse sync",
3506                 .type           = P_STRING,
3507                 .p_class        = P_GLOBAL,
3508                 .offset         = GLOBAL_VAR(szRemoteBrowseSync),
3509                 .special        = NULL,
3510                 .enum_list      = NULL,
3511                 .flags          = FLAG_ADVANCED,
3512         },
3513         {
3514                 .label          = "nbt client socket address",
3515                 .type           = P_STRING,
3516                 .p_class        = P_GLOBAL,
3517                 .offset         = GLOBAL_VAR(nbt_client_socket_address),
3518                 .special        = NULL,
3519                 .enum_list      = NULL,
3520                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
3521         },
3522         {
3523                 .label          = "socket address",
3524                 .type           = P_STRING,
3525                 .p_class        = P_GLOBAL,
3526                 .offset         = GLOBAL_VAR(nbt_client_socket_address),
3527                 .special        = NULL,
3528                 .enum_list      = NULL,
3529                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
3530         },
3531         {
3532                 .label          = "nmbd bind explicit broadcast",
3533                 .type           = P_BOOL,
3534                 .p_class        = P_GLOBAL,
3535                 .offset         = GLOBAL_VAR(bNmbdBindExplicitBroadcast),
3536                 .special        = NULL,
3537                 .enum_list      = NULL,
3538                 .flags          = FLAG_ADVANCED,
3539         },
3540         {
3541                 .label          = "homedir map",
3542                 .type           = P_STRING,
3543                 .p_class        = P_GLOBAL,
3544                 .offset         = GLOBAL_VAR(szNISHomeMapName),
3545                 .special        = NULL,
3546                 .enum_list      = NULL,
3547                 .flags          = FLAG_ADVANCED,
3548         },
3549         {
3550                 .label          = "afs username map",
3551                 .type           = P_STRING,
3552                 .p_class        = P_GLOBAL,
3553                 .offset         = GLOBAL_VAR(szAfsUsernameMap),
3554                 .special        = NULL,
3555                 .enum_list      = NULL,
3556                 .flags          = FLAG_ADVANCED,
3557         },
3558         {
3559                 .label          = "afs token lifetime",
3560                 .type           = P_INTEGER,
3561                 .p_class        = P_GLOBAL,
3562                 .offset         = GLOBAL_VAR(iAfsTokenLifetime),
3563                 .special        = NULL,
3564                 .enum_list      = NULL,
3565                 .flags          = FLAG_ADVANCED,
3566         },
3567         {
3568                 .label          = "log nt token command",
3569                 .type           = P_STRING,
3570                 .p_class        = P_GLOBAL,
3571                 .offset         = GLOBAL_VAR(szLogNtTokenCommand),
3572                 .special        = NULL,
3573                 .enum_list      = NULL,
3574                 .flags          = FLAG_ADVANCED,
3575         },
3576         {
3577                 .label          = "NIS homedir",
3578                 .type           = P_BOOL,
3579                 .p_class        = P_GLOBAL,
3580                 .offset         = GLOBAL_VAR(bNISHomeMap),
3581                 .special        = NULL,
3582                 .enum_list      = NULL,
3583                 .flags          = FLAG_ADVANCED,
3584         },
3585         {
3586                 .label          = "-valid",
3587                 .type           = P_BOOL,
3588                 .p_class        = P_LOCAL,
3589                 .offset         = LOCAL_VAR(valid),
3590                 .special        = NULL,
3591                 .enum_list      = NULL,
3592                 .flags          = FLAG_HIDE,
3593         },
3594         {
3595                 .label          = "copy",
3596                 .type           = P_STRING,
3597                 .p_class        = P_LOCAL,
3598                 .offset         = LOCAL_VAR(szCopy),
3599                 .special        = handle_copy,
3600                 .enum_list      = NULL,
3601                 .flags          = FLAG_HIDE,
3602         },
3603         {
3604                 .label          = "include",
3605                 .type           = P_STRING,
3606                 .p_class        = P_LOCAL,
3607                 .offset         = LOCAL_VAR(szInclude),
3608                 .special        = handle_include,
3609                 .enum_list      = NULL,
3610                 .flags          = FLAG_HIDE|FLAG_META,
3611         },
3612         {
3613                 .label          = "preexec",
3614                 .type           = P_STRING,
3615                 .p_class        = P_LOCAL,
3616                 .offset         = LOCAL_VAR(szPreExec),
3617                 .special        = NULL,
3618                 .enum_list      = NULL,
3619                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
3620         },
3621         {
3622                 .label          = "exec",
3623                 .type           = P_STRING,
3624                 .p_class        = P_LOCAL,
3625                 .offset         = LOCAL_VAR(szPreExec),
3626                 .special        = NULL,
3627                 .enum_list      = NULL,
3628                 .flags          = FLAG_ADVANCED,
3629         },
3630         {
3631                 .label          = "preexec close",
3632                 .type           = P_BOOL,
3633                 .p_class        = P_LOCAL,
3634                 .offset         = LOCAL_VAR(bPreexecClose),
3635                 .special        = NULL,
3636                 .enum_list      = NULL,
3637                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3638         },
3639         {
3640                 .label          = "postexec",
3641                 .type           = P_STRING,
3642                 .p_class        = P_LOCAL,
3643                 .offset         = LOCAL_VAR(szPostExec),
3644                 .special        = NULL,
3645                 .enum_list      = NULL,
3646                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
3647         },
3648         {
3649                 .label          = "root preexec",
3650                 .type           = P_STRING,
3651                 .p_class        = P_LOCAL,
3652                 .offset         = LOCAL_VAR(szRootPreExec),
3653                 .special        = NULL,
3654                 .enum_list      = NULL,
3655                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
3656         },
3657         {
3658                 .label          = "root preexec close",
3659                 .type           = P_BOOL,
3660                 .p_class        = P_LOCAL,
3661                 .offset         = LOCAL_VAR(bRootpreexecClose),
3662                 .special        = NULL,
3663                 .enum_list      = NULL,
3664                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3665         },
3666         {
3667                 .label          = "root postexec",
3668                 .type           = P_STRING,
3669                 .p_class        = P_LOCAL,
3670                 .offset         = LOCAL_VAR(szRootPostExec),
3671                 .special        = NULL,
3672                 .enum_list      = NULL,
3673                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
3674         },
3675         {
3676                 .label          = "available",
3677                 .type           = P_BOOL,
3678                 .p_class        = P_LOCAL,
3679                 .offset         = LOCAL_VAR(bAvailable),
3680                 .special        = NULL,
3681                 .enum_list      = NULL,
3682                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
3683         },
3684         {
3685                 .label          = "registry shares",
3686                 .type           = P_BOOL,
3687                 .p_class        = P_GLOBAL,
3688                 .offset         = GLOBAL_VAR(bRegistryShares),
3689                 .special        = NULL,
3690                 .enum_list      = NULL,
3691                 .flags          = FLAG_ADVANCED,
3692         },
3693         {
3694                 .label          = "usershare allow guests",
3695                 .type           = P_BOOL,
3696                 .p_class        = P_GLOBAL,
3697                 .offset         = GLOBAL_VAR(bUsershareAllowGuests),
3698                 .special        = NULL,
3699                 .enum_list      = NULL,
3700                 .flags          = FLAG_ADVANCED,
3701         },
3702         {
3703                 .label          = "usershare max shares",
3704                 .type           = P_INTEGER,
3705                 .p_class        = P_GLOBAL,
3706                 .offset         = GLOBAL_VAR(iUsershareMaxShares),
3707                 .special        = NULL,
3708                 .enum_list      = NULL,
3709                 .flags          = FLAG_ADVANCED,
3710         },
3711         {
3712                 .label          = "usershare owner only",
3713                 .type           = P_BOOL,
3714                 .p_class        = P_GLOBAL,
3715                 .offset         = GLOBAL_VAR(bUsershareOwnerOnly),
3716                 .special        = NULL,
3717                 .enum_list      = NULL,
3718                 .flags          = FLAG_ADVANCED,
3719         },
3720         {
3721                 .label          = "usershare path",
3722                 .type           = P_STRING,
3723                 .p_class        = P_GLOBAL,
3724                 .offset         = GLOBAL_VAR(szUsersharePath),
3725                 .special        = NULL,
3726                 .enum_list      = NULL,
3727                 .flags          = FLAG_ADVANCED,
3728         },
3729         {
3730                 .label          = "usershare prefix allow list",
3731                 .type           = P_LIST,
3732                 .p_class        = P_GLOBAL,
3733                 .offset         = GLOBAL_VAR(szUsersharePrefixAllowList),
3734                 .special        = NULL,
3735                 .enum_list      = NULL,
3736                 .flags          = FLAG_ADVANCED,
3737         },
3738         {
3739                 .label          = "usershare prefix deny list",
3740                 .type           = P_LIST,
3741                 .p_class        = P_GLOBAL,
3742                 .offset         = GLOBAL_VAR(szUsersharePrefixDenyList),
3743                 .special        = NULL,
3744                 .enum_list      = NULL,
3745                 .flags          = FLAG_ADVANCED,
3746         },
3747         {
3748                 .label          = "usershare template share",
3749                 .type           = P_STRING,
3750                 .p_class        = P_GLOBAL,
3751                 .offset         = GLOBAL_VAR(szUsershareTemplateShare),
3752                 .special        = NULL,
3753                 .enum_list      = NULL,
3754                 .flags          = FLAG_ADVANCED,
3755         },
3756         {
3757                 .label          = "volume",
3758                 .type           = P_STRING,
3759                 .p_class        = P_LOCAL,
3760                 .offset         = LOCAL_VAR(volume),
3761                 .special        = NULL,
3762                 .enum_list      = NULL,
3763                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3764         },
3765         {
3766                 .label          = "fstype",
3767                 .type           = P_STRING,
3768                 .p_class        = P_LOCAL,
3769                 .offset         = LOCAL_VAR(fstype),
3770                 .special        = NULL,
3771                 .enum_list      = NULL,
3772                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3773         },
3774         {
3775                 .label          = "set directory",
3776                 .type           = P_BOOLREV,
3777                 .p_class        = P_LOCAL,
3778                 .offset         = LOCAL_VAR(bNo_set_dir),
3779                 .special        = NULL,
3780                 .enum_list      = NULL,
3781                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3782         },
3783         {
3784                 .label          = "allow insecure wide links",
3785                 .type           = P_BOOL,
3786                 .p_class        = P_GLOBAL,
3787                 .offset         = GLOBAL_VAR(bAllowInsecureWidelinks),
3788                 .special        = NULL,
3789                 .enum_list      = NULL,
3790                 .flags          = FLAG_ADVANCED,
3791         },
3792         {
3793                 .label          = "wide links",
3794                 .type           = P_BOOL,
3795                 .p_class        = P_LOCAL,
3796                 .offset         = LOCAL_VAR(bWidelinks),
3797                 .special        = NULL,
3798                 .enum_list      = NULL,
3799                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3800         },
3801         {
3802                 .label          = "follow symlinks",
3803                 .type           = P_BOOL,
3804                 .p_class        = P_LOCAL,
3805                 .offset         = LOCAL_VAR(bSymlinks),
3806                 .special        = NULL,
3807                 .enum_list      = NULL,
3808                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3809         },
3810         {
3811                 .label          = "dont descend",
3812                 .type           = P_STRING,
3813                 .p_class        = P_LOCAL,
3814                 .offset         = LOCAL_VAR(szDontdescend),
3815                 .special        = NULL,
3816                 .enum_list      = NULL,
3817                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3818         },
3819         {
3820                 .label          = "magic script",
3821                 .type           = P_STRING,
3822                 .p_class        = P_LOCAL,
3823                 .offset         = LOCAL_VAR(szMagicScript),
3824                 .special        = NULL,
3825                 .enum_list      = NULL,
3826                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3827         },
3828         {
3829                 .label          = "magic output",
3830                 .type           = P_STRING,
3831                 .p_class        = P_LOCAL,
3832                 .offset         = LOCAL_VAR(szMagicOutput),
3833                 .special        = NULL,
3834                 .enum_list      = NULL,
3835                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3836         },
3837         {
3838                 .label          = "delete readonly",
3839                 .type           = P_BOOL,
3840                 .p_class        = P_LOCAL,
3841                 .offset         = LOCAL_VAR(bDeleteReadonly),
3842                 .special        = NULL,
3843                 .enum_list      = NULL,
3844                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3845         },
3846         {
3847                 .label          = "dos filemode",
3848                 .type           = P_BOOL,
3849                 .p_class        = P_LOCAL,
3850                 .offset         = LOCAL_VAR(bDosFilemode),
3851                 .special        = NULL,
3852                 .enum_list      = NULL,
3853                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3854         },
3855         {
3856                 .label          = "dos filetimes",
3857                 .type           = P_BOOL,
3858                 .p_class        = P_LOCAL,
3859                 .offset         = LOCAL_VAR(bDosFiletimes),
3860                 .special        = NULL,
3861                 .enum_list      = NULL,
3862                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3863         },
3864         {
3865                 .label          = "dos filetime resolution",
3866                 .type           = P_BOOL,
3867                 .p_class        = P_LOCAL,
3868                 .offset         = LOCAL_VAR(bDosFiletimeResolution),
3869                 .special        = NULL,
3870                 .enum_list      = NULL,
3871                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3872         },
3873         {
3874                 .label          = "fake directory create times",
3875                 .type           = P_BOOL,
3876                 .p_class        = P_LOCAL,
3877                 .offset         = LOCAL_VAR(bFakeDirCreateTimes),
3878                 .special        = NULL,
3879                 .enum_list      = NULL,
3880                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
3881         },
3882         {
3883                 .label          = "async smb echo handler",
3884                 .type           = P_BOOL,
3885                 .p_class        = P_GLOBAL,
3886                 .offset         = GLOBAL_VAR(bAsyncSMBEchoHandler),
3887                 .special        = NULL,
3888                 .enum_list      = NULL,
3889                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
3890         },
3891         {
3892                 .label          = "panic action",
3893                 .type           = P_STRING,
3894                 .p_class        = P_GLOBAL,
3895                 .offset         = GLOBAL_VAR(szPanicAction),
3896                 .special        = NULL,
3897                 .enum_list      = NULL,
3898                 .flags          = FLAG_ADVANCED,
3899         },
3900         {
3901                 .label          = "perfcount module",
3902                 .type           = P_STRING,
3903                 .p_class        = P_GLOBAL,
3904                 .offset         = GLOBAL_VAR(szSMBPerfcountModule),
3905                 .special        = NULL,
3906                 .enum_list      = NULL,
3907                 .flags          = FLAG_ADVANCED,
3908         },
3909
3910         {N_("VFS module options"), P_SEP, P_SEPARATOR},
3911
3912         {
3913                 .label          = "vfs objects",
3914                 .type           = P_LIST,
3915                 .p_class        = P_LOCAL,
3916                 .offset         = LOCAL_VAR(szVfsObjects),
3917                 .special        = NULL,
3918                 .enum_list      = NULL,
3919                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3920         },
3921         {
3922                 .label          = "vfs object",
3923                 .type           = P_LIST,
3924                 .p_class        = P_LOCAL,
3925                 .offset         = LOCAL_VAR(szVfsObjects),
3926                 .special        = NULL,
3927                 .enum_list      = NULL,
3928                 .flags          = FLAG_HIDE,
3929         },
3930
3931
3932         {N_("MSDFS options"), P_SEP, P_SEPARATOR},
3933
3934         {
3935                 .label          = "msdfs root",
3936                 .type           = P_BOOL,
3937                 .p_class        = P_LOCAL,
3938                 .offset         = LOCAL_VAR(bMSDfsRoot),
3939                 .special        = NULL,
3940                 .enum_list      = NULL,
3941                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3942         },
3943         {
3944                 .label          = "msdfs proxy",
3945                 .type           = P_STRING,
3946                 .p_class        = P_LOCAL,
3947                 .offset         = LOCAL_VAR(szMSDfsProxy),
3948                 .special        = NULL,
3949                 .enum_list      = NULL,
3950                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
3951         },
3952         {
3953                 .label          = "host msdfs",
3954                 .type           = P_BOOL,
3955                 .p_class        = P_GLOBAL,
3956                 .offset         = GLOBAL_VAR(bHostMSDfs),
3957                 .special        = NULL,
3958                 .enum_list      = NULL,
3959                 .flags          = FLAG_ADVANCED,
3960         },
3961
3962         {N_("Winbind options"), P_SEP, P_SEPARATOR},
3963
3964         {
3965                 .label          = "passdb expand explicit",
3966                 .type           = P_BOOL,
3967                 .p_class        = P_GLOBAL,
3968                 .offset         = GLOBAL_VAR(bPassdbExpandExplicit),
3969                 .special        = NULL,
3970                 .enum_list      = NULL,
3971                 .flags          = FLAG_ADVANCED,
3972         },
3973         {
3974                 .label          = "idmap backend",
3975                 .type           = P_STRING,
3976                 .p_class        = P_GLOBAL,
3977                 .offset         = GLOBAL_VAR(szIdmapBackend),
3978                 .special        = handle_idmap_backend,
3979                 .enum_list      = NULL,
3980                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
3981         },
3982         {
3983                 .label          = "idmap cache time",
3984                 .type           = P_INTEGER,
3985                 .p_class        = P_GLOBAL,
3986                 .offset         = GLOBAL_VAR(iIdmapCacheTime),
3987                 .special        = NULL,
3988                 .enum_list      = NULL,
3989                 .flags          = FLAG_ADVANCED,
3990         },
3991         {
3992                 .label          = "idmap negative cache time",
3993                 .type           = P_INTEGER,
3994                 .p_class        = P_GLOBAL,
3995                 .offset         = GLOBAL_VAR(iIdmapNegativeCacheTime),
3996                 .special        = NULL,
3997                 .enum_list      = NULL,
3998                 .flags          = FLAG_ADVANCED,
3999         },
4000         {
4001                 .label          = "idmap uid",
4002                 .type           = P_STRING,
4003                 .p_class        = P_GLOBAL,
4004                 .offset         = GLOBAL_VAR(szIdmapUID),
4005                 .special        = handle_idmap_uid,
4006                 .enum_list      = NULL,
4007                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
4008         },
4009         {
4010                 .label          = "winbind uid",
4011                 .type           = P_STRING,
4012                 .p_class        = P_GLOBAL,
4013                 .offset         = GLOBAL_VAR(szIdmapUID),
4014                 .special        = handle_idmap_uid,
4015                 .enum_list      = NULL,
4016                 .flags          = FLAG_HIDE,
4017         },
4018         {
4019                 .label          = "idmap gid",
4020                 .type           = P_STRING,
4021                 .p_class        = P_GLOBAL,
4022                 .offset         = GLOBAL_VAR(szIdmapGID),
4023                 .special        = handle_idmap_gid,
4024                 .enum_list      = NULL,
4025                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
4026         },
4027         {
4028                 .label          = "winbind gid",
4029                 .type           = P_STRING,
4030                 .p_class        = P_GLOBAL,
4031                 .offset         = GLOBAL_VAR(szIdmapGID),
4032                 .special        = handle_idmap_gid,
4033                 .enum_list      = NULL,
4034                 .flags          = FLAG_HIDE,
4035         },
4036         {
4037                 .label          = "template homedir",
4038                 .type           = P_STRING,
4039                 .p_class        = P_GLOBAL,
4040                 .offset         = GLOBAL_VAR(szTemplateHomedir),
4041                 .special        = NULL,
4042                 .enum_list      = NULL,
4043                 .flags          = FLAG_ADVANCED,
4044         },
4045         {
4046                 .label          = "template shell",
4047                 .type           = P_STRING,
4048                 .p_class        = P_GLOBAL,
4049                 .offset         = GLOBAL_VAR(szTemplateShell),
4050                 .special        = NULL,
4051                 .enum_list      = NULL,
4052                 .flags          = FLAG_ADVANCED,
4053         },
4054         {
4055                 .label          = "winbind separator",
4056                 .type           = P_STRING,
4057                 .p_class        = P_GLOBAL,
4058                 .offset         = GLOBAL_VAR(szWinbindSeparator),
4059                 .special        = NULL,
4060                 .enum_list      = NULL,
4061                 .flags          = FLAG_ADVANCED,
4062         },
4063         {
4064                 .label          = "winbind cache time",
4065                 .type           = P_INTEGER,
4066                 .p_class        = P_GLOBAL,
4067                 .offset         = GLOBAL_VAR(winbind_cache_time),
4068                 .special        = NULL,
4069                 .enum_list      = NULL,
4070                 .flags          = FLAG_ADVANCED,
4071         },
4072         {
4073                 .label          = "winbind reconnect delay",
4074                 .type           = P_INTEGER,
4075                 .p_class        = P_GLOBAL,
4076                 .offset         = GLOBAL_VAR(winbind_reconnect_delay),
4077                 .special        = NULL,
4078                 .enum_list      = NULL,
4079                 .flags          = FLAG_ADVANCED,
4080         },
4081         {
4082                 .label          = "winbind max clients",
4083                 .type           = P_INTEGER,
4084                 .p_class        = P_GLOBAL,
4085                 .offset         = GLOBAL_VAR(winbind_max_clients),
4086                 .special        = NULL,
4087                 .enum_list      = NULL,
4088                 .flags          = FLAG_ADVANCED,
4089         },
4090         {
4091                 .label          = "winbind enum users",
4092                 .type           = P_BOOL,
4093                 .p_class        = P_GLOBAL,
4094                 .offset         = GLOBAL_VAR(bWinbindEnumUsers),
4095                 .special        = NULL,
4096                 .enum_list      = NULL,
4097                 .flags          = FLAG_ADVANCED,
4098         },
4099         {
4100                 .label          = "winbind enum groups",
4101                 .type           = P_BOOL,
4102                 .p_class        = P_GLOBAL,
4103                 .offset         = GLOBAL_VAR(bWinbindEnumGroups),
4104                 .special        = NULL,
4105                 .enum_list      = NULL,
4106                 .flags          = FLAG_ADVANCED,
4107         },
4108         {
4109                 .label          = "winbind use default domain",
4110                 .type           = P_BOOL,
4111                 .p_class        = P_GLOBAL,
4112                 .offset         = GLOBAL_VAR(bWinbindUseDefaultDomain),
4113                 .special        = NULL,
4114                 .enum_list      = NULL,
4115                 .flags          = FLAG_ADVANCED,
4116         },
4117         {
4118                 .label          = "winbind trusted domains only",
4119                 .type           = P_BOOL,
4120                 .p_class        = P_GLOBAL,
4121                 .offset         = GLOBAL_VAR(bWinbindTrustedDomainsOnly),
4122                 .special        = NULL,
4123                 .enum_list      = NULL,
4124                 .flags          = FLAG_ADVANCED,
4125         },
4126         {
4127                 .label          = "winbind nested groups",
4128                 .type           = P_BOOL,
4129                 .p_class        = P_GLOBAL,
4130                 .offset         = GLOBAL_VAR(bWinbindNestedGroups),
4131                 .special        = NULL,
4132                 .enum_list      = NULL,
4133                 .flags          = FLAG_ADVANCED,
4134         },
4135         {
4136                 .label          = "winbind expand groups",
4137                 .type           = P_INTEGER,
4138                 .p_class        = P_GLOBAL,
4139                 .offset         = GLOBAL_VAR(winbind_expand_groups),
4140                 .special        = NULL,
4141                 .enum_list      = NULL,
4142                 .flags          = FLAG_ADVANCED,
4143         },
4144         {
4145                 .label          = "winbind nss info",
4146                 .type           = P_LIST,
4147                 .p_class        = P_GLOBAL,
4148                 .offset         = GLOBAL_VAR(szWinbindNssInfo),
4149                 .special        = NULL,
4150                 .enum_list      = NULL,
4151                 .flags          = FLAG_ADVANCED,
4152         },
4153         {
4154                 .label          = "winbind refresh tickets",
4155                 .type           = P_BOOL,
4156                 .p_class        = P_GLOBAL,
4157                 .offset         = GLOBAL_VAR(bWinbindRefreshTickets),
4158                 .special        = NULL,
4159                 .enum_list      = NULL,
4160                 .flags          = FLAG_ADVANCED,
4161         },
4162         {
4163                 .label          = "winbind offline logon",
4164                 .type           = P_BOOL,
4165                 .p_class        = P_GLOBAL,
4166                 .offset         = GLOBAL_VAR(bWinbindOfflineLogon),
4167                 .special        = NULL,
4168                 .enum_list      = NULL,
4169                 .flags          = FLAG_ADVANCED,
4170         },
4171         {
4172                 .label          = "winbind normalize names",
4173                 .type           = P_BOOL,
4174                 .p_class        = P_GLOBAL,
4175                 .offset         = GLOBAL_VAR(bWinbindNormalizeNames),
4176                 .special        = NULL,
4177                 .enum_list      = NULL,
4178                 .flags          = FLAG_ADVANCED,
4179         },
4180         {
4181                 .label          = "winbind rpc only",
4182                 .type           = P_BOOL,
4183                 .p_class        = P_GLOBAL,
4184                 .offset         = GLOBAL_VAR(bWinbindRpcOnly),
4185                 .special        = NULL,
4186                 .enum_list      = NULL,
4187                 .flags          = FLAG_ADVANCED,
4188         },
4189         {
4190                 .label          = "create krb5 conf",
4191                 .type           = P_BOOL,
4192                 .p_class        = P_GLOBAL,
4193                 .offset         = GLOBAL_VAR(bCreateKrb5Conf),
4194                 .special        = NULL,
4195                 .enum_list      = NULL,
4196                 .flags          = FLAG_ADVANCED,
4197         },
4198         {
4199                 .label          = "ncalrpc dir",
4200                 .type           = P_STRING,
4201                 .p_class        = P_GLOBAL,
4202                 .offset         = GLOBAL_VAR(ncalrpc_dir),
4203                 .special        = NULL,
4204                 .enum_list      = NULL,
4205                 .flags          = FLAG_ADVANCED,
4206         },
4207         {
4208                 .label          = "winbind max domain connections",
4209                 .type           = P_INTEGER,
4210                 .p_class        = P_GLOBAL,
4211                 .offset         = GLOBAL_VAR(winbindMaxDomainConnections),
4212                 .special        = NULL,
4213                 .enum_list      = NULL,
4214                 .flags          = FLAG_ADVANCED,
4215         },
4216         {
4217                 .label          = "winbindd socket directory",
4218                 .type           = P_STRING,
4219                 .p_class        = P_GLOBAL,
4220                 .offset         = GLOBAL_VAR(szWinbinddSocketDirectory),
4221                 .special        = NULL,
4222                 .enum_list      = NULL,
4223                 .flags          = FLAG_ADVANCED,
4224         },
4225         {
4226                 .label          = "winbindd privileged socket directory",
4227                 .type           = P_STRING,
4228                 .p_class        = P_GLOBAL,
4229                 .offset         = GLOBAL_VAR(szWinbinddPrivilegedSocketDirectory),
4230                 .special        = NULL,
4231                 .enum_list      = NULL,
4232                 .flags          = FLAG_ADVANCED,
4233         },
4234         {
4235                 .label          = "winbind sealed pipes",
4236                 .type           = P_BOOL,
4237                 .p_class        = P_GLOBAL,
4238                 .offset         = GLOBAL_VAR(bWinbindSealedPipes),
4239                 .special        = NULL,
4240                 .enum_list      = NULL,
4241                 .flags          = FLAG_ADVANCED,
4242         },
4243
4244         {N_("DNS options"), P_SEP, P_SEPARATOR},
4245         {
4246                 .label          = "allow dns updates",
4247                 .type           = P_ENUM,
4248                 .p_class        = P_GLOBAL,
4249                 .offset         = GLOBAL_VAR(allow_dns_updates),
4250                 .special        = NULL,
4251                 .enum_list      = enum_dns_update_settings,
4252                 .flags          = FLAG_ADVANCED,
4253         },
4254         {
4255                 .label          = "dns forwarder",
4256                 .type           = P_STRING,
4257                 .p_class        = P_GLOBAL,
4258                 .offset         = GLOBAL_VAR(dns_forwarder),
4259                 .special        = NULL,
4260                 .enum_list      = NULL,
4261                 .flags          = FLAG_ADVANCED,
4262         },
4263         {
4264                 .label          = "dns update command",
4265                 .type           = P_CMDLIST,
4266                 .p_class        = P_GLOBAL,
4267                 .offset         = GLOBAL_VAR(szDNSUpdateCommand),
4268                 .special        = NULL,
4269                 .enum_list      = NULL,
4270                 .flags          = FLAG_ADVANCED,
4271         },
4272         {
4273                 .label          = "nsupdate command",
4274                 .type           = P_CMDLIST,
4275                 .p_class        = P_GLOBAL,
4276                 .offset         = GLOBAL_VAR(szNSUpdateCommand),
4277                 .special        = NULL,
4278                 .enum_list      = NULL,
4279                 .flags          = FLAG_ADVANCED,
4280         },
4281         {
4282                 .label          = "rndc command",
4283                 .type           = P_CMDLIST,
4284                 .p_class        = P_GLOBAL,
4285                 .offset         = GLOBAL_VAR(szRNDCCommand),
4286                 .special        = NULL,
4287                 .enum_list      = NULL,
4288                 .flags          = FLAG_ADVANCED,
4289         },
4290         {
4291                 .label          = "multicast dns register",
4292                 .type           = P_BOOL,
4293                 .p_class        = P_GLOBAL,
4294                 .offset         = GLOBAL_VAR(bMulticastDnsRegister),
4295                 .special        = NULL,
4296                 .enum_list      = NULL,
4297                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
4298         },
4299
4300         {N_("AD DC options"), P_SEP, P_SEPARATOR},
4301
4302         {
4303                 .label          = "samba kcc command",
4304                 .type           = P_CMDLIST,
4305                 .p_class        = P_GLOBAL,
4306                 .offset         = GLOBAL_VAR(szSambaKCCCommand),
4307                 .special        = NULL,
4308                 .enum_list      = NULL,
4309                 .flags          = FLAG_ADVANCED,
4310         },
4311         {
4312                 .label          = "server services",
4313                 .type           = P_LIST,
4314                 .p_class        = P_GLOBAL,
4315                 .offset         = GLOBAL_VAR(server_services),
4316                 .special        = NULL,
4317                 .enum_list      = NULL
4318         },
4319         {
4320                 .label          = "dcerpc endpoint servers",
4321                 .type           = P_LIST,
4322                 .p_class        = P_GLOBAL,
4323                 .offset         = GLOBAL_VAR(dcerpc_ep_servers),
4324                 .special        = NULL,
4325                 .enum_list      = NULL
4326         },
4327         {
4328                 .label          = "spn update command",
4329                 .type           = P_CMDLIST,
4330                 .p_class        = P_GLOBAL,
4331                 .offset         = GLOBAL_VAR(szSPNUpdateCommand),
4332                 .special        = NULL,
4333                 .enum_list      = NULL,
4334                 .flags          = FLAG_ADVANCED,
4335         },
4336         {
4337                 .label          = "share backend",
4338                 .type           = P_STRING,
4339                 .p_class        = P_GLOBAL,
4340                 .offset         = GLOBAL_VAR(szShareBackend),
4341                 .special        = NULL,
4342                 .enum_list      = NULL
4343         },
4344         {
4345                 .label          = "ntvfs handler",
4346                 .type           = P_LIST,
4347                 .p_class        = P_LOCAL,
4348                 .offset         = LOCAL_VAR(ntvfs_handler),
4349                 .special        = NULL,
4350                 .enum_list      = NULL
4351         },
4352
4353         {N_("TLS options"), P_SEP, P_SEPARATOR},
4354
4355         {
4356                 .label          = "tls enabled",
4357                 .type           = P_BOOL,
4358                 .p_class        = P_GLOBAL,
4359                 .offset         = GLOBAL_VAR(tls_enabled),
4360                 .special        = NULL,
4361                 .enum_list      = NULL
4362         },
4363         {
4364                 .label          = "tls keyfile",
4365                 .type           = P_STRING,
4366                 .p_class        = P_GLOBAL,
4367                 .offset         = GLOBAL_VAR(tls_keyfile),
4368                 .special        = NULL,
4369                 .enum_list      = NULL
4370         },
4371         {
4372                 .label          = "tls certfile",
4373                 .type           = P_STRING,
4374                 .p_class        = P_GLOBAL,
4375                 .offset         = GLOBAL_VAR(tls_certfile),
4376                 .special        = NULL,
4377                 .enum_list      = NULL
4378         },
4379         {
4380                 .label          = "tls cafile",
4381                 .type           = P_STRING,
4382                 .p_class        = P_GLOBAL,
4383                 .offset         = GLOBAL_VAR(tls_cafile),
4384                 .special        = NULL,
4385                 .enum_list      = NULL
4386         },
4387         {
4388                 .label          = "tls crlfile",
4389                 .type           = P_STRING,
4390                 .p_class        = P_GLOBAL,
4391                 .offset         = GLOBAL_VAR(tls_crlfile),
4392                 .special        = NULL,
4393                 .enum_list      = NULL
4394         },
4395         {
4396                 .label          = "tls dh params file",
4397                 .type           = P_STRING,
4398                 .p_class        = P_GLOBAL,
4399                 .offset         = GLOBAL_VAR(tls_dhpfile),
4400                 .special        = NULL,
4401                 .enum_list      = NULL
4402         },
4403
4404         {NULL,  P_BOOL,  P_NONE,  0,  NULL,  NULL,  0}
4405 };
4406