diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-10-07 00:40:29 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:39:29 -0500 |
commit | f6a09fb8f81048891da589337d5bdeb3fc9959c7 (patch) | |
tree | d0002b55611ddb61717876c0c2a04cfee0013252 /source4 | |
parent | c5069ba7e3dbabd586a3a313d6c2d287b0a46e2f (diff) | |
download | samba-f6a09fb8f81048891da589337d5bdeb3fc9959c7.tar.gz samba-f6a09fb8f81048891da589337d5bdeb3fc9959c7.tar.bz2 samba-f6a09fb8f81048891da589337d5bdeb3fc9959c7.zip |
r10790: allow updating of existing ldb opaque values (thanks to abartlet for
spotting this)
(This used to be commit ef13569ca94da00cc410318e61505e70f3606674)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/lib/ldb/common/ldb.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source4/lib/ldb/common/ldb.c b/source4/lib/ldb/common/ldb.c index 725044d3f4..d34ddb4c8a 100644 --- a/source4/lib/ldb/common/ldb.c +++ b/source4/lib/ldb/common/ldb.c @@ -350,7 +350,17 @@ const char *ldb_errstring(struct ldb_context *ldb) */ int ldb_set_opaque(struct ldb_context *ldb, const char *name, void *value) { - struct ldb_opaque *o = talloc(ldb, struct ldb_opaque); + struct ldb_opaque *o; + + /* allow updating an existing value */ + for (o=ldb->opaque;o;o=o->next) { + if (strcmp(o->name, name) == 0) { + o->value = value; + return LDB_SUCCESS; + } + } + + o = talloc(ldb, struct ldb_opaque); if (o == NULL) { ldb_oom(ldb); return LDB_ERR_OTHER; |