From 489f528857bfb4993cf44dd7a5391ac5196c0747 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 29 Jun 2011 15:33:54 +1000 Subject: [PATCH] param: Merge param headers into lib/param/loadparm.h This defines a common table format, so we can in future define a common table. Andrew Bartlett --- {source4 => lib}/param/loadparm.h | 40 +++++++++++++++++-------- source3/include/local.h | 29 ------------------ source3/include/proto.h | 3 ++ source3/include/smb.h | 50 ------------------------------- source3/modules/nfs4_acls.c | 1 + source3/modules/vfs_audit.c | 1 + source3/modules/vfs_extd_audit.c | 1 + source3/modules/vfs_full_audit.c | 1 + source3/param/loadparm.c | 3 +- source3/param/service.c | 1 + source3/printing/load.c | 1 + source3/printing/printing.c | 1 + source3/smbd/msdfs.c | 1 + source3/smbd/server_reload.c | 1 + source3/smbd/service.c | 1 + source3/smbd/smb2_tcon.c | 1 + source3/utils/net_conf.c | 1 + source3/utils/testparm.c | 1 + source3/web/swat.c | 1 + 19 files changed, 47 insertions(+), 92 deletions(-) rename {source4 => lib}/param/loadparm.h (65%) diff --git a/source4/param/loadparm.h b/lib/param/loadparm.h similarity index 65% rename from source4/param/loadparm.h rename to lib/param/loadparm.h index db583436b49..2627727f3a7 100644 --- a/source4/param/loadparm.h +++ b/lib/param/loadparm.h @@ -1,6 +1,6 @@ -/* +/* Unix SMB/CIFS implementation. - + type definitions for loadparm Copyright (C) Karl Auer 1993-1998 @@ -12,28 +12,30 @@ Copyright (C) Stefan (metze) Metzmacher 2002 Copyright (C) Jim McDonough (jmcd@us.ibm.com) 2003. Copyright (C) James Myers 2003 - + 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 . */ +/* the following are used by loadparm for option lists */ /* the following are used by loadparm for option lists */ typedef enum { - P_BOOL,P_INTEGER,P_OCTAL,P_BYTES,P_LIST,P_CMDLIST,P_STRING,P_USTRING,P_ENUM + P_BOOL,P_BOOLREV,P_CHAR,P_INTEGER,P_OCTAL,P_LIST, + P_STRING,P_USTRING,P_ENUM,P_BYTES,P_CMDLIST,P_SEP } parm_type; typedef enum { - P_LOCAL,P_GLOBAL,P_NONE + P_LOCAL,P_GLOBAL,P_SEPARATOR,P_NONE } parm_class; struct enum_list { @@ -41,6 +43,7 @@ struct enum_list { const char *name; }; +struct loadparm_service; struct loadparm_context; struct parm_struct { @@ -61,13 +64,28 @@ struct parm_struct { } def; }; -#define FLAG_DEFAULT 0x0001 /* this option was a default */ -#define FLAG_CMDLINE 0x0002 /* this option was set from the command line */ - +/* The following flags are used in SWAT */ +#define FLAG_BASIC 0x0001 /* Display only in BASIC view */ +#define FLAG_SHARE 0x0002 /* file sharing options */ +#define FLAG_PRINT 0x0004 /* printing options */ +#define FLAG_GLOBAL 0x0008 /* local options that should be globally settable in SWAT */ +#define FLAG_WIZARD 0x0010 /* Parameters that the wizard will operate on */ +#define FLAG_ADVANCED 0x0020 /* Parameters that will be visible in advanced view */ +#define FLAG_DEVELOPER 0x0040 /* No longer used */ +#define FLAG_DEPRECATED 0x1000 /* options that should no longer be used */ +#define FLAG_HIDE 0x2000 /* options that should be hidden in SWAT */ +#define FLAG_META 0x8000 /* A meta directive - not a real parameter */ +#define FLAG_CMDLINE 0x10000 /* option has been overridden */ +#define FLAG_DEFAULT 0x20000 /* this option was a default */ + +/* This defines the section name in the configuration file that will + refer to the special "printers" service */ #ifndef PRINTERS_NAME #define PRINTERS_NAME "printers" #endif +/* This defines the section name in the configuration file that will + refer to the special "homes" service */ #ifndef HOMES_NAME #define HOMES_NAME "homes" #endif @@ -97,5 +115,3 @@ struct parm_struct { #ifndef PRINT_MAX_JOBID #define PRINT_MAX_JOBID 10000 #endif - - diff --git a/source3/include/local.h b/source3/include/local.h index 680631c1c51..594f7003efd 100644 --- a/source3/include/local.h +++ b/source3/include/local.h @@ -5,26 +5,6 @@ #ifndef _LOCAL_H #define _LOCAL_H -/* The default workgroup - usually overridden in smb.conf */ -#ifndef WORKGROUP -#define WORKGROUP "WORKGROUP" -#endif - -/* This defines the section name in the configuration file that will contain */ -/* global parameters - that is, parameters relating to the whole server, not */ -/* just services. This name is then reserved, and may not be used as a */ -/* a service name. It will default to "global" if not defined here. */ -#define GLOBAL_NAME "global" -#define GLOBAL_NAME2 "globals" - -/* This defines the section name in the configuration file that will - refer to the special "homes" service */ -#define HOMES_NAME "homes" - -/* This defines the section name in the configuration file that will - refer to the special "printers" service */ -#define PRINTERS_NAME "printers" - /* Yves Gaige requested this set this */ /* to a maximum of 8 if old smb clients break because of long printer names. */ #define MAXPRINTERLEN 15 @@ -171,12 +151,6 @@ it are worked out */ #define USE_READ_PREDICTION 0 -/* - * Default passwd chat script. - */ - -#define DEFAULT_PASSWD_CHAT "*new*password* %n\\n *new*password* %n\\n *changed*" - /* Minimum length of allowed password when changing UNIX password. */ #define MINPASSWDLENGTH 5 @@ -212,9 +186,6 @@ /* this enables the "rabbit pellet" fix for SMBwritebraw */ #define RABBIT_PELLET_FIX 1 -/* Max number of jobs per print queue. */ -#define PRINT_MAX_JOBID 10000 - /* Max number of open RPC pipes. */ #define MAX_OPEN_PIPES 2048 diff --git a/source3/include/proto.h b/source3/include/proto.h index 20b5c0e2a73..73bd9baf5ea 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1545,6 +1545,7 @@ const char **lp_parm_string_list(int snum, const char *type, const char *option, int lp_parm_int(int snum, const char *type, const char *option, int def); unsigned long lp_parm_ulong(int snum, const char *type, const char *option, unsigned long def); bool lp_parm_bool(int snum, const char *type, const char *option, bool def); +struct enum_list; int lp_parm_enum(int snum, const char *type, const char *option, const struct enum_list *_enum, int def); char *canonicalize_servicename(TALLOC_CTX *ctx, const char *src); @@ -1577,6 +1578,8 @@ const char *lp_ldap_machine_suffix(void); const char *lp_ldap_user_suffix(void); const char *lp_ldap_group_suffix(void); const char *lp_ldap_idmap_suffix(void); +struct loadparm_service; +struct parm_struct; void *lp_parm_ptr(struct loadparm_service *service, struct parm_struct *parm); void *lp_local_ptr_by_snum(int snum, struct parm_struct *parm); bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue); diff --git a/source3/include/smb.h b/source3/include/smb.h index 598a0e9c4a2..c867d607b68 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -709,56 +709,6 @@ struct connections_data { uint32 unused_compatitibility_field; }; - -/* the following are used by loadparm for option lists */ -typedef enum { - P_BOOL,P_BOOLREV,P_CHAR,P_INTEGER,P_OCTAL,P_LIST, - P_STRING,P_USTRING,P_ENUM,P_SEP -} parm_type; - -typedef enum { - P_LOCAL,P_GLOBAL,P_SEPARATOR,P_NONE -} parm_class; - -struct enum_list { - int value; - const char *name; -}; - -struct loadparm_service; -struct loadparm_context; - -struct parm_struct { - const char *label; - parm_type type; - parm_class p_class; - offset_t offset; - bool (*special)(struct loadparm_context *lpcfg_ctx, - int snum, const char *, char **); - const struct enum_list *enum_list; - unsigned flags; - union { - bool bvalue; - int ivalue; - char *svalue; - char cvalue; - char **lvalue; - } def; -}; - -/* The following flags are used in SWAT */ -#define FLAG_BASIC 0x0001 /* Display only in BASIC view */ -#define FLAG_SHARE 0x0002 /* file sharing options */ -#define FLAG_PRINT 0x0004 /* printing options */ -#define FLAG_GLOBAL 0x0008 /* local options that should be globally settable in SWAT */ -#define FLAG_WIZARD 0x0010 /* Parameters that the wizard will operate on */ -#define FLAG_ADVANCED 0x0020 /* Parameters that will be visible in advanced view */ -#define FLAG_DEVELOPER 0x0040 /* No longer used */ -#define FLAG_DEPRECATED 0x1000 /* options that should no longer be used */ -#define FLAG_HIDE 0x2000 /* options that should be hidden in SWAT */ -#define FLAG_META 0x8000 /* A meta directive - not a real parameter */ -#define FLAG_CMDLINE 0x10000 /* option has been overridden */ - struct bitmap { uint32 *b; unsigned int n; diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c index dbfa36e6c2a..09ef522b419 100644 --- a/source3/modules/nfs4_acls.c +++ b/source3/modules/nfs4_acls.c @@ -27,6 +27,7 @@ #include "system/filesys.h" #include "passdb/lookup_sid.h" #include "util_tdb.h" +#include "lib/param/loadparm.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_ACLS diff --git a/source3/modules/vfs_audit.c b/source3/modules/vfs_audit.c index 8213bafa1cb..eeeea8aafa3 100644 --- a/source3/modules/vfs_audit.c +++ b/source3/modules/vfs_audit.c @@ -25,6 +25,7 @@ #include "system/filesys.h" #include "system/syslog.h" #include "smbd/smbd.h" +#include "lib/param/loadparm.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_VFS diff --git a/source3/modules/vfs_extd_audit.c b/source3/modules/vfs_extd_audit.c index 192b0750ab1..fa8e9b14f96 100644 --- a/source3/modules/vfs_extd_audit.c +++ b/source3/modules/vfs_extd_audit.c @@ -26,6 +26,7 @@ #include "system/filesys.h" #include "system/syslog.h" #include "smbd/smbd.h" +#include "lib/param/loadparm.h" static int vfs_extd_audit_debug_level = DBGC_VFS; diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index e8129f41436..362749a90fa 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -64,6 +64,7 @@ #include "../librpc/gen_ndr/ndr_netlogon.h" #include "auth.h" #include "ntioctl.h" +#include "lib/param/loadparm.h" static int vfs_full_audit_debug_level = DBGC_VFS; diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 5104f4cefd6..808774d1d7c 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -59,6 +59,7 @@ #include "printing.h" #include "lib/smbconf/smbconf.h" #include "lib/smbconf/smbconf_init.h" +#include "lib/param/loadparm.h" #include "ads.h" #include "../librpc/gen_ndr/svcctl.h" @@ -5147,7 +5148,7 @@ static void init_globals(bool reinit_globals) */ string_set(&Globals.szPasswdChat, DEFAULT_PASSWD_CHAT); - string_set(&Globals.szWorkgroup, WORKGROUP); + string_set(&Globals.szWorkgroup, DEFAULT_WORKGROUP); string_set(&Globals.szPasswdProgram, ""); string_set(&Globals.szLockDir, get_dyn_LOCKDIR()); diff --git a/source3/param/service.c b/source3/param/service.c index 358b7af2dee..f0cec4e216e 100644 --- a/source3/param/service.c +++ b/source3/param/service.c @@ -27,6 +27,7 @@ #include "printing/pcap.h" #include "passdb/lookup_sid.h" #include "auth.h" +#include "lib/param/loadparm.h" static int load_registry_service(const char *servicename) { diff --git a/source3/printing/load.c b/source3/printing/load.c index 5acc25833d0..161d71103c3 100644 --- a/source3/printing/load.c +++ b/source3/printing/load.c @@ -20,6 +20,7 @@ #include "includes.h" #include "printing/pcap.h" #include "printing/load.h" +#include "lib/param/loadparm.h" /*************************************************************************** auto-load some homes and printer services diff --git a/source3/printing/printing.c b/source3/printing/printing.c index 0c070c76682..c9edab686e9 100644 --- a/source3/printing/printing.c +++ b/source3/printing/printing.c @@ -33,6 +33,7 @@ #include "auth.h" #include "messages.h" #include "util_tdb.h" +#include "lib/param/loadparm.h" extern struct current_user current_user; extern userdom_struct current_user_info; diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c index 47c2b1ee786..31c5a2d07a6 100644 --- a/source3/smbd/msdfs.c +++ b/source3/smbd/msdfs.c @@ -27,6 +27,7 @@ #include "smbd/globals.h" #include "msdfs.h" #include "auth.h" +#include "lib/param/loadparm.h" /********************************************************************** Parse a DFS pathname of the form \hostname\service\reqpath diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c index fef66dac6a5..259a963abfe 100644 --- a/source3/smbd/server_reload.c +++ b/source3/smbd/server_reload.c @@ -29,6 +29,7 @@ #include "printing/load.h" #include "auth.h" #include "messages.h" +#include "lib/param/loadparm.h" /**************************************************************************** purge stale printers and reload from pre-populated pcap cache diff --git a/source3/smbd/service.c b/source3/smbd/service.c index 0857645d1c6..1f87b9d7855 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -27,6 +27,7 @@ #include "printing/pcap.h" #include "passdb/lookup_sid.h" #include "auth.h" +#include "lib/param/loadparm.h" extern userdom_struct current_user_info; diff --git a/source3/smbd/smb2_tcon.c b/source3/smbd/smb2_tcon.c index 1b4aa79070a..7c2014c90c1 100644 --- a/source3/smbd/smb2_tcon.c +++ b/source3/smbd/smb2_tcon.c @@ -24,6 +24,7 @@ #include "../libcli/smb/smb_common.h" #include "../libcli/security/security.h" #include "auth.h" +#include "lib/param/loadparm.h" static NTSTATUS smbd_smb2_tree_connect(struct smbd_smb2_request *req, const char *in_path, diff --git a/source3/utils/net_conf.c b/source3/utils/net_conf.c index 93811598140..e4b335a0a51 100644 --- a/source3/utils/net_conf.c +++ b/source3/utils/net_conf.c @@ -33,6 +33,7 @@ #include "lib/smbconf/smbconf.h" #include "lib/smbconf/smbconf_init.h" #include "lib/smbconf/smbconf_reg.h" +#include "lib/param/loadparm.h" /********************************************************************** * diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index 721034dedff..0634b258392 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -34,6 +34,7 @@ #include "includes.h" #include "system/filesys.h" #include "popt_common.h" +#include "lib/param/loadparm.h" /******************************************************************* Check if a directory exists. diff --git a/source3/web/swat.c b/source3/web/swat.c index 190006b3cce..3c209b5b3c9 100644 --- a/source3/web/swat.c +++ b/source3/web/swat.c @@ -35,6 +35,7 @@ #include "printing/load.h" #include "passdb.h" #include "intl/lang_tdb.h" +#include "lib/param/loadparm.h" static int demo_mode = False; static int passwd_only = False; -- 2.34.1