[SCM] Samba Shared Repository - branch master updated
Andrew Tridgell
tridge at samba.org
Wed Nov 3 04:41:01 MDT 2010
The branch, master has been updated
via a12c330 s4-server: cleanup allocation of process models
via 6614f84 s4-ldb: fixed sorting of module names
from 598b565 s4:objectguid LDB module - remove "objectguid_find_attribute"
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit a12c3305b328d653a19cb17fcf1d47e3ab9b0898
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Nov 3 20:57:38 2010 +1100
s4-server: cleanup allocation of process models
Autobuild-User: Andrew Tridgell <tridge at samba.org>
Autobuild-Date: Wed Nov 3 10:40:52 UTC 2010 on sn-devel-104
commit 6614f847e06551b08f59106352df02c5d13ff23a
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Nov 3 20:37:08 2010 +1100
s4-ldb: fixed sorting of module names
this should also fix a valgrind error on freebsd
thanks to Matthieu for spotting this
-----------------------------------------------------------------------
Summary of changes:
source4/lib/ldb/common/ldb_modules.c | 7 ++++++-
source4/smbd/process_model.c | 14 +++++---------
source4/smbd/process_model.h | 2 +-
3 files changed, 12 insertions(+), 11 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/lib/ldb/common/ldb_modules.c b/source4/lib/ldb/common/ldb_modules.c
index 1218907..1457298 100644
--- a/source4/lib/ldb/common/ldb_modules.c
+++ b/source4/lib/ldb/common/ldb_modules.c
@@ -906,6 +906,11 @@ static int ldb_modules_load_one(const char *path, const char *version)
return ret;
}
+static int qsort_string(const char **s1, const char **s2)
+{
+ return strcmp(*s1, *s2);
+}
+
/*
load all modules from the given ldb modules directory. This is run once
@@ -961,7 +966,7 @@ static int ldb_modules_load_dir(const char *modules_dir, const char *version)
closedir(dir);
/* sort the directory, so we get consistent load ordering */
- qsort(modlist, num_modules, sizeof(modlist[0]), QSORT_CAST strcmp);
+ TYPESAFE_QSORT(modlist, num_modules, qsort_string);
for (i=0; i<num_modules; i++) {
int ret = ldb_modules_load_one(modlist[i], version);
diff --git a/source4/smbd/process_model.c b/source4/smbd/process_model.c
index 7b18f58..af12a7b 100644
--- a/source4/smbd/process_model.c
+++ b/source4/smbd/process_model.c
@@ -24,7 +24,7 @@
/* the list of currently registered process models */
static struct process_model {
- struct model_ops *ops;
+ const struct model_ops *ops;
bool initialised;
} *models = NULL;
static int num_models;
@@ -74,10 +74,8 @@ _PUBLIC_ const struct model_ops *process_model_startup(const char *model)
The 'name' can be later used by other backends to find the operations
structure for this backend.
*/
-_PUBLIC_ NTSTATUS register_process_model(const void *_ops)
+_PUBLIC_ NTSTATUS register_process_model(const struct model_ops *ops)
{
- const struct model_ops *ops = _ops;
-
if (process_model_byname(ops->name) != NULL) {
/* its already registered! */
DEBUG(0,("PROCESS_MODEL '%s' already registered\n",
@@ -85,19 +83,17 @@ _PUBLIC_ NTSTATUS register_process_model(const void *_ops)
return NT_STATUS_OBJECT_NAME_COLLISION;
}
- models = realloc_p(models, struct process_model, num_models+1);
+ models = talloc_realloc(NULL, models, struct process_model, num_models+1);
if (!models) {
smb_panic("out of memory in register_process_model");
}
- models[num_models].ops = smb_xmemdup(ops, sizeof(*ops));
- models[num_models].ops->name = smb_xstrdup(ops->name);
+ models[num_models].ops = ops;
models[num_models].initialised = false;
num_models++;
- DEBUG(3,("PROCESS_MODEL '%s' registered\n",
- ops->name));
+ DEBUG(3,("PROCESS_MODEL '%s' registered\n", ops->name));
return NT_STATUS_OK;
}
diff --git a/source4/smbd/process_model.h b/source4/smbd/process_model.h
index b579031..4399d36 100644
--- a/source4/smbd/process_model.h
+++ b/source4/smbd/process_model.h
@@ -80,7 +80,7 @@ struct process_model_critical_sizes {
extern const struct model_ops single_ops;
const struct model_ops *process_model_startup(const char *model);
-NTSTATUS register_process_model(const void *_ops);
+NTSTATUS register_process_model(const struct model_ops *ops);
NTSTATUS process_model_init(struct loadparm_context *lp_ctx);
#endif /* __PROCESS_MODEL_H__ */
--
Samba Shared Repository
More information about the samba-cvs
mailing list