diff options
author | Andrew Bartlett <abartlet@samba.org> | 2011-11-10 15:19:33 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-11-17 00:34:09 +0100 |
commit | 15b8cfcd83ab502c99bb5c02d2198c46a22f165e (patch) | |
tree | fc50adcc54f64004bbcc6548006d09ef95ae507b | |
parent | 1f96a59ddac772689fda863d1d4a62cd916c3488 (diff) | |
download | samba-15b8cfcd83ab502c99bb5c02d2198c46a22f165e.tar.gz samba-15b8cfcd83ab502c99bb5c02d2198c46a22f165e.tar.bz2 samba-15b8cfcd83ab502c99bb5c02d2198c46a22f165e.zip |
param: Move enum values into a common (included) .c file
This #include hack is required as it is not possible to declare a
compile-time sized array in a header file.
Andrew Bartlett
Pair-Programmed-With: Amitay Isaacs <amitay@samba.org>
-rw-r--r-- | lib/param/loadparm.c | 82 | ||||
-rw-r--r-- | lib/param/param_enums.c | 112 | ||||
-rw-r--r-- | source3/param/loadparm.c | 84 |
3 files changed, 114 insertions, 164 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 9de009f092..5f2feca51f 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -104,87 +104,7 @@ static bool handle_debuglevel(struct loadparm_context *lp_ctx, int unused, static bool handle_logfile(struct loadparm_context *lp_ctx, int unused, const char *pszParmValue, char **ptr); -static const struct enum_list enum_protocol[] = { - {PROTOCOL_SMB2_02, "SMB2"}, - {PROTOCOL_SMB2_02, "SMB2_02"}, - {PROTOCOL_NT1, "NT1"}, - {PROTOCOL_LANMAN2, "LANMAN2"}, - {PROTOCOL_LANMAN1, "LANMAN1"}, - {PROTOCOL_CORE, "CORE"}, - {PROTOCOL_COREPLUS, "COREPLUS"}, - {PROTOCOL_COREPLUS, "CORE+"}, - {-1, NULL} -}; - -static const struct enum_list enum_security[] = { - {SEC_AUTO, "AUTO"}, - {SEC_SHARE, "SHARE"}, - {SEC_USER, "USER"}, - {SEC_DOMAIN, "DOMAIN"}, - {SEC_ADS, "ADS"}, - {-1, NULL} -}; - -static const struct enum_list enum_bool_auto[] = { - {false, "No"}, - {false, "False"}, - {false, "0"}, - {true, "Yes"}, - {true, "True"}, - {true, "1"}, - {Auto, "Auto"}, - {-1, NULL} -}; - -/* Client-side offline caching policy types */ - -static const struct enum_list enum_csc_policy[] = { - {CSC_POLICY_MANUAL, "manual"}, - {CSC_POLICY_DOCUMENTS, "documents"}, - {CSC_POLICY_PROGRAMS, "programs"}, - {CSC_POLICY_DISABLE, "disable"}, - {-1, NULL} -}; - -/* SMB signing types. */ -static const struct enum_list enum_smb_signing_vals[] = { - {SMB_SIGNING_DEFAULT, "default"}, - {SMB_SIGNING_OFF, "No"}, - {SMB_SIGNING_OFF, "False"}, - {SMB_SIGNING_OFF, "0"}, - {SMB_SIGNING_OFF, "Off"}, - {SMB_SIGNING_OFF, "disabled"}, - {SMB_SIGNING_IF_REQUIRED, "if_required"}, - {SMB_SIGNING_IF_REQUIRED, "Yes"}, - {SMB_SIGNING_IF_REQUIRED, "True"}, - {SMB_SIGNING_IF_REQUIRED, "1"}, - {SMB_SIGNING_IF_REQUIRED, "On"}, - {SMB_SIGNING_IF_REQUIRED, "enabled"}, - {SMB_SIGNING_IF_REQUIRED, "auto"}, - {SMB_SIGNING_REQUIRED, "required"}, - {SMB_SIGNING_REQUIRED, "mandatory"}, - {SMB_SIGNING_REQUIRED, "force"}, - {SMB_SIGNING_REQUIRED, "forced"}, - {SMB_SIGNING_REQUIRED, "enforced"}, - {-1, NULL} -}; - -/* Server role options */ -static const struct enum_list enum_server_role[] = { - {ROLE_AUTO, "auto"}, - {ROLE_STANDALONE, "standalone"}, - {ROLE_DOMAIN_MEMBER, "member server"}, - {ROLE_DOMAIN_MEMBER, "member"}, - /* note that currently - ROLE_DOMAIN_CONTROLLER == ROLE_DOMAIN_BDC */ - {ROLE_DOMAIN_CONTROLLER, "domain controller"}, - {ROLE_DOMAIN_BDC, "backup domain controller"}, - {ROLE_DOMAIN_BDC, "bdc"}, - {ROLE_DOMAIN_BDC, "dc"}, - {ROLE_DOMAIN_PDC, "primary domain controller"}, - {ROLE_DOMAIN_PDC, "pdc"}, - {-1, NULL} -}; +#include "param_enums.c" #define GLOBAL_VAR(name) offsetof(struct loadparm_global, name) #define LOCAL_VAR(name) offsetof(struct loadparm_service, name) diff --git a/lib/param/param_enums.c b/lib/param/param_enums.c new file mode 100644 index 0000000000..185f6dd44d --- /dev/null +++ b/lib/param/param_enums.c @@ -0,0 +1,112 @@ +/* + Unix SMB/CIFS implementation. + Parameter loading functions + Copyright (C) Karl Auer 1993-1998 + + Largely re-written by Andrew Tridgell, September 1994 + + Copyright (C) Simo Sorce 2001 + Copyright (C) Alexander Bokovoy 2002 + Copyright (C) Stefan (metze) Metzmacher 2002 + Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003 + Copyright (C) Michael Adam 2008 + Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007 + Copyright (C) Andrew Bartlett 2011 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +static const struct enum_list enum_protocol[] = { + {PROTOCOL_SMB2_02, "SMB2"}, /* for now keep PROTOCOL_SMB2_02 */ + {PROTOCOL_SMB2_10, "SMB2_10"}, + {PROTOCOL_SMB2_02, "SMB2_02"}, + {PROTOCOL_NT1, "NT1"}, + {PROTOCOL_LANMAN2, "LANMAN2"}, + {PROTOCOL_LANMAN1, "LANMAN1"}, + {PROTOCOL_CORE, "CORE"}, + {PROTOCOL_COREPLUS, "COREPLUS"}, + {PROTOCOL_COREPLUS, "CORE+"}, + {-1, NULL} +}; + +static const struct enum_list enum_security[] = { + {SEC_AUTO, "AUTO"}, + {SEC_SHARE, "SHARE"}, + {SEC_USER, "USER"}, + {SEC_SERVER, "SERVER"}, + {SEC_DOMAIN, "DOMAIN"}, +#if (defined(HAVE_ADS) || _SAMBA_BUILD_ >= 4) + {SEC_ADS, "ADS"}, +#endif + {-1, NULL} +}; + +static const struct enum_list enum_bool_auto[] = { + {false, "No"}, + {false, "False"}, + {false, "0"}, + {true, "Yes"}, + {true, "True"}, + {true, "1"}, + {Auto, "Auto"}, + {-1, NULL} +}; + +static const struct enum_list enum_csc_policy[] = { + {CSC_POLICY_MANUAL, "manual"}, + {CSC_POLICY_DOCUMENTS, "documents"}, + {CSC_POLICY_PROGRAMS, "programs"}, + {CSC_POLICY_DISABLE, "disable"}, + {-1, NULL} +}; + +/* Server role options */ +static const struct enum_list enum_server_role[] = { + {ROLE_AUTO, "auto"}, + {ROLE_STANDALONE, "standalone"}, + {ROLE_DOMAIN_MEMBER, "member server"}, + {ROLE_DOMAIN_MEMBER, "member"}, + /* note that currently + ROLE_DOMAIN_CONTROLLER == ROLE_DOMAIN_BDC */ + {ROLE_DOMAIN_CONTROLLER, "domain controller"}, + {ROLE_DOMAIN_BDC, "backup domain controller"}, + {ROLE_DOMAIN_BDC, "bdc"}, + {ROLE_DOMAIN_BDC, "dc"}, + {ROLE_DOMAIN_PDC, "primary domain controller"}, + {ROLE_DOMAIN_PDC, "pdc"}, + {-1, NULL} +}; + +/* SMB signing types. */ +static const struct enum_list enum_smb_signing_vals[] = { + {SMB_SIGNING_DEFAULT, "default"}, + {SMB_SIGNING_OFF, "No"}, + {SMB_SIGNING_OFF, "False"}, + {SMB_SIGNING_OFF, "0"}, + {SMB_SIGNING_OFF, "Off"}, + {SMB_SIGNING_OFF, "disabled"}, + {SMB_SIGNING_IF_REQUIRED, "if_required"}, + {SMB_SIGNING_IF_REQUIRED, "Yes"}, + {SMB_SIGNING_IF_REQUIRED, "True"}, + {SMB_SIGNING_IF_REQUIRED, "1"}, + {SMB_SIGNING_IF_REQUIRED, "On"}, + {SMB_SIGNING_IF_REQUIRED, "enabled"}, + {SMB_SIGNING_IF_REQUIRED, "auto"}, + {SMB_SIGNING_REQUIRED, "required"}, + {SMB_SIGNING_REQUIRED, "mandatory"}, + {SMB_SIGNING_REQUIRED, "force"}, + {SMB_SIGNING_REQUIRED, "forced"}, + {SMB_SIGNING_REQUIRED, "enforced"}, + {-1, NULL} +}; diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 3cbc70f997..c044f655a4 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -313,29 +313,7 @@ static void add_to_file_list(const char *fname, const char *subfname); static bool lp_set_cmdline_helper(const char *pszParmName, const char *pszParmValue, bool store_values); static void free_param_opts(struct parmlist_entry **popts); -static const struct enum_list enum_protocol[] = { - {PROTOCOL_SMB2_02, "SMB2"}, /* for now keep PROTOCOL_SMB2_02 */ - {PROTOCOL_SMB2_10, "SMB2_10"}, - {PROTOCOL_SMB2_02, "SMB2_02"}, - {PROTOCOL_NT1, "NT1"}, - {PROTOCOL_LANMAN2, "LANMAN2"}, - {PROTOCOL_LANMAN1, "LANMAN1"}, - {PROTOCOL_CORE, "CORE"}, - {PROTOCOL_COREPLUS, "COREPLUS"}, - {PROTOCOL_COREPLUS, "CORE+"}, - {-1, NULL} -}; - -static const struct enum_list enum_security[] = { - {SEC_SHARE, "SHARE"}, - {SEC_USER, "USER"}, - {SEC_SERVER, "SERVER"}, - {SEC_DOMAIN, "DOMAIN"}, -#ifdef HAVE_ADS - {SEC_ADS, "ADS"}, -#endif - {-1, NULL} -}; +#include "lib/param/param_enums.c" static const struct enum_list enum_printing[] = { {PRINT_SYSV, "sysv"}, @@ -413,49 +391,6 @@ static const struct enum_list enum_case[] = { }; - -static const struct enum_list enum_bool_auto[] = { - {false, "No"}, - {false, "False"}, - {false, "0"}, - {true, "Yes"}, - {true, "True"}, - {true, "1"}, - {Auto, "Auto"}, - {-1, NULL} -}; - -static const struct enum_list enum_csc_policy[] = { - {CSC_POLICY_MANUAL, "manual"}, - {CSC_POLICY_DOCUMENTS, "documents"}, - {CSC_POLICY_PROGRAMS, "programs"}, - {CSC_POLICY_DISABLE, "disable"}, - {-1, NULL} -}; - -/* SMB signing types. */ -static const struct enum_list enum_smb_signing_vals[] = { - {SMB_SIGNING_DEFAULT, "default"}, - {SMB_SIGNING_OFF, "No"}, - {SMB_SIGNING_OFF, "False"}, - {SMB_SIGNING_OFF, "0"}, - {SMB_SIGNING_OFF, "Off"}, - {SMB_SIGNING_OFF, "disabled"}, - {SMB_SIGNING_IF_REQUIRED, "if_required"}, - {SMB_SIGNING_IF_REQUIRED, "Yes"}, - {SMB_SIGNING_IF_REQUIRED, "True"}, - {SMB_SIGNING_IF_REQUIRED, "1"}, - {SMB_SIGNING_IF_REQUIRED, "On"}, - {SMB_SIGNING_IF_REQUIRED, "enabled"}, - {SMB_SIGNING_IF_REQUIRED, "auto"}, - {SMB_SIGNING_REQUIRED, "required"}, - {SMB_SIGNING_REQUIRED, "mandatory"}, - {SMB_SIGNING_REQUIRED, "force"}, - {SMB_SIGNING_REQUIRED, "forced"}, - {SMB_SIGNING_REQUIRED, "enforced"}, - {-1, NULL} -}; - /* ACL compatibility options. */ static const struct enum_list enum_acl_compat_vals[] = { { ACL_COMPAT_AUTO, "auto" }, @@ -512,23 +447,6 @@ static const struct enum_list enum_kerberos_method[] = { {-1, NULL} }; -/* Server role options */ -static const struct enum_list enum_server_role[] = { - {ROLE_AUTO, "auto"}, - {ROLE_STANDALONE, "standalone"}, - {ROLE_DOMAIN_MEMBER, "member server"}, - {ROLE_DOMAIN_MEMBER, "member"}, - /* note that currently - ROLE_DOMAIN_CONTROLLER == ROLE_DOMAIN_BDC */ - {ROLE_DOMAIN_CONTROLLER, "domain controller"}, - {ROLE_DOMAIN_BDC, "backup domain controller"}, - {ROLE_DOMAIN_BDC, "bdc"}, - {ROLE_DOMAIN_BDC, "dc"}, - {ROLE_DOMAIN_PDC, "primary domain controller"}, - {ROLE_DOMAIN_PDC, "pdc"}, - {-1, NULL} -}; - /* Note: We do not initialise the defaults union - it is not allowed in ANSI C * * The FLAG_HIDE is explicit. Parameters set this way do NOT appear in any edit |