s4/drsblobs: Custom ndr_print_ implementation for drsuapi_MSPrefixMap_Entry
authorKamen Mazdrashki <kamen.mazdrashki@postpath.com>
Tue, 19 Jan 2010 14:53:32 +0000 (16:53 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 1 Feb 2010 14:23:30 +0000 (15:23 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
librpc/ndr/ndr_drsblobs.c
librpc/ndr/ndr_drsblobs.h

index aecb0c3b16bb2b5fba19e257e83de175be031590..741bf71191ed132e4a64379981dc4fbb726f53ea 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "includes.h"
 #include "librpc/gen_ndr/ndr_drsblobs.h"
+#include "../lib/util/asn1.h"
 
 /* parser auto-generated by pidl, then hand-modified by abartlet */
 
@@ -211,3 +212,27 @@ _PUBLIC_ enum ndr_err_code ndr_pull_trustDomainPasswords(struct ndr_pull *ndr, i
        return NDR_ERR_SUCCESS;
 }
 
+_PUBLIC_ void ndr_print_drsuapi_MSPrefixMap_Entry(struct ndr_print *ndr, const char *name, const struct drsuapi_MSPrefixMap_Entry *r)
+{
+       ndr_print_struct(ndr, name, "drsuapi_MSPrefixMap_Entry");
+       {
+               uint32_t _flags_save_STRUCT = ndr->flags;
+               ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
+               ndr->depth++;
+               ndr_print_uint16(ndr, "entryID", r->entryID);
+               ndr->print(ndr, "%-25s: length=%u", "oid", r->length);
+               if (r->binary_oid) {
+                       char *partial_oid = NULL;
+                       DATA_BLOB oid_blob = data_blob_const(r->binary_oid, r->length);
+                       char *hex_str = data_blob_hex_string_upper(ndr, &oid_blob);
+                       ber_read_partial_OID_String(ndr, oid_blob, (const char **)&partial_oid);
+                       ndr->depth++;
+                       ndr->print(ndr, "%-25s: 0x%s (%s)", "binary_oid", hex_str, partial_oid);
+                       ndr->depth--;
+                       talloc_free(hex_str);
+                       talloc_free(partial_oid);
+               }
+               ndr->depth--;
+               ndr->flags = _flags_save_STRUCT;
+       }
+}
index 27532257de8d56656d2c13ea58a8e9b2461f2535..255bba61178c009bcdf0174d67066586bbc14d96 100644 (file)
@@ -24,4 +24,4 @@ _PUBLIC_ enum ndr_err_code ndr_push_trustAuthInOutBlob(struct ndr_push *ndr, int
 _PUBLIC_ enum ndr_err_code ndr_pull_trustAuthInOutBlob(struct ndr_pull *ndr, int ndr_flags, struct trustAuthInOutBlob *r);
 _PUBLIC_ void ndr_print_trustAuthInOutBlob(struct ndr_print *ndr, const char *name, const struct trustAuthInOutBlob *r);
 _PUBLIC_ enum ndr_err_code ndr_pull_trustDomainPasswords(struct ndr_pull *ndr, int ndr_flags, struct trustDomainPasswords *r);
-
+_PUBLIC_ void ndr_print_drsuapi_MSPrefixMap_Entry(struct ndr_print *ndr, const char *name, const struct drsuapi_MSPrefixMap_Entry *r);