ldb/ldb_ldif: add LDB_FLAG_FORCE_NO_BASE64_LDIF flag
authorBjörn Baumbach <bb@sernet.de>
Tue, 19 Feb 2019 11:29:58 +0000 (12:29 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 4 Jul 2019 02:07:20 +0000 (02:07 +0000)
Flag is used to enforce binary encoded attribute values per attribute.

Signed-off-by: Björn Baumbach <bb@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb/common/ldb_ldif.c
lib/ldb/include/ldb.h
lib/ldb/pyldb.c

index 92520c476f34096c83ea3e60da51f6218aefcbb9..6f7589fef68ecf2eef8896628c2e6c34368c9cf6 100644 (file)
@@ -364,6 +364,10 @@ static int ldb_ldif_write_trace(struct ldb_context *ldb,
                                copy_raw_bytes = true;
                        } else if (a->flags & LDB_ATTR_FLAG_FORCE_BASE64_LDIF) {
                                use_b64_encode = true;
+                       } else if (msg->elements[i].flags &
+                                  LDB_FLAG_FORCE_NO_BASE64_LDIF) {
+                               use_b64_encode = false;
+                               copy_raw_bytes = true;
                        } else {
                                use_b64_encode = ldb_should_b64_encode(ldb, &v);
                        }
index 75bfbe33bf6542963c7d719d659b183c7259da07..38e76c31605305fbc7708c86feb3af3aacdea9fb 100644 (file)
@@ -139,6 +139,12 @@ struct ldb_dn;
 */
 #define LDB_FLAG_MOD_DELETE  3
 
+/**
+   Flag value used in ldb_ldif_write_trace() to enforce binary encoded
+   attribute values per attribute.
+*/
+#define LDB_FLAG_FORCE_NO_BASE64_LDIF 4
+
 /**
     flag bits on an element usable only by the internal implementation
 */
index 85bcd84bc14e9d4ad7a2651d51040e96c5275cc6..0858dddad40e6068ad81b399a65c53a47154cc98 100644 (file)
@@ -4353,6 +4353,7 @@ static PyObject* module_init(void)
        ADD_LDB_INT(FLAG_MOD_ADD);
        ADD_LDB_INT(FLAG_MOD_REPLACE);
        ADD_LDB_INT(FLAG_MOD_DELETE);
+       ADD_LDB_INT(FLAG_FORCE_NO_BASE64_LDIF);
 
        ADD_LDB_INT(ATTR_FLAG_HIDDEN);
        ADD_LDB_INT(ATTR_FLAG_UNIQUE_INDEX);