mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
ldb: add LDB_ATTR_FLAG_FORCE_BASE64_LDIF support
This can be used to force ldb_write_ldif() to use base64 for a specific attribute. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
6c8ab59d06
commit
f721f27da5
@ -348,13 +348,21 @@ static int ldb_ldif_write_trace(struct ldb_context *ldb,
|
||||
|
||||
for (j=0;j<msg->elements[i].num_values;j++) {
|
||||
struct ldb_val v;
|
||||
bool use_b64_encode;
|
||||
bool use_b64_encode = false;
|
||||
|
||||
ret = a->syntax->ldif_write_fn(ldb, mem_ctx, &msg->elements[i].values[j], &v);
|
||||
if (ret != LDB_SUCCESS) {
|
||||
v = msg->elements[i].values[j];
|
||||
}
|
||||
use_b64_encode = !(ldb->flags & LDB_FLG_SHOW_BINARY)
|
||||
&& ldb_should_b64_encode(ldb, &v);
|
||||
|
||||
if (ldb->flags & LDB_FLG_SHOW_BINARY) {
|
||||
use_b64_encode = false;
|
||||
} else if (a->flags & LDB_ATTR_FLAG_FORCE_BASE64_LDIF) {
|
||||
use_b64_encode = true;
|
||||
} else {
|
||||
use_b64_encode = ldb_should_b64_encode(ldb, &v);
|
||||
}
|
||||
|
||||
if (ret != LDB_SUCCESS || use_b64_encode) {
|
||||
ret = fprintf_fn(private_data, "%s:: ",
|
||||
msg->elements[i].name);
|
||||
|
@ -422,6 +422,11 @@ const struct ldb_dn_extended_syntax *ldb_dn_extended_syntax_by_name(struct ldb_c
|
||||
*/
|
||||
#define LDB_ATTR_FLAG_SINGLE_VALUE (1<<4)
|
||||
|
||||
/*
|
||||
* The values should always be base64 encoded
|
||||
*/
|
||||
#define LDB_ATTR_FLAG_FORCE_BASE64_LDIF (1<<5)
|
||||
|
||||
/**
|
||||
LDAP attribute syntax for a DN
|
||||
|
||||
|
@ -4147,6 +4147,11 @@ static PyObject* module_init(void)
|
||||
ADD_LDB_INT(FLAG_MOD_REPLACE);
|
||||
ADD_LDB_INT(FLAG_MOD_DELETE);
|
||||
|
||||
ADD_LDB_INT(ATTR_FLAG_HIDDEN);
|
||||
ADD_LDB_INT(ATTR_FLAG_UNIQUE_INDEX);
|
||||
ADD_LDB_INT(ATTR_FLAG_SINGLE_VALUE);
|
||||
ADD_LDB_INT(ATTR_FLAG_FORCE_BASE64_LDIF);
|
||||
|
||||
ADD_LDB_INT(SUCCESS);
|
||||
ADD_LDB_INT(ERR_OPERATIONS_ERROR);
|
||||
ADD_LDB_INT(ERR_PROTOCOL_ERROR);
|
||||
|
Loading…
x
Reference in New Issue
Block a user