From 20db3211ae406004425dd2e2b4294b03b4c4ecbf Mon Sep 17 00:00:00 2001 From: Kamen Mazdrashki Date: Tue, 19 Jan 2010 16:53:32 +0200 Subject: [PATCH] s4/drsblobs: Custom ndr_print_ implementation for drsuapi_MSPrefixMap_Entry Signed-off-by: Stefan Metzmacher --- librpc/ndr/ndr_drsblobs.c | 25 +++++++++++++++++++++++++ librpc/ndr/ndr_drsblobs.h | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/librpc/ndr/ndr_drsblobs.c b/librpc/ndr/ndr_drsblobs.c index aecb0c3b16b..741bf71191e 100644 --- a/librpc/ndr/ndr_drsblobs.c +++ b/librpc/ndr/ndr_drsblobs.c @@ -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; + } +} diff --git a/librpc/ndr/ndr_drsblobs.h b/librpc/ndr/ndr_drsblobs.h index 27532257de8..255bba61178 100644 --- a/librpc/ndr/ndr_drsblobs.h +++ b/librpc/ndr/ndr_drsblobs.h @@ -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); -- 2.11.4.GIT