s3-winbindd: Allow winbindd to connect over SMB2 to servers
[kai/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
178 /* ADS kerberos ticket verification options */
179
180 static const struct enum_list enum_kerberos_method[] = {
181         {KERBEROS_VERIFY_SECRETS, "default"},
182         {KERBEROS_VERIFY_SECRETS, "secrets only"},
183         {KERBEROS_VERIFY_SYSTEM_KEYTAB, "system keytab"},
184         {KERBEROS_VERIFY_DEDICATED_KEYTAB, "dedicated keytab"},
185         {KERBEROS_VERIFY_SECRETS_AND_KEYTAB, "secrets and keytab"},
186         {-1, NULL}
187 };
188
189 static const struct enum_list enum_printing[] = {
190         {PRINT_SYSV, "sysv"},
191         {PRINT_AIX, "aix"},
192         {PRINT_HPUX, "hpux"},
193         {PRINT_BSD, "bsd"},
194         {PRINT_QNX, "qnx"},
195         {PRINT_PLP, "plp"},
196         {PRINT_LPRNG, "lprng"},
197 #ifdef HAVE_CUPS
198         {PRINT_CUPS, "cups"},
199 #endif
200 #ifdef HAVE_IPRINT
201         {PRINT_IPRINT, "iprint"},
202 #endif
203         {PRINT_LPRNT, "nt"},
204         {PRINT_LPROS2, "os2"},
205 #if defined(DEVELOPER) || defined(ENABLE_SELFTEST)
206         {PRINT_TEST, "test"},
207         {PRINT_VLP, "vlp"},
208 #endif /* DEVELOPER */
209         {-1, NULL}
210 };
211
212 static const struct enum_list enum_ldap_sasl_wrapping[] = {
213         {0, "plain"},
214         {ADS_AUTH_SASL_SIGN, "sign"},
215         {ADS_AUTH_SASL_SEAL, "seal"},
216         {-1, NULL}
217 };
218
219 static const struct enum_list enum_ldap_ssl[] = {
220         {LDAP_SSL_OFF, "no"},
221         {LDAP_SSL_OFF, "off"},
222         {LDAP_SSL_START_TLS, "start tls"},
223         {LDAP_SSL_START_TLS, "start_tls"},
224         {-1, NULL}
225 };
226
227 /* LDAP Dereferencing Alias types */
228 #define SAMBA_LDAP_DEREF_NEVER          0
229 #define SAMBA_LDAP_DEREF_SEARCHING      1
230 #define SAMBA_LDAP_DEREF_FINDING        2
231 #define SAMBA_LDAP_DEREF_ALWAYS         3
232
233 static const struct enum_list enum_ldap_deref[] = {
234         {SAMBA_LDAP_DEREF_NEVER, "never"},
235         {SAMBA_LDAP_DEREF_SEARCHING, "searching"},
236         {SAMBA_LDAP_DEREF_FINDING, "finding"},
237         {SAMBA_LDAP_DEREF_ALWAYS, "always"},
238         {-1, "auto"}
239 };
240
241 static const struct enum_list enum_ldap_passwd_sync[] = {
242         {LDAP_PASSWD_SYNC_OFF, "no"},
243         {LDAP_PASSWD_SYNC_OFF, "off"},
244         {LDAP_PASSWD_SYNC_ON, "yes"},
245         {LDAP_PASSWD_SYNC_ON, "on"},
246         {LDAP_PASSWD_SYNC_ONLY, "only"},
247         {-1, NULL}
248 };
249
250 static const struct enum_list enum_map_readonly[] = {
251         {MAP_READONLY_NO, "no"},
252         {MAP_READONLY_NO, "false"},
253         {MAP_READONLY_NO, "0"},
254         {MAP_READONLY_YES, "yes"},
255         {MAP_READONLY_YES, "true"},
256         {MAP_READONLY_YES, "1"},
257         {MAP_READONLY_PERMISSIONS, "permissions"},
258         {MAP_READONLY_PERMISSIONS, "perms"},
259         {-1, NULL}
260 };
261
262 static const struct enum_list enum_case[] = {
263         {CASE_LOWER, "lower"},
264         {CASE_UPPER, "upper"},
265         {-1, NULL}
266 };
267
268
269 /* Note: We do not initialise the defaults union - it is not allowed in ANSI C
270  *
271  * The FLAG_HIDE is explicit. Parameters set this way do NOT appear in any edit
272  * screen in SWAT. This is used to exclude parameters as well as to squash all
273  * parameters that have been duplicated by pseudonyms.
274  *
275  * NOTE: To display a parameter in BASIC view set FLAG_BASIC
276  *       Any parameter that does NOT have FLAG_ADVANCED will not disply at all
277  *       Set FLAG_SHARE and FLAG_PRINT to specifically display parameters in
278  *        respective views.
279  *
280  * NOTE2: Handling of duplicated (synonym) parameters:
281  *      Only the first occurance of a parameter should be enabled by FLAG_BASIC
282  *      and/or FLAG_ADVANCED. All duplicates following the first mention should be
283  *      set to FLAG_HIDE. ie: Make you must place the parameter that has the preferred
284  *      name first, and all synonyms must follow it with the FLAG_HIDE attribute.
285  */
286
287 #define GLOBAL_VAR(name) offsetof(struct loadparm_global, name)
288 #define LOCAL_VAR(name) offsetof(struct loadparm_service, name)
289
290
291 struct parm_struct parm_table[] = {
292         {N_("Base Options"), P_SEP, P_SEPARATOR},
293
294         {
295                 .label          = "dos charset",
296                 .type           = P_STRING,
297                 .p_class        = P_GLOBAL,
298                 .offset         = GLOBAL_VAR(dos_charset),
299                 .special        = handle_dos_charset,
300                 .enum_list      = NULL,
301                 .flags          = FLAG_ADVANCED
302         },
303         {
304                 .label          = "unix charset",
305                 .type           = P_STRING,
306                 .p_class        = P_GLOBAL,
307                 .offset         = GLOBAL_VAR(unix_charset),
308                 .special        = handle_charset,
309                 .enum_list      = NULL,
310                 .flags          = FLAG_ADVANCED
311         },
312         {
313                 .label          = "comment",
314                 .type           = P_STRING,
315                 .p_class        = P_LOCAL,
316                 .offset         = LOCAL_VAR(comment),
317                 .special        = NULL,
318                 .enum_list      = NULL,
319                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT
320         },
321         {
322                 .label          = "path",
323                 .type           = P_STRING,
324                 .p_class        = P_LOCAL,
325                 .offset         = LOCAL_VAR(path),
326                 .special        = NULL,
327                 .enum_list      = NULL,
328                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
329         },
330         {
331                 .label          = "directory",
332                 .type           = P_STRING,
333                 .p_class        = P_LOCAL,
334                 .offset         = LOCAL_VAR(path),
335                 .special        = NULL,
336                 .enum_list      = NULL,
337                 .flags          = FLAG_HIDE,
338         },
339         {
340                 .label          = "workgroup",
341                 .type           = P_USTRING,
342                 .p_class        = P_GLOBAL,
343                 .offset         = GLOBAL_VAR(workgroup),
344                 .special        = NULL,
345                 .enum_list      = NULL,
346                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
347         },
348         {
349                 .label          = "realm",
350                 .type           = P_STRING,
351                 .p_class        = P_GLOBAL,
352                 .offset         = GLOBAL_VAR(realm_original),
353                 .special        = handle_realm,
354                 .enum_list      = NULL,
355                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
356         },
357         {
358                 .label          = "netbios name",
359                 .type           = P_USTRING,
360                 .p_class        = P_GLOBAL,
361                 .offset         = GLOBAL_VAR(netbios_name),
362                 .special        = NULL,
363                 .enum_list      = NULL,
364                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
365         },
366         {
367                 .label          = "netbios aliases",
368                 .type           = P_CMDLIST,
369                 .p_class        = P_GLOBAL,
370                 .offset         = GLOBAL_VAR(netbios_aliases),
371                 .special        = handle_netbios_aliases,
372                 .enum_list      = NULL,
373                 .flags          = FLAG_ADVANCED,
374         },
375         {
376                 .label          = "netbios scope",
377                 .type           = P_USTRING,
378                 .p_class        = P_GLOBAL,
379                 .offset         = GLOBAL_VAR(netbios_scope),
380                 .special        = NULL,
381                 .enum_list      = NULL,
382                 .flags          = FLAG_ADVANCED,
383         },
384         {
385                 .label          = "server string",
386                 .type           = P_STRING,
387                 .p_class        = P_GLOBAL,
388                 .offset         = GLOBAL_VAR(server_string),
389                 .special        = NULL,
390                 .enum_list      = NULL,
391                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
392         },
393         {
394                 .label          = "interfaces",
395                 .type           = P_CMDLIST,
396                 .p_class        = P_GLOBAL,
397                 .offset         = GLOBAL_VAR(interfaces),
398                 .special        = NULL,
399                 .enum_list      = NULL,
400                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
401         },
402         {
403                 .label          = "bind interfaces only",
404                 .type           = P_BOOL,
405                 .p_class        = P_GLOBAL,
406                 .offset         = GLOBAL_VAR(bind_interfaces_only),
407                 .special        = NULL,
408                 .enum_list      = NULL,
409                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
410         },
411         {
412                 .label          = "config backend",
413                 .type           = P_ENUM,
414                 .p_class        = P_GLOBAL,
415                 .offset         = GLOBAL_VAR(config_backend),
416                 .special        = NULL,
417                 .enum_list      = enum_config_backend,
418                 .flags          = FLAG_HIDE|FLAG_ADVANCED|FLAG_META,
419         },
420         {
421                 .label          = "server role",
422                 .type           = P_ENUM,
423                 .p_class        = P_GLOBAL,
424                 .offset         = GLOBAL_VAR(_server_role),
425                 .special        = NULL,
426                 .enum_list      = enum_server_role,
427                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
428         },
429
430         {N_("Security Options"), P_SEP, P_SEPARATOR},
431
432         {
433                 .label          = "security",
434                 .type           = P_ENUM,
435                 .p_class        = P_GLOBAL,
436                 .offset         = GLOBAL_VAR(_security),
437                 .special        = NULL,
438                 .enum_list      = enum_security,
439                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
440         },
441         {
442                 .label          = "auth methods",
443                 .type           = P_CMDLIST,
444                 .p_class        = P_GLOBAL,
445                 .offset         = GLOBAL_VAR(auth_methods),
446                 .special        = NULL,
447                 .enum_list      = NULL,
448                 .flags          = FLAG_ADVANCED,
449         },
450         {
451                 .label          = "encrypt passwords",
452                 .type           = P_BOOL,
453                 .p_class        = P_GLOBAL,
454                 .offset         = GLOBAL_VAR(encrypt_passwords),
455                 .special        = NULL,
456                 .enum_list      = NULL,
457                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
458         },
459         {
460                 .label          = "client schannel",
461                 .type           = P_ENUM,
462                 .p_class        = P_GLOBAL,
463                 .offset         = GLOBAL_VAR(client_schannel),
464                 .special        = NULL,
465                 .enum_list      = enum_bool_auto,
466                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
467         },
468         {
469                 .label          = "server schannel",
470                 .type           = P_ENUM,
471                 .p_class        = P_GLOBAL,
472                 .offset         = GLOBAL_VAR(server_schannel),
473                 .special        = NULL,
474                 .enum_list      = enum_bool_auto,
475                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
476         },
477         {
478                 .label          = "allow trusted domains",
479                 .type           = P_BOOL,
480                 .p_class        = P_GLOBAL,
481                 .offset         = GLOBAL_VAR(allow_trusted_domains),
482                 .special        = NULL,
483                 .enum_list      = NULL,
484                 .flags          = FLAG_ADVANCED,
485         },
486         {
487                 .label          = "map to guest",
488                 .type           = P_ENUM,
489                 .p_class        = P_GLOBAL,
490                 .offset         = GLOBAL_VAR(map_to_guest),
491                 .special        = NULL,
492                 .enum_list      = enum_map_to_guest,
493                 .flags          = FLAG_ADVANCED,
494         },
495         {
496                 .label          = "null passwords",
497                 .type           = P_BOOL,
498                 .p_class        = P_GLOBAL,
499                 .offset         = GLOBAL_VAR(null_passwords),
500                 .special        = NULL,
501                 .enum_list      = NULL,
502                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
503         },
504         {
505                 .label          = "old password allowed period",
506                 .type           = P_INTEGER,
507                 .p_class        = P_GLOBAL,
508                 .offset         = GLOBAL_VAR(old_password_allowed_period),
509                 .special        = NULL,
510                 .enum_list      = NULL,
511                 .flags          = FLAG_ADVANCED,
512         },
513         {
514                 .label          = "obey pam restrictions",
515                 .type           = P_BOOL,
516                 .p_class        = P_GLOBAL,
517                 .offset         = GLOBAL_VAR(obey_pam_restrictions),
518                 .special        = NULL,
519                 .enum_list      = NULL,
520                 .flags          = FLAG_ADVANCED,
521         },
522         {
523                 .label          = "password server",
524                 .type           = P_STRING,
525                 .p_class        = P_GLOBAL,
526                 .offset         = GLOBAL_VAR(password_server),
527                 .special        = NULL,
528                 .enum_list      = NULL,
529                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
530         },
531         {
532                 .label          = "smb passwd file",
533                 .type           = P_STRING,
534                 .p_class        = P_GLOBAL,
535                 .offset         = GLOBAL_VAR(smb_passwd_file),
536                 .special        = NULL,
537                 .enum_list      = NULL,
538                 .flags          = FLAG_ADVANCED,
539         },
540         {
541                 .label          = "private dir",
542                 .type           = P_STRING,
543                 .p_class        = P_GLOBAL,
544                 .offset         = GLOBAL_VAR(private_dir),
545                 .special        = NULL,
546                 .enum_list      = NULL,
547                 .flags          = FLAG_ADVANCED,
548         },
549         {
550                 .label          = "private directory",
551                 .type           = P_STRING,
552                 .p_class        = P_GLOBAL,
553                 .offset         = GLOBAL_VAR(private_dir),
554                 .special        = NULL,
555                 .enum_list      = NULL,
556                 .flags          = FLAG_HIDE,
557         },
558         {
559                 .label          = "passdb backend",
560                 .type           = P_STRING,
561                 .p_class        = P_GLOBAL,
562                 .offset         = GLOBAL_VAR(passdb_backend),
563                 .special        = NULL,
564                 .enum_list      = NULL,
565                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
566         },
567         {
568                 .label          = "algorithmic rid base",
569                 .type           = P_INTEGER,
570                 .p_class        = P_GLOBAL,
571                 .offset         = GLOBAL_VAR(algorithmic_rid_base),
572                 .special        = NULL,
573                 .enum_list      = NULL,
574                 .flags          = FLAG_ADVANCED,
575         },
576         {
577                 .label          = "root directory",
578                 .type           = P_STRING,
579                 .p_class        = P_GLOBAL,
580                 .offset         = GLOBAL_VAR(root_directory),
581                 .special        = NULL,
582                 .enum_list      = NULL,
583                 .flags          = FLAG_ADVANCED,
584         },
585         {
586                 .label          = "root dir",
587                 .type           = P_STRING,
588                 .p_class        = P_GLOBAL,
589                 .offset         = GLOBAL_VAR(root_directory),
590                 .special        = NULL,
591                 .enum_list      = NULL,
592                 .flags          = FLAG_HIDE,
593         },
594         {
595                 .label          = "root",
596                 .type           = P_STRING,
597                 .p_class        = P_GLOBAL,
598                 .offset         = GLOBAL_VAR(root_directory),
599                 .special        = NULL,
600                 .enum_list      = NULL,
601                 .flags          = FLAG_HIDE,
602         },
603         {
604                 .label          = "guest account",
605                 .type           = P_STRING,
606                 .p_class        = P_GLOBAL,
607                 .offset         = GLOBAL_VAR(guest_account),
608                 .special        = NULL,
609                 .enum_list      = NULL,
610                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
611         },
612         {
613                 .label          = "enable privileges",
614                 .type           = P_BOOL,
615                 .p_class        = P_GLOBAL,
616                 .offset         = GLOBAL_VAR(enable_privileges),
617                 .special        = NULL,
618                 .enum_list      = NULL,
619                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
620         },
621
622         {
623                 .label          = "pam password change",
624                 .type           = P_BOOL,
625                 .p_class        = P_GLOBAL,
626                 .offset         = GLOBAL_VAR(pam_password_change),
627                 .special        = NULL,
628                 .enum_list      = NULL,
629                 .flags          = FLAG_ADVANCED,
630         },
631         {
632                 .label          = "passwd program",
633                 .type           = P_STRING,
634                 .p_class        = P_GLOBAL,
635                 .offset         = GLOBAL_VAR(passwd_program),
636                 .special        = NULL,
637                 .enum_list      = NULL,
638                 .flags          = FLAG_ADVANCED,
639         },
640         {
641                 .label          = "passwd chat",
642                 .type           = P_STRING,
643                 .p_class        = P_GLOBAL,
644                 .offset         = GLOBAL_VAR(passwd_chat),
645                 .special        = NULL,
646                 .enum_list      = NULL,
647                 .flags          = FLAG_ADVANCED,
648         },
649         {
650                 .label          = "passwd chat debug",
651                 .type           = P_BOOL,
652                 .p_class        = P_GLOBAL,
653                 .offset         = GLOBAL_VAR(passwd_chat_debug),
654                 .special        = NULL,
655                 .enum_list      = NULL,
656                 .flags          = FLAG_ADVANCED,
657         },
658         {
659                 .label          = "passwd chat timeout",
660                 .type           = P_INTEGER,
661                 .p_class        = P_GLOBAL,
662                 .offset         = GLOBAL_VAR(passwd_chat_timeout),
663                 .special        = NULL,
664                 .enum_list      = NULL,
665                 .flags          = FLAG_ADVANCED,
666         },
667         {
668                 .label          = "check password script",
669                 .type           = P_STRING,
670                 .p_class        = P_GLOBAL,
671                 .offset         = GLOBAL_VAR(check_password_script),
672                 .special        = NULL,
673                 .enum_list      = NULL,
674                 .flags          = FLAG_ADVANCED,
675         },
676         {
677                 .label          = "username map",
678                 .type           = P_STRING,
679                 .p_class        = P_GLOBAL,
680                 .offset         = GLOBAL_VAR(username_map),
681                 .special        = NULL,
682                 .enum_list      = NULL,
683                 .flags          = FLAG_ADVANCED,
684         },
685         {
686                 .label          = "username level",
687                 .type           = P_INTEGER,
688                 .p_class        = P_GLOBAL,
689                 .offset         = GLOBAL_VAR(username_level),
690                 .special        = NULL,
691                 .enum_list      = NULL,
692                 .flags          = FLAG_ADVANCED,
693         },
694         {
695                 .label          = "unix password sync",
696                 .type           = P_BOOL,
697                 .p_class        = P_GLOBAL,
698                 .offset         = GLOBAL_VAR(unix_password_sync),
699                 .special        = NULL,
700                 .enum_list      = NULL,
701                 .flags          = FLAG_ADVANCED,
702         },
703         {
704                 .label          = "restrict anonymous",
705                 .type           = P_INTEGER,
706                 .p_class        = P_GLOBAL,
707                 .offset         = GLOBAL_VAR(restrict_anonymous),
708                 .special        = NULL,
709                 .enum_list      = NULL,
710                 .flags          = FLAG_ADVANCED,
711         },
712         {
713                 .label          = "lanman auth",
714                 .type           = P_BOOL,
715                 .p_class        = P_GLOBAL,
716                 .offset         = GLOBAL_VAR(lanman_auth),
717                 .special        = NULL,
718                 .enum_list      = NULL,
719                 .flags          = FLAG_ADVANCED,
720         },
721         {
722                 .label          = "ntlm auth",
723                 .type           = P_BOOL,
724                 .p_class        = P_GLOBAL,
725                 .offset         = GLOBAL_VAR(ntlm_auth),
726                 .special        = NULL,
727                 .enum_list      = NULL,
728                 .flags          = FLAG_ADVANCED,
729         },
730         {
731                 .label          = "client NTLMv2 auth",
732                 .type           = P_BOOL,
733                 .p_class        = P_GLOBAL,
734                 .offset         = GLOBAL_VAR(client_ntlmv2_auth),
735                 .special        = NULL,
736                 .enum_list      = NULL,
737                 .flags          = FLAG_ADVANCED,
738         },
739         {
740                 .label          = "client lanman auth",
741                 .type           = P_BOOL,
742                 .p_class        = P_GLOBAL,
743                 .offset         = GLOBAL_VAR(client_lanman_auth),
744                 .special        = NULL,
745                 .enum_list      = NULL,
746                 .flags          = FLAG_ADVANCED,
747         },
748         {
749                 .label          = "client plaintext auth",
750                 .type           = P_BOOL,
751                 .p_class        = P_GLOBAL,
752                 .offset         = GLOBAL_VAR(client_plaintext_auth),
753                 .special        = NULL,
754                 .enum_list      = NULL,
755                 .flags          = FLAG_ADVANCED,
756         },
757         {
758                 .label          = "client use spnego principal",
759                 .type           = P_BOOL,
760                 .p_class        = P_GLOBAL,
761                 .offset         = GLOBAL_VAR(client_use_spnego_principal),
762                 .special        = NULL,
763                 .enum_list      = NULL,
764                 .flags          = FLAG_ADVANCED,
765         },
766         {
767                 .label          = "username",
768                 .type           = P_STRING,
769                 .p_class        = P_LOCAL,
770                 .offset         = LOCAL_VAR(username),
771                 .special        = NULL,
772                 .enum_list      = NULL,
773                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED,
774         },
775         {
776                 .label          = "user",
777                 .type           = P_STRING,
778                 .p_class        = P_LOCAL,
779                 .offset         = LOCAL_VAR(username),
780                 .special        = NULL,
781                 .enum_list      = NULL,
782                 .flags          = FLAG_HIDE,
783         },
784         {
785                 .label          = "users",
786                 .type           = P_STRING,
787                 .p_class        = P_LOCAL,
788                 .offset         = LOCAL_VAR(username),
789                 .special        = NULL,
790                 .enum_list      = NULL,
791                 .flags          = FLAG_HIDE,
792         },
793         {
794                 .label          = "invalid users",
795                 .type           = P_CMDLIST,
796                 .p_class        = P_LOCAL,
797                 .offset         = LOCAL_VAR(invalid_users),
798                 .special        = NULL,
799                 .enum_list      = NULL,
800                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
801         },
802         {
803                 .label          = "valid users",
804                 .type           = P_CMDLIST,
805                 .p_class        = P_LOCAL,
806                 .offset         = LOCAL_VAR(valid_users),
807                 .special        = NULL,
808                 .enum_list      = NULL,
809                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
810         },
811         {
812                 .label          = "admin users",
813                 .type           = P_CMDLIST,
814                 .p_class        = P_LOCAL,
815                 .offset         = LOCAL_VAR(admin_users),
816                 .special        = NULL,
817                 .enum_list      = NULL,
818                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
819         },
820         {
821                 .label          = "read list",
822                 .type           = P_CMDLIST,
823                 .p_class        = P_LOCAL,
824                 .offset         = LOCAL_VAR(read_list),
825                 .special        = NULL,
826                 .enum_list      = NULL,
827                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
828         },
829         {
830                 .label          = "write list",
831                 .type           = P_CMDLIST,
832                 .p_class        = P_LOCAL,
833                 .offset         = LOCAL_VAR(write_list),
834                 .special        = NULL,
835                 .enum_list      = NULL,
836                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
837         },
838         {
839                 .label          = "force user",
840                 .type           = P_STRING,
841                 .p_class        = P_LOCAL,
842                 .offset         = LOCAL_VAR(force_user),
843                 .special        = NULL,
844                 .enum_list      = NULL,
845                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
846         },
847         {
848                 .label          = "force group",
849                 .type           = P_STRING,
850                 .p_class        = P_LOCAL,
851                 .offset         = LOCAL_VAR(force_group),
852                 .special        = NULL,
853                 .enum_list      = NULL,
854                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
855         },
856         {
857                 .label          = "group",
858                 .type           = P_STRING,
859                 .p_class        = P_LOCAL,
860                 .offset         = LOCAL_VAR(force_group),
861                 .special        = NULL,
862                 .enum_list      = NULL,
863                 .flags          = FLAG_ADVANCED,
864         },
865         {
866                 .label          = "read only",
867                 .type           = P_BOOL,
868                 .p_class        = P_LOCAL,
869                 .offset         = LOCAL_VAR(read_only),
870                 .special        = NULL,
871                 .enum_list      = NULL,
872                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE,
873         },
874         {
875                 .label          = "write ok",
876                 .type           = P_BOOLREV,
877                 .p_class        = P_LOCAL,
878                 .offset         = LOCAL_VAR(read_only),
879                 .special        = NULL,
880                 .enum_list      = NULL,
881                 .flags          = FLAG_HIDE,
882         },
883         {
884                 .label          = "writeable",
885                 .type           = P_BOOLREV,
886                 .p_class        = P_LOCAL,
887                 .offset         = LOCAL_VAR(read_only),
888                 .special        = NULL,
889                 .enum_list      = NULL,
890                 .flags          = FLAG_HIDE,
891         },
892         {
893                 .label          = "writable",
894                 .type           = P_BOOLREV,
895                 .p_class        = P_LOCAL,
896                 .offset         = LOCAL_VAR(read_only),
897                 .special        = NULL,
898                 .enum_list      = NULL,
899                 .flags          = FLAG_HIDE,
900         },
901         {
902                 .label          = "acl check permissions",
903                 .type           = P_BOOL,
904                 .p_class        = P_LOCAL,
905                 .offset         = LOCAL_VAR(acl_check_permissions),
906                 .special        = NULL,
907                 .enum_list      = NULL,
908                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE | FLAG_DEPRECATED,
909         },
910         {
911                 .label          = "acl group control",
912                 .type           = P_BOOL,
913                 .p_class        = P_LOCAL,
914                 .offset         = LOCAL_VAR(acl_group_control),
915                 .special        = NULL,
916                 .enum_list      = NULL,
917                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
918         },
919         {
920                 .label          = "acl map full control",
921                 .type           = P_BOOL,
922                 .p_class        = P_LOCAL,
923                 .offset         = LOCAL_VAR(acl_map_full_control),
924                 .special        = NULL,
925                 .enum_list      = NULL,
926                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
927         },
928         {
929                 .label          = "acl allow execute always",
930                 .type           = P_BOOL,
931                 .p_class        = P_LOCAL,
932                 .offset         = LOCAL_VAR(acl_allow_execute_always),
933                 .special        = NULL,
934                 .enum_list      = NULL,
935                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
936         },
937
938         {
939                 .label          = "create mask",
940                 .type           = P_OCTAL,
941                 .p_class        = P_LOCAL,
942                 .offset         = LOCAL_VAR(create_mask),
943                 .special        = NULL,
944                 .enum_list      = NULL,
945                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
946         },
947         {
948                 .label          = "create mode",
949                 .type           = P_OCTAL,
950                 .p_class        = P_LOCAL,
951                 .offset         = LOCAL_VAR(create_mask),
952                 .special        = NULL,
953                 .enum_list      = NULL,
954                 .flags          = FLAG_HIDE,
955         },
956         {
957                 .label          = "force create mode",
958                 .type           = P_OCTAL,
959                 .p_class        = P_LOCAL,
960                 .offset         = LOCAL_VAR(force_create_mode),
961                 .special        = NULL,
962                 .enum_list      = NULL,
963                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
964         },
965         {
966                 .label          = "directory mask",
967                 .type           = P_OCTAL,
968                 .p_class        = P_LOCAL,
969                 .offset         = LOCAL_VAR(directory_mask),
970                 .special        = NULL,
971                 .enum_list      = NULL,
972                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
973         },
974         {
975                 .label          = "directory mode",
976                 .type           = P_OCTAL,
977                 .p_class        = P_LOCAL,
978                 .offset         = LOCAL_VAR(directory_mask),
979                 .special        = NULL,
980                 .enum_list      = NULL,
981                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
982         },
983         {
984                 .label          = "force directory mode",
985                 .type           = P_OCTAL,
986                 .p_class        = P_LOCAL,
987                 .offset         = LOCAL_VAR(force_directory_mode),
988                 .special        = NULL,
989                 .enum_list      = NULL,
990                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
991         },
992         {
993                 .label          = "force unknown acl user",
994                 .type           = P_BOOL,
995                 .p_class        = P_LOCAL,
996                 .offset         = LOCAL_VAR(force_unknown_acl_user),
997                 .special        = NULL,
998                 .enum_list      = NULL,
999                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1000         },
1001         {
1002                 .label          = "inherit permissions",
1003                 .type           = P_BOOL,
1004                 .p_class        = P_LOCAL,
1005                 .offset         = LOCAL_VAR(inherit_permissions),
1006                 .special        = NULL,
1007                 .enum_list      = NULL,
1008                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1009         },
1010         {
1011                 .label          = "inherit acls",
1012                 .type           = P_BOOL,
1013                 .p_class        = P_LOCAL,
1014                 .offset         = LOCAL_VAR(inherit_acls),
1015                 .special        = NULL,
1016                 .enum_list      = NULL,
1017                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1018         },
1019         {
1020                 .label          = "inherit owner",
1021                 .type           = P_BOOL,
1022                 .p_class        = P_LOCAL,
1023                 .offset         = LOCAL_VAR(inherit_owner),
1024                 .special        = NULL,
1025                 .enum_list      = NULL,
1026                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1027         },
1028         {
1029                 .label          = "guest only",
1030                 .type           = P_BOOL,
1031                 .p_class        = P_LOCAL,
1032                 .offset         = LOCAL_VAR(guest_only),
1033                 .special        = NULL,
1034                 .enum_list      = NULL,
1035                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1036         },
1037         {
1038                 .label          = "only guest",
1039                 .type           = P_BOOL,
1040                 .p_class        = P_LOCAL,
1041                 .offset         = LOCAL_VAR(guest_only),
1042                 .special        = NULL,
1043                 .enum_list      = NULL,
1044                 .flags          = FLAG_HIDE,
1045         },
1046         {
1047                 .label          = "administrative share",
1048                 .type           = P_BOOL,
1049                 .p_class        = P_LOCAL,
1050                 .offset         = LOCAL_VAR(administrative_share),
1051                 .special        = NULL,
1052                 .enum_list      = NULL,
1053                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1054         },
1055
1056         {
1057                 .label          = "guest ok",
1058                 .type           = P_BOOL,
1059                 .p_class        = P_LOCAL,
1060                 .offset         = LOCAL_VAR(guest_ok),
1061                 .special        = NULL,
1062                 .enum_list      = NULL,
1063                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1064         },
1065         {
1066                 .label          = "public",
1067                 .type           = P_BOOL,
1068                 .p_class        = P_LOCAL,
1069                 .offset         = LOCAL_VAR(guest_ok),
1070                 .special        = NULL,
1071                 .enum_list      = NULL,
1072                 .flags          = FLAG_HIDE,
1073         },
1074         {
1075                 .label          = "only user",
1076                 .type           = P_BOOL,
1077                 .p_class        = P_LOCAL,
1078                 .offset         = LOCAL_VAR(only_user),
1079                 .special        = NULL,
1080                 .enum_list      = NULL,
1081                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_DEPRECATED,
1082         },
1083         {
1084                 .label          = "hosts allow",
1085                 .type           = P_CMDLIST,
1086                 .p_class        = P_LOCAL,
1087                 .offset         = LOCAL_VAR(hosts_allow),
1088                 .special        = NULL,
1089                 .enum_list      = NULL,
1090                 .flags          = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1091         },
1092         {
1093                 .label          = "allow hosts",
1094                 .type           = P_CMDLIST,
1095                 .p_class        = P_LOCAL,
1096                 .offset         = LOCAL_VAR(hosts_allow),
1097                 .special        = NULL,
1098                 .enum_list      = NULL,
1099                 .flags          = FLAG_HIDE,
1100         },
1101         {
1102                 .label          = "hosts deny",
1103                 .type           = P_CMDLIST,
1104                 .p_class        = P_LOCAL,
1105                 .offset         = LOCAL_VAR(hosts_deny),
1106                 .special        = NULL,
1107                 .enum_list      = NULL,
1108                 .flags          = FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
1109         },
1110         {
1111                 .label          = "deny hosts",
1112                 .type           = P_CMDLIST,
1113                 .p_class        = P_LOCAL,
1114                 .offset         = LOCAL_VAR(hosts_deny),
1115                 .special        = NULL,
1116                 .enum_list      = NULL,
1117                 .flags          = FLAG_HIDE,
1118         },
1119         {
1120                 .label          = "preload modules",
1121                 .type           = P_CMDLIST,
1122                 .p_class        = P_GLOBAL,
1123                 .offset         = GLOBAL_VAR(preload_modules),
1124                 .special        = NULL,
1125                 .enum_list      = NULL,
1126                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1127         },
1128         {
1129                 .label          = "dedicated keytab file",
1130                 .type           = P_STRING,
1131                 .p_class        = P_GLOBAL,
1132                 .offset         = GLOBAL_VAR(dedicated_keytab_file),
1133                 .special        = NULL,
1134                 .enum_list      = NULL,
1135                 .flags          = FLAG_ADVANCED,
1136         },
1137         {
1138                 .label          = "kerberos method",
1139                 .type           = P_ENUM,
1140                 .p_class        = P_GLOBAL,
1141                 .offset         = GLOBAL_VAR(kerberos_method),
1142                 .special        = NULL,
1143                 .enum_list      = enum_kerberos_method,
1144                 .flags          = FLAG_ADVANCED,
1145         },
1146         {
1147                 .label          = "map untrusted to domain",
1148                 .type           = P_BOOL,
1149                 .p_class        = P_GLOBAL,
1150                 .offset         = GLOBAL_VAR(map_untrusted_to_domain),
1151                 .special        = NULL,
1152                 .enum_list      = NULL,
1153                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1154         },
1155
1156
1157         {N_("Logging Options"), P_SEP, P_SEPARATOR},
1158
1159         {
1160                 .label          = "log level",
1161                 .type           = P_STRING,
1162                 .p_class        = P_GLOBAL,
1163                 .offset         = GLOBAL_VAR(log_level),
1164                 .special        = handle_debug_list,
1165                 .enum_list      = NULL,
1166                 .flags          = FLAG_ADVANCED,
1167         },
1168         {
1169                 .label          = "debuglevel",
1170                 .type           = P_STRING,
1171                 .p_class        = P_GLOBAL,
1172                 .offset         = GLOBAL_VAR(log_level),
1173                 .special        = handle_debug_list,
1174                 .enum_list      = NULL,
1175                 .flags          = FLAG_HIDE,
1176         },
1177         {
1178                 .label          = "syslog",
1179                 .type           = P_INTEGER,
1180                 .p_class        = P_GLOBAL,
1181                 .offset         = GLOBAL_VAR(syslog),
1182                 .special        = NULL,
1183                 .enum_list      = NULL,
1184                 .flags          = FLAG_ADVANCED,
1185         },
1186         {
1187                 .label          = "syslog only",
1188                 .type           = P_BOOL,
1189                 .p_class        = P_GLOBAL,
1190                 .offset         = GLOBAL_VAR(syslog_only),
1191                 .special        = NULL,
1192                 .enum_list      = NULL,
1193                 .flags          = FLAG_ADVANCED,
1194         },
1195         {
1196                 .label          = "log file",
1197                 .type           = P_STRING,
1198                 .p_class        = P_GLOBAL,
1199                 .offset         = GLOBAL_VAR(logfile),
1200                 .special        = handle_logfile,
1201                 .enum_list      = NULL,
1202                 .flags          = FLAG_ADVANCED,
1203         },
1204         {
1205                 .label          = "max log size",
1206                 .type           = P_BYTES,
1207                 .p_class        = P_GLOBAL,
1208                 .offset         = GLOBAL_VAR(max_log_size),
1209                 .special        = NULL,
1210                 .enum_list      = NULL,
1211                 .flags          = FLAG_ADVANCED,
1212         },
1213         {
1214                 .label          = "debug timestamp",
1215                 .type           = P_BOOL,
1216                 .p_class        = P_GLOBAL,
1217                 .offset         = GLOBAL_VAR(timestamp_logs),
1218                 .special        = NULL,
1219                 .enum_list      = NULL,
1220                 .flags          = FLAG_ADVANCED,
1221         },
1222         {
1223                 .label          = "timestamp logs",
1224                 .type           = P_BOOL,
1225                 .p_class        = P_GLOBAL,
1226                 .offset         = GLOBAL_VAR(timestamp_logs),
1227                 .special        = NULL,
1228                 .enum_list      = NULL,
1229                 .flags          = FLAG_ADVANCED,
1230         },
1231         {
1232                 .label          = "debug prefix timestamp",
1233                 .type           = P_BOOL,
1234                 .p_class        = P_GLOBAL,
1235                 .offset         = GLOBAL_VAR(debug_prefix_timestamp),
1236                 .special        = NULL,
1237                 .enum_list      = NULL,
1238                 .flags          = FLAG_ADVANCED,
1239         },
1240         {
1241                 .label          = "debug hires timestamp",
1242                 .type           = P_BOOL,
1243                 .p_class        = P_GLOBAL,
1244                 .offset         = GLOBAL_VAR(debug_hires_timestamp),
1245                 .special        = NULL,
1246                 .enum_list      = NULL,
1247                 .flags          = FLAG_ADVANCED,
1248         },
1249         {
1250                 .label          = "debug pid",
1251                 .type           = P_BOOL,
1252                 .p_class        = P_GLOBAL,
1253                 .offset         = GLOBAL_VAR(debug_pid),
1254                 .special        = NULL,
1255                 .enum_list      = NULL,
1256                 .flags          = FLAG_ADVANCED,
1257         },
1258         {
1259                 .label          = "debug uid",
1260                 .type           = P_BOOL,
1261                 .p_class        = P_GLOBAL,
1262                 .offset         = GLOBAL_VAR(debug_uid),
1263                 .special        = NULL,
1264                 .enum_list      = NULL,
1265                 .flags          = FLAG_ADVANCED,
1266         },
1267         {
1268                 .label          = "debug class",
1269                 .type           = P_BOOL,
1270                 .p_class        = P_GLOBAL,
1271                 .offset         = GLOBAL_VAR(debug_class),
1272                 .special        = NULL,
1273                 .enum_list      = NULL,
1274                 .flags          = FLAG_ADVANCED,
1275         },
1276         {
1277                 .label          = "enable core files",
1278                 .type           = P_BOOL,
1279                 .p_class        = P_GLOBAL,
1280                 .offset         = GLOBAL_VAR(enable_core_files),
1281                 .special        = NULL,
1282                 .enum_list      = NULL,
1283                 .flags          = FLAG_ADVANCED,
1284         },
1285
1286         {N_("Protocol Options"), P_SEP, P_SEPARATOR},
1287
1288         {
1289                 .label          = "allocation roundup size",
1290                 .type           = P_BYTES,
1291                 .p_class        = P_LOCAL,
1292                 .offset         = LOCAL_VAR(allocation_roundup_size),
1293                 .special        = NULL,
1294                 .enum_list      = NULL,
1295                 .flags          = FLAG_ADVANCED,
1296         },
1297         {
1298                 .label          = "aio read size",
1299                 .type           = P_BYTES,
1300                 .p_class        = P_LOCAL,
1301                 .offset         = LOCAL_VAR(aio_read_size),
1302                 .special        = NULL,
1303                 .enum_list      = NULL,
1304                 .flags          = FLAG_ADVANCED,
1305         },
1306         {
1307                 .label          = "aio write size",
1308                 .type           = P_BYTES,
1309                 .p_class        = P_LOCAL,
1310                 .offset         = LOCAL_VAR(aio_write_size),
1311                 .special        = NULL,
1312                 .enum_list      = NULL,
1313                 .flags          = FLAG_ADVANCED,
1314         },
1315         {
1316                 .label          = "aio write behind",
1317                 .type           = P_STRING,
1318                 .p_class        = P_LOCAL,
1319                 .offset         = LOCAL_VAR(aio_write_behind),
1320                 .special        = NULL,
1321                 .enum_list      = NULL,
1322                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1323         },
1324         {
1325                 .label          = "smb ports",
1326                 .type           = P_CMDLIST,
1327                 .p_class        = P_GLOBAL,
1328                 .offset         = GLOBAL_VAR(smb_ports),
1329                 .special        = handle_smb_ports,
1330                 .enum_list      = NULL,
1331                 .flags          = FLAG_ADVANCED,
1332         },
1333         {
1334                 .label          = "large readwrite",
1335                 .type           = P_BOOL,
1336                 .p_class        = P_GLOBAL,
1337                 .offset         = GLOBAL_VAR(large_readwrite),
1338                 .special        = NULL,
1339                 .enum_list      = NULL,
1340                 .flags          = FLAG_ADVANCED,
1341         },
1342         {
1343                 .label          = "server max protocol",
1344                 .type           = P_ENUM,
1345                 .p_class        = P_GLOBAL,
1346                 .offset         = GLOBAL_VAR(server_max_protocol),
1347                 .special        = NULL,
1348                 .enum_list      = enum_protocol,
1349                 .flags          = FLAG_ADVANCED,
1350         },
1351         {
1352                 .label          = "max protocol",
1353                 .type           = P_ENUM,
1354                 .p_class        = P_GLOBAL,
1355                 .offset         = GLOBAL_VAR(server_max_protocol),
1356                 .special        = NULL,
1357                 .enum_list      = enum_protocol,
1358                 .flags          = FLAG_ADVANCED,
1359         },
1360         {
1361                 .label          = "protocol",
1362                 .type           = P_ENUM,
1363                 .p_class        = P_GLOBAL,
1364                 .offset         = GLOBAL_VAR(server_max_protocol),
1365                 .special        = NULL,
1366                 .enum_list      = enum_protocol,
1367                 .flags          = FLAG_ADVANCED,
1368         },
1369         {
1370                 .label          = "server min protocol",
1371                 .type           = P_ENUM,
1372                 .p_class        = P_GLOBAL,
1373                 .offset         = GLOBAL_VAR(server_min_protocol),
1374                 .special        = NULL,
1375                 .enum_list      = enum_protocol,
1376                 .flags          = FLAG_ADVANCED,
1377         },
1378         {
1379                 .label          = "min protocol",
1380                 .type           = P_ENUM,
1381                 .p_class        = P_GLOBAL,
1382                 .offset         = GLOBAL_VAR(server_min_protocol),
1383                 .special        = NULL,
1384                 .enum_list      = enum_protocol,
1385                 .flags          = FLAG_ADVANCED,
1386         },
1387         {
1388                 .label          = "client max protocol",
1389                 .type           = P_ENUM,
1390                 .p_class        = P_GLOBAL,
1391                 .offset         = GLOBAL_VAR(_client_max_protocol),
1392                 .special        = NULL,
1393                 .enum_list      = enum_protocol,
1394                 .flags          = FLAG_ADVANCED,
1395         },
1396         {
1397                 .label          = "client min protocol",
1398                 .type           = P_ENUM,
1399                 .p_class        = P_GLOBAL,
1400                 .offset         = GLOBAL_VAR(client_min_protocol),
1401                 .special        = NULL,
1402                 .enum_list      = enum_protocol,
1403                 .flags          = FLAG_ADVANCED,
1404         },
1405         {
1406                 .label          = "unicode",
1407                 .type           = P_BOOL,
1408                 .p_class        = P_GLOBAL,
1409                 .offset         = GLOBAL_VAR(unicode),
1410                 .special        = NULL,
1411                 .enum_list      = NULL
1412         },
1413         {
1414                 .label          = "min receivefile size",
1415                 .type           = P_BYTES,
1416                 .p_class        = P_GLOBAL,
1417                 .offset         = GLOBAL_VAR(iminreceivefile),
1418                 .special        = NULL,
1419                 .enum_list      = NULL,
1420                 .flags          = FLAG_ADVANCED,
1421         },
1422         {
1423                 .label          = "read raw",
1424                 .type           = P_BOOL,
1425                 .p_class        = P_GLOBAL,
1426                 .offset         = GLOBAL_VAR(read_raw),
1427                 .special        = NULL,
1428                 .enum_list      = NULL,
1429                 .flags          = FLAG_ADVANCED,
1430         },
1431         {
1432                 .label          = "write raw",
1433                 .type           = P_BOOL,
1434                 .p_class        = P_GLOBAL,
1435                 .offset         = GLOBAL_VAR(write_raw),
1436                 .special        = NULL,
1437                 .enum_list      = NULL,
1438                 .flags          = FLAG_ADVANCED,
1439         },
1440         {
1441                 .label          = "disable netbios",
1442                 .type           = P_BOOL,
1443                 .p_class        = P_GLOBAL,
1444                 .offset         = GLOBAL_VAR(disable_netbios),
1445                 .special        = NULL,
1446                 .enum_list      = NULL,
1447                 .flags          = FLAG_ADVANCED,
1448         },
1449         {
1450                 .label          = "reset on zero vc",
1451                 .type           = P_BOOL,
1452                 .p_class        = P_GLOBAL,
1453                 .offset         = GLOBAL_VAR(reset_on_zero_vc),
1454                 .special        = NULL,
1455                 .enum_list      = NULL,
1456                 .flags          = FLAG_ADVANCED,
1457         },
1458         {
1459                 .label          = "log writeable files on exit",
1460                 .type           = P_BOOL,
1461                 .p_class        = P_GLOBAL,
1462                 .offset         = GLOBAL_VAR(log_writeable_files_on_exit),
1463                 .special        = NULL,
1464                 .enum_list      = NULL,
1465                 .flags          = FLAG_ADVANCED,
1466         },
1467         {
1468                 .label          = "defer sharing violations",
1469                 .type           = P_BOOL,
1470                 .p_class        = P_GLOBAL,
1471                 .offset         = GLOBAL_VAR(defer_sharing_violations),
1472                 .special        = NULL,
1473                 .enum_list      = NULL,
1474                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1475         },
1476         {
1477                 .label          = "ea support",
1478                 .type           = P_BOOL,
1479                 .p_class        = P_LOCAL,
1480                 .offset         = LOCAL_VAR(ea_support),
1481                 .special        = NULL,
1482                 .enum_list      = NULL,
1483                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1484         },
1485         {
1486                 .label          = "nt acl support",
1487                 .type           = P_BOOL,
1488                 .p_class        = P_LOCAL,
1489                 .offset         = LOCAL_VAR(nt_acl_support),
1490                 .special        = NULL,
1491                 .enum_list      = NULL,
1492                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1493         },
1494         {
1495                 .label          = "nt pipe support",
1496                 .type           = P_BOOL,
1497                 .p_class        = P_GLOBAL,
1498                 .offset         = GLOBAL_VAR(nt_pipe_support),
1499                 .special        = NULL,
1500                 .enum_list      = NULL,
1501                 .flags          = FLAG_ADVANCED,
1502         },
1503         {
1504                 .label          = "nt status support",
1505                 .type           = P_BOOL,
1506                 .p_class        = P_GLOBAL,
1507                 .offset         = GLOBAL_VAR(nt_status_support),
1508                 .special        = NULL,
1509                 .enum_list      = NULL,
1510                 .flags          = FLAG_ADVANCED,
1511         },
1512         {
1513                 .label          = "profile acls",
1514                 .type           = P_BOOL,
1515                 .p_class        = P_LOCAL,
1516                 .offset         = LOCAL_VAR(profile_acls),
1517                 .special        = NULL,
1518                 .enum_list      = NULL,
1519                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE,
1520         },
1521         {
1522                 .label          = "map acl inherit",
1523                 .type           = P_BOOL,
1524                 .p_class        = P_LOCAL,
1525                 .offset         = LOCAL_VAR(map_acl_inherit),
1526                 .special        = NULL,
1527                 .enum_list      = NULL,
1528                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1529         },
1530         {
1531                 .label          = "afs share",
1532                 .type           = P_BOOL,
1533                 .p_class        = P_LOCAL,
1534                 .offset         = LOCAL_VAR(afs_share),
1535                 .special        = NULL,
1536                 .enum_list      = NULL,
1537                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1538         },
1539         {
1540                 .label          = "max mux",
1541                 .type           = P_INTEGER,
1542                 .p_class        = P_GLOBAL,
1543                 .offset         = GLOBAL_VAR(max_mux),
1544                 .special        = NULL,
1545                 .enum_list      = NULL,
1546                 .flags          = FLAG_ADVANCED,
1547         },
1548         {
1549                 .label          = "max xmit",
1550                 .type           = P_BYTES,
1551                 .p_class        = P_GLOBAL,
1552                 .offset         = GLOBAL_VAR(max_xmit),
1553                 .special        = NULL,
1554                 .enum_list      = NULL,
1555                 .flags          = FLAG_ADVANCED,
1556         },
1557         {
1558                 .label          = "name resolve order",
1559                 .type           = P_CMDLIST,
1560                 .p_class        = P_GLOBAL,
1561                 .offset         = GLOBAL_VAR(name_resolve_order),
1562                 .special        = NULL,
1563                 .enum_list      = NULL,
1564                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
1565         },
1566         {
1567                 .label          = "max ttl",
1568                 .type           = P_INTEGER,
1569                 .p_class        = P_GLOBAL,
1570                 .offset         = GLOBAL_VAR(max_ttl),
1571                 .special        = NULL,
1572                 .enum_list      = NULL,
1573                 .flags          = FLAG_ADVANCED,
1574         },
1575         {
1576                 .label          = "max wins ttl",
1577                 .type           = P_INTEGER,
1578                 .p_class        = P_GLOBAL,
1579                 .offset         = GLOBAL_VAR(max_wins_ttl),
1580                 .special        = NULL,
1581                 .enum_list      = NULL,
1582                 .flags          = FLAG_ADVANCED,
1583         },
1584         {
1585                 .label          = "min wins ttl",
1586                 .type           = P_INTEGER,
1587                 .p_class        = P_GLOBAL,
1588                 .offset         = GLOBAL_VAR(min_wins_ttl),
1589                 .special        = NULL,
1590                 .enum_list      = NULL,
1591                 .flags          = FLAG_ADVANCED,
1592         },
1593         {
1594                 .label          = "time server",
1595                 .type           = P_BOOL,
1596                 .p_class        = P_GLOBAL,
1597                 .offset         = GLOBAL_VAR(time_server),
1598                 .special        = NULL,
1599                 .enum_list      = NULL,
1600                 .flags          = FLAG_ADVANCED,
1601         },
1602         {
1603                 .label          = "unix extensions",
1604                 .type           = P_BOOL,
1605                 .p_class        = P_GLOBAL,
1606                 .offset         = GLOBAL_VAR(unix_extensions),
1607                 .special        = NULL,
1608                 .enum_list      = NULL,
1609                 .flags          = FLAG_ADVANCED,
1610         },
1611         {
1612                 .label          = "use spnego",
1613                 .type           = P_BOOL,
1614                 .p_class        = P_GLOBAL,
1615                 .offset         = GLOBAL_VAR(use_spnego),
1616                 .special        = NULL,
1617                 .enum_list      = NULL,
1618                 .flags          = FLAG_ADVANCED | FLAG_DEPRECATED,
1619         },
1620         {
1621                 .label          = "client signing",
1622                 .type           = P_ENUM,
1623                 .p_class        = P_GLOBAL,
1624                 .offset         = GLOBAL_VAR(client_signing),
1625                 .special        = NULL,
1626                 .enum_list      = enum_smb_signing_vals,
1627                 .flags          = FLAG_ADVANCED,
1628         },
1629         {
1630                 .label          = "server signing",
1631                 .type           = P_ENUM,
1632                 .p_class        = P_GLOBAL,
1633                 .offset         = GLOBAL_VAR(server_signing),
1634                 .special        = NULL,
1635                 .enum_list      = enum_smb_signing_vals,
1636                 .flags          = FLAG_ADVANCED,
1637         },
1638         {
1639                 .label          = "smb encrypt",
1640                 .type           = P_ENUM,
1641                 .p_class        = P_LOCAL,
1642                 .offset         = LOCAL_VAR(smb_encrypt),
1643                 .special        = NULL,
1644                 .enum_list      = enum_smb_signing_vals,
1645                 .flags          = FLAG_ADVANCED,
1646         },
1647         {
1648                 .label          = "client use spnego",
1649                 .type           = P_BOOL,
1650                 .p_class        = P_GLOBAL,
1651                 .offset         = GLOBAL_VAR(client_use_spnego),
1652                 .special        = NULL,
1653                 .enum_list      = NULL,
1654                 .flags          = FLAG_ADVANCED,
1655         },
1656         {
1657                 .label          = "client ldap sasl wrapping",
1658                 .type           = P_ENUM,
1659                 .p_class        = P_GLOBAL,
1660                 .offset         = GLOBAL_VAR(client_ldap_sasl_wrapping),
1661                 .special        = NULL,
1662                 .enum_list      = enum_ldap_sasl_wrapping,
1663                 .flags          = FLAG_ADVANCED,
1664         },
1665         {
1666                 .label          = "enable asu support",
1667                 .type           = P_BOOL,
1668                 .p_class        = P_GLOBAL,
1669                 .offset         = GLOBAL_VAR(enable_asu_support),
1670                 .special        = NULL,
1671                 .enum_list      = NULL,
1672                 .flags          = FLAG_ADVANCED,
1673         },
1674         {
1675                 .label          = "svcctl list",
1676                 .type           = P_CMDLIST,
1677                 .p_class        = P_GLOBAL,
1678                 .offset         = GLOBAL_VAR(svcctl_list),
1679                 .special        = NULL,
1680                 .enum_list      = NULL,
1681                 .flags          = FLAG_ADVANCED,
1682         },
1683         {
1684                 .label          = "cldap port",
1685                 .type           = P_INTEGER,
1686                 .p_class        = P_GLOBAL,
1687                 .offset         = GLOBAL_VAR(cldap_port),
1688                 .special        = NULL,
1689                 .enum_list      = NULL
1690         },
1691         {
1692                 .label          = "dgram port",
1693                 .type           = P_INTEGER,
1694                 .p_class        = P_GLOBAL,
1695                 .offset         = GLOBAL_VAR(dgram_port),
1696                 .special        = NULL,
1697                 .enum_list      = NULL
1698         },
1699         {
1700                 .label          = "nbt port",
1701                 .type           = P_INTEGER,
1702                 .p_class        = P_GLOBAL,
1703                 .offset         = GLOBAL_VAR(nbt_port),
1704                 .special        = NULL,
1705                 .enum_list      = NULL
1706         },
1707         {
1708                 .label          = "krb5 port",
1709                 .type           = P_INTEGER,
1710                 .p_class        = P_GLOBAL,
1711                 .offset         = GLOBAL_VAR(krb5_port),
1712                 .special        = NULL,
1713                 .enum_list      = NULL
1714         },
1715         {
1716                 .label          = "kpasswd port",
1717                 .type           = P_INTEGER,
1718                 .p_class        = P_GLOBAL,
1719                 .offset         = GLOBAL_VAR(kpasswd_port),
1720                 .special        = NULL,
1721                 .enum_list      = NULL
1722         },
1723         {
1724                 .label          = "web port",
1725                 .type           = P_INTEGER,
1726                 .p_class        = P_GLOBAL,
1727                 .offset         = GLOBAL_VAR(web_port),
1728                 .special        = NULL,
1729                 .enum_list      = NULL
1730         },
1731         {
1732                 .label          = "rpc big endian",
1733                 .type           = P_BOOL,
1734                 .p_class        = P_GLOBAL,
1735                 .offset         = GLOBAL_VAR(rpc_big_endian),
1736                 .special        = NULL,
1737                 .enum_list      = NULL
1738         },
1739         {
1740                 .label          = "durable handles",
1741                 .type           = P_BOOL,
1742                 .p_class        = P_LOCAL,
1743                 .offset         = LOCAL_VAR(durable_handles),
1744                 .special        = NULL,
1745                 .enum_list      = NULL,
1746                 .flags          = FLAG_ADVANCED,
1747         },
1748
1749         {N_("Tuning Options"), P_SEP, P_SEPARATOR},
1750
1751         {
1752                 .label          = "block size",
1753                 .type           = P_BYTES,
1754                 .p_class        = P_LOCAL,
1755                 .offset         = LOCAL_VAR(block_size),
1756                 .special        = NULL,
1757                 .enum_list      = NULL,
1758                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
1759         },
1760         {
1761                 .label          = "deadtime",
1762                 .type           = P_INTEGER,
1763                 .p_class        = P_GLOBAL,
1764                 .offset         = GLOBAL_VAR(deadtime),
1765                 .special        = NULL,
1766                 .enum_list      = NULL,
1767                 .flags          = FLAG_ADVANCED,
1768         },
1769         {
1770                 .label          = "getwd cache",
1771                 .type           = P_BOOL,
1772                 .p_class        = P_GLOBAL,
1773                 .offset         = GLOBAL_VAR(getwd_cache),
1774                 .special        = NULL,
1775                 .enum_list      = NULL,
1776                 .flags          = FLAG_ADVANCED,
1777         },
1778         {
1779                 .label          = "keepalive",
1780                 .type           = P_INTEGER,
1781                 .p_class        = P_GLOBAL,
1782                 .offset         = GLOBAL_VAR(keepalive),
1783                 .special        = NULL,
1784                 .enum_list      = NULL,
1785                 .flags          = FLAG_ADVANCED,
1786         },
1787         {
1788                 .label          = "change notify",
1789                 .type           = P_BOOL,
1790                 .p_class        = P_LOCAL,
1791                 .offset         = LOCAL_VAR(change_notify),
1792                 .special        = NULL,
1793                 .enum_list      = NULL,
1794                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1795         },
1796         {
1797                 .label          = "directory name cache size",
1798                 .type           = P_INTEGER,
1799                 .p_class        = P_LOCAL,
1800                 .offset         = LOCAL_VAR(directory_name_cache_size),
1801                 .special        = NULL,
1802                 .enum_list      = NULL,
1803                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1804         },
1805         {
1806                 .label          = "kernel change notify",
1807                 .type           = P_BOOL,
1808                 .p_class        = P_LOCAL,
1809                 .offset         = LOCAL_VAR(kernel_change_notify),
1810                 .special        = NULL,
1811                 .enum_list      = NULL,
1812                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1813         },
1814         {
1815                 .label          = "lpq cache time",
1816                 .type           = P_INTEGER,
1817                 .p_class        = P_GLOBAL,
1818                 .offset         = GLOBAL_VAR(lpq_cache_time),
1819                 .special        = NULL,
1820                 .enum_list      = NULL,
1821                 .flags          = FLAG_ADVANCED,
1822         },
1823         {
1824                 .label          = "max smbd processes",
1825                 .type           = P_INTEGER,
1826                 .p_class        = P_GLOBAL,
1827                 .offset         = GLOBAL_VAR(max_smbd_processes),
1828                 .special        = NULL,
1829                 .enum_list      = NULL,
1830                 .flags          = FLAG_ADVANCED,
1831         },
1832         {
1833                 .label          = "max connections",
1834                 .type           = P_INTEGER,
1835                 .p_class        = P_LOCAL,
1836                 .offset         = LOCAL_VAR(max_connections),
1837                 .special        = NULL,
1838                 .enum_list      = NULL,
1839                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1840         },
1841         {
1842                 .label          = "max disk size",
1843                 .type           = P_BYTES,
1844                 .p_class        = P_GLOBAL,
1845                 .offset         = GLOBAL_VAR(max_disk_size),
1846                 .special        = NULL,
1847                 .enum_list      = NULL,
1848                 .flags          = FLAG_ADVANCED,
1849         },
1850         {
1851                 .label          = "max open files",
1852                 .type           = P_INTEGER,
1853                 .p_class        = P_GLOBAL,
1854                 .offset         = GLOBAL_VAR(max_open_files),
1855                 .special        = NULL,
1856                 .enum_list      = NULL,
1857                 .flags          = FLAG_ADVANCED,
1858         },
1859         {
1860                 .label          = "min print space",
1861                 .type           = P_INTEGER,
1862                 .p_class        = P_LOCAL,
1863                 .offset         = LOCAL_VAR(min_print_space),
1864                 .special        = NULL,
1865                 .enum_list      = NULL,
1866                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
1867         },
1868         {
1869                 .label          = "socket options",
1870                 .type           = P_STRING,
1871                 .p_class        = P_GLOBAL,
1872                 .offset         = GLOBAL_VAR(socket_options),
1873                 .special        = NULL,
1874                 .enum_list      = NULL,
1875                 .flags          = FLAG_ADVANCED,
1876         },
1877         {
1878                 .label          = "strict allocate",
1879                 .type           = P_BOOL,
1880                 .p_class        = P_LOCAL,
1881                 .offset         = LOCAL_VAR(strict_allocate),
1882                 .special        = NULL,
1883                 .enum_list      = NULL,
1884                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1885         },
1886         {
1887                 .label          = "strict sync",
1888                 .type           = P_BOOL,
1889                 .p_class        = P_LOCAL,
1890                 .offset         = LOCAL_VAR(strict_sync),
1891                 .special        = NULL,
1892                 .enum_list      = NULL,
1893                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1894         },
1895         {
1896                 .label          = "sync always",
1897                 .type           = P_BOOL,
1898                 .p_class        = P_LOCAL,
1899                 .offset         = LOCAL_VAR(sync_always),
1900                 .special        = NULL,
1901                 .enum_list      = NULL,
1902                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1903         },
1904         {
1905                 .label          = "use mmap",
1906                 .type           = P_BOOL,
1907                 .p_class        = P_GLOBAL,
1908                 .offset         = GLOBAL_VAR(use_mmap),
1909                 .special        = NULL,
1910                 .enum_list      = NULL,
1911                 .flags          = FLAG_ADVANCED,
1912         },
1913         {
1914                 .label          = "use ntdb",
1915                 .type           = P_BOOL,
1916                 .p_class        = P_GLOBAL,
1917                 .offset         = GLOBAL_VAR(use_ntdb),
1918                 .special        = NULL,
1919                 .enum_list      = NULL,
1920                 .flags          = FLAG_ADVANCED,
1921         },
1922         {
1923                 .label          = "use sendfile",
1924                 .type           = P_BOOL,
1925                 .p_class        = P_LOCAL,
1926                 .offset         = LOCAL_VAR(_use_sendfile),
1927                 .special        = NULL,
1928                 .enum_list      = NULL,
1929                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1930         },
1931         {
1932                 .label          = "hostname lookups",
1933                 .type           = P_BOOL,
1934                 .p_class        = P_GLOBAL,
1935                 .offset         = GLOBAL_VAR(hostname_lookups),
1936                 .special        = NULL,
1937                 .enum_list      = NULL,
1938                 .flags          = FLAG_ADVANCED,
1939         },
1940         {
1941                 .label          = "write cache size",
1942                 .type           = P_BYTES,
1943                 .p_class        = P_LOCAL,
1944                 .offset         = LOCAL_VAR(write_cache_size),
1945                 .special        = NULL,
1946                 .enum_list      = NULL,
1947                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
1948         },
1949         {
1950                 .label          = "name cache timeout",
1951                 .type           = P_INTEGER,
1952                 .p_class        = P_GLOBAL,
1953                 .offset         = GLOBAL_VAR(name_cache_timeout),
1954                 .special        = NULL,
1955                 .enum_list      = NULL,
1956                 .flags          = FLAG_ADVANCED,
1957         },
1958         {
1959                 .label          = "ctdbd socket",
1960                 .type           = P_STRING,
1961                 .p_class        = P_GLOBAL,
1962                 .offset         = GLOBAL_VAR(_ctdbd_socket),
1963                 .special        = NULL,
1964                 .enum_list      = NULL,
1965                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1966         },
1967         {
1968                 .label          = "cluster addresses",
1969                 .type           = P_CMDLIST,
1970                 .p_class        = P_GLOBAL,
1971                 .offset         = GLOBAL_VAR(cluster_addresses),
1972                 .special        = NULL,
1973                 .enum_list      = NULL,
1974                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1975         },
1976         {
1977                 .label          = "clustering",
1978                 .type           = P_BOOL,
1979                 .p_class        = P_GLOBAL,
1980                 .offset         = GLOBAL_VAR(clustering),
1981                 .special        = NULL,
1982                 .enum_list      = NULL,
1983                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1984         },
1985         {
1986                 .label          = "ctdb timeout",
1987                 .type           = P_INTEGER,
1988                 .p_class        = P_GLOBAL,
1989                 .offset         = GLOBAL_VAR(ctdb_timeout),
1990                 .special        = NULL,
1991                 .enum_list      = NULL,
1992                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
1993         },
1994         {
1995                 .label          = "ctdb locktime warn threshold",
1996                 .type           = P_INTEGER,
1997                 .p_class        = P_GLOBAL,
1998                 .offset         = GLOBAL_VAR(ctdb_locktime_warn_threshold),
1999                 .special        = NULL,
2000                 .enum_list      = NULL,
2001                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
2002         },
2003         {
2004                 .label          = "smb2 max read",
2005                 .type           = P_BYTES,
2006                 .p_class        = P_GLOBAL,
2007                 .offset         = GLOBAL_VAR(smb2_max_read),
2008                 .special        = NULL,
2009                 .enum_list      = NULL,
2010                 .flags          = FLAG_ADVANCED,
2011         },
2012         {
2013                 .label          = "smb2 max write",
2014                 .type           = P_BYTES,
2015                 .p_class        = P_GLOBAL,
2016                 .offset         = GLOBAL_VAR(smb2_max_write),
2017                 .special        = NULL,
2018                 .enum_list      = NULL,
2019                 .flags          = FLAG_ADVANCED,
2020         },
2021         {
2022                 .label          = "smb2 max trans",
2023                 .type           = P_BYTES,
2024                 .p_class        = P_GLOBAL,
2025                 .offset         = GLOBAL_VAR(smb2_max_trans),
2026                 .special        = NULL,
2027                 .enum_list      = NULL,
2028                 .flags          = FLAG_ADVANCED,
2029         },
2030         {
2031                 .label          = "smb2 max credits",
2032                 .type           = P_INTEGER,
2033                 .p_class        = P_GLOBAL,
2034                 .offset         = GLOBAL_VAR(ismb2_max_credits),
2035                 .special        = NULL,
2036                 .enum_list      = NULL,
2037                 .flags          = FLAG_ADVANCED,
2038         },
2039
2040         {N_("Printing Options"), P_SEP, P_SEPARATOR},
2041
2042         {
2043                 .label          = "max reported print jobs",
2044                 .type           = P_INTEGER,
2045                 .p_class        = P_LOCAL,
2046                 .offset         = LOCAL_VAR(max_reported_print_jobs),
2047                 .special        = NULL,
2048                 .enum_list      = NULL,
2049                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2050         },
2051         {
2052                 .label          = "max print jobs",
2053                 .type           = P_INTEGER,
2054                 .p_class        = P_LOCAL,
2055                 .offset         = LOCAL_VAR(iMaxPrintJobs),
2056                 .special        = NULL,
2057                 .enum_list      = NULL,
2058                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2059         },
2060         {
2061                 .label          = "load printers",
2062                 .type           = P_BOOL,
2063                 .p_class        = P_GLOBAL,
2064                 .offset         = GLOBAL_VAR(load_printers),
2065                 .special        = NULL,
2066                 .enum_list      = NULL,
2067                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2068         },
2069         {
2070                 .label          = "printcap cache time",
2071                 .type           = P_INTEGER,
2072                 .p_class        = P_GLOBAL,
2073                 .offset         = GLOBAL_VAR(printcap_cache_time),
2074                 .special        = NULL,
2075                 .enum_list      = NULL,
2076                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2077         },
2078         {
2079                 .label          = "printcap name",
2080                 .type           = P_STRING,
2081                 .p_class        = P_GLOBAL,
2082                 .offset         = GLOBAL_VAR(szPrintcapname),
2083                 .special        = NULL,
2084                 .enum_list      = NULL,
2085                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2086         },
2087         {
2088                 .label          = "printcap",
2089                 .type           = P_STRING,
2090                 .p_class        = P_GLOBAL,
2091                 .offset         = GLOBAL_VAR(szPrintcapname),
2092                 .special        = NULL,
2093                 .enum_list      = NULL,
2094                 .flags          = FLAG_HIDE,
2095         },
2096         {
2097                 .label          = "printable",
2098                 .type           = P_BOOL,
2099                 .p_class        = P_LOCAL,
2100                 .offset         = LOCAL_VAR(printable),
2101                 .special        = NULL,
2102                 .enum_list      = NULL,
2103                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2104         },
2105         {
2106                 .label          = "print notify backchannel",
2107                 .type           = P_BOOL,
2108                 .p_class        = P_LOCAL,
2109                 .offset         = LOCAL_VAR(print_notify_backchannel),
2110                 .special        = NULL,
2111                 .enum_list      = NULL,
2112                 .flags          = FLAG_ADVANCED,
2113         },
2114         {
2115                 .label          = "print ok",
2116                 .type           = P_BOOL,
2117                 .p_class        = P_LOCAL,
2118                 .offset         = LOCAL_VAR(printable),
2119                 .special        = NULL,
2120                 .enum_list      = NULL,
2121                 .flags          = FLAG_HIDE,
2122         },
2123         {
2124                 .label          = "printing",
2125                 .type           = P_ENUM,
2126                 .p_class        = P_LOCAL,
2127                 .offset         = LOCAL_VAR(printing),
2128                 .special        = handle_printing,
2129                 .enum_list      = enum_printing,
2130                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2131         },
2132         {
2133                 .label          = "cups options",
2134                 .type           = P_STRING,
2135                 .p_class        = P_LOCAL,
2136                 .offset         = LOCAL_VAR(cups_options),
2137                 .special        = NULL,
2138                 .enum_list      = NULL,
2139                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2140         },
2141         {
2142                 .label          = "cups server",
2143                 .type           = P_STRING,
2144                 .p_class        = P_GLOBAL,
2145                 .offset         = GLOBAL_VAR(cups_server),
2146                 .special        = NULL,
2147                 .enum_list      = NULL,
2148                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2149         },
2150         {
2151                 .label          = "cups encrypt",
2152                 .type           = P_ENUM,
2153                 .p_class        = P_GLOBAL,
2154                 .offset         = GLOBAL_VAR(CupsEncrypt),
2155                 .special        = NULL,
2156                 .enum_list      = enum_bool_auto,
2157                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2158         },
2159         {
2160
2161                 .label          = "cups connection timeout",
2162                 .type           = P_INTEGER,
2163                 .p_class        = P_GLOBAL,
2164                 .offset         = GLOBAL_VAR(cups_connection_timeout),
2165                 .special        = NULL,
2166                 .enum_list      = NULL,
2167                 .flags          = FLAG_ADVANCED,
2168         },
2169         {
2170                 .label          = "iprint server",
2171                 .type           = P_STRING,
2172                 .p_class        = P_GLOBAL,
2173                 .offset         = GLOBAL_VAR(iprint_server),
2174                 .special        = NULL,
2175                 .enum_list      = NULL,
2176                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2177         },
2178         {
2179                 .label          = "print command",
2180                 .type           = P_STRING,
2181                 .p_class        = P_LOCAL,
2182                 .offset         = LOCAL_VAR(print_command),
2183                 .special        = NULL,
2184                 .enum_list      = NULL,
2185                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2186         },
2187         {
2188                 .label          = "disable spoolss",
2189                 .type           = P_BOOL,
2190                 .p_class        = P_GLOBAL,
2191                 .offset         = GLOBAL_VAR(_disable_spoolss),
2192                 .special        = NULL,
2193                 .enum_list      = NULL,
2194                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2195         },
2196         {
2197                 .label          = "enable spoolss",
2198                 .type           = P_BOOLREV,
2199                 .p_class        = P_GLOBAL,
2200                 .offset         = GLOBAL_VAR(_disable_spoolss),
2201                 .special        = NULL,
2202                 .enum_list      = NULL,
2203                 .flags          = FLAG_HIDE,
2204         },
2205         {
2206                 .label          = "lpq command",
2207                 .type           = P_STRING,
2208                 .p_class        = P_LOCAL,
2209                 .offset         = LOCAL_VAR(lpq_command),
2210                 .special        = NULL,
2211                 .enum_list      = NULL,
2212                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2213         },
2214         {
2215                 .label          = "lprm command",
2216                 .type           = P_STRING,
2217                 .p_class        = P_LOCAL,
2218                 .offset         = LOCAL_VAR(lprm_command),
2219                 .special        = NULL,
2220                 .enum_list      = NULL,
2221                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2222         },
2223         {
2224                 .label          = "lppause command",
2225                 .type           = P_STRING,
2226                 .p_class        = P_LOCAL,
2227                 .offset         = LOCAL_VAR(lppause_command),
2228                 .special        = NULL,
2229                 .enum_list      = NULL,
2230                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2231         },
2232         {
2233                 .label          = "lpresume command",
2234                 .type           = P_STRING,
2235                 .p_class        = P_LOCAL,
2236                 .offset         = LOCAL_VAR(lpresume_command),
2237                 .special        = NULL,
2238                 .enum_list      = NULL,
2239                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2240         },
2241         {
2242                 .label          = "queuepause command",
2243                 .type           = P_STRING,
2244                 .p_class        = P_LOCAL,
2245                 .offset         = LOCAL_VAR(queuepause_command),
2246                 .special        = NULL,
2247                 .enum_list      = NULL,
2248                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2249         },
2250         {
2251                 .label          = "queueresume command",
2252                 .type           = P_STRING,
2253                 .p_class        = P_LOCAL,
2254                 .offset         = LOCAL_VAR(queueresume_command),
2255                 .special        = NULL,
2256                 .enum_list      = NULL,
2257                 .flags          = FLAG_ADVANCED | FLAG_PRINT | FLAG_GLOBAL,
2258         },
2259         {
2260                 .label          = "addport command",
2261                 .type           = P_STRING,
2262                 .p_class        = P_GLOBAL,
2263                 .offset         = GLOBAL_VAR(addport_command),
2264                 .special        = NULL,
2265                 .enum_list      = NULL,
2266                 .flags          = FLAG_ADVANCED,
2267         },
2268         {
2269                 .label          = "enumports command",
2270                 .type           = P_STRING,
2271                 .p_class        = P_GLOBAL,
2272                 .offset         = GLOBAL_VAR(enumports_command),
2273                 .special        = NULL,
2274                 .enum_list      = NULL,
2275                 .flags          = FLAG_ADVANCED,
2276         },
2277         {
2278                 .label          = "addprinter command",
2279                 .type           = P_STRING,
2280                 .p_class        = P_GLOBAL,
2281                 .offset         = GLOBAL_VAR(addprinter_command),
2282                 .special        = NULL,
2283                 .enum_list      = NULL,
2284                 .flags          = FLAG_ADVANCED,
2285         },
2286         {
2287                 .label          = "deleteprinter command",
2288                 .type           = P_STRING,
2289                 .p_class        = P_GLOBAL,
2290                 .offset         = GLOBAL_VAR(deleteprinter_command),
2291                 .special        = NULL,
2292                 .enum_list      = NULL,
2293                 .flags          = FLAG_ADVANCED,
2294         },
2295         {
2296                 .label          = "show add printer wizard",
2297                 .type           = P_BOOL,
2298                 .p_class        = P_GLOBAL,
2299                 .offset         = GLOBAL_VAR(show_add_printer_wizard),
2300                 .special        = NULL,
2301                 .enum_list      = NULL,
2302                 .flags          = FLAG_ADVANCED,
2303         },
2304         {
2305                 .label          = "os2 driver map",
2306                 .type           = P_STRING,
2307                 .p_class        = P_GLOBAL,
2308                 .offset         = GLOBAL_VAR(os2_driver_map),
2309                 .special        = NULL,
2310                 .enum_list      = NULL,
2311                 .flags          = FLAG_ADVANCED,
2312         },
2313
2314         {
2315                 .label          = "printer name",
2316                 .type           = P_STRING,
2317                 .p_class        = P_LOCAL,
2318                 .offset         = LOCAL_VAR(_printername),
2319                 .special        = NULL,
2320                 .enum_list      = NULL,
2321                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2322         },
2323         {
2324                 .label          = "printer",
2325                 .type           = P_STRING,
2326                 .p_class        = P_LOCAL,
2327                 .offset         = LOCAL_VAR(_printername),
2328                 .special        = NULL,
2329                 .enum_list      = NULL,
2330                 .flags          = FLAG_HIDE,
2331         },
2332         {
2333                 .label          = "use client driver",
2334                 .type           = P_BOOL,
2335                 .p_class        = P_LOCAL,
2336                 .offset         = LOCAL_VAR(use_client_driver),
2337                 .special        = NULL,
2338                 .enum_list      = NULL,
2339                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2340         },
2341         {
2342                 .label          = "default devmode",
2343                 .type           = P_BOOL,
2344                 .p_class        = P_LOCAL,
2345                 .offset         = LOCAL_VAR(default_devmode),
2346                 .special        = NULL,
2347                 .enum_list      = NULL,
2348                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2349         },
2350         {
2351                 .label          = "force printername",
2352                 .type           = P_BOOL,
2353                 .p_class        = P_LOCAL,
2354                 .offset         = LOCAL_VAR(force_printername),
2355                 .special        = NULL,
2356                 .enum_list      = NULL,
2357                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2358         },
2359         {
2360                 .label          = "printjob username",
2361                 .type           = P_STRING,
2362                 .p_class        = P_LOCAL,
2363                 .offset         = LOCAL_VAR(printjob_username),
2364                 .special        = NULL,
2365                 .enum_list      = NULL,
2366                 .flags          = FLAG_ADVANCED | FLAG_PRINT,
2367         },
2368
2369         {N_("Filename Handling"), P_SEP, P_SEPARATOR},
2370
2371         {
2372                 .label          = "mangling method",
2373                 .type           = P_STRING,
2374                 .p_class        = P_GLOBAL,
2375                 .offset         = GLOBAL_VAR(mangling_method),
2376                 .special        = NULL,
2377                 .enum_list      = NULL,
2378                 .flags          = FLAG_ADVANCED,
2379         },
2380         {
2381                 .label          = "mangle prefix",
2382                 .type           = P_INTEGER,
2383                 .p_class        = P_GLOBAL,
2384                 .offset         = GLOBAL_VAR(mangle_prefix),
2385                 .special        = NULL,
2386                 .enum_list      = NULL,
2387                 .flags          = FLAG_ADVANCED,
2388         },
2389
2390         {
2391                 .label          = "default case",
2392                 .type           = P_ENUM,
2393                 .p_class        = P_LOCAL,
2394                 .offset         = LOCAL_VAR(default_case),
2395                 .special        = NULL,
2396                 .enum_list      = enum_case,
2397                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
2398         },
2399         {
2400                 .label          = "case sensitive",
2401                 .type           = P_ENUM,
2402                 .p_class        = P_LOCAL,
2403                 .offset         = LOCAL_VAR(case_sensitive),
2404                 .special        = NULL,
2405                 .enum_list      = enum_bool_auto,
2406                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2407         },
2408         {
2409                 .label          = "casesignames",
2410                 .type           = P_ENUM,
2411                 .p_class        = P_LOCAL,
2412                 .offset         = LOCAL_VAR(case_sensitive),
2413                 .special        = NULL,
2414                 .enum_list      = enum_bool_auto,
2415                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_HIDE,
2416         },
2417         {
2418                 .label          = "preserve case",
2419                 .type           = P_BOOL,
2420                 .p_class        = P_LOCAL,
2421                 .offset         = LOCAL_VAR(preserve_case),
2422                 .special        = NULL,
2423                 .enum_list      = NULL,
2424                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2425         },
2426         {
2427                 .label          = "short preserve case",
2428                 .type           = P_BOOL,
2429                 .p_class        = P_LOCAL,
2430                 .offset         = LOCAL_VAR(short_preserve_case),
2431                 .special        = NULL,
2432                 .enum_list      = NULL,
2433                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2434         },
2435         {
2436                 .label          = "mangling char",
2437                 .type           = P_CHAR,
2438                 .p_class        = P_LOCAL,
2439                 .offset         = LOCAL_VAR(mangling_char),
2440                 .special        = NULL,
2441                 .enum_list      = NULL,
2442                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2443         },
2444         {
2445                 .label          = "hide dot files",
2446                 .type           = P_BOOL,
2447                 .p_class        = P_LOCAL,
2448                 .offset         = LOCAL_VAR(hide_dot_files),
2449                 .special        = NULL,
2450                 .enum_list      = NULL,
2451                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2452         },
2453         {
2454                 .label          = "hide special files",
2455                 .type           = P_BOOL,
2456                 .p_class        = P_LOCAL,
2457                 .offset         = LOCAL_VAR(hide_special_files),
2458                 .special        = NULL,
2459                 .enum_list      = NULL,
2460                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2461         },
2462         {
2463                 .label          = "hide unreadable",
2464                 .type           = P_BOOL,
2465                 .p_class        = P_LOCAL,
2466                 .offset         = LOCAL_VAR(hide_unreadable),
2467                 .special        = NULL,
2468                 .enum_list      = NULL,
2469                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2470         },
2471         {
2472                 .label          = "hide unwriteable files",
2473                 .type           = P_BOOL,
2474                 .p_class        = P_LOCAL,
2475                 .offset         = LOCAL_VAR(hide_unwriteable_files),
2476                 .special        = NULL,
2477                 .enum_list      = NULL,
2478                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2479         },
2480         {
2481                 .label          = "delete veto files",
2482                 .type           = P_BOOL,
2483                 .p_class        = P_LOCAL,
2484                 .offset         = LOCAL_VAR(delete_veto_files),
2485                 .special        = NULL,
2486                 .enum_list      = NULL,
2487                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2488         },
2489         {
2490                 .label          = "veto files",
2491                 .type           = P_STRING,
2492                 .p_class        = P_LOCAL,
2493                 .offset         = LOCAL_VAR(veto_files),
2494                 .special        = NULL,
2495                 .enum_list      = NULL,
2496                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2497         },
2498         {
2499                 .label          = "hide files",
2500                 .type           = P_STRING,
2501                 .p_class        = P_LOCAL,
2502                 .offset         = LOCAL_VAR(hide_files),
2503                 .special        = NULL,
2504                 .enum_list      = NULL,
2505                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2506         },
2507         {
2508                 .label          = "veto oplock files",
2509                 .type           = P_STRING,
2510                 .p_class        = P_LOCAL,
2511                 .offset         = LOCAL_VAR(veto_oplock_files),
2512                 .special        = NULL,
2513                 .enum_list      = NULL,
2514                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2515         },
2516         {
2517                 .label          = "map archive",
2518                 .type           = P_BOOL,
2519                 .p_class        = P_LOCAL,
2520                 .offset         = LOCAL_VAR(map_archive),
2521                 .special        = NULL,
2522                 .enum_list      = NULL,
2523                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2524         },
2525         {
2526                 .label          = "map hidden",
2527                 .type           = P_BOOL,
2528                 .p_class        = P_LOCAL,
2529                 .offset         = LOCAL_VAR(map_hidden),
2530                 .special        = NULL,
2531                 .enum_list      = NULL,
2532                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2533         },
2534         {
2535                 .label          = "map system",
2536                 .type           = P_BOOL,
2537                 .p_class        = P_LOCAL,
2538                 .offset         = LOCAL_VAR(map_system),
2539                 .special        = NULL,
2540                 .enum_list      = NULL,
2541                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2542         },
2543         {
2544                 .label          = "map readonly",
2545                 .type           = P_ENUM,
2546                 .p_class        = P_LOCAL,
2547                 .offset         = LOCAL_VAR(map_readonly),
2548                 .special        = NULL,
2549                 .enum_list      = enum_map_readonly,
2550                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2551         },
2552         {
2553                 .label          = "mangled names",
2554                 .type           = P_BOOL,
2555                 .p_class        = P_LOCAL,
2556                 .offset         = LOCAL_VAR(mangled_names),
2557                 .special        = NULL,
2558                 .enum_list      = NULL,
2559                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2560         },
2561         {
2562                 .label          = "max stat cache size",
2563                 .type           = P_INTEGER,
2564                 .p_class        = P_GLOBAL,
2565                 .offset         = GLOBAL_VAR(max_stat_cache_size),
2566                 .special        = NULL,
2567                 .enum_list      = NULL,
2568                 .flags          = FLAG_ADVANCED,
2569         },
2570         {
2571                 .label          = "stat cache",
2572                 .type           = P_BOOL,
2573                 .p_class        = P_GLOBAL,
2574                 .offset         = GLOBAL_VAR(stat_cache),
2575                 .special        = NULL,
2576                 .enum_list      = NULL,
2577                 .flags          = FLAG_ADVANCED,
2578         },
2579         {
2580                 .label          = "store dos attributes",
2581                 .type           = P_BOOL,
2582                 .p_class        = P_LOCAL,
2583                 .offset         = LOCAL_VAR(store_dos_attributes),
2584                 .special        = NULL,
2585                 .enum_list      = NULL,
2586                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2587         },
2588         {
2589                 .label          = "dmapi support",
2590                 .type           = P_BOOL,
2591                 .p_class        = P_LOCAL,
2592                 .offset         = LOCAL_VAR(dmapi_support),
2593                 .special        = NULL,
2594                 .enum_list      = NULL,
2595                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2596         },
2597
2598
2599         {N_("Domain Options"), P_SEP, P_SEPARATOR},
2600
2601         {
2602                 .label          = "machine password timeout",
2603                 .type           = P_INTEGER,
2604                 .p_class        = P_GLOBAL,
2605                 .offset         = GLOBAL_VAR(machine_password_timeout),
2606                 .special        = NULL,
2607                 .enum_list      = NULL,
2608                 .flags          = FLAG_ADVANCED | FLAG_WIZARD,
2609         },
2610
2611         {N_("Logon Options"), P_SEP, P_SEPARATOR},
2612
2613         {
2614                 .label          = "add user script",
2615                 .type           = P_STRING,
2616                 .p_class        = P_GLOBAL,
2617                 .offset         = GLOBAL_VAR(add_user_script),
2618                 .special        = NULL,
2619                 .enum_list      = NULL,
2620                 .flags          = FLAG_ADVANCED,
2621         },
2622         {
2623                 .label          = "rename user script",
2624                 .type           = P_STRING,
2625                 .p_class        = P_GLOBAL,
2626                 .offset         = GLOBAL_VAR(rename_user_script),
2627                 .special        = NULL,
2628                 .enum_list      = NULL,
2629                 .flags          = FLAG_ADVANCED,
2630         },
2631         {
2632                 .label          = "delete user script",
2633                 .type           = P_STRING,
2634                 .p_class        = P_GLOBAL,
2635                 .offset         = GLOBAL_VAR(delete_user_script),
2636                 .special        = NULL,
2637                 .enum_list      = NULL,
2638                 .flags          = FLAG_ADVANCED,
2639         },
2640         {
2641                 .label          = "add group script",
2642                 .type           = P_STRING,
2643                 .p_class        = P_GLOBAL,
2644                 .offset         = GLOBAL_VAR(add_group_script),
2645                 .special        = NULL,
2646                 .enum_list      = NULL,
2647                 .flags          = FLAG_ADVANCED,
2648         },
2649         {
2650                 .label          = "delete group script",
2651                 .type           = P_STRING,
2652                 .p_class        = P_GLOBAL,
2653                 .offset         = GLOBAL_VAR(delete_group_script),
2654                 .special        = NULL,
2655                 .enum_list      = NULL,
2656                 .flags          = FLAG_ADVANCED,
2657         },
2658         {
2659                 .label          = "add user to group script",
2660                 .type           = P_STRING,
2661                 .p_class        = P_GLOBAL,
2662                 .offset         = GLOBAL_VAR(add_user_to_group_script),
2663                 .special        = NULL,
2664                 .enum_list      = NULL,
2665                 .flags          = FLAG_ADVANCED,
2666         },
2667         {
2668                 .label          = "delete user from group script",
2669                 .type           = P_STRING,
2670                 .p_class        = P_GLOBAL,
2671                 .offset         = GLOBAL_VAR(delete_user_from_group_script),
2672                 .special        = NULL,
2673                 .enum_list      = NULL,
2674                 .flags          = FLAG_ADVANCED,
2675         },
2676         {
2677                 .label          = "set primary group script",
2678                 .type           = P_STRING,
2679                 .p_class        = P_GLOBAL,
2680                 .offset         = GLOBAL_VAR(set_primary_group_script),
2681                 .special        = NULL,
2682                 .enum_list      = NULL,
2683                 .flags          = FLAG_ADVANCED,
2684         },
2685         {
2686                 .label          = "add machine script",
2687                 .type           = P_STRING,
2688                 .p_class        = P_GLOBAL,
2689                 .offset         = GLOBAL_VAR(add_machine_script),
2690                 .special        = NULL,
2691                 .enum_list      = NULL,
2692                 .flags          = FLAG_ADVANCED,
2693         },
2694         {
2695                 .label          = "shutdown script",
2696                 .type           = P_STRING,
2697                 .p_class        = P_GLOBAL,
2698                 .offset         = GLOBAL_VAR(shutdown_script),
2699                 .special        = NULL,
2700                 .enum_list      = NULL,
2701                 .flags          = FLAG_ADVANCED,
2702         },
2703         {
2704                 .label          = "abort shutdown script",
2705                 .type           = P_STRING,
2706                 .p_class        = P_GLOBAL,
2707                 .offset         = GLOBAL_VAR(abort_shutdown_script),
2708                 .special        = NULL,
2709                 .enum_list      = NULL,
2710                 .flags          = FLAG_ADVANCED,
2711         },
2712         {
2713                 .label          = "username map script",
2714                 .type           = P_STRING,
2715                 .p_class        = P_GLOBAL,
2716                 .offset         = GLOBAL_VAR(username_map_script),
2717                 .special        = NULL,
2718                 .enum_list      = NULL,
2719                 .flags          = FLAG_ADVANCED,
2720         },
2721         {
2722                 .label          = "username map cache time",
2723                 .type           = P_INTEGER,
2724                 .p_class        = P_GLOBAL,
2725                 .offset         = GLOBAL_VAR(username_map_cache_time),
2726                 .special        = NULL,
2727                 .enum_list      = NULL,
2728                 .flags          = FLAG_ADVANCED,
2729         },
2730         {
2731                 .label          = "logon script",
2732                 .type           = P_STRING,
2733                 .p_class        = P_GLOBAL,
2734                 .offset         = GLOBAL_VAR(logon_script),
2735                 .special        = NULL,
2736                 .enum_list      = NULL,
2737                 .flags          = FLAG_ADVANCED,
2738         },
2739         {
2740                 .label          = "logon path",
2741                 .type           = P_STRING,
2742                 .p_class        = P_GLOBAL,
2743                 .offset         = GLOBAL_VAR(logon_path),
2744                 .special        = NULL,
2745                 .enum_list      = NULL,
2746                 .flags          = FLAG_ADVANCED,
2747         },
2748         {
2749                 .label          = "logon drive",
2750                 .type           = P_STRING,
2751                 .p_class        = P_GLOBAL,
2752                 .offset         = GLOBAL_VAR(logon_drive),
2753                 .special        = NULL,
2754                 .enum_list      = NULL,
2755                 .flags          = FLAG_ADVANCED,
2756         },
2757         {
2758                 .label          = "logon home",
2759                 .type           = P_STRING,
2760                 .p_class        = P_GLOBAL,
2761                 .offset         = GLOBAL_VAR(logon_home),
2762                 .special        = NULL,
2763                 .enum_list      = NULL,
2764                 .flags          = FLAG_ADVANCED,
2765         },
2766         {
2767                 .label          = "domain logons",
2768                 .type           = P_BOOL,
2769                 .p_class        = P_GLOBAL,
2770                 .offset         = GLOBAL_VAR(_domain_logons),
2771                 .special        = NULL,
2772                 .enum_list      = NULL,
2773                 .flags          = FLAG_ADVANCED,
2774         },
2775
2776         {
2777                 .label          = "init logon delayed hosts",
2778                 .type           = P_CMDLIST,
2779                 .p_class        = P_GLOBAL,
2780                 .offset         = GLOBAL_VAR(init_logon_delayed_hosts),
2781                 .special        = NULL,
2782                 .enum_list      = NULL,
2783                 .flags          = FLAG_ADVANCED,
2784         },
2785
2786         {
2787                 .label          = "init logon delay",
2788                 .type           = P_INTEGER,
2789                 .p_class        = P_GLOBAL,
2790                 .offset         = GLOBAL_VAR(init_logon_delay),
2791                 .special        = NULL,
2792                 .enum_list      = NULL,
2793                 .flags          = FLAG_ADVANCED,
2794
2795         },
2796
2797         {N_("Browse Options"), P_SEP, P_SEPARATOR},
2798
2799         {
2800                 .label          = "os level",
2801                 .type           = P_INTEGER,
2802                 .p_class        = P_GLOBAL,
2803                 .offset         = GLOBAL_VAR(os_level),
2804                 .special        = NULL,
2805                 .enum_list      = NULL,
2806                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2807         },
2808         {
2809                 .label          = "lm announce",
2810                 .type           = P_ENUM,
2811                 .p_class        = P_GLOBAL,
2812                 .offset         = GLOBAL_VAR(lm_announce),
2813                 .special        = NULL,
2814                 .enum_list      = enum_bool_auto,
2815                 .flags          = FLAG_ADVANCED,
2816         },
2817         {
2818                 .label          = "lm interval",
2819                 .type           = P_INTEGER,
2820                 .p_class        = P_GLOBAL,
2821                 .offset         = GLOBAL_VAR(lm_interval),
2822                 .special        = NULL,
2823                 .enum_list      = NULL,
2824                 .flags          = FLAG_ADVANCED,
2825         },
2826         {
2827                 .label          = "preferred master",
2828                 .type           = P_ENUM,
2829                 .p_class        = P_GLOBAL,
2830                 .offset         = GLOBAL_VAR(iPreferredMaster),
2831                 .special        = NULL,
2832                 .enum_list      = enum_bool_auto,
2833                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2834         },
2835         {
2836                 .label          = "prefered master",
2837                 .type           = P_ENUM,
2838                 .p_class        = P_GLOBAL,
2839                 .offset         = GLOBAL_VAR(iPreferredMaster),
2840                 .special        = NULL,
2841                 .enum_list      = enum_bool_auto,
2842                 .flags          = FLAG_HIDE,
2843         },
2844         {
2845                 .label          = "local master",
2846                 .type           = P_BOOL,
2847                 .p_class        = P_GLOBAL,
2848                 .offset         = GLOBAL_VAR(local_master),
2849                 .special        = NULL,
2850                 .enum_list      = NULL,
2851                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2852         },
2853         {
2854                 .label          = "domain master",
2855                 .type           = P_ENUM,
2856                 .p_class        = P_GLOBAL,
2857                 .offset         = GLOBAL_VAR(_domain_master),
2858                 .special        = NULL,
2859                 .enum_list      = enum_bool_auto,
2860                 .flags          = FLAG_BASIC | FLAG_ADVANCED,
2861         },
2862         {
2863                 .label          = "browse list",
2864                 .type           = P_BOOL,
2865                 .p_class        = P_GLOBAL,
2866                 .offset         = GLOBAL_VAR(browse_list),
2867                 .special        = NULL,
2868                 .enum_list      = NULL,
2869                 .flags          = FLAG_ADVANCED,
2870         },
2871         {
2872                 .label          = "browseable",
2873                 .type           = P_BOOL,
2874                 .p_class        = P_LOCAL,
2875                 .offset         = LOCAL_VAR(browseable),
2876                 .special        = NULL,
2877                 .enum_list      = NULL,
2878                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
2879         },
2880         {
2881                 .label          = "browsable",
2882                 .type           = P_BOOL,
2883                 .p_class        = P_LOCAL,
2884                 .offset         = LOCAL_VAR(browseable),
2885                 .special        = NULL,
2886                 .enum_list      = NULL,
2887                 .flags          = FLAG_HIDE,
2888         },
2889         {
2890                 .label          = "access based share enum",
2891                 .type           = P_BOOL,
2892                 .p_class        = P_LOCAL,
2893                 .offset         = LOCAL_VAR(access_based_share_enum),
2894                 .special        = NULL,
2895                 .enum_list      = NULL,
2896                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE
2897         },
2898         {
2899                 .label          = "enhanced browsing",
2900                 .type           = P_BOOL,
2901                 .p_class        = P_GLOBAL,
2902                 .offset         = GLOBAL_VAR(enhanced_browsing),
2903                 .special        = NULL,
2904                 .enum_list      = NULL,
2905                 .flags          = FLAG_ADVANCED,
2906         },
2907
2908         {N_("WINS Options"), P_SEP, P_SEPARATOR},
2909
2910         {
2911                 .label          = "dns proxy",
2912                 .type           = P_BOOL,
2913                 .p_class        = P_GLOBAL,
2914                 .offset         = GLOBAL_VAR(wins_dns_proxy),
2915                 .special        = NULL,
2916                 .enum_list      = NULL,
2917                 .flags          = FLAG_ADVANCED,
2918         },
2919         {
2920                 .label          = "wins proxy",
2921                 .type           = P_BOOL,
2922                 .p_class        = P_GLOBAL,
2923                 .offset         = GLOBAL_VAR(wins_proxy),
2924                 .special        = NULL,
2925                 .enum_list      = NULL,
2926                 .flags          = FLAG_ADVANCED,
2927         },
2928         {
2929                 .label          = "wins server",
2930                 .type           = P_CMDLIST,
2931                 .p_class        = P_GLOBAL,
2932                 .offset         = GLOBAL_VAR(wins_server_list),
2933                 .special        = NULL,
2934                 .enum_list      = NULL,
2935                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
2936         },
2937         {
2938                 .label          = "wins support",
2939                 .type           = P_BOOL,
2940                 .p_class        = P_GLOBAL,
2941                 .offset         = GLOBAL_VAR(we_are_a_wins_server),
2942                 .special        = NULL,
2943                 .enum_list      = NULL,
2944                 .flags          = FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD,
2945         },
2946         {
2947                 .label          = "wins hook",
2948                 .type           = P_STRING,
2949                 .p_class        = P_GLOBAL,
2950                 .offset         = GLOBAL_VAR(wins_hook),
2951                 .special        = NULL,
2952                 .enum_list      = NULL,
2953                 .flags          = FLAG_ADVANCED,
2954         },
2955
2956         {N_("Locking Options"), P_SEP, P_SEPARATOR},
2957
2958         {
2959                 .label          = "blocking locks",
2960                 .type           = P_BOOL,
2961                 .p_class        = P_LOCAL,
2962                 .offset         = LOCAL_VAR(blocking_locks),
2963                 .special        = NULL,
2964                 .enum_list      = NULL,
2965                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2966         },
2967         {
2968                 .label          = "csc policy",
2969                 .type           = P_ENUM,
2970                 .p_class        = P_LOCAL,
2971                 .offset         = LOCAL_VAR(csc_policy),
2972                 .special        = NULL,
2973                 .enum_list      = enum_csc_policy,
2974                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2975         },
2976         {
2977                 .label          = "fake oplocks",
2978                 .type           = P_BOOL,
2979                 .p_class        = P_LOCAL,
2980                 .offset         = LOCAL_VAR(fake_oplocks),
2981                 .special        = NULL,
2982                 .enum_list      = NULL,
2983                 .flags          = FLAG_ADVANCED | FLAG_SHARE,
2984         },
2985         {
2986                 .label          = "kernel oplocks",
2987                 .type           = P_BOOL,
2988                 .p_class        = P_LOCAL,
2989                 .offset         = LOCAL_VAR(kernel_oplocks),
2990                 .special        = NULL,
2991                 .enum_list      = NULL,
2992                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
2993         },
2994         {
2995                 .label          = "kernel share modes",
2996                 .type           = P_BOOL,
2997                 .p_class        = P_LOCAL,
2998                 .offset         = LOCAL_VAR(kernel_share_modes),
2999                 .special        = NULL,
3000                 .enum_list      = NULL,
3001                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3002         },
3003         {
3004                 .label          = "locking",
3005                 .type           = P_BOOL,
3006                 .p_class        = P_LOCAL,
3007                 .offset         = LOCAL_VAR(locking),
3008                 .special        = NULL,
3009                 .enum_list      = NULL,
3010                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3011         },
3012         {
3013                 .label          = "lock spin time",
3014                 .type           = P_INTEGER,
3015                 .p_class        = P_GLOBAL,
3016                 .offset         = GLOBAL_VAR(lock_spin_time),
3017                 .special        = NULL,
3018                 .enum_list      = NULL,
3019                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
3020         },
3021         {
3022                 .label          = "oplocks",
3023                 .type           = P_BOOL,
3024                 .p_class        = P_LOCAL,
3025                 .offset         = LOCAL_VAR(oplocks),
3026                 .special        = NULL,
3027                 .enum_list      = NULL,
3028                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3029         },
3030         {
3031                 .label          = "level2 oplocks",
3032                 .type           = P_BOOL,
3033                 .p_class        = P_LOCAL,
3034                 .offset         = LOCAL_VAR(level2_oplocks),
3035                 .special        = NULL,
3036                 .enum_list      = NULL,
3037                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3038         },
3039         {
3040                 .label          = "oplock break wait time",
3041                 .type           = P_INTEGER,
3042                 .p_class        = P_GLOBAL,
3043                 .offset         = GLOBAL_VAR(oplock_break_wait_time),
3044                 .special        = NULL,
3045                 .enum_list      = NULL,
3046                 .flags          = FLAG_ADVANCED | FLAG_GLOBAL,
3047         },
3048         {
3049                 .label          = "oplock contention limit",
3050                 .type           = P_INTEGER,
3051                 .p_class        = P_LOCAL,
3052                 .offset         = LOCAL_VAR(oplock_contention_limit),
3053                 .special        = NULL,
3054                 .enum_list      = NULL,
3055                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3056         },
3057         {
3058                 .label          = "posix locking",
3059                 .type           = P_BOOL,
3060                 .p_class        = P_LOCAL,
3061                 .offset         = LOCAL_VAR(posix_locking),
3062                 .special        = NULL,
3063                 .enum_list      = NULL,
3064                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3065         },
3066         {
3067                 .label          = "strict locking",
3068                 .type           = P_ENUM,
3069                 .p_class        = P_LOCAL,
3070                 .offset         = LOCAL_VAR(strict_locking),
3071                 .special        = NULL,
3072                 .enum_list      = enum_bool_auto,
3073                 .flags          = FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL,
3074         },
3075
3076         {N_("Ldap Options"), P_SEP, P_SEPARATOR},
3077
3078         {
3079                 .label          = "ldap admin dn",
3080                 .type           = P_STRING,
3081                 .p_class        = P_GLOBAL,
3082                 .offset         = GLOBAL_VAR(ldap_admin_dn),
3083                 .special        = NULL,
3084                 .enum_list      = NULL,
3085                 .flags          = FLAG_ADVANCED,
3086         },
3087         {
3088                 .label          = "ldap delete dn",
3089                 .type           = P_BOOL,
3090                 .p_class        = P_GLOBAL,
3091                 .offset         = GLOBAL_VAR(ldap_delete_dn),
3092                 .special        = NULL,
3093                 .enum_list      = NULL,
3094                 .flags          = FLAG_ADVANCED,
3095         },
3096         {
3097                 .label          = "ldap group suffix",
3098                 .type           = P_STRING,
3099                 .p_class        = P_GLOBAL,
3100                 .offset         = GLOBAL_VAR(szLdapGroupSuffix),
3101                 .special        = NULL,
3102                 .enum_list      = NULL,
3103                 .flags          = FLAG_ADVANCED,
3104         },
3105         {
3106                 .label          = "ldap idmap suffix",
3107                 .type           = P_STRING,
3108                 .p_class        = P_GLOBAL,
3109                 .offset         = GLOBAL_VAR(szLdapIdmapSuffix),
3110                 .special        = NULL,
3111                 .enum_list      = NULL,
3112                 .flags          = FLAG_ADVANCED,
3113         },
3114         {
3115                 .label          = "ldap machine suffix",
3116                 .type           = P_STRING,
3117                 .p_class        = P_GLOBAL,
3118                 .offset         = GLOBAL_VAR(szLdapMachineSuffix),
3119                 .special        = NULL,
3120                 .enum_list      = NULL,
3121                 .flags          = FLAG_ADVANCED,
3122         },
3123         {
3124                 .label          = "ldap passwd sync",
3125                 .type           = P_ENUM,
3126                 .p_class        = P_GLOBAL,
3127                 .offset         = GLOBAL_VAR(ldap_passwd_sync),
3128                 .special        = NULL,
3129                 .enum_list      = enum_ldap_passwd_sync,
3130                 .flags          = FLAG_ADVANCED,
3131         },
3132         {
3133                 .label          = "ldap password sync",
3134                 .type           = P_ENUM,
3135                 .p_class        = P_GLOBAL,
3136                 .offset         = GLOBAL_VAR(ldap_passwd_sync),
3137                 .special        = NULL,
3138                 .enum_list      = enum_ldap_passwd_sync,
3139                 .flags          = FLAG_HIDE,
3140         },
3141         {