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