mirror of
https://github.com/samba-team/samba.git
synced 2025-03-08 04:58:40 +03:00
s4:ldb: add ldb_parse_tree_copy_shallow() and change version to 0.9.7
metze
This commit is contained in:
parent
c14b2eb8dd
commit
46dab92a2d
@ -818,3 +818,61 @@ void ldb_parse_tree_attr_replace(struct ldb_parse_tree *tree,
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
shallow copy a tree - copying only the elements array so that the caller
|
||||
can safely add new elements without changing the message
|
||||
*/
|
||||
struct ldb_parse_tree *ldb_parse_tree_copy_shallow(TALLOC_CTX *mem_ctx,
|
||||
const struct ldb_parse_tree *ot)
|
||||
{
|
||||
int i;
|
||||
struct ldb_parse_tree *nt;
|
||||
|
||||
nt = talloc(mem_ctx, struct ldb_parse_tree);
|
||||
if (!nt) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
*nt = *ot;
|
||||
|
||||
switch (ot->operation) {
|
||||
case LDB_OP_AND:
|
||||
case LDB_OP_OR:
|
||||
nt->u.list.elements = talloc_array(nt, struct ldb_parse_tree,
|
||||
ot->u.list.num_elements);
|
||||
if (!nt->u.list.elements) {
|
||||
talloc_free(nt);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i=0;i<ot->u.list.num_elements;i++) {
|
||||
nt->u.list.elements[i] =
|
||||
ldb_parse_tree_copy_shallow(nt->u.list.elements,
|
||||
ot->u.list.elements[i]);
|
||||
if (!nt->u.list.elements[i]) {
|
||||
talloc_free(nt);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case LDB_OP_NOT:
|
||||
nt->u.isnot.child = ldb_parse_tree_copy_shallow(nt,
|
||||
ot->u.isnot.child);
|
||||
if (!nt->u.isnot.child) {
|
||||
talloc_free(nt);
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
case LDB_OP_EQUALITY:
|
||||
case LDB_OP_GREATER:
|
||||
case LDB_OP_LESS:
|
||||
case LDB_OP_APPROX:
|
||||
case LDB_OP_SUBSTRING:
|
||||
case LDB_OP_PRESENT:
|
||||
case LDB_OP_EXTENDED:
|
||||
break;
|
||||
}
|
||||
|
||||
return nt;
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ AC_DEFUN([SMB_MODULE_DEFAULT], [echo -n ""])
|
||||
AC_DEFUN([SMB_LIBRARY_ENABLE], [echo -n ""])
|
||||
AC_DEFUN([SMB_EXT_LIB], [echo -n ""])
|
||||
AC_DEFUN([SMB_ENABLE], [echo -n ""])
|
||||
AC_INIT(ldb, 0.9.6)
|
||||
AC_INIT(ldb, 0.9.7)
|
||||
AC_CONFIG_SRCDIR([common/ldb.c])
|
||||
|
||||
AC_LIBREPLACE_ALL_CHECKS
|
||||
|
@ -1835,6 +1835,12 @@ void ldb_parse_tree_attr_replace(struct ldb_parse_tree *tree,
|
||||
const char *attr,
|
||||
const char *replace);
|
||||
|
||||
/*
|
||||
shallow copy a tree - copying only the elements array so that the caller
|
||||
can safely add new elements without changing the message
|
||||
*/
|
||||
struct ldb_parse_tree *ldb_parse_tree_copy_shallow(TALLOC_CTX *mem_ctx,
|
||||
const struct ldb_parse_tree *ot);
|
||||
|
||||
/**
|
||||
Convert a time structure to a string
|
||||
|
Loading…
x
Reference in New Issue
Block a user