summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/ndr')
-rw-r--r--source4/librpc/ndr/libndr.h3
-rw-r--r--source4/librpc/ndr/ndr_basic.c21
2 files changed, 13 insertions, 11 deletions
diff --git a/source4/librpc/ndr/libndr.h b/source4/librpc/ndr/libndr.h
index 8440e9c1a0..cce0b12b73 100644
--- a/source4/librpc/ndr/libndr.h
+++ b/source4/librpc/ndr/libndr.h
@@ -110,6 +110,9 @@ struct ndr_print {
#define LIBNDR_ALIGN_FLAGS (LIBNDR_FLAG_ALIGN2|LIBNDR_FLAG_ALIGN4|LIBNDR_FLAG_ALIGN8)
+#define LIBNDR_PRINT_ARRAY_HEX (1<<15)
+
+
/* useful macro for debugging */
#define NDR_PRINT_DEBUG(type, p) ndr_print_debug((ndr_print_fn_t)ndr_print_ ##type, #p, p)
#define NDR_PRINT_UNION_DEBUG(type, level, p) ndr_print_union_debug((ndr_print_union_fn_t)ndr_print_ ##type, #p, level, p)
diff --git a/source4/librpc/ndr/ndr_basic.c b/source4/librpc/ndr/ndr_basic.c
index 32cc7bac5f..0300bdd3fb 100644
--- a/source4/librpc/ndr/ndr_basic.c
+++ b/source4/librpc/ndr/ndr_basic.c
@@ -707,6 +707,16 @@ void ndr_print_array_uint8(struct ndr_print *ndr, const char *name,
{
int i;
+ if (count <= 32 && (ndr->flags & LIBNDR_PRINT_ARRAY_HEX)) {
+ char s[65];
+ for (i=0;i<count;i++) {
+ snprintf(&s[i*2], 3, "%02x", data[i]);
+ }
+ s[i*2] = 0;
+ ndr->print(ndr, "%-25s: %s", name, s);
+ return;
+ }
+
ndr->print(ndr, "%s: ARRAY(%d)", name, count);
ndr->depth++;
for (i=0;i<count;i++) {
@@ -830,14 +840,3 @@ NTSTATUS ndr_pull_DATA_BLOB(struct ndr_pull *ndr, DATA_BLOB *blob)
ndr->offset += length;
return NT_STATUS_OK;
}
-
-
-void ndr_print_policy_handle(struct ndr_print *ndr, const char *name, struct policy_handle *r)
-{
- ndr->print(ndr, "%-25s: policy_handle %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
- name,
- r->data[0], r->data[1], r->data[2], r->data[3], r->data[4],
- r->data[5], r->data[6], r->data[7], r->data[8], r->data[9],
- r->data[10], r->data[11], r->data[12], r->data[13], r->data[14],
- r->data[15], r->data[16], r->data[17], r->data[18], r->data[19]);
-}