_PUBLIC_ void ndr_print_array_uint8(struct ndr_print *ndr, const char *name, const uint8_t *data, uint32_t count) { int i; if (count <= 600 && (ndr->flags & LIBNDR_PRINT_ARRAY_HEX)) { char s[1202]; 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++) { char *idx=NULL; if (asprintf(&idx, "[%d]", i) != -1) { ndr_print_uint8(ndr, idx, data[i]); free(idx); } } ndr->depth--; }
_PUBLIC_ void ndr_print_echo_info1(struct ndr_print *ndr, const char *name, const struct echo_info1 *r) { ndr_print_struct(ndr, name, "echo_info1"); ndr->depth++; ndr_print_uint8(ndr, "v", r->v); ndr->depth--; }
_PUBLIC_ void ndr_print_echo_info7(struct ndr_print *ndr, const char *name, const struct echo_info7 *r) { ndr_print_struct(ndr, name, "echo_info7"); ndr->depth++; ndr_print_uint8(ndr, "v1", r->v1); ndr_print_STRUCT_echo_info4(ndr, "info4", &r->info4); ndr->depth--; }
_PUBLIC_ void ndr_print_echo_info6(struct ndr_print *ndr, const char *name, const struct echo_info6 *r) { ndr_print_struct(ndr, name, "echo_info6"); ndr->depth++; ndr_print_uint8(ndr, "v1", r->v1); ndr_print_echo_info1(ndr, "info1", &r->info1); ndr->depth--; }
_PUBLIC_ void ndr_print_echo_info5(struct ndr_print *ndr, const char *name, const struct echo_info5 *r) { ndr_print_struct(ndr, name, "echo_info5"); ndr->depth++; ndr_print_uint8(ndr, "v1", r->v1); ndr_print_hyper(ndr, "v2", r->v2); ndr->depth--; }
_PUBLIC_ void ndr_print_libnet_JoinCtx(struct ndr_print *ndr, const char *name, int flags, const struct libnet_JoinCtx *r) { ndr_print_struct(ndr, name, "libnet_JoinCtx"); ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "libnet_JoinCtx"); ndr->depth++; ndr_print_string(ndr, "dc_name", r->in.dc_name); ndr_print_string(ndr, "machine_name", r->in.machine_name); ndr_print_ptr(ndr, "domain_name", r->in.domain_name); ndr->depth++; ndr_print_string(ndr, "domain_name", r->in.domain_name); ndr->depth--; ndr_print_string(ndr, "account_ou", r->in.account_ou); ndr_print_string(ndr, "admin_account", r->in.admin_account); #ifdef DEBUG_PASSWORD ndr_print_string(ndr, "admin_password", r->in.admin_password); ndr_print_string(ndr, "machine_password", r->in.machine_password); #else ndr_print_ptr(ndr, "admin_password", r->in.admin_password); ndr_print_ptr(ndr, "machine_password", r->in.machine_password); #endif ndr_print_wkssvc_joinflags(ndr, "join_flags", r->in.join_flags); ndr_print_string(ndr, "os_version", r->in.os_version); ndr_print_string(ndr, "os_name", r->in.os_name); ndr_print_uint8(ndr, "create_upn", r->in.create_upn); ndr_print_string(ndr, "upn", r->in.upn); ndr_print_uint8(ndr, "modify_config", r->in.modify_config); ndr_print_ptr(ndr, "ads", r->in.ads); ndr->depth++; ndr_print_ads_struct(ndr, "ads", r->in.ads); ndr->depth--; ndr_print_uint8(ndr, "debug", r->in.debug); ndr_print_uint8(ndr, "use_kerberos", r->in.use_kerberos); ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); ndr->depth--; } if (flags & NDR_OUT) { ndr_print_struct(ndr, "out", "libnet_JoinCtx"); ndr->depth++; ndr_print_string(ndr, "account_name", r->out.account_name); ndr_print_string(ndr, "netbios_domain_name", r->out.netbios_domain_name); ndr_print_string(ndr, "dns_domain_name", r->out.dns_domain_name); ndr_print_string(ndr, "forest_name", r->out.forest_name); ndr_print_string(ndr, "dn", r->out.dn); ndr_print_ptr(ndr, "domain_sid", r->out.domain_sid); ndr->depth++; ndr_print_dom_sid(ndr, "domain_sid", r->out.domain_sid); ndr->depth--; ndr_print_uint8(ndr, "modified_config", r->out.modified_config); ndr_print_string(ndr, "error_string", r->out.error_string); ndr_print_uint8(ndr, "domain_is_ad", r->out.domain_is_ad); ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; }
_PUBLIC_ void ndr_print_security_ace_flags(struct ndr_print *ndr, const char *name, uint8_t r) { ndr_print_uint8(ndr, name, r); ndr->depth++; ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_OBJECT_INHERIT", SEC_ACE_FLAG_OBJECT_INHERIT, r); ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_CONTAINER_INHERIT", SEC_ACE_FLAG_CONTAINER_INHERIT, r); ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_NO_PROPAGATE_INHERIT", SEC_ACE_FLAG_NO_PROPAGATE_INHERIT, r); ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_INHERIT_ONLY", SEC_ACE_FLAG_INHERIT_ONLY, r); ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_INHERITED_ACE", SEC_ACE_FLAG_INHERITED_ACE, r); ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_VALID_INHERIT", SEC_ACE_FLAG_VALID_INHERIT, r); ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_SUCCESSFUL_ACCESS", SEC_ACE_FLAG_SUCCESSFUL_ACCESS, r); ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "SEC_ACE_FLAG_FAILED_ACCESS", SEC_ACE_FLAG_FAILED_ACCESS, r); ndr->depth--; }
_PUBLIC_ void ndr_print_initshutdown_InitEx(struct ndr_print *ndr, const char *name, int flags, const struct initshutdown_InitEx *r) { ndr_print_struct(ndr, name, "initshutdown_InitEx"); if (r == NULL) { ndr_print_null(ndr); return; } ndr->depth++; if (flags & NDR_SET_VALUES) { ndr->flags |= LIBNDR_PRINT_SET_VALUES; } if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "initshutdown_InitEx"); ndr->depth++; ndr_print_ptr(ndr, "hostname", r->in.hostname); ndr->depth++; if (r->in.hostname) { ndr_print_uint16(ndr, "hostname", *r->in.hostname); } ndr->depth--; ndr_print_ptr(ndr, "message", r->in.message); ndr->depth++; if (r->in.message) { ndr_print_lsa_StringLarge(ndr, "message", r->in.message); } ndr->depth--; ndr_print_uint32(ndr, "timeout", r->in.timeout); ndr_print_uint8(ndr, "force_apps", r->in.force_apps); ndr_print_uint8(ndr, "do_reboot", r->in.do_reboot); ndr_print_uint32(ndr, "reason", r->in.reason); ndr->depth--; } if (flags & NDR_OUT) { ndr_print_struct(ndr, "out", "initshutdown_InitEx"); ndr->depth++; ndr_print_WERROR(ndr, "result", r->out.result); ndr->depth--; } ndr->depth--; }
_PUBLIC_ void ndr_print_dnsp_DnssrvRpcRecord(struct ndr_print *ndr, const char *name, const struct dnsp_DnssrvRpcRecord *r) { ndr_print_struct(ndr, name, "dnsp_DnssrvRpcRecord"); if (r == NULL) { ndr_print_null(ndr); return; } ndr->depth++; ndr_print_uint16(ndr, "wDataLength", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dnsRecordData(&r->data, r->wType, ndr->flags):r->wDataLength); ndr_print_dns_record_type(ndr, "wType", r->wType); ndr_print_uint8(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?5:r->version); ndr_print_dns_record_rank(ndr, "rank", r->rank); ndr_print_uint16(ndr, "flags", r->flags); ndr_print_uint32(ndr, "dwSerial", r->dwSerial); ndr_print_uint32(ndr, "dwTtlSeconds", r->dwTtlSeconds); ndr_print_uint32(ndr, "dwReserved", r->dwReserved); ndr_print_uint32(ndr, "dwTimeStamp", r->dwTimeStamp); ndr_print_set_switch_value(ndr, &r->data, r->wType); ndr_print_dnsRecordData(ndr, "data", &r->data); ndr->depth--; }
_PUBLIC_ void ndr_print_PERF_INSTANCE_DEFINITION(struct ndr_print *ndr, const char *name, const struct PERF_INSTANCE_DEFINITION *r) { ndr_print_struct(ndr, name, "PERF_INSTANCE_DEFINITION"); if (r == NULL) { ndr_print_null(ndr); return; } ndr->depth++; ndr_print_uint32(ndr, "ByteLength", r->ByteLength); ndr_print_uint32(ndr, "ParentObjectTitleIndex", r->ParentObjectTitleIndex); ndr_print_uint32(ndr, "ParentObjectTitlePointer", r->ParentObjectTitlePointer); ndr_print_uint32(ndr, "UniqueID", r->UniqueID); ndr_print_uint32(ndr, "NameOffset", r->NameOffset); ndr_print_uint32(ndr, "NameLength", r->NameLength); ndr_print_ptr(ndr, "data", r->data); ndr->depth++; if (r->data) { ndr_print_uint8(ndr, "data", *r->data); } ndr->depth--; ndr_print_PERF_COUNTER_BLOCK(ndr, "counter_data", &r->counter_data); ndr->depth--; }
_PUBLIC_ void ndr_print_PERF_DATA_BLOCK(struct ndr_print *ndr, const char *name, const struct PERF_DATA_BLOCK *r) { uint32_t cntr_Signature_0; uint32_t cntr_objects_0; ndr_print_struct(ndr, name, "PERF_DATA_BLOCK"); if (r == NULL) { ndr_print_null(ndr); return; } ndr->depth++; ndr->print(ndr, "%s: ARRAY(%d)", "Signature", (int)4); ndr->depth++; for (cntr_Signature_0=0;cntr_Signature_0<4;cntr_Signature_0++) { ndr_print_uint16(ndr, "Signature", r->Signature[cntr_Signature_0]); } ndr->depth--; ndr_print_uint32(ndr, "LittleEndian", r->LittleEndian); ndr_print_uint32(ndr, "Version", r->Version); ndr_print_uint32(ndr, "Revision", r->Revision); ndr_print_uint32(ndr, "TotalByteLength", r->TotalByteLength); ndr_print_uint32(ndr, "HeaderLength", r->HeaderLength); ndr_print_uint32(ndr, "NumObjectTypes", r->NumObjectTypes); ndr_print_uint32(ndr, "DefaultObject", r->DefaultObject); ndr_print_SYSTEMTIME(ndr, "SystemTime", &r->SystemTime); ndr_print_uint32(ndr, "Padding", r->Padding); ndr_print_hyper(ndr, "PerfTime", r->PerfTime); ndr_print_hyper(ndr, "PerfFreq", r->PerfFreq); ndr_print_hyper(ndr, "PerfTime100nSec", r->PerfTime100nSec); ndr_print_uint32(ndr, "SystemNameLength", r->SystemNameLength); ndr_print_uint32(ndr, "SystemNameOffset", r->SystemNameOffset); ndr_print_ptr(ndr, "data", r->data); ndr->depth++; if (r->data) { ndr_print_uint8(ndr, "data", *r->data); } ndr->depth--; ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->NumObjectTypes); ndr->depth++; for (cntr_objects_0=0;cntr_objects_0<r->NumObjectTypes;cntr_objects_0++) { ndr_print_PERF_OBJECT_TYPE(ndr, "objects", &r->objects[cntr_objects_0]); } ndr->depth--; ndr->depth--; }
_PUBLIC_ void ndr_print_array_uint8(struct ndr_print *ndr, const char *name, const uint8_t *data, uint32_t count) { int i; #define _ONELINE_LIMIT 32 if (data == NULL) { ndr->print(ndr, "%s: ARRAY(%d) : NULL", name, count); return; } if (count <= _ONELINE_LIMIT && (ndr->flags & LIBNDR_PRINT_ARRAY_HEX)) { char s[(_ONELINE_LIMIT + 1) * 2]; 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); if (count > _ONELINE_LIMIT && (ndr->flags & LIBNDR_PRINT_ARRAY_HEX)) { ndr_dump_data(ndr, data, count); return; } ndr->depth++; for (i=0;i<count;i++) { char *idx=NULL; if (asprintf(&idx, "[%d]", i) != -1) { ndr_print_uint8(ndr, idx, data[i]); free(idx); } } ndr->depth--; #undef _ONELINE_LIMIT }