[SCM] Samba Shared Repository - branch master updated
Michael Adam
obnox at samba.org
Thu Jul 31 02:42:03 MDT 2014
The branch, master has been updated
via e17c241 param: Add errors for when an s3 context is used incorrectly
via 72642f1 param: get rid of unnecessary get_default_loadparm_service pointer
via bb8fa51 param: remove unused lp_do_parameter from s3 helpers
via 0693b5d param: remove unnecessary lp_do_parameter call
via 47f10ac param: remove lp_get_parameter
via 0796dc6 s3:param: move all lp context setup to a single function
via adeb284 s3:param: Ensure that the service pointers are not used directly.
via 71eb592 param: remove init printer values from s3-helpers
via f605832 param: move init_printer_values to lib/param
via 397a3ec param: change init_printer_values to take an lp ctx
via 308d802 param: add the necessary new line for the debug message in handle_copy
via 0b6bf02 param: add missing talloc_free in lpcfg_file_list_changed which are present in s3
via 2aedc10 param: make is_default method static again
via 42f21ad param: remove unused dump_globals
via 26a6f05 param: use lpcfg_dump_globals in s3 loadparm
via 6f9a0b8 param: rename dump_globals
via a348fa9 param: allow dump_globals to check the actual defaults
via a7c4446 param: remove is_default method in s3
via 6edf710 param: make is_default more generic
via a1d2e52 param: remove unused service_ok function
via bc46178 param: use lpcfg_service_ok in s3 loadparm
via ad7be09 param: add extra condition in lpcfg_service_ok
via 611a402 s3:param: remove lp_string_set from the s3_fns.
via cf2aa92 param: remove unnecessary uses of lp_string_set
via 3377c0f s3:param: add lp_ctx as a parameter to init_globals
via 0864d49 s3:param: use lpcfg_do_*_paramter instead of lp_do_parameter in do_parameter
via 622e54f param: Use the correct flag locations with lpcfg_parm_is_cmdline
via 4fa9873 s3:param: simplify lp_do_parameter to use lpcfg functions
from 9ee7b02 smbd: Change logging level for denied share access
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit e17c241711487cd2d203b50fceda83f745b97dc4
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Jul 11 14:01:33 2014 +1200
param: Add errors for when an s3 context is used incorrectly
Change-Id: I176b4413769f41739639875ab874a3e340b6a184
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
Autobuild-User(master): Michael Adam <obnox at samba.org>
Autobuild-Date(master): Thu Jul 31 10:41:58 CEST 2014 on sn-devel-104
commit 72642f126086f89ba3e1e42992718f6db22f0831
Author: Garming Sam <garming at catalyst.net.nz>
Date: Wed Jul 9 13:04:00 2014 +1200
param: get rid of unnecessary get_default_loadparm_service pointer
Change-Id: I9f512be671e5cd738c43fd97c9c3e0b4ee7a2736
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit bb8fa510b4e573b2ade9ed134e56de425ae22427
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Apr 17 13:59:30 2014 +1200
param: remove unused lp_do_parameter from s3 helpers
Change-Id: I0de55ee30beb6b94350700afcdb85155e913bda8
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 0693b5d77bb9cd70e10a9f90682c78964904f541
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Apr 17 13:49:05 2014 +1200
param: remove unnecessary lp_do_parameter call
Change-Id: I0cd1842bac3fcb6dde7236b87d5d235f10277e60
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 47f10ac65c2df3034ae5e943a396d86aa201667a
Author: Garming Sam <garming at catalyst.net.nz>
Date: Wed Jul 9 12:25:36 2014 +1200
param: remove lp_get_parameter
Ensure lpcfg_parm_struct, its counterpart is equivalent
Change-Id: I127ce5d3cf7fe02ebf161aa011ec3b41bc32a656
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 0796dc6fe009ec5305f1e748f00a1f305080e10d
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Apr 17 13:48:24 2014 +1200
s3:param: move all lp context setup to a single function
Change-Id: Ife53e3946a4958d81cbe892bc554520561058c65
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit adeb284a7f397ad2d730d276e56809dc5d4d1b41
Author: Garming Sam <garming at catalyst.net.nz>
Date: Mon Jul 7 15:40:45 2014 +1200
s3:param: Ensure that the service pointers are not used directly.
Change-Id: I750301d80981546a84f17995883fae26398d17b8
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 71eb59200a8969d4a6c4f968478fd987f257490c
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 27 15:32:42 2014 +1300
param: remove init printer values from s3-helpers
Change-Id: I2c4a85b4f5039158924982a277be20ebc2d6302e
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit f605832d8eb26f6823799bddf81cedae843fd3ca
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 27 15:27:40 2014 +1300
param: move init_printer_values to lib/param
Change-Id: I45df7d589c742d6e5572b0950daed563533cca3c
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 397a3ece0bcb0b932817643878dcd669668d31ec
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 27 15:03:37 2014 +1300
param: change init_printer_values to take an lp ctx
Change-Id: I55cda94bbf1daf276ec0c45b056bd81645eaa25f
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 308d802f62839c7df27fd6384f33e36f4273f02a
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 27 14:22:41 2014 +1300
param: add the necessary new line for the debug message in handle_copy
Change-Id: Ia6fc12b9d85032b6f501395cd82c31bcfe229822
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 0b6bf024bb79bfdbd821368c7662a120588380fe
Author: Garming Sam <garming at catalyst.net.nz>
Date: Tue May 6 16:04:01 2014 +1200
param: add missing talloc_free in lpcfg_file_list_changed which are present in s3
Change-Id: Ib363069f5ecc4fc743aadf143efd640e00d74543
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 2aedc10e8629f3d6379b79a726b924ee75b02d2c
Author: Garming Sam <garming at catalyst.net.nz>
Date: Wed Jul 9 11:44:51 2014 +1200
param: make is_default method static again
Change-Id: Icf509a5a8098efcc94e4372742ca9a20a987ad9e
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 42f21ad65cd8af79e2eeab672821d3e876318aca
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 27 15:04:12 2014 +1300
param: remove unused dump_globals
Change-Id: Id55884c2809ada9c37a4ae306f3a09ecee0fe992
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 26a6f05f0fe78579baec30d9f8afda923bc35ff0
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 27 08:51:56 2014 +1300
param: use lpcfg_dump_globals in s3 loadparm
Change-Id: I7f7f5238a47e0c3634757b74f3f852ce36988614
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 6f9a0b81356ad1abad03d8c00ee17c7cf0d6981d
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Mar 21 10:45:51 2014 +1300
param: rename dump_globals
Change-Id: Ia587b8c968dedfcf9b3374d4a4f87bfaa37b01be
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit a348fa95c12181f31c9a474e13b6715d238ac71c
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Mar 21 10:44:15 2014 +1300
param: allow dump_globals to check the actual defaults
Change-Id: Ia5f30b6922b2e836d3e93403c61458ee58d993fd
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit a7c4446bef0d2b4e57fba7f3593f8c7379896160
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 27 15:33:03 2014 +1300
param: remove is_default method in s3
Change-Id: Ia9c7422c5f7b56eb81ad644b369bfa36849e963e
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 6edf710c7b5b8d558ec8065d759f42bbc6ca42a0
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Mar 21 10:27:46 2014 +1300
param: make is_default more generic
Change-Id: Ie380bb7083d96e4ebb1574b7d1e3df0b34f70352
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit a1d2e52110f0de0a3693312ca49412a7be425e4d
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Mar 21 09:34:18 2014 +1300
param: remove unused service_ok function
Change-Id: I0736a3b9b73aa80f529327ec70e856dd7fc008c6
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit bc46178831e4bc748862254a6f994ea14d82a877
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Mar 21 09:33:01 2014 +1300
param: use lpcfg_service_ok in s3 loadparm
Change-Id: Ic157d3f5ec7ac9a72db86239e76cd743149cb8e0
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit ad7be09149ace0d810fe5828ee34e76f92e3dcf1
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Mar 21 09:30:26 2014 +1300
param: add extra condition in lpcfg_service_ok
Change-Id: Id9a95748904516fd34869fee61b1e85b6d14f083
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 611a402cee9e448e92247384e5702a91075b1108
Author: Garming Sam <garming at catalyst.net.nz>
Date: Tue Jul 29 12:05:22 2014 +0200
s3:param: remove lp_string_set from the s3_fns.
This is not used any more.
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit cf2aa9251fbf19a0aafc7b9909a2f88b2a0c883f
Author: Garming Sam <garming at catalyst.net.nz>
Date: Fri Mar 21 09:10:52 2014 +1300
param: remove unnecessary uses of lp_string_set
Change-Id: I190e8b62dee24c998f388eae1cc9558e6b8bc925
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 3377c0f8a495905e289cf6698aff99d73741eb72
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 20 15:19:15 2014 +1300
s3:param: add lp_ctx as a parameter to init_globals
Change-Id: I8804923241d782eb82675c5a56d53b5ba720fdf0
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 0864d4945e3c6a4b61cf54250ecb98a7844ee128
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 20 14:38:37 2014 +1300
s3:param: use lpcfg_do_*_paramter instead of lp_do_parameter in do_parameter
Change-Id: I08ab5d9db9323a2ef4fa2243ff0b0b7efe73a23b
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 622e54fc494e56d32ffe6193e9c83452c816f7d0
Author: Garming Sam <garming at catalyst.net.nz>
Date: Wed Jul 9 13:15:33 2014 +1200
param: Use the correct flag locations with lpcfg_parm_is_cmdline
s3 flags are no longer being stored in the param table anymore.
They shouldn't be used in this manner anymore.
Change-Id: Ib97492fd9149e30d7756ca603f79321d7516f19b
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit 4fa98737f4911a539cb0b14b55667015c66a0f52
Author: Garming Sam <garming at catalyst.net.nz>
Date: Thu Mar 20 15:16:37 2014 +1300
s3:param: simplify lp_do_parameter to use lpcfg functions
Change-Id: I907794fbbc15ecc4e88e0f6b0d510788e0fca745
Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/param/loadparm.c | 237 ++++++++++++++++++-------
lib/param/loadparm.h | 1 -
lib/param/s3_param.h | 5 -
source3/include/proto.h | 2 -
source3/param/loadparm.c | 414 ++++++------------------------------------
source3/param/loadparm_ctx.c | 5 -
6 files changed, 234 insertions(+), 430 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index bc96dc3..480f970 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -74,9 +74,6 @@
struct loadparm_service *lpcfg_default_service(struct loadparm_context *lp_ctx)
{
- if (lp_ctx->s3_fns) {
- return lp_ctx->s3_fns->get_default_loadparm_service();
- }
return lp_ctx->sDefault;
}
@@ -229,7 +226,6 @@ FN_GLOBAL_CONST_STRING(dnsdomain, dnsdomain)
/* local prototypes */
static struct loadparm_service *lpcfg_getservicebyname(struct loadparm_context *lp_ctx,
const char *pszServiceName);
-static bool lpcfg_service_ok(struct loadparm_service *service);
static bool do_section(const char *pszSectionName, void *);
static bool set_variable_helper(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
const char *pszParmName, const char *pszParmValue);
@@ -578,6 +574,10 @@ struct loadparm_service *lpcfg_add_service(struct loadparm_context *lp_ctx,
int num_to_alloc = lp_ctx->iNumServices + 1;
struct parmlist_entry *data, *pdata;
+ if (lp_ctx->s3_fns != NULL) {
+ smb_panic("Add a service should not be called on an s3 loadparm ctx");
+ }
+
if (pservice == NULL) {
pservice = lp_ctx->sDefault;
}
@@ -731,15 +731,13 @@ int lpcfg_map_parameter(const char *pszParmName)
*/
struct parm_struct *lpcfg_parm_struct(struct loadparm_context *lp_ctx, const char *name)
{
- int parmnum;
+ int num = lpcfg_map_parameter(name);
- if (lp_ctx->s3_fns) {
- return lp_ctx->s3_fns->get_parm_struct(name);
+ if (num < 0) {
+ return NULL;
}
- parmnum = lpcfg_map_parameter(name);
- if (parmnum == -1) return NULL;
- return &parm_table[parmnum];
+ return &parm_table[num];
}
/**
@@ -770,14 +768,6 @@ bool lpcfg_parm_is_cmdline(struct loadparm_context *lp_ctx, const char *name)
{
int parmnum;
- if (lp_ctx->s3_fns) {
- struct parm_struct *parm = lp_ctx->s3_fns->get_parm_struct(name);
- if (parm) {
- return parm->flags & FLAG_CMDLINE;
- }
- return false;
- }
-
parmnum = lpcfg_map_parameter(name);
if (parmnum == -1) return false;
@@ -940,7 +930,7 @@ void copy_service(struct loadparm_service *pserviceDest,
* Check a service for consistency. Return False if the service is in any way
* incomplete or faulty, else True.
*/
-static bool lpcfg_service_ok(struct loadparm_service *service)
+bool lpcfg_service_ok(struct loadparm_service *service)
{
bool bRetval;
@@ -964,6 +954,15 @@ static bool lpcfg_service_ok(struct loadparm_service *service)
service->browseable = false;
}
+ if (service->path[0] == '\0' &&
+ strwicmp(service->szService, HOMES_NAME) != 0 &&
+ service->msdfs_proxy[0] == '\0')
+ {
+ DEBUG(0, ("WARNING: No path in service %s - making it unavailable!\n",
+ service->szService));
+ service->bAvailable = false;
+ }
+
/* If a service is flagged unavailable, log the fact at level 0. */
if (!service->bAvailable)
DEBUG(1, ("NOTE: Service %s is flagged unavailable.\n",
@@ -1043,8 +1042,10 @@ bool lpcfg_file_list_changed(struct loadparm_context *lp_ctx)
f->modtime = mod_time;
talloc_free(f->subfname);
f->subfname = talloc_strdup(f, n2);
+ TALLOC_FREE(n2);
return true;
}
+ TALLOC_FREE(n2);
}
return false;
}
@@ -1090,15 +1091,9 @@ bool handle_realm(struct loadparm_context *lp_ctx, struct loadparm_service *serv
return false;
}
- if (lp_ctx->s3_fns != NULL) {
- lp_ctx->s3_fns->lp_string_set(ptr, pszParmValue);
- lp_ctx->s3_fns->lp_string_set(&lp_ctx->globals->realm, upper);
- lp_ctx->s3_fns->lp_string_set(&lp_ctx->globals->dnsdomain, lower);
- } else {
- lpcfg_string_set(lp_ctx, ptr, pszParmValue);
- lpcfg_string_set(lp_ctx, &lp_ctx->globals->realm, upper);
- lpcfg_string_set(lp_ctx, &lp_ctx->globals->dnsdomain, lower);
- }
+ lpcfg_string_set(lp_ctx->globals->ctx, ptr, pszParmValue);
+ lpcfg_string_set(lp_ctx->globals->ctx, &lp_ctx->globals->realm, upper);
+ lpcfg_string_set(lp_ctx->globals->ctx, &lp_ctx->globals->dnsdomain, lower);
return true;
}
@@ -1147,7 +1142,7 @@ bool handle_copy(struct loadparm_context *lp_ctx, struct loadparm_service *servi
serviceTemp = lpcfg_getservicebyname(lp_ctx, pszParmValue);
if (service == NULL) {
- DEBUG(0, ("Unable to copy service - invalid service destination"));
+ DEBUG(0, ("Unable to copy service - invalid service destination.\n"));
return false;
}
@@ -1174,11 +1169,7 @@ bool handle_copy(struct loadparm_context *lp_ctx, struct loadparm_service *servi
bool handle_debug_list(struct loadparm_context *lp_ctx, struct loadparm_service *service,
const char *pszParmValue, char **ptr)
{
- if (lp_ctx->s3_fns != NULL) {
- lp_ctx->s3_fns->lp_string_set(ptr, pszParmValue);
- } else {
- lpcfg_string_set(lp_ctx, ptr, pszParmValue);
- }
+ lpcfg_string_set(lp_ctx->globals->ctx, ptr, pszParmValue);
return debug_parse_levels(pszParmValue);
}
@@ -1186,13 +1177,12 @@ bool handle_debug_list(struct loadparm_context *lp_ctx, struct loadparm_service
bool handle_logfile(struct loadparm_context *lp_ctx, struct loadparm_service *service,
const char *pszParmValue, char **ptr)
{
- if (lp_ctx->s3_fns != NULL) {
- lp_ctx->s3_fns->lp_string_set(ptr, pszParmValue);
- } else {
+ if (lp_ctx->s3_fns == NULL) {
debug_set_logfile(pszParmValue);
- lpcfg_string_set(lp_ctx, ptr, pszParmValue);
}
+ lpcfg_string_set(lp_ctx->globals->ctx, ptr, pszParmValue);
+
return true;
}
@@ -1205,16 +1195,14 @@ bool handle_charset(struct loadparm_context *lp_ctx, struct loadparm_service *se
{
if (lp_ctx->s3_fns) {
if (*ptr == NULL || strcmp(*ptr, pszParmValue) != 0) {
- lp_ctx->s3_fns->lp_string_set(ptr, pszParmValue);
global_iconv_handle = smb_iconv_handle_reinit(NULL,
lpcfg_dos_charset(lp_ctx),
lpcfg_unix_charset(lp_ctx),
true, global_iconv_handle);
}
- return true;
}
- return lpcfg_string_set(lp_ctx, ptr, pszParmValue);
+ return lpcfg_string_set(lp_ctx->globals->ctx, ptr, pszParmValue);
}
@@ -1251,23 +1239,20 @@ bool handle_dos_charset(struct loadparm_context *lp_ctx, struct loadparm_service
DEFAULT_DOS_CHARSET));
pszParmValue = DEFAULT_DOS_CHARSET;
}
- lp_ctx->s3_fns->lp_string_set(ptr, pszParmValue);
global_iconv_handle = smb_iconv_handle_reinit(NULL,
lpcfg_dos_charset(lp_ctx),
lpcfg_unix_charset(lp_ctx),
true, global_iconv_handle);
}
- return true;
}
- return lpcfg_string_set(lp_ctx, ptr, pszParmValue);
+ return lpcfg_string_set(lp_ctx->globals->ctx, ptr, pszParmValue);
}
bool handle_printing(struct loadparm_context *lp_ctx, struct loadparm_service *service,
const char *pszParmValue, char **ptr)
{
static int parm_num = -1;
- struct loadparm_service *s;
if (parm_num == -1) {
parm_num = lpcfg_map_parameter("printing");
@@ -1279,11 +1264,9 @@ bool handle_printing(struct loadparm_context *lp_ctx, struct loadparm_service *s
if (lp_ctx->s3_fns) {
if (service == NULL) {
- s = lp_ctx->sDefault;
- lp_ctx->s3_fns->init_printer_values(lp_ctx->globals->ctx, s);
+ init_printer_values(lp_ctx, lp_ctx->globals->ctx, lp_ctx->sDefault);
} else {
- s = service;
- lp_ctx->s3_fns->init_printer_values(s, s);
+ init_printer_values(lp_ctx, service, service);
}
}
@@ -1769,14 +1752,8 @@ bool lpcfg_set_cmdline(struct loadparm_context *lp_ctx, const char *pszParmName,
/* reset the CMDLINE flag in case this has been called before */
lp_ctx->flags[parmnum] &= ~FLAG_CMDLINE;
- if (lp_ctx->s3_fns != NULL) {
- if (!lp_ctx->s3_fns->lp_do_parameter(-1, pszParmName, pszParmValue)) {
- return false;
- }
- } else {
- if (!lpcfg_do_global_parameter(lp_ctx, pszParmName, pszParmValue)) {
- return false;
- }
+ if (!lpcfg_do_global_parameter(lp_ctx, pszParmName, pszParmValue)) {
+ return false;
}
lp_ctx->flags[parmnum] |= FLAG_CMDLINE;
@@ -2012,9 +1989,9 @@ static bool do_section(const char *pszSectionName, void *userdata)
* Determine if a particular base parameter is currently set to the default value.
*/
-static bool is_default(struct loadparm_service *sDefault, int i)
+static bool is_default(void *base_structure, int i)
{
- void *def_ptr = ((char *)sDefault) + parm_table[i].offset;
+ void *def_ptr = ((char *)base_structure) + parm_table[i].offset;
switch (parm_table[i].type) {
case P_CMDLIST:
case P_LIST:
@@ -2045,7 +2022,7 @@ static bool is_default(struct loadparm_service *sDefault, int i)
*Display the contents of the global structure.
*/
-static void dump_globals(struct loadparm_context *lp_ctx, FILE *f,
+void lpcfg_dump_globals(struct loadparm_context *lp_ctx, FILE *f,
bool show_defaults)
{
int i;
@@ -2056,8 +2033,16 @@ static void dump_globals(struct loadparm_context *lp_ctx, FILE *f,
for (i = 0; parm_table[i].label; i++)
if (parm_table[i].p_class == P_GLOBAL &&
(i == 0 || (parm_table[i].offset != parm_table[i - 1].offset))) {
- if (!show_defaults && (lp_ctx->flags[i] & FLAG_DEFAULT))
- continue;
+ if (!show_defaults) {
+ if (lp_ctx->flags && (lp_ctx->flags[i] & FLAG_DEFAULT)) {
+ continue;
+ }
+
+ if (is_default(lp_ctx->globals, i)) {
+ continue;
+ }
+ }
+
fprintf(f, "\t%s = ", parm_table[i].label);
lpcfg_print_parameter(&parm_table[i], lpcfg_parm_ptr(lp_ctx, NULL, &parm_table[i]), f);
fprintf(f, "\n");
@@ -2184,6 +2169,127 @@ static void lpcfg_add_auto_services(struct loadparm_context *lp_ctx,
return;
}
+/***************************************************************************
+ Initialise the sDefault parameter structure for the printer values.
+***************************************************************************/
+
+void init_printer_values(struct loadparm_context *lp_ctx, TALLOC_CTX *ctx,
+ struct loadparm_service *pService)
+{
+ /* choose defaults depending on the type of printing */
+ switch (pService->printing) {
+ case PRINT_BSD:
+ case PRINT_AIX:
+ case PRINT_LPRNT:
+ case PRINT_LPROS2:
+ lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P'%p'");
+ lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P'%p' %j");
+ lpcfg_string_set(ctx, &pService->print_command, "lpr -r -P'%p' %s");
+ break;
+
+ case PRINT_LPRNG:
+ case PRINT_PLP:
+ lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P'%p'");
+ lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P'%p' %j");
+ lpcfg_string_set(ctx, &pService->print_command, "lpr -r -P'%p' %s");
+ lpcfg_string_set(ctx, &pService->queuepause_command, "lpc stop '%p'");
+ lpcfg_string_set(ctx, &pService->queueresume_command, "lpc start '%p'");
+ lpcfg_string_set(ctx, &pService->lppause_command, "lpc hold '%p' %j");
+ lpcfg_string_set(ctx, &pService->lpresume_command, "lpc release '%p' %j");
+ break;
+
+ case PRINT_CUPS:
+ case PRINT_IPRINT:
+ /* set the lpq command to contain the destination printer
+ name only. This is used by cups_queue_get() */
+ lpcfg_string_set(ctx, &pService->lpq_command, "%p");
+ lpcfg_string_set(ctx, &pService->lprm_command, "");
+ lpcfg_string_set(ctx, &pService->print_command, "");
+ lpcfg_string_set(ctx, &pService->lppause_command, "");
+ lpcfg_string_set(ctx, &pService->lpresume_command, "");
+ lpcfg_string_set(ctx, &pService->queuepause_command, "");
+ lpcfg_string_set(ctx, &pService->queueresume_command, "");
+ break;
+
+ case PRINT_SYSV:
+ case PRINT_HPUX:
+ lpcfg_string_set(ctx, &pService->lpq_command, "lpstat -o%p");
+ lpcfg_string_set(ctx, &pService->lprm_command, "cancel %p-%j");
+ lpcfg_string_set(ctx, &pService->print_command, "lp -c -d%p %s; rm %s");
+ lpcfg_string_set(ctx, &pService->queuepause_command, "disable %p");
+ lpcfg_string_set(ctx, &pService->queueresume_command, "enable %p");
+#ifndef HPUX
+ lpcfg_string_set(ctx, &pService->lppause_command, "lp -i %p-%j -H hold");
+ lpcfg_string_set(ctx, &pService->lpresume_command, "lp -i %p-%j -H resume");
+#endif /* HPUX */
+ break;
+
+ case PRINT_QNX:
+ lpcfg_string_set(ctx, &pService->lpq_command, "lpq -P%p");
+ lpcfg_string_set(ctx, &pService->lprm_command, "lprm -P%p %j");
+ lpcfg_string_set(ctx, &pService->print_command, "lp -r -P%p %s");
+ break;
+
+#if defined(DEVELOPER) || defined(ENABLE_SELFTEST)
+
+ case PRINT_TEST:
+ case PRINT_VLP: {
+ const char *tdbfile;
+ TALLOC_CTX *tmp_ctx = talloc_new(ctx);
+ const char *tmp;
+
+ tmp = lpcfg_parm_string(lp_ctx, NULL, "vlp", "tdbfile");
+ if (tmp == NULL) {
+ tmp = "/tmp/vlp.tdb";
+ }
+
+ tdbfile = talloc_asprintf(tmp_ctx, "tdbfile=%s", tmp);
+ if (tdbfile == NULL) {
+ tdbfile="tdbfile=/tmp/vlp.tdb";
+ }
+
+ tmp = talloc_asprintf(tmp_ctx, "vlp %s print %%p %%s",
+ tdbfile);
+ lpcfg_string_set(ctx, &pService->print_command,
+ tmp ? tmp : "vlp print %p %s");
+
+ tmp = talloc_asprintf(tmp_ctx, "vlp %s lpq %%p",
+ tdbfile);
+ lpcfg_string_set(ctx, &pService->lpq_command,
+ tmp ? tmp : "vlp lpq %p");
+
+ tmp = talloc_asprintf(tmp_ctx, "vlp %s lprm %%p %%j",
+ tdbfile);
+ lpcfg_string_set(ctx, &pService->lprm_command,
+ tmp ? tmp : "vlp lprm %p %j");
+
+ tmp = talloc_asprintf(tmp_ctx, "vlp %s lppause %%p %%j",
+ tdbfile);
+ lpcfg_string_set(ctx, &pService->lppause_command,
+ tmp ? tmp : "vlp lppause %p %j");
+
+ tmp = talloc_asprintf(tmp_ctx, "vlp %s lpresume %%p %%j",
+ tdbfile);
+ lpcfg_string_set(ctx, &pService->lpresume_command,
+ tmp ? tmp : "vlp lpresume %p %j");
+
+ tmp = talloc_asprintf(tmp_ctx, "vlp %s queuepause %%p",
+ tdbfile);
+ lpcfg_string_set(ctx, &pService->queuepause_command,
+ tmp ? tmp : "vlp queuepause %p");
+
+ tmp = talloc_asprintf(tmp_ctx, "vlp %s queueresume %%p",
+ tdbfile);
+ lpcfg_string_set(ctx, &pService->queueresume_command,
+ tmp ? tmp : "vlp queueresume %p");
+ TALLOC_FREE(tmp_ctx);
+
+ break;
+ }
+#endif /* DEVELOPER */
+
+ }
+}
/**
* Unload unused services.
@@ -2194,6 +2300,11 @@ void lpcfg_killunused(struct loadparm_context *lp_ctx,
bool (*snumused) (struct smbsrv_connection *, int))
{
int i;
+
+ if (lp_ctx->s3_fns != NULL) {
+ smb_panic("Cannot be used from an s3 loadparm ctx");
+ }
+
for (i = 0; i < lp_ctx->iNumServices; i++) {
if (lp_ctx->services[i] == NULL)
continue;
@@ -2854,7 +2965,7 @@ void lpcfg_dump(struct loadparm_context *lp_ctx, FILE *f, bool show_defaults,
return;
}
- dump_globals(lp_ctx, f, show_defaults);
+ lpcfg_dump_globals(lp_ctx, f, show_defaults);
lpcfg_dump_a_service(lp_ctx->sDefault, lp_ctx->sDefault, f, lp_ctx->flags, show_defaults);
diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
index 79f12cb..d4177e5 100644
--- a/lib/param/loadparm.h
+++ b/lib/param/loadparm.h
@@ -284,7 +284,6 @@ bool lp_string_set(char **, const char *);
int getservicebyname(const char *, struct loadparm_service *);
bool lp_include(struct loadparm_context *, struct loadparm_service *,
const char *, char **);
-void init_printer_values(TALLOC_CTX *, struct loadparm_service *);
bool lp_do_section(const char *pszSectionName, void *userdata);
bool store_lp_set_cmdline(const char *pszParmName, const char *pszParmValue);
diff --git a/lib/param/s3_param.h b/lib/param/s3_param.h
index 1d499cd..f31c5bc 100644
--- a/lib/param/s3_param.h
+++ b/lib/param/s3_param.h
@@ -3,10 +3,8 @@
struct loadparm_s3_helpers
{
- struct parm_struct * (*get_parm_struct)(const char *param_name);
void * (*get_parm_ptr)(struct loadparm_service *service, struct parm_struct *parm);
struct loadparm_service * (*get_service)(const char *service_name);
- struct loadparm_service * (*get_default_loadparm_service)(void);
struct loadparm_service * (*get_servicebynum)(int snum);
int (*getservicebyname)(const char *, struct loadparm_service *);
int (*get_numservices)(void);
@@ -14,13 +12,10 @@ struct loadparm_s3_helpers
bool (*store_cmdline)(const char *pszParmName, const char *pszParmValue);
void (*dump)(FILE *f, bool show_defaults, int maxtoprint);
char * (*lp_string)(TALLOC_CTX *ctx, const char *in);
- bool (*lp_string_set)(char **dest, const char *src);
bool (*lp_include)(struct loadparm_context*, struct loadparm_service *,
const char *, char **);
- void (*init_printer_values)(TALLOC_CTX *, struct loadparm_service *);
void (*init_ldap_debugging)(void);
bool (*set_netbios_aliases)(const char **);
- bool (*lp_do_parameter)(int, const char *, const char *);
bool (*do_section)(const char *pszSectionName, void *userdata);
struct loadparm_global *globals;
unsigned int *flags;
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 285ec7b..70fa7f7 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1023,7 +1023,6 @@ bool lp_canonicalize_parameter_with_value(const char *parm_name,
void show_parameter_list(void);
bool lp_invert_boolean(const char *str, const char **inverse_str);
bool lp_canonicalize_boolean(const char *str, const char**canon_str);
-bool service_ok(int iService);
bool process_registry_service(const char *service_name);
bool process_registry_shares(void);
bool lp_config_backend_is_registry(void);
@@ -1043,7 +1042,6 @@ void *lp_local_ptr_by_snum(int snum, struct parm_struct *parm);
bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue);
bool lp_set_cmdline(const char *pszParmName, const char *pszParmValue);
bool dump_a_parameter(int snum, char *parm_name, FILE * f, bool isGlobal);
-struct parm_struct *lp_get_parameter(const char *param_name);
bool lp_snum_ok(int iService);
void lp_add_one_printer(const char *name, const char *comment,
const char *location, void *pdata);
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 6b3e46e..dee6224 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -306,124 +306,6 @@ bool lp_string_set(char **dest, const char *src) {
return string_set(Globals.ctx, dest, src);
}
-/***************************************************************************
- Initialise the sDefault parameter structure for the printer values.
-***************************************************************************/
-
-void init_printer_values(TALLOC_CTX *ctx, struct loadparm_service *pService)
-{
--
Samba Shared Repository
More information about the samba-cvs
mailing list