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);
*/
#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
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);