[SCM] Samba Shared Repository - branch master updated
Volker Lendecke
vlendec at samba.org
Fri Aug 21 12:46:02 UTC 2015
The branch, master has been updated
via 53e8d52 param: Use talloc_pooled_object
via 0f600c3 param: Simplify set_param_opt()
via 78d7512 lib: Remove unused parmlist code
from 59e955b vfs_scannedonly: Remove vfs_scannedonly from samba source tree.
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 53e8d527f3e2d9ff0173263531105d29e7eabb20
Author: Volker Lendecke <vl at samba.org>
Date: Mon Aug 17 21:12:56 2015 +0200
param: Use talloc_pooled_object
Reduce memory fragmentation a bit and obsolete NULL checks
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Fri Aug 21 14:45:58 CEST 2015 on sn-devel-104
commit 0f600c34599a61a4c338b1e10af438016bec0b14
Author: Volker Lendecke <vl at samba.org>
Date: Mon Aug 17 21:07:37 2015 +0200
param: Simplify set_param_opt()
"not_added" is not a very good boolean flag concept... An early
return serves the same purpose just as well.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 78d7512db9e0098c5ae16111b1338eaa80673d5e
Author: Volker Lendecke <vl at samba.org>
Date: Mon Aug 17 17:15:27 2015 +0200
lib: Remove unused parmlist code
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/param/loadparm.c | 34 ++++-------
lib/param/loadparm.h | 13 ++++-
lib/util/parmlist.c | 111 ------------------------------------
lib/util/parmlist.h | 57 ------------------
lib/util/tests/parmlist.c | 107 ----------------------------------
lib/util/wscript_build | 2 +-
source4/torture/local/local.c | 1 -
source4/torture/local/wscript_build | 2 +-
8 files changed, 26 insertions(+), 301 deletions(-)
delete mode 100644 lib/util/parmlist.c
delete mode 100644 lib/util/parmlist.h
delete mode 100644 lib/util/tests/parmlist.c
Changeset truncated at 500 lines:
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 0a1c29a..a0700a9 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -802,10 +802,8 @@ void set_param_opt(TALLOC_CTX *mem_ctx,
unsigned priority)
{
struct parmlist_entry *new_opt, *opt;
- bool not_added;
opt = *opt_list;
- not_added = true;
/* Traverse destination */
while (opt) {
@@ -821,31 +819,23 @@ void set_param_opt(TALLOC_CTX *mem_ctx,
TALLOC_FREE(opt->list);
opt->value = talloc_strdup(opt, opt_value);
opt->priority = priority;
- not_added = false;
- break;
+ return;
}
opt = opt->next;
}
- if (not_added) {
- new_opt = talloc(mem_ctx, struct parmlist_entry);
- if (new_opt == NULL) {
- smb_panic("OOM");
- }
-
- new_opt->key = talloc_strdup(new_opt, opt_name);
- if (new_opt->key == NULL) {
- smb_panic("talloc_strdup failed");
- }
-
- new_opt->value = talloc_strdup(new_opt, opt_value);
- if (new_opt->value == NULL) {
- smb_panic("talloc_strdup failed");
- }
- new_opt->list = NULL;
- new_opt->priority = priority;
- DLIST_ADD(*opt_list, new_opt);
+ new_opt = talloc_pooled_object(
+ mem_ctx, struct parmlist_entry,
+ 2, strlen(opt_name) + 1 + strlen(opt_value) + 1);
+ if (new_opt == NULL) {
+ smb_panic("OOM");
}
+ new_opt->key = talloc_strdup(new_opt, opt_name);
+ new_opt->value = talloc_strdup(new_opt, opt_value);
+
+ new_opt->list = NULL;
+ new_opt->priority = priority;
+ DLIST_ADD(*opt_list, new_opt);
}
/**
diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
index 89dcb17..b453aca 100644
--- a/lib/param/loadparm.h
+++ b/lib/param/loadparm.h
@@ -31,7 +31,18 @@
#define _LOADPARM_H
#include <talloc.h>
-#include "../lib/util/parmlist.h"
+
+struct parmlist_entry {
+ struct parmlist_entry *prev, *next;
+ char *key;
+ char *value;
+ char **list; /* For the source3 parametric options, to save the parsed list */
+ int priority;
+};
+
+struct parmlist {
+ struct parmlist_entry *entries;
+};
/* the following are used by loadparm for option lists */
typedef enum {
diff --git a/lib/util/parmlist.c b/lib/util/parmlist.c
deleted file mode 100644
index b3e1e9f..0000000
--- a/lib/util/parmlist.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Unix SMB/CIFS implementation.
- * Copyright (C) Jelmer Vernooij 2009
- *
- * 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/>.
- */
-
-#include "includes.h"
-#include "../lib/util/dlinklist.h"
-#include "../lib/util/parmlist.h"
-
-#undef strcasecmp
-
-struct parmlist_entry *parmlist_get(struct parmlist *ctx, const char *name)
-{
- struct parmlist_entry *e;
- for (e = ctx->entries; e; e = e->next) {
- if (strcasecmp(e->key, name) == 0)
- return e;
- }
-
- return NULL;
-}
-
-int parmlist_get_int(struct parmlist *ctx, const char *name, int default_v)
-{
- struct parmlist_entry *p = parmlist_get(ctx, name);
-
- if (p != NULL)
- return strtol(p->value, NULL, 0);
-
- return default_v;
-}
-
-bool parmlist_get_bool(struct parmlist *ctx, const char *name, bool default_v)
-{
- struct parmlist_entry *p = parmlist_get(ctx, name);
- bool ret;
-
- if (p == NULL)
- return default_v;
-
- if (!set_boolean(p->value, &ret)) {
- DEBUG(0,("lp_bool(%s): value is not boolean!\n", p->value));
- return default_v;
- }
-
- return ret;
-}
-
-const char *parmlist_get_string(struct parmlist *ctx, const char *name,
- const char *default_v)
-{
- struct parmlist_entry *p = parmlist_get(ctx, name);
-
- if (p == NULL)
- return default_v;
-
- return p->value;
-}
-
-const char **parmlist_get_string_list(struct parmlist *ctx, const char *name,
- const char *separator)
-{
- struct parmlist_entry *p = parmlist_get(ctx, name);
- char **l;
-
- if (p == NULL) {
- return NULL;
- }
-
- l = str_list_make(ctx, p->value, separator);
- return discard_const_p(const char *, l);
-}
-
-static struct parmlist_entry *parmlist_get_add(struct parmlist *ctx, const char *name)
-{
- struct parmlist_entry *e = parmlist_get(ctx, name);
-
- if (e != NULL)
- return e;
-
- e = talloc(ctx, struct parmlist_entry);
- if (e == NULL)
- return NULL;
- e->key = talloc_strdup(e, name);
- DLIST_ADD(ctx->entries, e);
- return e;
-}
-
-int parmlist_set_string(struct parmlist *ctx, const char *name,
- const char *value)
-{
- struct parmlist_entry *e = parmlist_get_add(ctx, name);
- if (e == NULL)
- return -1;
-
- e->value = talloc_strdup(e, value);
- return 0;
-}
diff --git a/lib/util/parmlist.h b/lib/util/parmlist.h
deleted file mode 100644
index 9bc4f36..0000000
--- a/lib/util/parmlist.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- Generic parameter parsing interface
- Copyright (C) Jelmer Vernooij 2009
-
- 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/>.
-*/
-
-#ifndef _PARMLIST_H /* _PARMLIST_H */
-#define _PARMLIST_H
-
-struct parmlist_entry {
- struct parmlist_entry *prev, *next;
- char *key;
- char *value;
- char **list; /* For the source3 parametric options, to save the parsed list */
- int priority;
-};
-
-struct parmlist {
- struct parmlist_entry *entries;
-};
-
-/** Retrieve an integer from a parameter list. If not found, return default_v. */
-int parmlist_get_int(struct parmlist *ctx, const char *name, int default_v);
-
-/** Retrieve a string from a parameter list. If not found, return default_v. */
-const char *parmlist_get_string(struct parmlist *ctx, const char *name,
- const char *default_v);
-
-/** Retrieve the struct for an entry in a parmlist. */
-struct parmlist_entry *parmlist_get(struct parmlist *ctx, const char *name);
-
-/** Retrieve a string list from a parameter list.
- * separator can contain characters to consider separators or can be
- * NULL for the default set. */
-const char **parmlist_get_string_list(struct parmlist *ctx, const char *name,
- const char *separator);
-
-/** Retrieve boolean from a parameter list. If not set, return default_v. */
-bool parmlist_get_bool(struct parmlist *ctx, const char *name, bool default_v);
-
-/** Set a parameter. */
-int parmlist_set_string(struct parmlist *ctx, const char *name, const char *value);
-
-#endif /* _PARMLIST_H */
diff --git a/lib/util/tests/parmlist.c b/lib/util/tests/parmlist.c
deleted file mode 100644
index df589ef..0000000
--- a/lib/util/tests/parmlist.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
-
- parmlist testing
-
- Copyright (C) Jelmer Vernooij 2009
-
- 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/>.
-*/
-
-#include "includes.h"
-#include "torture/torture.h"
-#include "torture/local/proto.h"
-#include "../lib/util/parmlist.h"
-
-static bool test_get_int(struct torture_context *tctx)
-{
- struct parmlist *pctx = talloc_zero(tctx, struct parmlist);
- parmlist_set_string(pctx, "bar", "3");
- parmlist_set_string(pctx, "notint", "bla");
- torture_assert_int_equal(tctx, 3, parmlist_get_int(pctx, "bar", 42),
- "existing");
- torture_assert_int_equal(tctx, 42, parmlist_get_int(pctx, "foo", 42),
- "default");
- torture_assert_int_equal(tctx, 0, parmlist_get_int(pctx, "notint", 42),
- "Not an integer");
- return true;
-}
-
-static bool test_get_string(struct torture_context *tctx)
-{
- struct parmlist *pctx = talloc_zero(tctx, struct parmlist);
- parmlist_set_string(pctx, "bar", "mystring");
- torture_assert_str_equal(tctx, "mystring",
- parmlist_get_string(pctx, "bar", "bla"), "existing");
- torture_assert_str_equal(tctx, "bla",
- parmlist_get_string(pctx, "foo", "bla"), "default");
- return true;
-}
-
-static bool test_get(struct torture_context *tctx)
-{
- struct parmlist *pctx = talloc_zero(tctx, struct parmlist);
- struct parmlist_entry *e;
- parmlist_set_string(pctx, "bar", "mystring");
-
- e = parmlist_get(pctx, "bar");
- torture_assert(tctx, e != NULL, "entry");
- torture_assert_str_equal(tctx, e->key, "bar", "key");
- torture_assert_str_equal(tctx, e->value, "mystring", "value");
-
- e = parmlist_get(pctx, "non-existent");
- torture_assert(tctx, e == NULL, "non-existent");
- return true;
-}
-
-static bool test_get_bool(struct torture_context *tctx)
-{
- struct parmlist *pctx = talloc_zero(tctx, struct parmlist);
- parmlist_set_string(pctx, "bar", "true");
- parmlist_set_string(pctx, "gasoline", "invalid");
-
- torture_assert(tctx, parmlist_get_bool(pctx, "bar", false), "set");
- torture_assert(tctx, !parmlist_get_bool(pctx, "foo", false), "default");
- torture_assert(tctx, !parmlist_get_bool(pctx, "gasoline", false),
- "invalid");
- return true;
-}
-
-static bool test_get_string_list(struct torture_context *tctx)
-{
- struct parmlist *pctx = talloc_zero(tctx, struct parmlist);
- const char **ret;
- parmlist_set_string(pctx, "bar", "true, false");
-
- ret = parmlist_get_string_list(pctx, "bar", NULL);
- torture_assert_int_equal(tctx, str_list_length(ret), 2, "length");
- torture_assert_str_equal(tctx, "true", ret[0], "ret[0]");
- torture_assert_str_equal(tctx, "false", ret[1], "ret[1]");
- torture_assert(tctx, NULL == parmlist_get_string_list(pctx, "non-existent", NULL), "non-existent");
-
- return true;
-}
-
-struct torture_suite *torture_local_util_parmlist(TALLOC_CTX *mem_ctx)
-{
- struct torture_suite *suite = torture_suite_create(mem_ctx, "parmlist");
-
- torture_suite_add_simple_test(suite, "get_int", test_get_int);
- torture_suite_add_simple_test(suite, "get_string", test_get_string);
- torture_suite_add_simple_test(suite, "get", test_get);
- torture_suite_add_simple_test(suite, "get_bool", test_get_bool);
- torture_suite_add_simple_test(suite, "get_string_list", test_get_string_list);
-
- return suite;
-}
diff --git a/lib/util/wscript_build b/lib/util/wscript_build
index e5c1a97..47d64c1 100755
--- a/lib/util/wscript_build
+++ b/lib/util/wscript_build
@@ -86,7 +86,7 @@ if not bld.env.SAMBA_UTIL_CORE_ONLY:
params.c util_id.c util_net.c
util_strlist.c util_paths.c idtree_random.c base64.c
util_str.c util_str_common.c ms_fnmatch.c
- server_id.c dprintf.c parmlist.c bitmap.c pidfile.c
+ server_id.c dprintf.c bitmap.c pidfile.c
tevent_debug.c util_process.c memcache.c''',
deps='samba-util-core DYNCONFIG close-low-fd tini tiniparser genrand',
diff --git a/source4/torture/local/local.c b/source4/torture/local/local.c
index 5d3b4e1..91e67f8 100644
--- a/source4/torture/local/local.c
+++ b/source4/torture/local/local.c
@@ -35,7 +35,6 @@
torture_local_messaging,
torture_local_irpc,
torture_local_util_strlist,
- torture_local_util_parmlist,
torture_local_util_file,
torture_local_util_str,
torture_local_util_time,
diff --git a/source4/torture/local/wscript_build b/source4/torture/local/wscript_build
index 570222e..eb45df8 100644
--- a/source4/torture/local/wscript_build
+++ b/source4/torture/local/wscript_build
@@ -5,7 +5,7 @@ TORTURE_LOCAL_SOURCE = '''../../../lib/util/charset/tests/iconv.c
../../lib/messaging/tests/irpc.c ../../librpc/tests/binding_string.c
../../../lib/util/tests/idtree.c ../../../lib/util/tests/dlinklist.c
../../lib/socket/testsuite.c ../../libcli/resolve/testsuite.c
- ../../../lib/util/tests/strlist.c ../../../lib/util/tests/parmlist.c
+ ../../../lib/util/tests/strlist.c
../../../lib/util/tests/str.c ../../../lib/util/tests/time.c
../../../lib/util/tests/asn1_tests.c ../../../lib/util/tests/data_blob.c
../../../lib/util/tests/file.c ../../../lib/util/tests/genrand.c
--
Samba Shared Repository
More information about the samba-cvs
mailing list