diff options
author | Andrew Bartlett <abartlet@samba.org> | 2017-08-11 11:31:05 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-08-29 07:23:29 +0200 |
commit | bff81a2c9cc43a2cfec822dde94944d0295dd87f (patch) | |
tree | 7e0c81859320ce5f38abf046d488984e20ef4f9c /lib/ldb | |
parent | b6e6379514ad49e798a80b8464ebfc2b77f86574 (diff) | |
download | samba-bff81a2c9cc43a2cfec822dde94944d0295dd87f.tar.gz |
ldb: Add LDB_UNPACK_DATA_FLAG_NO_ATTRS
This will allow us to avoid a full unpack in situations where we just want to confirm
if the DN exists
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'lib/ldb')
-rw-r--r-- | lib/ldb/common/ldb_pack.c | 5 | ||||
-rw-r--r-- | lib/ldb/include/ldb_module.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/ldb/common/ldb_pack.c b/lib/ldb/common/ldb_pack.c index 1f1688a6c50..448c577ae1b 100644 --- a/lib/ldb/common/ldb_pack.c +++ b/lib/ldb/common/ldb_pack.c @@ -301,6 +301,11 @@ int ldb_unpack_data_only_attr_list_flags(struct ldb_context *ldb, goto failed; } + + if (flags & LDB_UNPACK_DATA_FLAG_NO_ATTRS) { + return 0; + } + if (message->num_elements == 0) { return 0; } diff --git a/lib/ldb/include/ldb_module.h b/lib/ldb/include/ldb_module.h index 8ad212a1e08..71b407496f0 100644 --- a/lib/ldb/include/ldb_module.h +++ b/lib/ldb/include/ldb_module.h @@ -518,6 +518,10 @@ int ldb_unpack_data(struct ldb_context *ldb, * LDB_UNPACK_DATA_FLAG_NO_DATA_ALLOC is also specified. * * Likewise if LDB_UNPACK_DATA_FLAG_NO_DN is specified, the DN is omitted. + * + * If LDB_UNPACK_DATA_FLAG_NO_ATTRS is specified, then no attributes + * are unpacked or returned. + * */ int ldb_unpack_data_only_attr_list_flags(struct ldb_context *ldb, const struct ldb_val *data, @@ -530,6 +534,7 @@ int ldb_unpack_data_only_attr_list_flags(struct ldb_context *ldb, #define LDB_UNPACK_DATA_FLAG_NO_DATA_ALLOC 0x0001 #define LDB_UNPACK_DATA_FLAG_NO_DN 0x0002 #define LDB_UNPACK_DATA_FLAG_NO_VALUES_ALLOC 0x0004 +#define LDB_UNPACK_DATA_FLAG_NO_ATTRS 0x0008 /** Forces a specific ldb handle to use the global event context. |