s4-ldb: allow decoding of trustAuthIncoming and trustAuthOutgoing
authorAndrew Tridgell <tridge@samba.org>
Mon, 5 Sep 2011 06:40:19 +0000 (16:40 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 5 Sep 2011 09:19:25 +0000 (11:19 +0200)
this allows --show-binary to display trustAuthOutgoing and
trustAuthIncoming NDR blobs. Useful for debugging trust issues

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

lib/ldb-samba/ldif_handlers.c
lib/ldb-samba/ldif_handlers.h

index 6ca419b139bb60708cc659f0e1cad90deef1c7be..37e69663da67638267787de4cc2ff47fead4b4f2 100644 (file)
@@ -927,6 +927,19 @@ static int ldif_write_supplementalCredentialsBlob(struct ldb_context *ldb, void
                              true);
 }
 
+/*
+  convert a NDR formatted blob to a ldif formatted trustAuthInOutBlob
+*/
+static int ldif_write_trustAuthInOutBlob(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 trustAuthInOutBlob),
+                             (ndr_pull_flags_fn_t)ndr_pull_trustAuthInOutBlob,
+                             (ndr_print_fn_t)ndr_print_trustAuthInOutBlob,
+                             true);
+}
+
 
 static int extended_dn_write_hex(struct ldb_context *ldb, void *mem_ctx,
                                 const struct ldb_val *in, struct ldb_val *out)
@@ -1279,6 +1292,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_TRUSTAUTHINOUTBLOB,
+               .ldif_read_fn     = ldb_handler_copy,
+               .ldif_write_fn    = ldif_write_trustAuthInOutBlob,
+               .canonicalise_fn  = ldb_handler_copy,
+               .comparison_fn    = ldb_comparison_binary,
+               .operator_fn      = samba_syntax_operator_fn
        },{
                .name             = DSDB_SYNTAX_BINARY_DN,
                .ldif_read_fn     = ldb_handler_copy,
@@ -1395,6 +1415,8 @@ static const struct {
        { "repsTo",                     LDB_SYNTAX_SAMBA_REPSFROMTO },
        { "replPropertyMetaData",       LDB_SYNTAX_SAMBA_REPLPROPERTYMETADATA },
        { "replUpToDateVector",         LDB_SYNTAX_SAMBA_REPLUPTODATEVECTOR },
+       { "trustAuthIncoming",          LDB_SYNTAX_SAMBA_TRUSTAUTHINOUTBLOB },
+       { "trustAuthOutgoing",          LDB_SYNTAX_SAMBA_TRUSTAUTHINOUTBLOB },
        { "rIDAllocationPool",          LDB_SYNTAX_SAMBA_RANGE64 },
        { "rIDPreviousAllocationPool",  LDB_SYNTAX_SAMBA_RANGE64 },
        { "rIDAvailablePool",           LDB_SYNTAX_SAMBA_RANGE64 },
index 75ae7bd74ccb1ea23bcfcfa3555807cfadb5c31e..e9669abd315c6536c250d95fb434fa24673d90e1 100644 (file)
@@ -15,6 +15,7 @@
 #define LDB_SYNTAX_SAMBA_DNSRECORD             "LDB_SYNTAX_SAMBA_DNSRECORD"
 #define LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS "LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS"
 #define LDB_SYNTAX_SAMBA_SDDL_SECURITY_DESCRIPTOR "LDB_SYNTAX_SAMBA_SDDL"
+#define LDB_SYNTAX_SAMBA_TRUSTAUTHINOUTBLOB     "LDB_SYNTAX_SAMBA_TRUSTAUTHINOUTBLOB"
 #include "lib/ldb-samba/ldif_handlers_proto.h"
 
 #undef _PRINTF_ATTRIBUTE