s4-ldif_handlers Add handler for printing supplementalCredentials
authorAndrew Bartlett <abartlet@samba.org>
Tue, 16 Nov 2010 05:32:27 +0000 (16:32 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 16 Nov 2010 05:32:27 +0000 (16:32 +1100)
source4/lib/ldb-samba/ldif_handlers.c
source4/lib/ldb-samba/ldif_handlers.h

index 14da31e9ec85eab3de08d7527a31d3bf68e02660..5581cb19319ee4a6062202a32c1d946cfd761461 100644 (file)
@@ -887,6 +887,19 @@ static int ldif_write_dnsRecord(struct ldb_context *ldb, void *mem_ctx,
                              true);
 }
 
+/*
+  convert a NDR formatted blob of a supplementalCredentials into text
+*/
+static int ldif_write_supplementalCredentialsBlob(struct ldb_context *ldb, void *mem_ctx,
+                                                 const struct ldb_val *in, struct ldb_val *out)
+{
+       return ldif_write_NDR(ldb, mem_ctx, in, out,
+                             sizeof(struct supplementalCredentialsBlob),
+                             (ndr_pull_flags_fn_t)ndr_pull_supplementalCredentialsBlob,
+                             (ndr_print_fn_t)ndr_print_supplementalCredentialsBlob,
+                             true);
+}
+
 
 static int extended_dn_write_hex(struct ldb_context *ldb, void *mem_ctx,
                                 const struct ldb_val *in, struct ldb_val *out)
@@ -1200,6 +1213,13 @@ static const struct ldb_schema_syntax samba_syntaxes[] = {
                .canonicalise_fn  = ldb_handler_copy,
                .comparison_fn    = ldb_comparison_binary,
                .operator_fn      = samba_syntax_operator_fn
+       },{
+               .name             = LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS,
+               .ldif_read_fn     = ldb_handler_copy,
+               .ldif_write_fn    = ldif_write_supplementalCredentialsBlob,
+               .canonicalise_fn  = ldb_handler_copy,
+               .comparison_fn    = ldb_comparison_binary,
+               .operator_fn      = samba_syntax_operator_fn
        }
 };
 
@@ -1313,7 +1333,10 @@ static const struct {
        { "invocationId",                       LDB_SYNTAX_SAMBA_GUID },
        { "parentGUID",                         LDB_SYNTAX_SAMBA_GUID },
        { "msDS-OptionalFeatureGUID",           LDB_SYNTAX_SAMBA_GUID },
+
+       /* These NDR encoded things we want to be able to read with --show-binary */
        { "dnsRecord",                          LDB_SYNTAX_SAMBA_DNSRECORD },
+       { "supplementalCredentials",            LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS}
 };
 
 const struct ldb_schema_syntax *ldb_samba_syntax_by_name(struct ldb_context *ldb, const char *name)
index 33373fa01db556762d608364c2ad0c123a4b4770..62903c4a964c2b617b81a445787077ab0c35aef6 100644 (file)
@@ -13,7 +13,7 @@
 #define LDB_SYNTAX_SAMBA_REPLUPTODATEVECTOR     "LDB_SYNTAX_SAMBA_REPLUPTODATEVECTOR"
 #define LDB_SYNTAX_SAMBA_RANGE64               "LDB_SYNTAX_SAMBA_RANGE64"
 #define LDB_SYNTAX_SAMBA_DNSRECORD             "LDB_SYNTAX_SAMBA_DNSRECORD"
-
+#define LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS "LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS"
 #include "lib/ldb-samba/ldif_handlers_proto.h"
 
 #undef _PRINTF_ATTRIBUTE