diff options
Diffstat (limited to 'source/librpc/gen_ndr/ndr_netlogon.c')
-rw-r--r-- | source/librpc/gen_ndr/ndr_netlogon.c | 13129 |
1 files changed, 0 insertions, 13129 deletions
diff --git a/source/librpc/gen_ndr/ndr_netlogon.c b/source/librpc/gen_ndr/ndr_netlogon.c deleted file mode 100644 index 0e0fa196e81..00000000000 --- a/source/librpc/gen_ndr/ndr_netlogon.c +++ /dev/null @@ -1,13129 +0,0 @@ -/* parser auto-generated by pidl */ - -#include "includes.h" -#include "librpc/gen_ndr/ndr_netlogon.h" - -#include "librpc/gen_ndr/ndr_lsa.h" -#include "librpc/gen_ndr/ndr_samr.h" -#include "librpc/gen_ndr/ndr_security.h" -NTSTATUS ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count)); - NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon)); - NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff)); - NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time)); - NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age)); - NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change)); - NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->account_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->computer) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->domain) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->script_path) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r) -{ - uint32_t _ptr_account_name; - TALLOC_CTX *_mem_save_account_name_0; - uint32_t _ptr_computer; - TALLOC_CTX *_mem_save_computer_0; - uint32_t _ptr_domain; - TALLOC_CTX *_mem_save_domain_0; - uint32_t _ptr_script_path; - TALLOC_CTX *_mem_save_script_path_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name)); - if (_ptr_account_name) { - NDR_PULL_ALLOC(ndr, r->account_name); - } else { - r->account_name = NULL; - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count)); - NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon)); - NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff)); - NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time)); - NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age)); - NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change)); - NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer)); - if (_ptr_computer) { - NDR_PULL_ALLOC(ndr, r->computer); - } else { - r->computer = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); - if (_ptr_domain) { - NDR_PULL_ALLOC(ndr, r->domain); - } else { - r->domain = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path)); - if (_ptr_script_path) { - NDR_PULL_ALLOC(ndr, r->script_path); - } else { - r->script_path = NULL; - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->account_name) { - _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name)); - if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0); - } - if (r->computer) { - _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->computer)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->computer)); - if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0); - } - if (r->domain) { - _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); - if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); - } - if (r->script_path) { - _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path)); - if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r) -{ - ndr_print_struct(ndr, name, "netr_UasInfo"); - ndr->depth++; - ndr_print_ptr(ndr, "account_name", r->account_name); - ndr->depth++; - if (r->account_name) { - ndr_print_string(ndr, "account_name", r->account_name); - } - ndr->depth--; - ndr_print_uint32(ndr, "priv", r->priv); - ndr_print_uint32(ndr, "auth_flags", r->auth_flags); - ndr_print_uint32(ndr, "logon_count", r->logon_count); - ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count); - ndr_print_time_t(ndr, "last_logon", r->last_logon); - ndr_print_time_t(ndr, "last_logoff", r->last_logoff); - ndr_print_time_t(ndr, "logoff_time", r->logoff_time); - ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time); - ndr_print_uint32(ndr, "password_age", r->password_age); - ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change); - ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change); - ndr_print_ptr(ndr, "computer", r->computer); - ndr->depth++; - if (r->computer) { - ndr_print_string(ndr, "computer", r->computer); - } - ndr->depth--; - ndr_print_ptr(ndr, "domain", r->domain); - ndr->depth++; - if (r->domain) { - ndr_print_string(ndr, "domain", r->domain); - } - ndr->depth--; - ndr_print_ptr(ndr, "script_path", r->script_path); - ndr->depth++; - if (r->script_path) { - ndr_print_string(ndr, "script_path", r->script_path); - } - ndr->depth--; - ndr_print_uint32(ndr, "unknown", r->unknown); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r) -{ - ndr_print_struct(ndr, name, "netr_UasLogoffInfo"); - ndr->depth++; - ndr_print_uint32(ndr, "duration", r->duration); - ndr_print_uint16(ndr, "logon_count", r->logon_count); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r) -{ - uint32_t cntr_bindata_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->bindata)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->bindata) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2)); - for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) { - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bindata[cntr_bindata_1])); - } - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r) -{ - uint32_t _ptr_bindata; - uint32_t cntr_bindata_1; - TALLOC_CTX *_mem_save_bindata_0; - TALLOC_CTX *_mem_save_bindata_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bindata)); - if (_ptr_bindata) { - NDR_PULL_ALLOC(ndr, r->bindata); - } else { - r->bindata = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->bindata) { - _mem_save_bindata_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->bindata)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->bindata)); - if (ndr_get_array_length(ndr, &r->bindata) > ndr_get_array_size(ndr, &r->bindata)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->bindata), ndr_get_array_length(ndr, &r->bindata)); - } - NDR_PULL_ALLOC_N(ndr, r->bindata, ndr_get_array_size(ndr, &r->bindata)); - _mem_save_bindata_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0); - for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) { - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bindata[cntr_bindata_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_0, 0); - } - if (r->bindata) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->bindata, r->size / 2)); - } - if (r->bindata) { - NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->bindata, r->length / 2)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r) -{ - uint32_t cntr_bindata_1; - ndr_print_struct(ndr, name, "netr_AcctLockStr"); - ndr->depth++; - ndr_print_uint16(ndr, "size", r->size); - ndr_print_uint16(ndr, "length", r->length); - ndr_print_ptr(ndr, "bindata", r->bindata); - ndr->depth++; - if (r->bindata) { - ndr->print(ndr, "%s: ARRAY(%d)", "bindata", r->length / 2); - ndr->depth++; - for (cntr_bindata_1=0;cntr_bindata_1<r->length / 2;cntr_bindata_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_bindata_1); - if (idx_1) { - ndr_print_uint16(ndr, "bindata", r->bindata[cntr_bindata_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parameter_control)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parameter_control)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r) -{ - ndr_print_struct(ndr, name, "netr_IdentityInfo"); - ndr->depth++; - ndr_print_lsa_String(ndr, "domain_name", &r->domain_name); - ndr_print_uint32(ndr, "parameter_control", r->parameter_control); - ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low); - ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high); - ndr_print_lsa_String(ndr, "account_name", &r->account_name); - ndr_print_lsa_String(ndr, "workstation", &r->workstation); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r) -{ - ndr_print_struct(ndr, name, "netr_PasswordInfo"); - ndr->depth++; - ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info); - ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword); - ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->data)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->data) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length)); - } - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r) -{ - uint32_t _ptr_data; - TALLOC_CTX *_mem_save_data_0; - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data)); - if (_ptr_data) { - NDR_PULL_ALLOC(ndr, r->data); - } else { - r->data = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->data) { - _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->data)); - if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data)); - } - NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); - } - if (r->data) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length)); - } - if (r->data) { - NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length)); - } - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r) -{ - ndr_print_struct(ndr, name, "netr_ChallengeResponse"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_uint16(ndr, "length", r->length); - ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size); - ndr_print_ptr(ndr, "data", r->data); - ndr->depth++; - if (r->data) { - ndr_print_array_uint8(ndr, "data", r->data, r->length); - } - ndr->depth--; - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -NTSTATUS ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8)); - NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt)); - NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info)); - NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt)); - NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm)); - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8)); - NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt)); - NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info)); - NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt)); - NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm)); - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r) -{ - ndr_print_struct(ndr, name, "netr_NetworkInfo"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info); - ndr_print_array_uint8(ndr, "challenge", r->challenge, 8); - ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt); - ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm); - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -_PUBLIC_ NTSTATUS ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level)); - switch (level) { - case 1: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->password)); - break; - - case 2: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->network)); - break; - - case 3: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->password)); - break; - - case 5: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->password)); - break; - - case 6: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->network)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 1: - if (r->password) { - NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password)); - } - break; - - case 2: - if (r->network) { - NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network)); - } - break; - - case 3: - if (r->password) { - NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password)); - } - break; - - case 5: - if (r->password) { - NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password)); - } - break; - - case 6: - if (r->network) { - NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network)); - } - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r) -{ - int level; - uint16_t _level; - TALLOC_CTX *_mem_save_password_0; - TALLOC_CTX *_mem_save_network_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 1: { - uint32_t _ptr_password; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); - if (_ptr_password) { - NDR_PULL_ALLOC(ndr, r->password); - } else { - r->password = NULL; - } - break; } - - case 2: { - uint32_t _ptr_network; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network)); - if (_ptr_network) { - NDR_PULL_ALLOC(ndr, r->network); - } else { - r->network = NULL; - } - break; } - - case 3: { - uint32_t _ptr_password; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); - if (_ptr_password) { - NDR_PULL_ALLOC(ndr, r->password); - } else { - r->password = NULL; - } - break; } - - case 5: { - uint32_t _ptr_password; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); - if (_ptr_password) { - NDR_PULL_ALLOC(ndr, r->password); - } else { - r->password = NULL; - } - break; } - - case 6: { - uint32_t _ptr_network; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network)); - if (_ptr_network) { - NDR_PULL_ALLOC(ndr, r->network); - } else { - r->network = NULL; - } - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case 1: - if (r->password) { - _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); - NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); - } - break; - - case 2: - if (r->network) { - _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->network, 0); - NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0); - } - break; - - case 3: - if (r->password) { - _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); - NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); - } - break; - - case 5: - if (r->password) { - _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); - NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); - } - break; - - case 6: - if (r->network) { - _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->network, 0); - NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0); - } - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_LogonLevel"); - switch (level) { - case 1: - ndr_print_ptr(ndr, "password", r->password); - ndr->depth++; - if (r->password) { - ndr_print_netr_PasswordInfo(ndr, "password", r->password); - } - ndr->depth--; - break; - - case 2: - ndr_print_ptr(ndr, "network", r->network); - ndr->depth++; - if (r->network) { - ndr_print_netr_NetworkInfo(ndr, "network", r->network); - } - ndr->depth--; - break; - - case 3: - ndr_print_ptr(ndr, "password", r->password); - ndr->depth++; - if (r->password) { - ndr_print_netr_PasswordInfo(ndr, "password", r->password); - } - ndr->depth--; - break; - - case 5: - ndr_print_ptr(ndr, "password", r->password); - ndr->depth++; - if (r->password) { - ndr_print_netr_PasswordInfo(ndr, "password", r->password); - } - ndr->depth--; - break; - - case 6: - ndr_print_ptr(ndr, "network", r->network); - ndr->depth++; - if (r->network) { - ndr_print_netr_NetworkInfo(ndr, "network", r->network); - } - ndr->depth--; - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -_PUBLIC_ NTSTATUS ndr_push_netr_GroupMembership(struct ndr_push *ndr, int ndr_flags, const struct netr_GroupMembership *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_GroupMembership(struct ndr_pull *ndr, int ndr_flags, struct netr_GroupMembership *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_GroupMembership(struct ndr_print *ndr, const char *name, const struct netr_GroupMembership *r) -{ - ndr_print_struct(ndr, name, "netr_GroupMembership"); - ndr->depth++; - ndr_print_uint32(ndr, "rid", r->rid); - ndr_print_uint32(ndr, "attributes", r->attributes); - ndr->depth--; -} - -_PUBLIC_ NTSTATUS ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 1)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 1)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r) -{ - ndr_print_struct(ndr, name, "netr_UserSessionKey"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_array_uint8(ndr, "key", r->key, 16); - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -_PUBLIC_ NTSTATUS ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 1)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 1)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r) -{ - ndr_print_struct(ndr, name, "netr_LMSessionKey"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_array_uint8(ndr, "key", r->key, 8); - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -_PUBLIC_ NTSTATUS ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r) -{ - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) -{ - uint32_t v; - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); - *r = v; - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r) -{ - ndr_print_uint32(ndr, name, r); - ndr->depth++; - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r) -{ - uint32_t cntr_unknown_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid)); - NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups)); - NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags)); - NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key)); - NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server)); - NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid)); - NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey)); - NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags)); - for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive)); - NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups)); - NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server)); - NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain)); - if (r->domain_sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid)); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r) -{ - uint32_t _ptr_domain_sid; - TALLOC_CTX *_mem_save_domain_sid_0; - uint32_t cntr_unknown_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid)); - NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups)); - NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags)); - NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key)); - NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server)); - NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid)); - if (_ptr_domain_sid) { - NDR_PULL_ALLOC(ndr, r->domain_sid); - } else { - r->domain_sid = NULL; - } - NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey)); - NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags)); - for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive)); - NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups)); - NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server)); - NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain)); - if (r->domain_sid) { - _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r) -{ - uint32_t cntr_unknown_0; - ndr_print_struct(ndr, name, "netr_SamBaseInfo"); - ndr->depth++; - ndr_print_NTTIME(ndr, "last_logon", r->last_logon); - ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff); - ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry); - ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change); - ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change); - ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change); - ndr_print_lsa_String(ndr, "account_name", &r->account_name); - ndr_print_lsa_String(ndr, "full_name", &r->full_name); - ndr_print_lsa_String(ndr, "logon_script", &r->logon_script); - ndr_print_lsa_String(ndr, "profile_path", &r->profile_path); - ndr_print_lsa_String(ndr, "home_directory", &r->home_directory); - ndr_print_lsa_String(ndr, "home_drive", &r->home_drive); - ndr_print_uint16(ndr, "logon_count", r->logon_count); - ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count); - ndr_print_uint32(ndr, "rid", r->rid); - ndr_print_uint32(ndr, "primary_gid", r->primary_gid); - ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups); - ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags); - ndr_print_netr_UserSessionKey(ndr, "key", &r->key); - ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server); - ndr_print_lsa_StringLarge(ndr, "domain", &r->domain); - ndr_print_ptr(ndr, "domain_sid", r->domain_sid); - ndr->depth++; - if (r->domain_sid) { - ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid); - } - ndr->depth--; - ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey); - ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags); - ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 7); - ndr->depth++; - for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) { - char *idx_0=NULL; - asprintf(&idx_0, "[%d]", cntr_unknown_0); - if (idx_0) { - ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r) -{ - ndr_print_struct(ndr, name, "netr_SamInfo2"); - ndr->depth++; - ndr_print_netr_SamBaseInfo(ndr, "base", &r->base); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribute)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r) -{ - uint32_t _ptr_sid; - TALLOC_CTX *_mem_save_sid_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribute)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r) -{ - ndr_print_struct(ndr, name, "netr_SidAttr"); - ndr->depth++; - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - ndr_print_uint32(ndr, "attribute", r->attribute); - ndr->depth--; -} - -_PUBLIC_ NTSTATUS ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r) -{ - uint32_t cntr_sids_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base)); - if (r->sids) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount)); - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); - } - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); - } - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r) -{ - uint32_t _ptr_sids; - uint32_t cntr_sids_1; - TALLOC_CTX *_mem_save_sids_0; - TALLOC_CTX *_mem_save_sids_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids)); - if (_ptr_sids) { - NDR_PULL_ALLOC(ndr, r->sids); - } else { - r->sids = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base)); - if (r->sids) { - _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); - NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); - _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); - } - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0); - } - if (r->sids) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r) -{ - uint32_t cntr_sids_1; - ndr_print_struct(ndr, name, "netr_SamInfo3"); - ndr->depth++; - ndr_print_netr_SamBaseInfo(ndr, "base", &r->base); - ndr_print_uint32(ndr, "sidcount", r->sidcount); - ndr_print_ptr(ndr, "sids", r->sids); - ndr->depth++; - if (r->sids) { - ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount); - ndr->depth++; - for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_sids_1); - if (idx_1) { - ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r) -{ - uint32_t cntr_sids_1; - uint32_t cntr_unknown4_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle)); - for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base)); - if (r->sids) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount)); - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); - } - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); - } - } - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r) -{ - uint32_t _ptr_sids; - uint32_t cntr_sids_1; - TALLOC_CTX *_mem_save_sids_0; - TALLOC_CTX *_mem_save_sids_1; - uint32_t cntr_unknown4_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids)); - if (_ptr_sids) { - NDR_PULL_ALLOC(ndr, r->sids); - } else { - r->sids = NULL; - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle)); - for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base)); - if (r->sids) { - _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); - NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); - _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); - } - for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { - NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0); - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle)); - if (r->sids) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r) -{ - uint32_t cntr_sids_1; - uint32_t cntr_unknown4_0; - ndr_print_struct(ndr, name, "netr_SamInfo6"); - ndr->depth++; - ndr_print_netr_SamBaseInfo(ndr, "base", &r->base); - ndr_print_uint32(ndr, "sidcount", r->sidcount); - ndr_print_ptr(ndr, "sids", r->sids); - ndr->depth++; - if (r->sids) { - ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount); - ndr->depth++; - for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_sids_1); - if (idx_1) { - ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr_print_lsa_String(ndr, "forest", &r->forest); - ndr_print_lsa_String(ndr, "principle", &r->principle); - ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", 20); - ndr->depth++; - for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) { - char *idx_0=NULL; - asprintf(&idx_0, "[%d]", cntr_unknown4_0); - if (idx_0) { - ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r) -{ - uint32_t cntr_expansionroom_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth)); - NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key)); - for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0])); - } - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->pac) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size)); - } - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name)); - if (r->auth) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size)); - } - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r) -{ - uint32_t _ptr_pac; - TALLOC_CTX *_mem_save_pac_0; - uint32_t _ptr_auth; - TALLOC_CTX *_mem_save_auth_0; - uint32_t cntr_expansionroom_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac)); - if (_ptr_pac) { - NDR_PULL_ALLOC(ndr, r->pac); - } else { - r->pac = NULL; - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth)); - if (_ptr_auth) { - NDR_PULL_ALLOC(ndr, r->auth); - } else { - r->auth = NULL; - } - NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key)); - for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0])); - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->pac) { - _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->pac)); - NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0); - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name)); - if (r->auth) { - _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->auth)); - NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0); - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - if (r->pac) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size)); - } - if (r->auth) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r) -{ - uint32_t cntr_expansionroom_0; - ndr_print_struct(ndr, name, "netr_PacInfo"); - ndr->depth++; - ndr_print_uint32(ndr, "pac_size", r->pac_size); - ndr_print_ptr(ndr, "pac", r->pac); - ndr->depth++; - if (r->pac) { - ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size); - } - ndr->depth--; - ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain); - ndr_print_lsa_String(ndr, "logon_server", &r->logon_server); - ndr_print_lsa_String(ndr, "principal_name", &r->principal_name); - ndr_print_uint32(ndr, "auth_size", r->auth_size); - ndr_print_ptr(ndr, "auth", r->auth); - ndr->depth++; - if (r->auth) { - ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size); - } - ndr->depth--; - ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key); - ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", 10); - ndr->depth++; - for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) { - char *idx_0=NULL; - asprintf(&idx_0, "[%d]", cntr_expansionroom_0); - if (idx_0) { - ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]); - free(idx_0); - } - } - ndr->depth--; - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr->depth--; -} - -_PUBLIC_ NTSTATUS ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level)); - switch (level) { - case 2: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2)); - break; - - case 3: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3)); - break; - - case 4: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac)); - break; - - case 5: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac)); - break; - - case 6: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 2: - if (r->sam2) { - NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2)); - } - break; - - case 3: - if (r->sam3) { - NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3)); - } - break; - - case 4: - if (r->pac) { - NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac)); - } - break; - - case 5: - if (r->pac) { - NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac)); - } - break; - - case 6: - if (r->sam6) { - NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6)); - } - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r) -{ - int level; - uint16_t _level; - TALLOC_CTX *_mem_save_sam2_0; - TALLOC_CTX *_mem_save_sam3_0; - TALLOC_CTX *_mem_save_pac_0; - TALLOC_CTX *_mem_save_sam6_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 2: { - uint32_t _ptr_sam2; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2)); - if (_ptr_sam2) { - NDR_PULL_ALLOC(ndr, r->sam2); - } else { - r->sam2 = NULL; - } - break; } - - case 3: { - uint32_t _ptr_sam3; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3)); - if (_ptr_sam3) { - NDR_PULL_ALLOC(ndr, r->sam3); - } else { - r->sam3 = NULL; - } - break; } - - case 4: { - uint32_t _ptr_pac; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac)); - if (_ptr_pac) { - NDR_PULL_ALLOC(ndr, r->pac); - } else { - r->pac = NULL; - } - break; } - - case 5: { - uint32_t _ptr_pac; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac)); - if (_ptr_pac) { - NDR_PULL_ALLOC(ndr, r->pac); - } else { - r->pac = NULL; - } - break; } - - case 6: { - uint32_t _ptr_sam6; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6)); - if (_ptr_sam6) { - NDR_PULL_ALLOC(ndr, r->sam6); - } else { - r->sam6 = NULL; - } - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case 2: - if (r->sam2) { - _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0); - NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0); - } - break; - - case 3: - if (r->sam3) { - _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0); - NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0); - } - break; - - case 4: - if (r->pac) { - _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0); - NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0); - } - break; - - case 5: - if (r->pac) { - _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0); - NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0); - } - break; - - case 6: - if (r->sam6) { - _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0); - NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0); - } - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_Validation"); - switch (level) { - case 2: - ndr_print_ptr(ndr, "sam2", r->sam2); - ndr->depth++; - if (r->sam2) { - ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2); - } - ndr->depth--; - break; - - case 3: - ndr_print_ptr(ndr, "sam3", r->sam3); - ndr->depth++; - if (r->sam3) { - ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3); - } - ndr->depth--; - break; - - case 4: - ndr_print_ptr(ndr, "pac", r->pac); - ndr->depth++; - if (r->pac) { - ndr_print_netr_PacInfo(ndr, "pac", r->pac); - } - ndr->depth--; - break; - - case 5: - ndr_print_ptr(ndr, "pac", r->pac); - ndr->depth++; - if (r->pac) { - ndr_print_netr_PacInfo(ndr, "pac", r->pac); - } - ndr->depth--; - break; - - case 6: - ndr_print_ptr(ndr, "sam6", r->sam6); - ndr->depth++; - if (r->sam6) { - ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6); - } - ndr->depth--; - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -_PUBLIC_ NTSTATUS ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 1)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 1)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r) -{ - ndr_print_struct(ndr, name, "netr_Credential"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_array_uint8(ndr, "data", r->data, 8); - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -_PUBLIC_ NTSTATUS ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred)); - NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred)); - NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r) -{ - ndr_print_struct(ndr, name, "netr_Authenticator"); - ndr->depth++; - ndr_print_netr_Credential(ndr, "cred", &r->cred); - ndr_print_time_t(ndr, "timestamp", r->timestamp); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->account_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r) -{ - uint32_t _ptr_account_name; - TALLOC_CTX *_mem_save_account_name_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name)); - if (_ptr_account_name) { - NDR_PULL_ALLOC(ndr, r->account_name); - } else { - r->account_name = NULL; - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->account_name) { - _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name)); - if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0); - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER"); - ndr->depth++; - ndr_print_ptr(ndr, "account_name", r->account_name); - ndr->depth++; - if (r->account_name) { - ndr_print_string(ndr, "account_name", r->account_name); - } - ndr->depth--; - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r) -{ - ndr_print_struct(ndr, name, "netr_USER_KEY16"); - ndr->depth++; - ndr_print_uint16(ndr, "length", r->length); - ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size); - ndr_print_uint32(ndr, "flags", r->flags); - ndr_print_samr_Password(ndr, "pwd", &r->pwd); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_size)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_size)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags)); - NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length)); - NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r) -{ - ndr_print_struct(ndr, name, "netr_PasswordHistory"); - ndr->depth++; - ndr_print_uint16(ndr, "nt_length", r->nt_length); - ndr_print_uint16(ndr, "nt_size", r->nt_size); - ndr_print_uint32(ndr, "nt_flags", r->nt_flags); - ndr_print_uint16(ndr, "lm_length", r->lm_length); - ndr_print_uint16(ndr, "lm_size", r->lm_size); - ndr_print_uint32(ndr, "lm_flags", r->lm_flags); - ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length); - ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword)); - NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword)); - NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->lmhistory)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword)); - NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword)); - NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword)); - NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->lmhistory)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword)); - NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r) -{ - ndr_print_struct(ndr, name, "netr_USER_KEYS2"); - ndr->depth++; - ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword); - ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword); - ndr_print_netr_PasswordHistory(ndr, "lmhistory", &r->lmhistory); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r) -{ - ndr_print_struct(ndr, name, "netr_USER_KEY_UNION"); - ndr->depth++; - ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2); - ndr->depth--; -} - -_PUBLIC_ NTSTATUS ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version)); - NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ NTSTATUS ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version)); - NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r) -{ - ndr_print_struct(ndr, name, "netr_USER_KEYS"); - ndr->depth++; - ndr_print_uint32(ndr, "version", r->version); - ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength)); - { - uint32_t _flags_save_uint8 = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData)); - ndr->flags = _flags_save_uint8; - } - } - if (ndr_flags & NDR_BUFFERS) { - { - uint32_t _flags_save_uint8 = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (r->SensitiveData) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength)); - } - ndr->flags = _flags_save_uint8; - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r) -{ - uint32_t _ptr_SensitiveData; - TALLOC_CTX *_mem_save_SensitiveData_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength)); - { - uint32_t _flags_save_uint8 = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData)); - if (_ptr_SensitiveData) { - NDR_PULL_ALLOC(ndr, r->SensitiveData); - } else { - r->SensitiveData = NULL; - } - ndr->flags = _flags_save_uint8; - } - } - if (ndr_flags & NDR_BUFFERS) { - { - uint32_t _flags_save_uint8 = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (r->SensitiveData) { - _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData)); - NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0); - } - ndr->flags = _flags_save_uint8; - } - if (r->SensitiveData) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r) -{ - ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO"); - ndr->depth++; - ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag); - ndr_print_uint32(ndr, "DataLength", r->DataLength); - ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData); - ndr->depth++; - if (r->SensitiveData) { - ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength); - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff)); - NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry)); - NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword)); - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present)); - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present)); - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page)); - NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations)); - NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters)); - NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff)); - NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry)); - NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword)); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present)); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present)); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page)); - NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations)); - NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters)); - NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_USER"); - ndr->depth++; - ndr_print_lsa_String(ndr, "account_name", &r->account_name); - ndr_print_lsa_String(ndr, "full_name", &r->full_name); - ndr_print_uint32(ndr, "rid", r->rid); - ndr_print_uint32(ndr, "primary_gid", r->primary_gid); - ndr_print_lsa_String(ndr, "home_directory", &r->home_directory); - ndr_print_lsa_String(ndr, "home_drive", &r->home_drive); - ndr_print_lsa_String(ndr, "logon_script", &r->logon_script); - ndr_print_lsa_String(ndr, "description", &r->description); - ndr_print_lsa_String(ndr, "workstations", &r->workstations); - ndr_print_NTTIME(ndr, "last_logon", r->last_logon); - ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff); - ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours); - ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count); - ndr_print_uint16(ndr, "logon_count", r->logon_count); - ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change); - ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry); - ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags); - ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword); - ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword); - ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present); - ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present); - ndr_print_uint8(ndr, "password_expired", r->password_expired); - ndr_print_lsa_String(ndr, "comment", &r->comment); - ndr_print_lsa_String(ndr, "parameters", &r->parameters); - ndr_print_uint16(ndr, "country_code", r->country_code); - ndr_print_uint16(ndr, "code_page", r->code_page); - ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info); - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_lsa_String(ndr, "profile_path", &r->profile_path); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment)); - NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length)); - NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age)); - NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age)); - NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment)); - NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length)); - NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age)); - NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age)); - NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN"); - ndr->depth++; - ndr_print_lsa_String(ndr, "domain_name", &r->domain_name); - ndr_print_lsa_String(ndr, "comment", &r->comment); - ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time); - ndr_print_uint16(ndr, "min_password_length", r->min_password_length); - ndr_print_uint16(ndr, "password_history_length", r->password_history_length); - ndr_print_dlong(ndr, "max_password_age", r->max_password_age); - ndr_print_dlong(ndr, "min_password_age", r->min_password_age); - ndr_print_udlong(ndr, "sequence_num", r->sequence_num); - ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time); - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_netr_AcctLockStr(ndr, "account_lockout", &r->account_lockout); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_GROUP"); - ndr->depth++; - ndr_print_lsa_String(ndr, "group_name", &r->group_name); - ndr_print_uint32(ndr, "rid", r->rid); - ndr_print_uint32(ndr, "attributes", r->attributes); - ndr_print_lsa_String(ndr, "description", &r->description); - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_RENAME"); - ndr->depth++; - ndr_print_lsa_String(ndr, "OldName", &r->OldName); - ndr_print_lsa_String(ndr, "NewName", &r->NewName); - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r) -{ - uint32_t cntr_rids_1; - uint32_t cntr_attribs_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->rids) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids)); - for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1])); - } - } - if (r->attribs) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids)); - for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1])); - } - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r) -{ - uint32_t _ptr_rids; - uint32_t cntr_rids_1; - TALLOC_CTX *_mem_save_rids_0; - TALLOC_CTX *_mem_save_rids_1; - uint32_t _ptr_attribs; - uint32_t cntr_attribs_1; - TALLOC_CTX *_mem_save_attribs_0; - TALLOC_CTX *_mem_save_attribs_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids)); - if (_ptr_rids) { - NDR_PULL_ALLOC(ndr, r->rids); - } else { - r->rids = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs)); - if (_ptr_attribs) { - NDR_PULL_ALLOC(ndr, r->attribs); - } else { - r->attribs = NULL; - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->rids) { - _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->rids)); - NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids)); - _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); - for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0); - } - if (r->attribs) { - _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs)); - NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs)); - _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0); - for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0); - } - if (r->rids) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids)); - } - if (r->attribs) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r) -{ - uint32_t cntr_rids_1; - uint32_t cntr_attribs_1; - ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER"); - ndr->depth++; - ndr_print_ptr(ndr, "rids", r->rids); - ndr->depth++; - if (r->rids) { - ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids); - ndr->depth++; - for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_rids_1); - if (idx_1) { - ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr_print_ptr(ndr, "attribs", r->attribs); - ndr->depth++; - if (r->attribs) { - ndr->print(ndr, "%s: ARRAY(%d)", "attribs", r->num_rids); - ndr->depth++; - for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_attribs_1); - if (idx_1) { - ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr_print_uint32(ndr, "num_rids", r->num_rids); - ndr_print_uint32(ndr, "unknown1", r->unknown1); - ndr_print_uint32(ndr, "unknown2", r->unknown2); - ndr_print_uint32(ndr, "unknown3", r->unknown3); - ndr_print_uint32(ndr, "unknown4", r->unknown4); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_ALIAS"); - ndr->depth++; - ndr_print_lsa_String(ndr, "alias_name", &r->alias_name); - ndr_print_uint32(ndr, "rid", r->rid); - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_lsa_String(ndr, "description", &r->description); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER"); - ndr->depth++; - ndr_print_lsa_SidArray(ndr, "sids", &r->sids); - ndr_print_uint32(ndr, "unknown1", r->unknown1); - ndr_print_uint32(ndr, "unknown2", r->unknown2); - ndr_print_uint32(ndr, "unknown3", r->unknown3); - ndr_print_uint32(ndr, "unknown4", r->unknown4); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r) -{ - ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS"); - ndr->depth++; - ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit); - ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit); - ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize); - ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize); - ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit); - ndr_print_NTTIME(ndr, "timelimit", r->timelimit); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r) -{ - uint32_t cntr_eventauditoptions_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod)); - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits)); - NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->eventauditoptions) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1)); - for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1])); - } - } - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name)); - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r) -{ - uint32_t _ptr_eventauditoptions; - uint32_t cntr_eventauditoptions_1; - TALLOC_CTX *_mem_save_eventauditoptions_0; - TALLOC_CTX *_mem_save_eventauditoptions_1; - uint32_t _ptr_sid; - TALLOC_CTX *_mem_save_sid_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod)); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions)); - if (_ptr_eventauditoptions) { - NDR_PULL_ALLOC(ndr, r->eventauditoptions); - } else { - r->eventauditoptions = NULL; - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits)); - NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->eventauditoptions) { - _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions)); - NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions)); - _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0); - for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0); - } - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name)); - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - if (r->eventauditoptions) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r) -{ - uint32_t cntr_eventauditoptions_1; - ndr_print_struct(ndr, name, "netr_DELTA_POLICY"); - ndr->depth++; - ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize); - ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod); - ndr_print_uint8(ndr, "auditingmode", r->auditingmode); - ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount); - ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions); - ndr->depth++; - if (r->eventauditoptions) { - ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", r->maxauditeventcount + 1); - ndr->depth++; - for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1); - if (idx_1) { - ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name); - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits); - ndr_print_udlong(ndr, "sequence_num", r->sequence_num); - ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time); - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r) -{ - uint32_t cntr_controller_names_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name)); - if (r->controller_names) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers)); - for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1])); - } - for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1])); - } - } - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r) -{ - uint32_t _ptr_controller_names; - uint32_t cntr_controller_names_1; - TALLOC_CTX *_mem_save_controller_names_0; - TALLOC_CTX *_mem_save_controller_names_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names)); - if (_ptr_controller_names) { - NDR_PULL_ALLOC(ndr, r->controller_names); - } else { - r->controller_names = NULL; - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name)); - if (r->controller_names) { - _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names)); - NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names)); - _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0); - for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1])); - } - for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0); - } - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - if (r->controller_names) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r) -{ - uint32_t cntr_controller_names_1; - ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN"); - ndr->depth++; - ndr_print_lsa_String(ndr, "domain_name", &r->domain_name); - ndr_print_uint32(ndr, "num_controllers", r->num_controllers); - ndr_print_ptr(ndr, "controller_names", r->controller_names); - ndr->depth++; - if (r->controller_names) { - ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", r->num_controllers); - ndr->depth++; - for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_controller_names_1); - if (idx_1) { - ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "posix_offset", r->posix_offset); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 2)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 2)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST"); - ndr->depth++; - ndr_print_uint16(ndr, "unknown", r->unknown); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r) -{ - uint32_t cntr_privilege_attrib_1; - uint32_t cntr_privilege_name_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name)); - NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->privilege_attrib) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries)); - for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1])); - } - } - if (r->privilege_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries)); - for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1])); - } - for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1])); - } - } - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r) -{ - uint32_t _ptr_privilege_attrib; - uint32_t cntr_privilege_attrib_1; - TALLOC_CTX *_mem_save_privilege_attrib_0; - TALLOC_CTX *_mem_save_privilege_attrib_1; - uint32_t _ptr_privilege_name; - uint32_t cntr_privilege_name_1; - TALLOC_CTX *_mem_save_privilege_name_0; - TALLOC_CTX *_mem_save_privilege_name_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib)); - if (_ptr_privilege_attrib) { - NDR_PULL_ALLOC(ndr, r->privilege_attrib); - } else { - r->privilege_attrib = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name)); - if (_ptr_privilege_name) { - NDR_PULL_ALLOC(ndr, r->privilege_name); - } else { - r->privilege_name = NULL; - } - NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->privilege_attrib) { - _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib)); - NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib)); - _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0); - for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0); - } - if (r->privilege_name) { - _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name)); - NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name)); - _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0); - for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1])); - } - for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0); - } - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - if (r->privilege_attrib) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries)); - } - if (r->privilege_name) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r) -{ - uint32_t cntr_privilege_attrib_1; - uint32_t cntr_privilege_name_1; - ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT"); - ndr->depth++; - ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries); - ndr_print_uint32(ndr, "privilege_control", r->privilege_control); - ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib); - ndr->depth++; - if (r->privilege_attrib) { - ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", r->privilege_entries); - ndr->depth++; - for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1); - if (idx_1) { - ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr_print_ptr(ndr, "privilege_name", r->privilege_name); - ndr->depth++; - if (r->privilege_name) { - ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", r->privilege_entries); - ndr->depth++; - for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_privilege_name_1); - if (idx_1) { - ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits); - ndr_print_uint32(ndr, "system_flags", r->system_flags); - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 2)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 2)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT"); - ndr->depth++; - ndr_print_uint16(ndr, "unknown", r->unknown); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 2)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 2)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET"); - ndr->depth++; - ndr_print_uint16(ndr, "unknown", r->unknown); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->cipher_data) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len)); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r) -{ - uint32_t _ptr_cipher_data; - TALLOC_CTX *_mem_save_cipher_data_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data)); - if (_ptr_cipher_data) { - NDR_PULL_ALLOC(ndr, r->cipher_data); - } else { - r->cipher_data = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->cipher_data) { - _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data)); - if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data)); - } - NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0); - } - if (r->cipher_data) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen)); - } - if (r->cipher_data) { - NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r) -{ - ndr_print_struct(ndr, name, "netr_CIPHER_VALUE"); - ndr->depth++; - ndr_print_uint32(ndr, "len", r->len); - ndr_print_uint32(ndr, "maxlen", r->maxlen); - ndr_print_ptr(ndr, "cipher_data", r->cipher_data); - ndr->depth++; - if (r->cipher_data) { - ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len); - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time)); - NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher)); - NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher)); - NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher)); - NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time)); - NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher)); - NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher)); - NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher)); - NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_SECRET"); - ndr->depth++; - ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher); - ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time); - ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher); - ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time); - ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation); - ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf); - ndr_print_lsa_String(ndr, "unknown1", &r->unknown1); - ndr_print_lsa_String(ndr, "unknown2", &r->unknown2); - ndr_print_lsa_String(ndr, "unknown3", &r->unknown3); - ndr_print_lsa_String(ndr, "unknown4", &r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr_print_uint32(ndr, "unknown6", r->unknown6); - ndr_print_uint32(ndr, "unknown7", r->unknown7); - ndr_print_uint32(ndr, "unknown8", r->unknown8); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r) -{ - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r)); - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r) -{ - uint16_t v; - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v)); - *r = v; - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r) -{ - const char *val = NULL; - - switch (r) { - case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break; - case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break; - case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break; - case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break; - case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break; - case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break; - case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break; - case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break; - case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break; - case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break; - case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break; - case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break; - case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break; - case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break; - case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break; - case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break; - case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break; - case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break; - case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break; - case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break; - case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break; - case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break; - } - ndr_print_enum(ndr, name, "ENUM", val, r); -} - -NTSTATUS ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level)); - switch (level) { - case NETR_DELTA_DOMAIN: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain)); - break; - - case NETR_DELTA_GROUP: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->group)); - break; - - case NETR_DELTA_DELETE_GROUP: - break; - - case NETR_DELTA_RENAME_GROUP: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group)); - break; - - case NETR_DELTA_USER: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->user)); - break; - - case NETR_DELTA_DELETE_USER: - break; - - case NETR_DELTA_RENAME_USER: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user)); - break; - - case NETR_DELTA_GROUP_MEMBER: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member)); - break; - - case NETR_DELTA_ALIAS: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias)); - break; - - case NETR_DELTA_DELETE_ALIAS: - break; - - case NETR_DELTA_RENAME_ALIAS: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias)); - break; - - case NETR_DELTA_ALIAS_MEMBER: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member)); - break; - - case NETR_DELTA_POLICY: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy)); - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain)); - break; - - case NETR_DELTA_DELETE_TRUST: - NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust)); - break; - - case NETR_DELTA_ACCOUNT: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->account)); - break; - - case NETR_DELTA_DELETE_ACCOUNT: - NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account)); - break; - - case NETR_DELTA_SECRET: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret)); - break; - - case NETR_DELTA_DELETE_SECRET: - NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret)); - break; - - case NETR_DELTA_DELETE_GROUP2: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group)); - break; - - case NETR_DELTA_DELETE_USER2: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user)); - break; - - case NETR_DELTA_MODIFY_COUNT: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case NETR_DELTA_DOMAIN: - if (r->domain) { - NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain)); - } - break; - - case NETR_DELTA_GROUP: - if (r->group) { - NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group)); - } - break; - - case NETR_DELTA_DELETE_GROUP: - break; - - case NETR_DELTA_RENAME_GROUP: - if (r->rename_group) { - NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group)); - } - break; - - case NETR_DELTA_USER: - if (r->user) { - NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user)); - } - break; - - case NETR_DELTA_DELETE_USER: - break; - - case NETR_DELTA_RENAME_USER: - if (r->rename_user) { - NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user)); - } - break; - - case NETR_DELTA_GROUP_MEMBER: - if (r->group_member) { - NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member)); - } - break; - - case NETR_DELTA_ALIAS: - if (r->alias) { - NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias)); - } - break; - - case NETR_DELTA_DELETE_ALIAS: - break; - - case NETR_DELTA_RENAME_ALIAS: - if (r->rename_alias) { - NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias)); - } - break; - - case NETR_DELTA_ALIAS_MEMBER: - if (r->alias_member) { - NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member)); - } - break; - - case NETR_DELTA_POLICY: - if (r->policy) { - NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy)); - } - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - if (r->trusted_domain) { - NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain)); - } - break; - - case NETR_DELTA_DELETE_TRUST: - break; - - case NETR_DELTA_ACCOUNT: - if (r->account) { - NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account)); - } - break; - - case NETR_DELTA_DELETE_ACCOUNT: - break; - - case NETR_DELTA_SECRET: - if (r->secret) { - NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret)); - } - break; - - case NETR_DELTA_DELETE_SECRET: - break; - - case NETR_DELTA_DELETE_GROUP2: - if (r->delete_group) { - NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group)); - } - break; - - case NETR_DELTA_DELETE_USER2: - if (r->delete_user) { - NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user)); - } - break; - - case NETR_DELTA_MODIFY_COUNT: - if (r->modified_count) { - NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count)); - } - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r) -{ - int level; - uint16_t _level; - TALLOC_CTX *_mem_save_domain_0; - TALLOC_CTX *_mem_save_group_0; - TALLOC_CTX *_mem_save_rename_group_0; - TALLOC_CTX *_mem_save_user_0; - TALLOC_CTX *_mem_save_rename_user_0; - TALLOC_CTX *_mem_save_group_member_0; - TALLOC_CTX *_mem_save_alias_0; - TALLOC_CTX *_mem_save_rename_alias_0; - TALLOC_CTX *_mem_save_alias_member_0; - TALLOC_CTX *_mem_save_policy_0; - TALLOC_CTX *_mem_save_trusted_domain_0; - TALLOC_CTX *_mem_save_account_0; - TALLOC_CTX *_mem_save_secret_0; - TALLOC_CTX *_mem_save_delete_group_0; - TALLOC_CTX *_mem_save_delete_user_0; - TALLOC_CTX *_mem_save_modified_count_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case NETR_DELTA_DOMAIN: { - uint32_t _ptr_domain; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); - if (_ptr_domain) { - NDR_PULL_ALLOC(ndr, r->domain); - } else { - r->domain = NULL; - } - break; } - - case NETR_DELTA_GROUP: { - uint32_t _ptr_group; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group)); - if (_ptr_group) { - NDR_PULL_ALLOC(ndr, r->group); - } else { - r->group = NULL; - } - break; } - - case NETR_DELTA_DELETE_GROUP: { - break; } - - case NETR_DELTA_RENAME_GROUP: { - uint32_t _ptr_rename_group; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group)); - if (_ptr_rename_group) { - NDR_PULL_ALLOC(ndr, r->rename_group); - } else { - r->rename_group = NULL; - } - break; } - - case NETR_DELTA_USER: { - uint32_t _ptr_user; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); - if (_ptr_user) { - NDR_PULL_ALLOC(ndr, r->user); - } else { - r->user = NULL; - } - break; } - - case NETR_DELTA_DELETE_USER: { - break; } - - case NETR_DELTA_RENAME_USER: { - uint32_t _ptr_rename_user; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user)); - if (_ptr_rename_user) { - NDR_PULL_ALLOC(ndr, r->rename_user); - } else { - r->rename_user = NULL; - } - break; } - - case NETR_DELTA_GROUP_MEMBER: { - uint32_t _ptr_group_member; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member)); - if (_ptr_group_member) { - NDR_PULL_ALLOC(ndr, r->group_member); - } else { - r->group_member = NULL; - } - break; } - - case NETR_DELTA_ALIAS: { - uint32_t _ptr_alias; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias)); - if (_ptr_alias) { - NDR_PULL_ALLOC(ndr, r->alias); - } else { - r->alias = NULL; - } - break; } - - case NETR_DELTA_DELETE_ALIAS: { - break; } - - case NETR_DELTA_RENAME_ALIAS: { - uint32_t _ptr_rename_alias; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias)); - if (_ptr_rename_alias) { - NDR_PULL_ALLOC(ndr, r->rename_alias); - } else { - r->rename_alias = NULL; - } - break; } - - case NETR_DELTA_ALIAS_MEMBER: { - uint32_t _ptr_alias_member; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member)); - if (_ptr_alias_member) { - NDR_PULL_ALLOC(ndr, r->alias_member); - } else { - r->alias_member = NULL; - } - break; } - - case NETR_DELTA_POLICY: { - uint32_t _ptr_policy; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy)); - if (_ptr_policy) { - NDR_PULL_ALLOC(ndr, r->policy); - } else { - r->policy = NULL; - } - break; } - - case NETR_DELTA_TRUSTED_DOMAIN: { - uint32_t _ptr_trusted_domain; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain)); - if (_ptr_trusted_domain) { - NDR_PULL_ALLOC(ndr, r->trusted_domain); - } else { - r->trusted_domain = NULL; - } - break; } - - case NETR_DELTA_DELETE_TRUST: { - NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust)); - break; } - - case NETR_DELTA_ACCOUNT: { - uint32_t _ptr_account; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account)); - if (_ptr_account) { - NDR_PULL_ALLOC(ndr, r->account); - } else { - r->account = NULL; - } - break; } - - case NETR_DELTA_DELETE_ACCOUNT: { - NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account)); - break; } - - case NETR_DELTA_SECRET: { - uint32_t _ptr_secret; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret)); - if (_ptr_secret) { - NDR_PULL_ALLOC(ndr, r->secret); - } else { - r->secret = NULL; - } - break; } - - case NETR_DELTA_DELETE_SECRET: { - NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret)); - break; } - - case NETR_DELTA_DELETE_GROUP2: { - uint32_t _ptr_delete_group; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group)); - if (_ptr_delete_group) { - NDR_PULL_ALLOC(ndr, r->delete_group); - } else { - r->delete_group = NULL; - } - break; } - - case NETR_DELTA_DELETE_USER2: { - uint32_t _ptr_delete_user; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user)); - if (_ptr_delete_user) { - NDR_PULL_ALLOC(ndr, r->delete_user); - } else { - r->delete_user = NULL; - } - break; } - - case NETR_DELTA_MODIFY_COUNT: { - uint32_t _ptr_modified_count; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count)); - if (_ptr_modified_count) { - NDR_PULL_ALLOC(ndr, r->modified_count); - } else { - r->modified_count = NULL; - } - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case NETR_DELTA_DOMAIN: - if (r->domain) { - _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); - NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); - } - break; - - case NETR_DELTA_GROUP: - if (r->group) { - _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->group, 0); - NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0); - } - break; - - case NETR_DELTA_DELETE_GROUP: - break; - - case NETR_DELTA_RENAME_GROUP: - if (r->rename_group) { - _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0); - NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0); - } - break; - - case NETR_DELTA_USER: - if (r->user) { - _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); - NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); - } - break; - - case NETR_DELTA_DELETE_USER: - break; - - case NETR_DELTA_RENAME_USER: - if (r->rename_user) { - _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0); - NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0); - } - break; - - case NETR_DELTA_GROUP_MEMBER: - if (r->group_member) { - _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0); - NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0); - } - break; - - case NETR_DELTA_ALIAS: - if (r->alias) { - _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0); - NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0); - } - break; - - case NETR_DELTA_DELETE_ALIAS: - break; - - case NETR_DELTA_RENAME_ALIAS: - if (r->rename_alias) { - _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0); - NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0); - } - break; - - case NETR_DELTA_ALIAS_MEMBER: - if (r->alias_member) { - _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0); - NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0); - } - break; - - case NETR_DELTA_POLICY: - if (r->policy) { - _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0); - NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0); - } - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - if (r->trusted_domain) { - _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0); - NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0); - } - break; - - case NETR_DELTA_DELETE_TRUST: - break; - - case NETR_DELTA_ACCOUNT: - if (r->account) { - _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->account, 0); - NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0); - } - break; - - case NETR_DELTA_DELETE_ACCOUNT: - break; - - case NETR_DELTA_SECRET: - if (r->secret) { - _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0); - NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0); - } - break; - - case NETR_DELTA_DELETE_SECRET: - break; - - case NETR_DELTA_DELETE_GROUP2: - if (r->delete_group) { - _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0); - NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0); - } - break; - - case NETR_DELTA_DELETE_USER2: - if (r->delete_user) { - _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0); - NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0); - } - break; - - case NETR_DELTA_MODIFY_COUNT: - if (r->modified_count) { - _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0); - NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0); - } - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_DELTA_UNION"); - switch (level) { - case NETR_DELTA_DOMAIN: - ndr_print_ptr(ndr, "domain", r->domain); - ndr->depth++; - if (r->domain) { - ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain); - } - ndr->depth--; - break; - - case NETR_DELTA_GROUP: - ndr_print_ptr(ndr, "group", r->group); - ndr->depth++; - if (r->group) { - ndr_print_netr_DELTA_GROUP(ndr, "group", r->group); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_GROUP: - break; - - case NETR_DELTA_RENAME_GROUP: - ndr_print_ptr(ndr, "rename_group", r->rename_group); - ndr->depth++; - if (r->rename_group) { - ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group); - } - ndr->depth--; - break; - - case NETR_DELTA_USER: - ndr_print_ptr(ndr, "user", r->user); - ndr->depth++; - if (r->user) { - ndr_print_netr_DELTA_USER(ndr, "user", r->user); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_USER: - break; - - case NETR_DELTA_RENAME_USER: - ndr_print_ptr(ndr, "rename_user", r->rename_user); - ndr->depth++; - if (r->rename_user) { - ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user); - } - ndr->depth--; - break; - - case NETR_DELTA_GROUP_MEMBER: - ndr_print_ptr(ndr, "group_member", r->group_member); - ndr->depth++; - if (r->group_member) { - ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member); - } - ndr->depth--; - break; - - case NETR_DELTA_ALIAS: - ndr_print_ptr(ndr, "alias", r->alias); - ndr->depth++; - if (r->alias) { - ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_ALIAS: - break; - - case NETR_DELTA_RENAME_ALIAS: - ndr_print_ptr(ndr, "rename_alias", r->rename_alias); - ndr->depth++; - if (r->rename_alias) { - ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias); - } - ndr->depth--; - break; - - case NETR_DELTA_ALIAS_MEMBER: - ndr_print_ptr(ndr, "alias_member", r->alias_member); - ndr->depth++; - if (r->alias_member) { - ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member); - } - ndr->depth--; - break; - - case NETR_DELTA_POLICY: - ndr_print_ptr(ndr, "policy", r->policy); - ndr->depth++; - if (r->policy) { - ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy); - } - ndr->depth--; - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain); - ndr->depth++; - if (r->trusted_domain) { - ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_TRUST: - ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust); - break; - - case NETR_DELTA_ACCOUNT: - ndr_print_ptr(ndr, "account", r->account); - ndr->depth++; - if (r->account) { - ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_ACCOUNT: - ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account); - break; - - case NETR_DELTA_SECRET: - ndr_print_ptr(ndr, "secret", r->secret); - ndr->depth++; - if (r->secret) { - ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_SECRET: - ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret); - break; - - case NETR_DELTA_DELETE_GROUP2: - ndr_print_ptr(ndr, "delete_group", r->delete_group); - ndr->depth++; - if (r->delete_group) { - ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_USER2: - ndr_print_ptr(ndr, "delete_user", r->delete_user); - ndr->depth++; - if (r->delete_user) { - ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user); - } - ndr->depth--; - break; - - case NETR_DELTA_MODIFY_COUNT: - ndr_print_ptr(ndr, "modified_count", r->modified_count); - ndr->depth++; - if (r->modified_count) { - ndr_print_udlong(ndr, "modified_count", *r->modified_count); - } - ndr->depth--; - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -NTSTATUS ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level)); - switch (level) { - case NETR_DELTA_DOMAIN: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_GROUP: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_DELETE_GROUP: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_RENAME_GROUP: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_USER: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_DELETE_USER: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_RENAME_USER: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_GROUP_MEMBER: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_ALIAS: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_DELETE_ALIAS: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_RENAME_ALIAS: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_ALIAS_MEMBER: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_POLICY: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - break; - - case NETR_DELTA_DELETE_TRUST: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - break; - - case NETR_DELTA_ACCOUNT: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - break; - - case NETR_DELTA_DELETE_ACCOUNT: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - break; - - case NETR_DELTA_SECRET: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->name)); - break; - - case NETR_DELTA_DELETE_SECRET: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->name)); - break; - - case NETR_DELTA_DELETE_GROUP2: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_DELETE_USER2: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid)); - break; - - case NETR_DELTA_MODIFY_COUNT: - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case NETR_DELTA_DOMAIN: - break; - - case NETR_DELTA_GROUP: - break; - - case NETR_DELTA_DELETE_GROUP: - break; - - case NETR_DELTA_RENAME_GROUP: - break; - - case NETR_DELTA_USER: - break; - - case NETR_DELTA_DELETE_USER: - break; - - case NETR_DELTA_RENAME_USER: - break; - - case NETR_DELTA_GROUP_MEMBER: - break; - - case NETR_DELTA_ALIAS: - break; - - case NETR_DELTA_DELETE_ALIAS: - break; - - case NETR_DELTA_RENAME_ALIAS: - break; - - case NETR_DELTA_ALIAS_MEMBER: - break; - - case NETR_DELTA_POLICY: - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - break; - - case NETR_DELTA_DELETE_TRUST: - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - break; - - case NETR_DELTA_ACCOUNT: - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - break; - - case NETR_DELTA_DELETE_ACCOUNT: - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - break; - - case NETR_DELTA_SECRET: - if (r->name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - break; - - case NETR_DELTA_DELETE_SECRET: - if (r->name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - break; - - case NETR_DELTA_DELETE_GROUP2: - break; - - case NETR_DELTA_DELETE_USER2: - break; - - case NETR_DELTA_MODIFY_COUNT: - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r) -{ - int level; - uint16_t _level; - TALLOC_CTX *_mem_save_sid_0; - TALLOC_CTX *_mem_save_name_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case NETR_DELTA_DOMAIN: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_GROUP: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_DELETE_GROUP: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_RENAME_GROUP: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_USER: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_DELETE_USER: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_RENAME_USER: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_GROUP_MEMBER: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_ALIAS: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_DELETE_ALIAS: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_RENAME_ALIAS: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_ALIAS_MEMBER: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_POLICY: { - uint32_t _ptr_sid; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - break; } - - case NETR_DELTA_TRUSTED_DOMAIN: { - uint32_t _ptr_sid; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - break; } - - case NETR_DELTA_DELETE_TRUST: { - uint32_t _ptr_sid; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - break; } - - case NETR_DELTA_ACCOUNT: { - uint32_t _ptr_sid; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - break; } - - case NETR_DELTA_DELETE_ACCOUNT: { - uint32_t _ptr_sid; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - break; } - - case NETR_DELTA_SECRET: { - uint32_t _ptr_name; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name)); - if (_ptr_name) { - NDR_PULL_ALLOC(ndr, r->name); - } else { - r->name = NULL; - } - break; } - - case NETR_DELTA_DELETE_SECRET: { - uint32_t _ptr_name; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name)); - if (_ptr_name) { - NDR_PULL_ALLOC(ndr, r->name); - } else { - r->name = NULL; - } - break; } - - case NETR_DELTA_DELETE_GROUP2: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_DELETE_USER2: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid)); - break; } - - case NETR_DELTA_MODIFY_COUNT: { - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case NETR_DELTA_DOMAIN: - break; - - case NETR_DELTA_GROUP: - break; - - case NETR_DELTA_DELETE_GROUP: - break; - - case NETR_DELTA_RENAME_GROUP: - break; - - case NETR_DELTA_USER: - break; - - case NETR_DELTA_DELETE_USER: - break; - - case NETR_DELTA_RENAME_USER: - break; - - case NETR_DELTA_GROUP_MEMBER: - break; - - case NETR_DELTA_ALIAS: - break; - - case NETR_DELTA_DELETE_ALIAS: - break; - - case NETR_DELTA_RENAME_ALIAS: - break; - - case NETR_DELTA_ALIAS_MEMBER: - break; - - case NETR_DELTA_POLICY: - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - break; - - case NETR_DELTA_DELETE_TRUST: - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - break; - - case NETR_DELTA_ACCOUNT: - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - break; - - case NETR_DELTA_DELETE_ACCOUNT: - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - break; - - case NETR_DELTA_SECRET: - if (r->name) { - _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); - if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); - } - break; - - case NETR_DELTA_DELETE_SECRET: - if (r->name) { - _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); - if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); - } - break; - - case NETR_DELTA_DELETE_GROUP2: - break; - - case NETR_DELTA_DELETE_USER2: - break; - - case NETR_DELTA_MODIFY_COUNT: - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION"); - switch (level) { - case NETR_DELTA_DOMAIN: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_GROUP: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_DELETE_GROUP: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_RENAME_GROUP: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_USER: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_DELETE_USER: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_RENAME_USER: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_GROUP_MEMBER: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_ALIAS: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_DELETE_ALIAS: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_RENAME_ALIAS: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_ALIAS_MEMBER: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_POLICY: - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - break; - - case NETR_DELTA_TRUSTED_DOMAIN: - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_TRUST: - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - break; - - case NETR_DELTA_ACCOUNT: - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_ACCOUNT: - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - break; - - case NETR_DELTA_SECRET: - ndr_print_ptr(ndr, "name", r->name); - ndr->depth++; - if (r->name) { - ndr_print_string(ndr, "name", r->name); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_SECRET: - ndr_print_ptr(ndr, "name", r->name); - ndr->depth++; - if (r->name) { - ndr_print_string(ndr, "name", r->name); - } - ndr->depth--; - break; - - case NETR_DELTA_DELETE_GROUP2: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_DELETE_USER2: - ndr_print_uint32(ndr, "rid", r->rid); - break; - - case NETR_DELTA_MODIFY_COUNT: - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -NTSTATUS ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type)); - NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type)); - NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union)); - NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type)); - NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type)); - NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union)); - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union)); - NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r) -{ - ndr_print_struct(ndr, name, "netr_DELTA_ENUM"); - ndr->depth++; - ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type); - ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type); - ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union); - ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type); - ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r) -{ - uint32_t cntr_delta_enum_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->delta_enum) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas)); - for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) { - NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1])); - } - for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) { - NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1])); - } - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r) -{ - uint32_t _ptr_delta_enum; - uint32_t cntr_delta_enum_1; - TALLOC_CTX *_mem_save_delta_enum_0; - TALLOC_CTX *_mem_save_delta_enum_1; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum)); - if (_ptr_delta_enum) { - NDR_PULL_ALLOC(ndr, r->delta_enum); - } else { - r->delta_enum = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->delta_enum) { - _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum)); - NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum)); - _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0); - for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) { - NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1])); - } - for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) { - NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0); - } - if (r->delta_enum) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r) -{ - uint32_t cntr_delta_enum_1; - ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY"); - ndr->depth++; - ndr_print_uint32(ndr, "num_deltas", r->num_deltas); - ndr_print_ptr(ndr, "delta_enum", r->delta_enum); - ndr->depth++; - if (r->delta_enum) { - ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", r->num_deltas); - ndr->depth++; - for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_delta_enum_1); - if (idx_1) { - ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r) -{ - ndr_print_struct(ndr, name, "netr_UAS_INFO_0"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16); - ndr_print_uint32(ndr, "timecreated", r->timecreated); - ndr_print_uint32(ndr, "serial_number", r->serial_number); - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -NTSTATUS ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - { - uint32_t _flags_save_DATA_BLOB = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); - NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob)); - ndr->flags = _flags_save_DATA_BLOB; - } - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - { - uint32_t _flags_save_DATA_BLOB = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); - NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob)); - ndr->flags = _flags_save_DATA_BLOB; - } - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r) -{ - ndr_print_struct(ndr, name, "netr_AccountBuffer"); - ndr->depth++; - ndr_print_DATA_BLOB(ndr, "blob", r->blob); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r) -{ - ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1"); - ndr->depth++; - ndr_print_uint32(ndr, "flags", r->flags); - ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name)); - if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r) -{ - ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2"); - ndr->depth++; - ndr_print_uint32(ndr, "flags", r->flags); - ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status); - ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name); - ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5)); - } - if (ndr_flags & NDR_BUFFERS) { - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r) -{ - ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3"); - ndr->depth++; - ndr_print_uint32(ndr, "flags", r->flags); - ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts); - ndr_print_uint32(ndr, "unknown1", r->unknown1); - ndr_print_uint32(ndr, "unknown2", r->unknown2); - ndr_print_uint32(ndr, "unknown3", r->unknown3); - ndr_print_uint32(ndr, "unknown4", r->unknown4); - ndr_print_uint32(ndr, "unknown5", r->unknown5); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); - switch (level) { - case 1: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1)); - break; - - case 2: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2)); - break; - - case 3: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 1: - if (r->info1) { - NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1)); - } - break; - - case 2: - if (r->info2) { - NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2)); - } - break; - - case 3: - if (r->info3) { - NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3)); - } - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r) -{ - int level; - uint32_t _level; - TALLOC_CTX *_mem_save_info1_0; - TALLOC_CTX *_mem_save_info2_0; - TALLOC_CTX *_mem_save_info3_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 1: { - uint32_t _ptr_info1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); - if (_ptr_info1) { - NDR_PULL_ALLOC(ndr, r->info1); - } else { - r->info1 = NULL; - } - break; } - - case 2: { - uint32_t _ptr_info2; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); - if (_ptr_info2) { - NDR_PULL_ALLOC(ndr, r->info2); - } else { - r->info2 = NULL; - } - break; } - - case 3: { - uint32_t _ptr_info3; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3)); - if (_ptr_info3) { - NDR_PULL_ALLOC(ndr, r->info3); - } else { - r->info3 = NULL; - } - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case 1: - if (r->info1) { - _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0); - NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0); - } - break; - - case 2: - if (r->info2) { - _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0); - NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0); - } - break; - - case 3: - if (r->info3) { - _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0); - NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0); - } - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION"); - switch (level) { - case 1: - ndr_print_ptr(ndr, "info1", r->info1); - ndr->depth++; - if (r->info1) { - ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1); - } - ndr->depth--; - break; - - case 2: - ndr_print_ptr(ndr, "info2", r->info2); - ndr->depth++; - if (r->info2) { - ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2); - } - ndr->depth--; - break; - - case 3: - ndr_print_ptr(ndr, "info3", r->info3); - ndr->depth++; - if (r->info3) { - ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3); - } - ndr->depth--; - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -NTSTATUS ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r) -{ - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r) -{ - uint32_t v; - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); - *r = v; - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r) -{ - const char *val = NULL; - - switch (r) { - case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break; - case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break; - case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break; - case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break; - } - ndr_print_enum(ndr, name, "ENUM", val, r); -} - -NTSTATUS ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); - switch (level) { - case NETLOGON_CONTROL_REDISCOVER: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain)); - break; - - case NETLOGON_CONTROL_TC_QUERY: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain)); - break; - - case NETLOGON_CONTROL_TRANSPORT_NOTIFY: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain)); - break; - - case NETLOGON_CONTROL_SET_DBFLAG: - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case NETLOGON_CONTROL_REDISCOVER: - if (r->domain) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - break; - - case NETLOGON_CONTROL_TC_QUERY: - if (r->domain) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - break; - - case NETLOGON_CONTROL_TRANSPORT_NOTIFY: - if (r->domain) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - break; - - case NETLOGON_CONTROL_SET_DBFLAG: - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r) -{ - int level; - uint32_t _level; - TALLOC_CTX *_mem_save_domain_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case NETLOGON_CONTROL_REDISCOVER: { - uint32_t _ptr_domain; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); - if (_ptr_domain) { - NDR_PULL_ALLOC(ndr, r->domain); - } else { - r->domain = NULL; - } - break; } - - case NETLOGON_CONTROL_TC_QUERY: { - uint32_t _ptr_domain; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); - if (_ptr_domain) { - NDR_PULL_ALLOC(ndr, r->domain); - } else { - r->domain = NULL; - } - break; } - - case NETLOGON_CONTROL_TRANSPORT_NOTIFY: { - uint32_t _ptr_domain; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); - if (_ptr_domain) { - NDR_PULL_ALLOC(ndr, r->domain); - } else { - r->domain = NULL; - } - break; } - - case NETLOGON_CONTROL_SET_DBFLAG: { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level)); - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case NETLOGON_CONTROL_REDISCOVER: - if (r->domain) { - _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); - if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); - } - break; - - case NETLOGON_CONTROL_TC_QUERY: - if (r->domain) { - _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); - if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); - } - break; - - case NETLOGON_CONTROL_TRANSPORT_NOTIFY: - if (r->domain) { - _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); - if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); - } - break; - - case NETLOGON_CONTROL_SET_DBFLAG: - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION"); - switch (level) { - case NETLOGON_CONTROL_REDISCOVER: - ndr_print_ptr(ndr, "domain", r->domain); - ndr->depth++; - if (r->domain) { - ndr_print_string(ndr, "domain", r->domain); - } - ndr->depth--; - break; - - case NETLOGON_CONTROL_TC_QUERY: - ndr_print_ptr(ndr, "domain", r->domain); - ndr->depth++; - if (r->domain) { - ndr_print_string(ndr, "domain", r->domain); - } - ndr->depth--; - break; - - case NETLOGON_CONTROL_TRANSPORT_NOTIFY: - ndr_print_ptr(ndr, "domain", r->domain); - ndr->depth++; - if (r->domain) { - ndr_print_string(ndr, "domain", r->domain); - } - ndr->depth--; - break; - - case NETLOGON_CONTROL_SET_DBFLAG: - ndr_print_uint32(ndr, "debug_level", r->debug_level); - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -NTSTATUS ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address)); - NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->dc_address_type)); - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dc_flags)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->dc_unc) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->dc_address) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid)); - if (r->domain_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->forest_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->dc_site_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_site_name, ndr_charset_length(r->dc_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->client_site_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_site_name, ndr_charset_length(r->client_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r) -{ - uint32_t _ptr_dc_unc; - TALLOC_CTX *_mem_save_dc_unc_0; - uint32_t _ptr_dc_address; - TALLOC_CTX *_mem_save_dc_address_0; - uint32_t _ptr_domain_name; - TALLOC_CTX *_mem_save_domain_name_0; - uint32_t _ptr_forest_name; - TALLOC_CTX *_mem_save_forest_name_0; - uint32_t _ptr_dc_site_name; - TALLOC_CTX *_mem_save_dc_site_name_0; - uint32_t _ptr_client_site_name; - TALLOC_CTX *_mem_save_client_site_name_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc)); - if (_ptr_dc_unc) { - NDR_PULL_ALLOC(ndr, r->dc_unc); - } else { - r->dc_unc = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address)); - if (_ptr_dc_address) { - NDR_PULL_ALLOC(ndr, r->dc_address); - } else { - r->dc_address = NULL; - } - NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->dc_address_type)); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); - if (_ptr_domain_name) { - NDR_PULL_ALLOC(ndr, r->domain_name); - } else { - r->domain_name = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name)); - if (_ptr_forest_name) { - NDR_PULL_ALLOC(ndr, r->forest_name); - } else { - r->forest_name = NULL; - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dc_flags)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name)); - if (_ptr_dc_site_name) { - NDR_PULL_ALLOC(ndr, r->dc_site_name); - } else { - r->dc_site_name = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name)); - if (_ptr_client_site_name) { - NDR_PULL_ALLOC(ndr, r->client_site_name); - } else { - r->client_site_name = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->dc_unc) { - _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc)); - if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_unc), ndr_get_array_length(ndr, &r->dc_unc)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0); - } - if (r->dc_address) { - _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address)); - if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0); - } - NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid)); - if (r->domain_name) { - _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name)); - if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); - } - if (r->forest_name) { - _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name)); - if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest_name), ndr_get_array_length(ndr, &r->forest_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0); - } - if (r->dc_site_name) { - _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name)); - if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_site_name), ndr_get_array_length(ndr, &r->dc_site_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0); - } - if (r->client_site_name) { - _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name)); - if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_site_name), ndr_get_array_length(ndr, &r->client_site_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r) -{ - ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo"); - ndr->depth++; - ndr_print_ptr(ndr, "dc_unc", r->dc_unc); - ndr->depth++; - if (r->dc_unc) { - ndr_print_string(ndr, "dc_unc", r->dc_unc); - } - ndr->depth--; - ndr_print_ptr(ndr, "dc_address", r->dc_address); - ndr->depth++; - if (r->dc_address) { - ndr_print_string(ndr, "dc_address", r->dc_address); - } - ndr->depth--; - ndr_print_int32(ndr, "dc_address_type", r->dc_address_type); - ndr_print_GUID(ndr, "domain_guid", &r->domain_guid); - ndr_print_ptr(ndr, "domain_name", r->domain_name); - ndr->depth++; - if (r->domain_name) { - ndr_print_string(ndr, "domain_name", r->domain_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "forest_name", r->forest_name); - ndr->depth++; - if (r->forest_name) { - ndr_print_string(ndr, "forest_name", r->forest_name); - } - ndr->depth--; - ndr_print_uint32(ndr, "dc_flags", r->dc_flags); - ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name); - ndr->depth++; - if (r->dc_site_name) { - ndr_print_string(ndr, "dc_site_name", r->dc_site_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "client_site_name", r->client_site_name); - ndr->depth++; - if (r->client_site_name) { - ndr_print_string(ndr, "client_site_name", r->client_site_name); - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->data)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->data) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length)); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r) -{ - uint32_t _ptr_data; - TALLOC_CTX *_mem_save_data_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data)); - if (_ptr_data) { - NDR_PULL_ALLOC(ndr, r->data); - } else { - r->data = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->data) { - _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); - NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); - } - if (r->data) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r) -{ - ndr_print_struct(ndr, name, "netr_Blob"); - ndr->depth++; - ndr_print_uint32(ndr, "length", r->length); - ndr_print_ptr(ndr, "data", r->data); - ndr->depth++; - if (r->data) { - ndr_print_array_uint8(ndr, "data", r->data, r->length); - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r) -{ - uint32_t cntr_data_1; - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->data)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->data) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2)); - for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) { - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1])); - } - } - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r) -{ - uint32_t _ptr_data; - uint32_t cntr_data_1; - TALLOC_CTX *_mem_save_data_0; - TALLOC_CTX *_mem_save_data_1; - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data)); - if (_ptr_data) { - NDR_PULL_ALLOC(ndr, r->data); - } else { - r->data = NULL; - } - } - if (ndr_flags & NDR_BUFFERS) { - if (r->data) { - _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->data)); - if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data)); - } - NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); - _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); - for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) { - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); - } - if (r->data) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2)); - } - if (r->data) { - NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2)); - } - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r) -{ - uint32_t cntr_data_1; - ndr_print_struct(ndr, name, "netr_BinaryString"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_uint16(ndr, "length", r->length); - ndr_print_uint16(ndr, "size", r->size); - ndr_print_ptr(ndr, "data", r->data); - ndr->depth++; - if (r->data) { - ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2); - ndr->depth++; - for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_data_1); - if (idx_1) { - ndr_print_uint16(ndr, "data", r->data[cntr_data_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -NTSTATUS ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r) -{ - uint32_t cntr_unknown7_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4)); - NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6)); - for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob)); - if (r->workstation_domain) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->workstation_site) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->unknown1) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->unknown2) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->unknown3) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->unknown4) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r) -{ - uint32_t _ptr_workstation_domain; - TALLOC_CTX *_mem_save_workstation_domain_0; - uint32_t _ptr_workstation_site; - TALLOC_CTX *_mem_save_workstation_site_0; - uint32_t _ptr_unknown1; - TALLOC_CTX *_mem_save_unknown1_0; - uint32_t _ptr_unknown2; - TALLOC_CTX *_mem_save_unknown2_0; - uint32_t _ptr_unknown3; - TALLOC_CTX *_mem_save_unknown3_0; - uint32_t _ptr_unknown4; - TALLOC_CTX *_mem_save_unknown4_0; - uint32_t cntr_unknown7_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain)); - if (_ptr_workstation_domain) { - NDR_PULL_ALLOC(ndr, r->workstation_domain); - } else { - r->workstation_domain = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site)); - if (_ptr_workstation_site) { - NDR_PULL_ALLOC(ndr, r->workstation_site); - } else { - r->workstation_site = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1)); - if (_ptr_unknown1) { - NDR_PULL_ALLOC(ndr, r->unknown1); - } else { - r->unknown1 = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2)); - if (_ptr_unknown2) { - NDR_PULL_ALLOC(ndr, r->unknown2); - } else { - r->unknown2 = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3)); - if (_ptr_unknown3) { - NDR_PULL_ALLOC(ndr, r->unknown3); - } else { - r->unknown3 = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4)); - if (_ptr_unknown4) { - NDR_PULL_ALLOC(ndr, r->unknown4); - } else { - r->unknown4 = NULL; - } - NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6)); - for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob)); - if (r->workstation_domain) { - _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain)); - if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0); - } - if (r->workstation_site) { - _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site)); - if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0); - } - if (r->unknown1) { - _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1)); - if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0); - } - if (r->unknown2) { - _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2)); - if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0); - } - if (r->unknown3) { - _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3)); - if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0); - } - if (r->unknown4) { - _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4)); - if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0); - } - NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r) -{ - uint32_t cntr_unknown7_0; - ndr_print_struct(ndr, name, "netr_DomainQuery1"); - ndr->depth++; - ndr_print_netr_Blob(ndr, "blob", &r->blob); - ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain); - ndr->depth++; - if (r->workstation_domain) { - ndr_print_string(ndr, "workstation_domain", r->workstation_domain); - } - ndr->depth--; - ndr_print_ptr(ndr, "workstation_site", r->workstation_site); - ndr->depth++; - if (r->workstation_site) { - ndr_print_string(ndr, "workstation_site", r->workstation_site); - } - ndr->depth--; - ndr_print_ptr(ndr, "unknown1", r->unknown1); - ndr->depth++; - if (r->unknown1) { - ndr_print_string(ndr, "unknown1", r->unknown1); - } - ndr->depth--; - ndr_print_ptr(ndr, "unknown2", r->unknown2); - ndr->depth++; - if (r->unknown2) { - ndr_print_string(ndr, "unknown2", r->unknown2); - } - ndr->depth--; - ndr_print_ptr(ndr, "unknown3", r->unknown3); - ndr->depth++; - if (r->unknown3) { - ndr_print_string(ndr, "unknown3", r->unknown3); - } - ndr->depth--; - ndr_print_ptr(ndr, "unknown4", r->unknown4); - ndr->depth++; - if (r->unknown4) { - ndr_print_string(ndr, "unknown4", r->unknown4); - } - ndr->depth--; - ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2); - ndr_print_lsa_String(ndr, "product", &r->product); - ndr_print_lsa_String(ndr, "unknown5", &r->unknown5); - ndr_print_lsa_String(ndr, "unknown6", &r->unknown6); - ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4); - ndr->depth++; - for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) { - char *idx_0=NULL; - asprintf(&idx_0, "[%d]", cntr_unknown7_0); - if (idx_0) { - ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); - switch (level) { - case 1: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1)); - break; - - case 2: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 1: - if (r->query1) { - NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); - } - break; - - case 2: - if (r->query1) { - NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); - } - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r) -{ - int level; - uint32_t _level; - TALLOC_CTX *_mem_save_query1_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 1: { - uint32_t _ptr_query1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1)); - if (_ptr_query1) { - NDR_PULL_ALLOC(ndr, r->query1); - } else { - r->query1 = NULL; - } - break; } - - case 2: { - uint32_t _ptr_query1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1)); - if (_ptr_query1) { - NDR_PULL_ALLOC(ndr, r->query1); - } else { - r->query1 = NULL; - } - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case 1: - if (r->query1) { - _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0); - NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0); - } - break; - - case 2: - if (r->query1) { - _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0); - NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0); - } - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_DomainQuery"); - switch (level) { - case 1: - ndr_print_ptr(ndr, "query1", r->query1); - ndr->depth++; - if (r->query1) { - ndr_print_netr_DomainQuery1(ndr, "query1", r->query1); - } - ndr->depth--; - break; - - case 2: - ndr_print_ptr(ndr, "query1", r->query1); - ndr->depth++; - if (r->query1) { - ndr_print_netr_DomainQuery1(ndr, "query1", r->query1); - } - ndr->depth--; - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -NTSTATUS ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r) -{ - uint32_t cntr_unknown1_0; - uint32_t cntr_unknown_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest)); - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) { - NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0])); - } - for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname)); - NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest)); - NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid)); - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) { - NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0])); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r) -{ - uint32_t _ptr_sid; - TALLOC_CTX *_mem_save_sid_0; - uint32_t cntr_unknown1_0; - uint32_t cntr_unknown_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest)); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) { - NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0])); - } - for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname)); - NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest)); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid)); - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) { - NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0])); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r) -{ - uint32_t cntr_unknown1_0; - uint32_t cntr_unknown_0; - ndr_print_struct(ndr, name, "netr_DomainTrustInfo"); - ndr->depth++; - ndr_print_lsa_String(ndr, "domainname", &r->domainname); - ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname); - ndr_print_lsa_String(ndr, "forest", &r->forest); - ndr_print_GUID(ndr, "guid", &r->guid); - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4); - ndr->depth++; - for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) { - char *idx_0=NULL; - asprintf(&idx_0, "[%d]", cntr_unknown1_0); - if (idx_0) { - ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4); - ndr->depth++; - for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) { - char *idx_0=NULL; - asprintf(&idx_0, "[%d]", cntr_unknown_0); - if (idx_0) { - ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r) -{ - uint32_t cntr_trusts_1; - uint32_t cntr_unknown_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts)); - for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo)); - if (r->trusts) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts)); - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1])); - } - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1])); - } - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r) -{ - uint32_t _ptr_trusts; - uint32_t cntr_trusts_1; - TALLOC_CTX *_mem_save_trusts_0; - TALLOC_CTX *_mem_save_trusts_1; - uint32_t cntr_unknown_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts)); - if (_ptr_trusts) { - NDR_PULL_ALLOC(ndr, r->trusts); - } else { - r->trusts = NULL; - } - for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0])); - } - } - if (ndr_flags & NDR_BUFFERS) { - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo)); - if (r->trusts) { - _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts)); - NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts)); - _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0); - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1])); - } - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { - NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1])); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0); - } - if (r->trusts) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r) -{ - uint32_t cntr_trusts_1; - uint32_t cntr_unknown_0; - ndr_print_struct(ndr, name, "netr_DomainInfo1"); - ndr->depth++; - ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo); - ndr_print_uint32(ndr, "num_trusts", r->num_trusts); - ndr_print_ptr(ndr, "trusts", r->trusts); - ndr->depth++; - if (r->trusts) { - ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts); - ndr->depth++; - for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_trusts_1); - if (idx_1) { - ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]); - free(idx_1); - } - } - ndr->depth--; - } - ndr->depth--; - ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14); - ndr->depth++; - for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) { - char *idx_0=NULL; - asprintf(&idx_0, "[%d]", cntr_unknown_0); - if (idx_0) { - ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]); - free(idx_0); - } - } - ndr->depth--; - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r) -{ - if (ndr_flags & NDR_SCALARS) { - int level = ndr_push_get_switch_value(ndr, r); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level)); - switch (level) { - case 1: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1)); - break; - - case 2: - NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1)); - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - int level = ndr_push_get_switch_value(ndr, r); - switch (level) { - case 1: - if (r->info1) { - NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); - } - break; - - case 2: - if (r->info1) { - NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); - } - break; - - default: - return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r) -{ - int level; - uint32_t _level; - TALLOC_CTX *_mem_save_info1_0; - level = ndr_pull_get_switch_value(ndr, r); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); - if (_level != level) { - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level); - } - switch (level) { - case 1: { - uint32_t _ptr_info1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); - if (_ptr_info1) { - NDR_PULL_ALLOC(ndr, r->info1); - } else { - r->info1 = NULL; - } - break; } - - case 2: { - uint32_t _ptr_info1; - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); - if (_ptr_info1) { - NDR_PULL_ALLOC(ndr, r->info1); - } else { - r->info1 = NULL; - } - break; } - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - if (ndr_flags & NDR_BUFFERS) { - switch (level) { - case 1: - if (r->info1) { - _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0); - NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0); - } - break; - - case 2: - if (r->info1) { - _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0); - NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0); - } - break; - - default: - return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r) -{ - int level; - level = ndr_print_get_switch_value(ndr, r); - ndr_print_union(ndr, name, level, "netr_DomainInfo"); - switch (level) { - case 1: - ndr_print_ptr(ndr, "info1", r->info1); - ndr->depth++; - if (r->info1) { - ndr_print_netr_DomainInfo1(ndr, "info1", r->info1); - } - ndr->depth--; - break; - - case 2: - ndr_print_ptr(ndr, "info1", r->info1); - ndr->depth++; - if (r->info1) { - ndr_print_netr_DomainInfo1(ndr, "info1", r->info1); - } - ndr->depth--; - break; - - default: - ndr_print_bad_level(ndr, name, level); - } -} - -NTSTATUS ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r) -{ - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length)); - } - if (ndr_flags & NDR_BUFFERS) { - } - ndr->flags = _flags_save_STRUCT; - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r) -{ - ndr_print_struct(ndr, name, "netr_CryptPassword"); - { - uint32_t _flags_save_STRUCT = ndr->flags; - ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); - ndr->depth++; - ndr_print_array_uint8(ndr, "data", r->data, 512); - ndr_print_uint32(ndr, "length", r->length); - ndr->depth--; - ndr->flags = _flags_save_STRUCT; - } -} - -NTSTATUS ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r) -{ - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) -{ - uint32_t v; - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); - *r = v; - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r) -{ - ndr_print_uint32(ndr, name, r); - ndr->depth++; - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r) -{ - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r) -{ - uint32_t v; - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); - *r = v; - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r) -{ - const char *val = NULL; - - switch (r) { - case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break; - case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break; - case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break; - case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break; - } - ndr_print_enum(ndr, name, "ENUM", val, r); -} - -NTSTATUS ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r) -{ - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r)); - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r) -{ - uint32_t v; - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v)); - *r = v; - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r) -{ - ndr_print_uint32(ndr, name, r); - ndr->depth++; - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r); - ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r) -{ - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_push_align(ndr, 4)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name)); - NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index)); - NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type)); - NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid)); - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->netbios_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->dns_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->sid) { - NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - } - NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r) -{ - uint32_t _ptr_netbios_name; - TALLOC_CTX *_mem_save_netbios_name_0; - uint32_t _ptr_dns_name; - TALLOC_CTX *_mem_save_dns_name_0; - uint32_t _ptr_sid; - TALLOC_CTX *_mem_save_sid_0; - if (ndr_flags & NDR_SCALARS) { - NDR_CHECK(ndr_pull_align(ndr, 4)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name)); - if (_ptr_netbios_name) { - NDR_PULL_ALLOC(ndr, r->netbios_name); - } else { - r->netbios_name = NULL; - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name)); - if (_ptr_dns_name) { - NDR_PULL_ALLOC(ndr, r->dns_name); - } else { - r->dns_name = NULL; - } - NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index)); - NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type)); - NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); - if (_ptr_sid) { - NDR_PULL_ALLOC(ndr, r->sid); - } else { - r->sid = NULL; - } - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid)); - } - if (ndr_flags & NDR_BUFFERS) { - if (r->netbios_name) { - _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name)); - if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0); - } - if (r->dns_name) { - _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name)); - if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0); - } - if (r->sid) { - _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0); - NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); - } - NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r) -{ - ndr_print_struct(ndr, name, "netr_DomainTrust"); - ndr->depth++; - ndr_print_ptr(ndr, "netbios_name", r->netbios_name); - ndr->depth++; - if (r->netbios_name) { - ndr_print_string(ndr, "netbios_name", r->netbios_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "dns_name", r->dns_name); - ndr->depth++; - if (r->dns_name) { - ndr_print_string(ndr, "dns_name", r->dns_name); - } - ndr->depth--; - ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags); - ndr_print_uint32(ndr, "parent_index", r->parent_index); - ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type); - ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes); - ndr_print_ptr(ndr, "sid", r->sid); - ndr->depth++; - if (r->sid) { - ndr_print_dom_sid2(ndr, "sid", r->sid); - } - ndr->depth--; - ndr_print_GUID(ndr, "guid", &r->guid); - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info)); - if (r->out.info) { - NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - } - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r) -{ - uint32_t _ptr_server_name; - uint32_t _ptr_info; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_info_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation)); - if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); - if (_ptr_info) { - NDR_PULL_ALLOC(ndr, r->out.info); - } else { - r->out.info = NULL; - } - if (r->out.info) { - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0); - NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0); - } - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r) -{ - ndr_print_struct(ndr, name, "netr_LogonUasLogon"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonUasLogon"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "account_name", r->in.account_name); - ndr_print_string(ndr, "workstation", r->in.workstation); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonUasLogon"); - ndr->depth++; - ndr_print_ptr(ndr, "info", r->out.info); - ndr->depth++; - if (r->out.info) { - ndr_print_netr_UasInfo(ndr, "info", r->out.info); - } - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (flags & NDR_OUT) { - if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info)); - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r) -{ - uint32_t _ptr_server_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_info_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation)); - if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_ALLOC(ndr, r->out.info); - ZERO_STRUCTP(r->out.info); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.info); - } - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r) -{ - ndr_print_struct(ndr, name, "netr_LogonUasLogoff"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonUasLogoff"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "account_name", r->in.account_name); - ndr_print_string(ndr, "workstation", r->in.workstation); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonUasLogoff"); - ndr->depth++; - ndr_print_ptr(ndr, "info", r->out.info); - ndr->depth++; - ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info); - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name)); - if (r->in.computer_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential)); - if (r->in.credential) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator)); - if (r->in.return_authenticator) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - } - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator)); - if (r->out.return_authenticator) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - } - if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level)); - NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation)); - if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r) -{ - uint32_t _ptr_server_name; - uint32_t _ptr_computer_name; - uint32_t _ptr_credential; - uint32_t _ptr_return_authenticator; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_computer_name_0; - TALLOC_CTX *_mem_save_credential_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_validation_0; - TALLOC_CTX *_mem_save_authoritative_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); - if (_ptr_computer_name) { - NDR_PULL_ALLOC(ndr, r->in.computer_name); - } else { - r->in.computer_name = NULL; - } - if (r->in.computer_name) { - _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential)); - if (_ptr_credential) { - NDR_PULL_ALLOC(ndr, r->in.credential); - } else { - r->in.credential = NULL; - } - if (r->in.credential) { - _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator)); - if (_ptr_return_authenticator) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } else { - r->in.return_authenticator = NULL; - } - if (r->in.return_authenticator) { - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0); - } - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level)); - NDR_PULL_ALLOC(ndr, r->out.validation); - ZERO_STRUCTP(r->out.validation); - NDR_PULL_ALLOC(ndr, r->out.authoritative); - ZERO_STRUCTP(r->out.authoritative); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator)); - if (_ptr_return_authenticator) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } else { - r->out.return_authenticator = NULL; - } - if (r->out.return_authenticator) { - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0); - } - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.validation); - } - _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level)); - NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.authoritative); - } - _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r) -{ - ndr_print_struct(ndr, name, "netr_LogonSamLogon"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonSamLogon"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "computer_name", r->in.computer_name); - ndr->depth++; - if (r->in.computer_name) { - ndr_print_string(ndr, "computer_name", r->in.computer_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "credential", r->in.credential); - ndr->depth++; - if (r->in.credential) { - ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); - } - ndr->depth--; - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - if (r->in.return_authenticator) { - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - } - ndr->depth--; - ndr_print_uint16(ndr, "logon_level", r->in.logon_level); - ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level); - ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon); - ndr_print_uint16(ndr, "validation_level", r->in.validation_level); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonSamLogon"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - if (r->out.return_authenticator) { - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - } - ndr->depth--; - ndr_print_ptr(ndr, "validation", r->out.validation); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level); - ndr_print_netr_Validation(ndr, "validation", r->out.validation); - ndr->depth--; - ndr_print_ptr(ndr, "authoritative", r->out.authoritative); - ndr->depth++; - ndr_print_uint8(ndr, "authoritative", *r->out.authoritative); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name)); - if (r->in.computer_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential)); - if (r->in.credential) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator)); - if (r->in.return_authenticator) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - } - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator)); - if (r->out.return_authenticator) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - } - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r) -{ - uint32_t _ptr_server_name; - uint32_t _ptr_computer_name; - uint32_t _ptr_credential; - uint32_t _ptr_return_authenticator; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_computer_name_0; - TALLOC_CTX *_mem_save_credential_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); - if (_ptr_computer_name) { - NDR_PULL_ALLOC(ndr, r->in.computer_name); - } else { - r->in.computer_name = NULL; - } - if (r->in.computer_name) { - _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential)); - if (_ptr_credential) { - NDR_PULL_ALLOC(ndr, r->in.credential); - } else { - r->in.credential = NULL; - } - if (r->in.credential) { - _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator)); - if (_ptr_return_authenticator) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } else { - r->in.return_authenticator = NULL; - } - if (r->in.return_authenticator) { - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0); - } - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator)); - if (_ptr_return_authenticator) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } else { - r->out.return_authenticator = NULL; - } - if (r->out.return_authenticator) { - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0); - } - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r) -{ - ndr_print_struct(ndr, name, "netr_LogonSamLogoff"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonSamLogoff"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "computer_name", r->in.computer_name); - ndr->depth++; - if (r->in.computer_name) { - ndr_print_string(ndr, "computer_name", r->in.computer_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "credential", r->in.credential); - ndr->depth++; - if (r->in.credential) { - ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); - } - ndr->depth--; - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - if (r->in.return_authenticator) { - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - } - ndr->depth--; - ndr_print_uint16(ndr, "logon_level", r->in.logon_level); - ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level); - ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonSamLogoff"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - if (r->out.return_authenticator) { - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - } - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - } - if (flags & NDR_OUT) { - if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r) -{ - uint32_t _ptr_server_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_credentials_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.credentials); - *r->out.credentials = *r->in.credentials; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r) -{ - ndr_print_struct(ndr, name, "netr_ServerReqChallenge"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_ServerReqChallenge"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "computer_name", r->in.computer_name); - ndr_print_ptr(ndr, "credentials", r->in.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_ServerReqChallenge"); - ndr->depth++; - ndr_print_ptr(ndr, "credentials", r->out.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->out.credentials); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - } - if (flags & NDR_OUT) { - if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r) -{ - uint32_t _ptr_server_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_credentials_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.credentials); - *r->out.credentials = *r->in.credentials; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r) -{ - ndr_print_struct(ndr, name, "netr_ServerAuthenticate"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_ServerAuthenticate"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "account_name", r->in.account_name); - ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); - ndr_print_string(ndr, "computer_name", r->in.computer_name); - ndr_print_ptr(ndr, "credentials", r->in.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_ServerAuthenticate"); - ndr->depth++; - ndr_print_ptr(ndr, "credentials", r->out.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->out.credentials); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r) -{ - uint32_t _ptr_server_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - ZERO_STRUCTP(r->out.return_authenticator); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r) -{ - ndr_print_struct(ndr, name, "netr_ServerPasswordSet"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_ServerPasswordSet"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "account_name", r->in.account_name); - ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); - ndr_print_string(ndr, "computer_name", r->in.computer_name); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_samr_Password(ndr, "new_password", &r->in.new_password); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_ServerPasswordSet"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id)); - if (r->in.sequence_num == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - if (r->out.sequence_num == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array)); - if (r->out.delta_enum_array) { - NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - } - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r) -{ - uint32_t _ptr_delta_enum_array; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_sequence_num_0; - TALLOC_CTX *_mem_save_delta_enum_array_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); - if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.sequence_num); - } - _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - *r->out.return_authenticator = *r->in.return_authenticator; - NDR_PULL_ALLOC(ndr, r->out.sequence_num); - *r->out.sequence_num = *r->in.sequence_num; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.sequence_num); - } - _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array)); - if (_ptr_delta_enum_array) { - NDR_PULL_ALLOC(ndr, r->out.delta_enum_array); - } else { - r->out.delta_enum_array = NULL; - } - if (r->out.delta_enum_array) { - _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0); - NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0); - } - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r) -{ - ndr_print_struct(ndr, name, "netr_DatabaseDeltas"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DatabaseDeltas"); - ndr->depth++; - ndr_print_string(ndr, "logon_server", r->in.logon_server); - ndr_print_string(ndr, "computername", r->in.computername); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth--; - ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id); - ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num); - ndr->depth++; - ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num); - ndr->depth--; - ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DatabaseDeltas"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num); - ndr->depth++; - ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num); - ndr->depth--; - ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array); - ndr->depth++; - if (r->out.delta_enum_array) { - ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array); - } - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id)); - if (r->in.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - if (r->out.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array)); - if (r->out.delta_enum_array) { - NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - } - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r) -{ - uint32_t _ptr_delta_enum_array; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_sync_context_0; - TALLOC_CTX *_mem_save_delta_enum_array_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); - if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.sync_context); - } - _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - *r->out.return_authenticator = *r->in.return_authenticator; - NDR_PULL_ALLOC(ndr, r->out.sync_context); - *r->out.sync_context = *r->in.sync_context; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.sync_context); - } - _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array)); - if (_ptr_delta_enum_array) { - NDR_PULL_ALLOC(ndr, r->out.delta_enum_array); - } else { - r->out.delta_enum_array = NULL; - } - if (r->out.delta_enum_array) { - _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0); - NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0); - } - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r) -{ - ndr_print_struct(ndr, name, "netr_DatabaseSync"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DatabaseSync"); - ndr->depth++; - ndr_print_string(ndr, "logon_server", r->in.logon_server); - ndr_print_string(ndr, "computername", r->in.computername); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth--; - ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id); - ndr_print_ptr(ndr, "sync_context", r->in.sync_context); - ndr->depth++; - ndr_print_uint32(ndr, "sync_context", *r->in.sync_context); - ndr->depth--; - ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DatabaseSync"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "sync_context", r->out.sync_context); - ndr->depth++; - ndr_print_uint32(ndr, "sync_context", *r->out.sync_context); - ndr->depth--; - ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array); - ndr->depth++; - if (r->out.delta_enum_array) { - ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array); - } - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server)); - if (r->in.logon_server) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - if (r->out.buffer == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - { - struct ndr_push *_ndr_buffer; - NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1)); - NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer)); - NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1)); - } - if (r->out.count_returned == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned)); - if (r->out.total_entries == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries)); - if (r->out.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r) -{ - uint32_t _ptr_logon_server; - TALLOC_CTX *_mem_save_logon_server_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_buffer_0; - TALLOC_CTX *_mem_save_count_returned_0; - TALLOC_CTX *_mem_save_total_entries_0; - TALLOC_CTX *_mem_save_recordid_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); - if (_ptr_logon_server) { - NDR_PULL_ALLOC(ndr, r->in.logon_server); - } else { - r->in.logon_server = NULL; - } - if (r->in.logon_server) { - _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); - if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - *r->out.return_authenticator = *r->in.return_authenticator; - NDR_PULL_ALLOC(ndr, r->out.buffer); - ZERO_STRUCTP(r->out.buffer); - NDR_PULL_ALLOC(ndr, r->out.count_returned); - ZERO_STRUCTP(r->out.count_returned); - NDR_PULL_ALLOC(ndr, r->out.total_entries); - ZERO_STRUCTP(r->out.total_entries); - NDR_PULL_ALLOC(ndr, r->out.recordid); - ZERO_STRUCTP(r->out.recordid); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.buffer); - } - _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC); - { - struct ndr_pull *_ndr_buffer; - NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1)); - NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer)); - NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1)); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.count_returned); - } - _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.total_entries); - } - _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.recordid); - } - _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r) -{ - ndr_print_struct(ndr, name, "netr_AccountDeltas"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_AccountDeltas"); - ndr->depth++; - ndr_print_ptr(ndr, "logon_server", r->in.logon_server); - ndr->depth++; - if (r->in.logon_server) { - ndr_print_string(ndr, "logon_server", r->in.logon_server); - } - ndr->depth--; - ndr_print_string(ndr, "computername", r->in.computername); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth--; - ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas); - ndr_print_uint32(ndr, "count", r->in.count); - ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_uint32(ndr, "buffersize", r->in.buffersize); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_AccountDeltas"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "buffer", r->out.buffer); - ndr->depth++; - ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer); - ndr->depth--; - ndr_print_ptr(ndr, "count_returned", r->out.count_returned); - ndr->depth++; - ndr_print_uint32(ndr, "count_returned", *r->out.count_returned); - ndr->depth--; - ndr_print_ptr(ndr, "total_entries", r->out.total_entries); - ndr->depth++; - ndr_print_uint32(ndr, "total_entries", *r->out.total_entries); - ndr->depth--; - ndr_print_ptr(ndr, "recordid", r->out.recordid); - ndr->depth++; - ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server)); - if (r->in.logon_server) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize)); - if (r->in.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - if (r->out.buffer == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - { - struct ndr_push *_ndr_buffer; - NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1)); - NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer)); - NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1)); - } - if (r->out.count_returned == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned)); - if (r->out.total_entries == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries)); - if (r->out.next_reference == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference)); - if (r->out.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r) -{ - uint32_t _ptr_logon_server; - TALLOC_CTX *_mem_save_logon_server_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_buffer_0; - TALLOC_CTX *_mem_save_count_returned_0; - TALLOC_CTX *_mem_save_total_entries_0; - TALLOC_CTX *_mem_save_next_reference_0; - TALLOC_CTX *_mem_save_recordid_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); - if (_ptr_logon_server) { - NDR_PULL_ALLOC(ndr, r->in.logon_server); - } else { - r->in.logon_server = NULL; - } - if (r->in.logon_server) { - _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); - if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.recordid); - } - _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - *r->out.return_authenticator = *r->in.return_authenticator; - NDR_PULL_ALLOC(ndr, r->out.buffer); - ZERO_STRUCTP(r->out.buffer); - NDR_PULL_ALLOC(ndr, r->out.count_returned); - ZERO_STRUCTP(r->out.count_returned); - NDR_PULL_ALLOC(ndr, r->out.total_entries); - ZERO_STRUCTP(r->out.total_entries); - NDR_PULL_ALLOC(ndr, r->out.next_reference); - ZERO_STRUCTP(r->out.next_reference); - NDR_PULL_ALLOC(ndr, r->out.recordid); - *r->out.recordid = *r->in.recordid; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.buffer); - } - _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC); - { - struct ndr_pull *_ndr_buffer; - NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1)); - NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer)); - NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1)); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.count_returned); - } - _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.total_entries); - } - _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.next_reference); - } - _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.recordid); - } - _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r) -{ - ndr_print_struct(ndr, name, "netr_AccountSync"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_AccountSync"); - ndr->depth++; - ndr_print_ptr(ndr, "logon_server", r->in.logon_server); - ndr->depth++; - if (r->in.logon_server) { - ndr_print_string(ndr, "logon_server", r->in.logon_server); - } - ndr->depth--; - ndr_print_string(ndr, "computername", r->in.computername); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth--; - ndr_print_uint32(ndr, "reference", r->in.reference); - ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_uint32(ndr, "buffersize", r->in.buffersize); - ndr_print_ptr(ndr, "recordid", r->in.recordid); - ndr->depth++; - ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_AccountSync"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "buffer", r->out.buffer); - ndr->depth++; - ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer); - ndr->depth--; - ndr_print_ptr(ndr, "count_returned", r->out.count_returned); - ndr->depth++; - ndr_print_uint32(ndr, "count_returned", *r->out.count_returned); - ndr->depth--; - ndr_print_ptr(ndr, "total_entries", r->out.total_entries); - ndr->depth++; - ndr_print_uint32(ndr, "total_entries", *r->out.total_entries); - ndr->depth--; - ndr_print_ptr(ndr, "next_reference", r->out.next_reference); - ndr->depth++; - ndr_print_uint32(ndr, "next_reference", *r->out.next_reference); - ndr->depth--; - ndr_print_ptr(ndr, "recordid", r->out.recordid); - ndr->depth++; - ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname)); - if (r->in.domainname) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - } - if (flags & NDR_OUT) { - if (r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - if (*r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_ref_ptr(ndr)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r) -{ - uint32_t _ptr_domainname; - uint32_t _ptr_dcname; - TALLOC_CTX *_mem_save_domainname_0; - TALLOC_CTX *_mem_save_dcname_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname)); - if (_ptr_domainname) { - NDR_PULL_ALLOC(ndr, r->in.domainname); - } else { - r->in.domainname = NULL; - } - if (r->in.domainname) { - _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname)); - if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0); - } - NDR_PULL_ALLOC(ndr, r->out.dcname); - ZERO_STRUCTP(r->out.dcname); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.dcname); - } - _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname)); - NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname)); - NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname)); - if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r) -{ - ndr_print_struct(ndr, name, "netr_GetDcName"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_GetDcName"); - ndr->depth++; - ndr_print_string(ndr, "logon_server", r->in.logon_server); - ndr_print_ptr(ndr, "domainname", r->in.domainname); - ndr->depth++; - if (r->in.domainname) { - ndr_print_string(ndr, "domainname", r->in.domainname); - } - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_GetDcName"); - ndr->depth++; - ndr_print_ptr(ndr, "dcname", r->out.dcname); - ndr->depth++; - ndr_print_ptr(ndr, "dcname", *r->out.dcname); - ndr->depth++; - ndr_print_string(ndr, "dcname", *r->out.dcname); - ndr->depth--; - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server)); - if (r->in.logon_server) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - } - if (flags & NDR_OUT) { - if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r) -{ - uint32_t _ptr_logon_server; - TALLOC_CTX *_mem_save_logon_server_0; - TALLOC_CTX *_mem_save_info_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); - if (_ptr_logon_server) { - NDR_PULL_ALLOC(ndr, r->in.logon_server); - } else { - r->in.logon_server = NULL; - } - if (r->in.logon_server) { - _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); - } - NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); - NDR_PULL_ALLOC(ndr, r->out.info); - ZERO_STRUCTP(r->out.info); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.info); - } - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r) -{ - ndr_print_struct(ndr, name, "netr_LogonControl"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonControl"); - ndr->depth++; - ndr_print_ptr(ndr, "logon_server", r->in.logon_server); - ndr->depth++; - if (r->in.logon_server) { - ndr_print_string(ndr, "logon_server", r->in.logon_server); - } - ndr->depth--; - ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code); - ndr_print_uint32(ndr, "level", r->in.level); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonControl"); - ndr->depth++; - ndr_print_ptr(ndr, "info", r->out.info); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.info, r->in.level); - ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info); - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server)); - if (r->in.logon_server) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname)); - if (r->in.domainname) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - } - if (flags & NDR_OUT) { - if (r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - if (*r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_ref_ptr(ndr)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r) -{ - uint32_t _ptr_logon_server; - uint32_t _ptr_domainname; - uint32_t _ptr_dcname; - TALLOC_CTX *_mem_save_logon_server_0; - TALLOC_CTX *_mem_save_domainname_0; - TALLOC_CTX *_mem_save_dcname_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); - if (_ptr_logon_server) { - NDR_PULL_ALLOC(ndr, r->in.logon_server); - } else { - r->in.logon_server = NULL; - } - if (r->in.logon_server) { - _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname)); - if (_ptr_domainname) { - NDR_PULL_ALLOC(ndr, r->in.domainname); - } else { - r->in.domainname = NULL; - } - if (r->in.domainname) { - _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname)); - if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0); - } - NDR_PULL_ALLOC(ndr, r->out.dcname); - ZERO_STRUCTP(r->out.dcname); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.dcname); - } - _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname)); - NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname)); - NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname)); - if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r) -{ - ndr_print_struct(ndr, name, "netr_GetAnyDCName"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_GetAnyDCName"); - ndr->depth++; - ndr_print_ptr(ndr, "logon_server", r->in.logon_server); - ndr->depth++; - if (r->in.logon_server) { - ndr_print_string(ndr, "logon_server", r->in.logon_server); - } - ndr->depth--; - ndr_print_ptr(ndr, "domainname", r->in.domainname); - ndr->depth++; - if (r->in.domainname) { - ndr_print_string(ndr, "domainname", r->in.domainname); - } - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_GetAnyDCName"); - ndr->depth++; - ndr_print_ptr(ndr, "dcname", r->out.dcname); - ndr->depth++; - ndr_print_ptr(ndr, "dcname", *r->out.dcname); - ndr->depth++; - ndr_print_string(ndr, "dcname", *r->out.dcname); - ndr->depth--; - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server)); - if (r->in.logon_server) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code)); - NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data)); - } - if (flags & NDR_OUT) { - if (r->out.query == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level)); - NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query)); - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r) -{ - uint32_t _ptr_logon_server; - TALLOC_CTX *_mem_save_logon_server_0; - TALLOC_CTX *_mem_save_query_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); - if (_ptr_logon_server) { - NDR_PULL_ALLOC(ndr, r->in.logon_server); - } else { - r->in.logon_server = NULL; - } - if (r->in.logon_server) { - _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code)); - NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data)); - NDR_PULL_ALLOC(ndr, r->out.query); - ZERO_STRUCTP(r->out.query); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.query); - } - _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level)); - NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r) -{ - ndr_print_struct(ndr, name, "netr_LogonControl2"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonControl2"); - ndr->depth++; - ndr_print_ptr(ndr, "logon_server", r->in.logon_server); - ndr->depth++; - if (r->in.logon_server) { - ndr_print_string(ndr, "logon_server", r->in.logon_server); - } - ndr->depth--; - ndr_print_uint32(ndr, "function_code", r->in.function_code); - ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code); - ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonControl2"); - ndr->depth++; - ndr_print_ptr(ndr, "query", r->out.query); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.query, r->in.level); - ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query); - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - if (r->in.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags)); - } - if (flags & NDR_OUT) { - if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - if (r->out.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r) -{ - uint32_t _ptr_server_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_credentials_0; - TALLOC_CTX *_mem_save_negotiate_flags_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.negotiate_flags); - } - _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.credentials); - *r->out.credentials = *r->in.credentials; - NDR_PULL_ALLOC(ndr, r->out.negotiate_flags); - *r->out.negotiate_flags = *r->in.negotiate_flags; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.negotiate_flags); - } - _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r) -{ - ndr_print_struct(ndr, name, "netr_ServerAuthenticate2"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "account_name", r->in.account_name); - ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); - ndr_print_string(ndr, "computer_name", r->in.computer_name); - ndr_print_ptr(ndr, "credentials", r->in.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); - ndr->depth--; - ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags); - ndr->depth++; - ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2"); - ndr->depth++; - ndr_print_ptr(ndr, "credentials", r->out.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->out.credentials); - ndr->depth--; - ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags); - ndr->depth++; - ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state)); - if (r->in.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - if (r->out.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array)); - if (r->out.delta_enum_array) { - NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - } - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r) -{ - uint32_t _ptr_delta_enum_array; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_sync_context_0; - TALLOC_CTX *_mem_save_delta_enum_array_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); - if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.sync_context); - } - _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - *r->out.return_authenticator = *r->in.return_authenticator; - NDR_PULL_ALLOC(ndr, r->out.sync_context); - *r->out.sync_context = *r->in.sync_context; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.sync_context); - } - _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array)); - if (_ptr_delta_enum_array) { - NDR_PULL_ALLOC(ndr, r->out.delta_enum_array); - } else { - r->out.delta_enum_array = NULL; - } - if (r->out.delta_enum_array) { - _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0); - NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0); - } - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r) -{ - ndr_print_struct(ndr, name, "netr_DatabaseSync2"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DatabaseSync2"); - ndr->depth++; - ndr_print_string(ndr, "logon_server", r->in.logon_server); - ndr_print_string(ndr, "computername", r->in.computername); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth--; - ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id); - ndr_print_uint16(ndr, "restart_state", r->in.restart_state); - ndr_print_ptr(ndr, "sync_context", r->in.sync_context); - ndr->depth++; - ndr_print_uint32(ndr, "sync_context", *r->in.sync_context); - ndr->depth--; - ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DatabaseSync2"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "sync_context", r->out.sync_context); - ndr->depth++; - ndr_print_uint32(ndr, "sync_context", *r->out.sync_context); - ndr->depth--; - ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array); - ndr->depth++; - if (r->out.delta_enum_array) { - ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array); - } - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry)); - if (r->in.change_log_entry) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size)); - NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array)); - if (r->out.delta_enum_array) { - NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - } - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r) -{ - uint32_t _ptr_change_log_entry; - uint32_t _ptr_delta_enum_array; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_change_log_entry_0; - TALLOC_CTX *_mem_save_delta_enum_array_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); - if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry)); - if (_ptr_change_log_entry) { - NDR_PULL_ALLOC(ndr, r->in.change_log_entry); - } else { - r->in.change_log_entry = NULL; - } - if (r->in.change_log_entry) { - _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry)); - NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)); - NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry))); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0); - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - *r->out.return_authenticator = *r->in.return_authenticator; - if (r->in.change_log_entry) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size)); - } - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array)); - if (_ptr_delta_enum_array) { - NDR_PULL_ALLOC(ndr, r->out.delta_enum_array); - } else { - r->out.delta_enum_array = NULL; - } - if (r->out.delta_enum_array) { - _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0); - NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0); - } - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r) -{ - ndr_print_struct(ndr, name, "netr_DatabaseRedo"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DatabaseRedo"); - ndr->depth++; - ndr_print_string(ndr, "logon_server", r->in.logon_server); - ndr_print_string(ndr, "computername", r->in.computername); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry); - ndr->depth++; - if (r->in.change_log_entry) { - ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size); - } - ndr->depth--; - ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DatabaseRedo"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array); - ndr->depth++; - if (r->out.delta_enum_array) { - ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array); - } - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server)); - if (r->in.logon_server) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code)); - NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data)); - } - if (flags & NDR_OUT) { - if (r->out.query == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level)); - NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query)); - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r) -{ - uint32_t _ptr_logon_server; - TALLOC_CTX *_mem_save_logon_server_0; - TALLOC_CTX *_mem_save_query_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server)); - if (_ptr_logon_server) { - NDR_PULL_ALLOC(ndr, r->in.logon_server); - } else { - r->in.logon_server = NULL; - } - if (r->in.logon_server) { - _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); - if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code)); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code)); - NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data)); - NDR_PULL_ALLOC(ndr, r->out.query); - ZERO_STRUCTP(r->out.query); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.query); - } - _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level)); - NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r) -{ - ndr_print_struct(ndr, name, "netr_LogonControl2Ex"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonControl2Ex"); - ndr->depth++; - ndr_print_ptr(ndr, "logon_server", r->in.logon_server); - ndr->depth++; - if (r->in.logon_server) { - ndr_print_string(ndr, "logon_server", r->in.logon_server); - } - ndr->depth--; - ndr_print_uint32(ndr, "function_code", r->in.function_code); - ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code); - ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonControl2Ex"); - ndr->depth++; - ndr_print_ptr(ndr, "query", r->out.query); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.query, r->in.level); - ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query); - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_push *ndr, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINS *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_pull *ndr, int flags, struct netr_NETRENUMERATETRUSTEDDOMAINS *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINS *r) -{ - ndr_print_struct(ndr, name, "netr_NETRENUMERATETRUSTEDDOMAINS"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRENUMERATETRUSTEDDOMAINS"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRENUMERATETRUSTEDDOMAINS"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc)); - if (r->in.server_unc) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name)); - if (r->in.domain_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid)); - if (r->in.domain_guid) { - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid)); - if (r->in.site_guid) { - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info)); - if (r->out.info) { - NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - } - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r) -{ - uint32_t _ptr_server_unc; - uint32_t _ptr_domain_name; - uint32_t _ptr_domain_guid; - uint32_t _ptr_site_guid; - uint32_t _ptr_info; - TALLOC_CTX *_mem_save_server_unc_0; - TALLOC_CTX *_mem_save_domain_name_0; - TALLOC_CTX *_mem_save_domain_guid_0; - TALLOC_CTX *_mem_save_site_guid_0; - TALLOC_CTX *_mem_save_info_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); - if (_ptr_server_unc) { - NDR_PULL_ALLOC(ndr, r->in.server_unc); - } else { - r->in.server_unc = NULL; - } - if (r->in.server_unc) { - _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); - if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); - if (_ptr_domain_name) { - NDR_PULL_ALLOC(ndr, r->in.domain_name); - } else { - r->in.domain_name = NULL; - } - if (r->in.domain_name) { - _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); - if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid)); - if (_ptr_domain_guid) { - NDR_PULL_ALLOC(ndr, r->in.domain_guid); - } else { - r->in.domain_guid = NULL; - } - if (r->in.domain_guid) { - _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid)); - if (_ptr_site_guid) { - NDR_PULL_ALLOC(ndr, r->in.site_guid); - } else { - r->in.site_guid = NULL; - } - if (r->in.site_guid) { - _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0); - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); - if (_ptr_info) { - NDR_PULL_ALLOC(ndr, r->out.info); - } else { - r->out.info = NULL; - } - if (r->out.info) { - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0); - NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0); - } - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r) -{ - ndr_print_struct(ndr, name, "netr_DsRGetDCName"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DsRGetDCName"); - ndr->depth++; - ndr_print_ptr(ndr, "server_unc", r->in.server_unc); - ndr->depth++; - if (r->in.server_unc) { - ndr_print_string(ndr, "server_unc", r->in.server_unc); - } - ndr->depth--; - ndr_print_ptr(ndr, "domain_name", r->in.domain_name); - ndr->depth++; - if (r->in.domain_name) { - ndr_print_string(ndr, "domain_name", r->in.domain_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid); - ndr->depth++; - if (r->in.domain_guid) { - ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid); - } - ndr->depth--; - ndr_print_ptr(ndr, "site_guid", r->in.site_guid); - ndr->depth++; - if (r->in.site_guid) { - ndr_print_GUID(ndr, "site_guid", r->in.site_guid); - } - ndr->depth--; - ndr_print_uint32(ndr, "flags", r->in.flags); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DsRGetDCName"); - ndr->depth++; - ndr_print_ptr(ndr, "info", r->out.info); - ndr->depth++; - if (r->out.info) { - ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info); - } - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r) -{ - ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r) -{ - ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRLOGONGETTRUSTRID(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTRUSTRID *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRLOGONGETTRUSTRID(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTRUSTRID *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRLOGONGETTRUSTRID(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTRUSTRID *r) -{ - ndr_print_struct(ndr, name, "netr_NETRLOGONGETTRUSTRID"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTRUSTRID"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTRUSTRID"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r) -{ - ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r) -{ - ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - if (r->in.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags)); - } - if (flags & NDR_OUT) { - if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - if (r->out.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags)); - if (r->out.rid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r) -{ - uint32_t _ptr_server_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_credentials_0; - TALLOC_CTX *_mem_save_negotiate_flags_0; - TALLOC_CTX *_mem_save_rid_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.negotiate_flags); - } - _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.credentials); - *r->out.credentials = *r->in.credentials; - NDR_PULL_ALLOC(ndr, r->out.negotiate_flags); - *r->out.negotiate_flags = *r->in.negotiate_flags; - NDR_PULL_ALLOC(ndr, r->out.rid); - ZERO_STRUCTP(r->out.rid); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.credentials); - } - _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.negotiate_flags); - } - _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.rid); - } - _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r) -{ - ndr_print_struct(ndr, name, "netr_ServerAuthenticate3"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "account_name", r->in.account_name); - ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); - ndr_print_string(ndr, "computer_name", r->in.computer_name); - ndr_print_ptr(ndr, "credentials", r->in.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->in.credentials); - ndr->depth--; - ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags); - ndr->depth++; - ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3"); - ndr->depth++; - ndr_print_ptr(ndr, "credentials", r->out.credentials); - ndr->depth++; - ndr_print_netr_Credential(ndr, "credentials", r->out.credentials); - ndr->depth--; - ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags); - ndr->depth++; - ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags); - ndr->depth--; - ndr_print_ptr(ndr, "rid", r->out.rid); - ndr->depth++; - ndr_print_uint32(ndr, "rid", *r->out.rid); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc)); - if (r->in.server_unc) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name)); - if (r->in.domain_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid)); - if (r->in.domain_guid) { - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name)); - if (r->in.site_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info)); - if (r->out.info) { - NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - } - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r) -{ - uint32_t _ptr_server_unc; - uint32_t _ptr_domain_name; - uint32_t _ptr_domain_guid; - uint32_t _ptr_site_name; - uint32_t _ptr_info; - TALLOC_CTX *_mem_save_server_unc_0; - TALLOC_CTX *_mem_save_domain_name_0; - TALLOC_CTX *_mem_save_domain_guid_0; - TALLOC_CTX *_mem_save_site_name_0; - TALLOC_CTX *_mem_save_info_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); - if (_ptr_server_unc) { - NDR_PULL_ALLOC(ndr, r->in.server_unc); - } else { - r->in.server_unc = NULL; - } - if (r->in.server_unc) { - _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); - if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); - if (_ptr_domain_name) { - NDR_PULL_ALLOC(ndr, r->in.domain_name); - } else { - r->in.domain_name = NULL; - } - if (r->in.domain_name) { - _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); - if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid)); - if (_ptr_domain_guid) { - NDR_PULL_ALLOC(ndr, r->in.domain_guid); - } else { - r->in.domain_guid = NULL; - } - if (r->in.domain_guid) { - _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name)); - if (_ptr_site_name) { - NDR_PULL_ALLOC(ndr, r->in.site_name); - } else { - r->in.site_name = NULL; - } - if (r->in.site_name) { - _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name)); - if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0); - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); - if (_ptr_info) { - NDR_PULL_ALLOC(ndr, r->out.info); - } else { - r->out.info = NULL; - } - if (r->out.info) { - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0); - NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0); - } - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r) -{ - ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx"); - ndr->depth++; - ndr_print_ptr(ndr, "server_unc", r->in.server_unc); - ndr->depth++; - if (r->in.server_unc) { - ndr_print_string(ndr, "server_unc", r->in.server_unc); - } - ndr->depth--; - ndr_print_ptr(ndr, "domain_name", r->in.domain_name); - ndr->depth++; - if (r->in.domain_name) { - ndr_print_string(ndr, "domain_name", r->in.domain_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid); - ndr->depth++; - if (r->in.domain_guid) { - ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid); - } - ndr->depth--; - ndr_print_ptr(ndr, "site_name", r->in.site_name); - ndr->depth++; - if (r->in.site_name) { - ndr_print_string(ndr, "site_name", r->in.site_name); - } - ndr->depth--; - ndr_print_uint32(ndr, "flags", r->in.flags); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx"); - ndr->depth++; - ndr_print_ptr(ndr, "info", r->out.info); - ndr->depth++; - if (r->out.info) { - ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info); - } - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name)); - if (r->in.computer_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - } - if (flags & NDR_OUT) { - if (r->out.site == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - if (*r->out.site == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_ref_ptr(ndr)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r) -{ - uint32_t _ptr_computer_name; - uint32_t _ptr_site; - TALLOC_CTX *_mem_save_computer_name_0; - TALLOC_CTX *_mem_save_site_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); - if (_ptr_computer_name) { - NDR_PULL_ALLOC(ndr, r->in.computer_name); - } else { - r->in.computer_name = NULL; - } - if (r->in.computer_name) { - _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); - } - NDR_PULL_ALLOC(ndr, r->out.site); - ZERO_STRUCTP(r->out.site); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.site); - } - _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_site)); - NDR_CHECK(ndr_pull_array_size(ndr, r->out.site)); - NDR_CHECK(ndr_pull_array_length(ndr, r->out.site)); - if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.site), ndr_get_array_length(ndr, r->out.site)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r) -{ - ndr_print_struct(ndr, name, "netr_DsRGetSiteName"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DsRGetSiteName"); - ndr->depth++; - ndr_print_ptr(ndr, "computer_name", r->in.computer_name); - ndr->depth++; - if (r->in.computer_name) { - ndr_print_string(ndr, "computer_name", r->in.computer_name); - } - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DsRGetSiteName"); - ndr->depth++; - ndr_print_ptr(ndr, "site", r->out.site); - ndr->depth++; - ndr_print_ptr(ndr, "site", *r->out.site); - ndr->depth++; - ndr_print_string(ndr, "site", *r->out.site); - ndr->depth--; - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name)); - if (r->in.computer_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - if (r->in.credential == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level)); - NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r) -{ - uint32_t _ptr_computer_name; - TALLOC_CTX *_mem_save_computer_name_0; - TALLOC_CTX *_mem_save_credential_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_info_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); - if (_ptr_computer_name) { - NDR_PULL_ALLOC(ndr, r->in.computer_name); - } else { - r->in.computer_name = NULL; - } - if (r->in.computer_name) { - _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); - } - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.credential); - } - _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level)); - NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - *r->out.return_authenticator = *r->in.return_authenticator; - NDR_PULL_ALLOC(ndr, r->out.info); - ZERO_STRUCTP(r->out.info); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.info); - } - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); - NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r) -{ - ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo"); - ndr->depth++; - ndr_print_string(ndr, "server_name", r->in.server_name); - ndr_print_ptr(ndr, "computer_name", r->in.computer_name); - ndr->depth++; - if (r->in.computer_name) { - ndr_print_string(ndr, "computer_name", r->in.computer_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "credential", r->in.credential); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); - ndr->depth--; - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth--; - ndr_print_uint32(ndr, "level", r->in.level); - ndr_print_set_switch_value(ndr, &r->in.query, r->in.level); - ndr_print_netr_DomainQuery(ndr, "query", &r->in.query); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_ptr(ndr, "info", r->out.info); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.info, r->in.level); - ndr_print_netr_DomainInfo(ndr, "info", r->out.info); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password)); - } - if (flags & NDR_OUT) { - if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r) -{ - uint32_t _ptr_server_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); - if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); - NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password)); - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - ZERO_STRUCTP(r->out.return_authenticator); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r) -{ - ndr_print_struct(ndr, name, "netr_ServerPasswordSet2"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_string(ndr, "account_name", r->in.account_name); - ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type); - ndr_print_string(ndr, "computer_name", r->in.computer_name); - ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential); - ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRSERVERPASSWORDGET(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERPASSWORDGET *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRSERVERPASSWORDGET(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERPASSWORDGET *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRSERVERPASSWORDGET(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERPASSWORDGET *r) -{ - ndr_print_struct(ndr, name, "netr_NETRSERVERPASSWORDGET"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRSERVERPASSWORDGET"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRSERVERPASSWORDGET"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r) -{ - ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DSRADDRESSTOSITENAMESW(struct ndr_push *ndr, int flags, const struct netr_DSRADDRESSTOSITENAMESW *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DSRADDRESSTOSITENAMESW(struct ndr_pull *ndr, int flags, struct netr_DSRADDRESSTOSITENAMESW *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DSRADDRESSTOSITENAMESW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRADDRESSTOSITENAMESW *r) -{ - ndr_print_struct(ndr, name, "netr_DSRADDRESSTOSITENAMESW"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DSRADDRESSTOSITENAMESW"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DSRADDRESSTOSITENAMESW"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc)); - if (r->in.server_unc) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account)); - if (r->in.client_account) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.client_account, ndr_charset_length(r->in.client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.mask)); - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name)); - if (r->in.domain_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid)); - if (r->in.domain_guid) { - NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name)); - if (r->in.site_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info)); - if (r->out.info) { - NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - } - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r) -{ - uint32_t _ptr_server_unc; - uint32_t _ptr_client_account; - uint32_t _ptr_domain_name; - uint32_t _ptr_domain_guid; - uint32_t _ptr_site_name; - uint32_t _ptr_info; - TALLOC_CTX *_mem_save_server_unc_0; - TALLOC_CTX *_mem_save_client_account_0; - TALLOC_CTX *_mem_save_domain_name_0; - TALLOC_CTX *_mem_save_domain_guid_0; - TALLOC_CTX *_mem_save_site_name_0; - TALLOC_CTX *_mem_save_info_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); - if (_ptr_server_unc) { - NDR_PULL_ALLOC(ndr, r->in.server_unc); - } else { - r->in.server_unc = NULL; - } - if (r->in.server_unc) { - _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); - if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account)); - if (_ptr_client_account) { - NDR_PULL_ALLOC(ndr, r->in.client_account); - } else { - r->in.client_account = NULL; - } - if (r->in.client_account) { - _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account)); - if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.client_account), ndr_get_array_length(ndr, &r->in.client_account)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_account, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0); - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.mask)); - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); - if (_ptr_domain_name) { - NDR_PULL_ALLOC(ndr, r->in.domain_name); - } else { - r->in.domain_name = NULL; - } - if (r->in.domain_name) { - _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); - if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid)); - if (_ptr_domain_guid) { - NDR_PULL_ALLOC(ndr, r->in.domain_guid); - } else { - r->in.domain_guid = NULL; - } - if (r->in.domain_guid) { - _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0); - NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name)); - if (_ptr_site_name) { - NDR_PULL_ALLOC(ndr, r->in.site_name); - } else { - r->in.site_name = NULL; - } - if (r->in.site_name) { - _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name)); - if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0); - } - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); - if (_ptr_info) { - NDR_PULL_ALLOC(ndr, r->out.info); - } else { - r->out.info = NULL; - } - if (r->out.info) { - _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0); - NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0); - } - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r) -{ - ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2"); - ndr->depth++; - ndr_print_ptr(ndr, "server_unc", r->in.server_unc); - ndr->depth++; - if (r->in.server_unc) { - ndr_print_string(ndr, "server_unc", r->in.server_unc); - } - ndr->depth--; - ndr_print_ptr(ndr, "client_account", r->in.client_account); - ndr->depth++; - if (r->in.client_account) { - ndr_print_string(ndr, "client_account", r->in.client_account); - } - ndr->depth--; - ndr_print_uint32(ndr, "mask", r->in.mask); - ndr_print_ptr(ndr, "domain_name", r->in.domain_name); - ndr->depth++; - if (r->in.domain_name) { - ndr_print_string(ndr, "domain_name", r->in.domain_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid); - ndr->depth++; - if (r->in.domain_guid) { - ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid); - } - ndr->depth--; - ndr_print_ptr(ndr, "site_name", r->in.site_name); - ndr->depth++; - if (r->in.site_name) { - ndr_print_string(ndr, "site_name", r->in.site_name); - } - ndr->depth--; - ndr_print_uint32(ndr, "flags", r->in.flags); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2"); - ndr->depth++; - ndr_print_ptr(ndr, "info", r->out.info); - ndr->depth++; - if (r->out.info) { - ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info); - } - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r) -{ - ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_push *ndr, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_pull *ndr, int flags, struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r) -{ - ndr_print_struct(ndr, name, "netr_NETRENUMERATETRUSTEDDOMAINSEX"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRENUMERATETRUSTEDDOMAINSEX"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRENUMERATETRUSTEDDOMAINSEX"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_push *ndr, int flags, const struct netr_DSRADDRESSTOSITENAMESEXW *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_pull *ndr, int flags, struct netr_DSRADDRESSTOSITENAMESEXW *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRADDRESSTOSITENAMESEXW *r) -{ - ndr_print_struct(ndr, name, "netr_DSRADDRESSTOSITENAMESEXW"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DSRADDRESSTOSITENAMESEXW"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DSRADDRESSTOSITENAMESEXW"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DSRGETDCSITECOVERAGEW(struct ndr_push *ndr, int flags, const struct netr_DSRGETDCSITECOVERAGEW *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DSRGETDCSITECOVERAGEW(struct ndr_pull *ndr, int flags, struct netr_DSRGETDCSITECOVERAGEW *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DSRGETDCSITECOVERAGEW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRGETDCSITECOVERAGEW *r) -{ - ndr_print_struct(ndr, name, "netr_DSRGETDCSITECOVERAGEW"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DSRGETDCSITECOVERAGEW"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DSRGETDCSITECOVERAGEW"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name)); - if (r->in.computer_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level)); - if (r->in.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags)); - } - if (flags & NDR_OUT) { - if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level)); - NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation)); - if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative)); - if (r->out.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r) -{ - uint32_t _ptr_server_name; - uint32_t _ptr_computer_name; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_computer_name_0; - TALLOC_CTX *_mem_save_validation_0; - TALLOC_CTX *_mem_save_authoritative_0; - TALLOC_CTX *_mem_save_flags_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); - if (_ptr_computer_name) { - NDR_PULL_ALLOC(ndr, r->in.computer_name); - } else { - r->in.computer_name = NULL; - } - if (r->in.computer_name) { - _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); - } - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.flags); - } - _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.validation); - ZERO_STRUCTP(r->out.validation); - NDR_PULL_ALLOC(ndr, r->out.authoritative); - ZERO_STRUCTP(r->out.authoritative); - NDR_PULL_ALLOC(ndr, r->out.flags); - *r->out.flags = *r->in.flags; - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.validation); - } - _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level)); - NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.authoritative); - } - _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.flags); - } - _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r) -{ - ndr_print_struct(ndr, name, "netr_LogonSamLogonEx"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "computer_name", r->in.computer_name); - ndr->depth++; - if (r->in.computer_name) { - ndr_print_string(ndr, "computer_name", r->in.computer_name); - } - ndr->depth--; - ndr_print_uint16(ndr, "logon_level", r->in.logon_level); - ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level); - ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon); - ndr_print_uint16(ndr, "validation_level", r->in.validation_level); - ndr_print_ptr(ndr, "flags", r->in.flags); - ndr->depth++; - ndr_print_uint32(ndr, "flags", *r->in.flags); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx"); - ndr->depth++; - ndr_print_ptr(ndr, "validation", r->out.validation); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level); - ndr_print_netr_Validation(ndr, "validation", r->out.validation); - ndr->depth--; - ndr_print_ptr(ndr, "authoritative", r->out.authoritative); - ndr->depth++; - ndr_print_uint8(ndr, "authoritative", *r->out.authoritative); - ndr->depth--; - ndr_print_ptr(ndr, "flags", r->out.flags); - ndr->depth++; - ndr_print_uint32(ndr, "flags", *r->out.flags); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r) -{ - uint32_t cntr_trusts_1; - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags)); - } - if (flags & NDR_OUT) { - if (r->out.count == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count)); - if (r->out.trusts == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count)); - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) { - if (r->out.trusts[cntr_trusts_1] == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_ref_ptr(ndr)); - } - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) { - NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts[cntr_trusts_1])); - } - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r) -{ - uint32_t _ptr_server_name; - uint32_t _ptr_trusts; - uint32_t cntr_trusts_1; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_count_0; - TALLOC_CTX *_mem_save_trusts_1; - TALLOC_CTX *_mem_save_trusts_2; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags)); - NDR_PULL_ALLOC(ndr, r->out.count); - ZERO_STRUCTP(r->out.count); - NDR_PULL_ALLOC_N(ndr, r->out.trusts, count); - memset(r->out.trusts, 0, count * sizeof(*r->out.trusts)); - } - if (flags & NDR_OUT) { - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.count); - } - _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_array_size(ndr, &r->out.trusts)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC_N(ndr, r->out.trusts, ndr_get_array_size(ndr, &r->out.trusts)); - } - _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, 0); - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) { - NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_trusts)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.trusts[cntr_trusts_1]); - } - } - for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) { - _mem_save_trusts_2 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts[cntr_trusts_1], LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts[cntr_trusts_1])); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_2, LIBNDR_FLAG_REF_ALLOC); - } - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0); - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - if (r->out.trusts) { - NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.trusts, r->out.count)); - } - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r) -{ - uint32_t cntr_trusts_1; - ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags); - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts"); - ndr->depth++; - ndr_print_ptr(ndr, "count", r->out.count); - ndr->depth++; - ndr_print_uint32(ndr, "count", *r->out.count); - ndr->depth--; - ndr_print_ptr(ndr, "trusts", r->out.trusts); - ndr->depth++; - ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->out.count); - ndr->depth++; - for (cntr_trusts_1=0;cntr_trusts_1<r->out.count;cntr_trusts_1++) { - char *idx_1=NULL; - asprintf(&idx_1, "[%d]", cntr_trusts_1); - if (idx_1) { - ndr_print_ptr(ndr, "trusts", r->out.trusts[cntr_trusts_1]); - ndr->depth++; - ndr_print_netr_DomainTrust(ndr, "trusts", r->out.trusts[cntr_trusts_1]); - ndr->depth--; - free(idx_1); - } - } - ndr->depth--; - ndr->depth--; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_push *ndr, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_pull *ndr, int flags, struct netr_DSRDEREGISTERDNSHOSTRECORDS *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r) -{ - ndr_print_struct(ndr, name, "netr_DSRDEREGISTERDNSHOSTRECORDS"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DSRDEREGISTERDNSHOSTRECORDS"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DSRDEREGISTERDNSHOSTRECORDS"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERTRUSTPASSWORDSGET *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERTRUSTPASSWORDSGET *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERTRUSTPASSWORDSGET *r) -{ - ndr_print_struct(ndr, name, "netr_NETRSERVERTRUSTPASSWORDSGET"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRSERVERTRUSTPASSWORDSGET"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRSERVERTRUSTPASSWORDSGET"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_push *ndr, int flags, const struct netr_DSRGETFORESTTRUSTINFORMATION *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_pull *ndr, int flags, struct netr_DSRGETFORESTTRUSTINFORMATION *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRGETFORESTTRUSTINFORMATION *r) -{ - ndr_print_struct(ndr, name, "netr_DSRGETFORESTTRUSTINFORMATION"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_DSRGETFORESTTRUSTINFORMATION"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_DSRGETFORESTTRUSTINFORMATION"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_push *ndr, int flags, const struct netr_NETRGETFORESTTRUSTINFORMATION *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_pull *ndr, int flags, struct netr_NETRGETFORESTTRUSTINFORMATION *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRGETFORESTTRUSTINFORMATION *r) -{ - ndr_print_struct(ndr, name, "netr_NETRGETFORESTTRUSTINFORMATION"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRGETFORESTTRUSTINFORMATION"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRGETFORESTTRUSTINFORMATION"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r) -{ - if (flags & NDR_IN) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name)); - if (r->in.server_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name)); - if (r->in.computer_name) { - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16))); - NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential)); - if (r->in.credential) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - } - NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator)); - if (r->in.return_authenticator) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - } - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level)); - NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level)); - if (r->in.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags)); - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator)); - if (r->out.return_authenticator) { - NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - } - if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level)); - NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation)); - if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative)); - if (r->out.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX; - NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags)); - NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r) -{ - uint32_t _ptr_server_name; - uint32_t _ptr_computer_name; - uint32_t _ptr_credential; - uint32_t _ptr_return_authenticator; - TALLOC_CTX *_mem_save_server_name_0; - TALLOC_CTX *_mem_save_computer_name_0; - TALLOC_CTX *_mem_save_credential_0; - TALLOC_CTX *_mem_save_return_authenticator_0; - TALLOC_CTX *_mem_save_validation_0; - TALLOC_CTX *_mem_save_authoritative_0; - TALLOC_CTX *_mem_save_flags_0; - if (flags & NDR_IN) { - ZERO_STRUCT(r->out); - - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); - if (_ptr_server_name) { - NDR_PULL_ALLOC(ndr, r->in.server_name); - } else { - r->in.server_name = NULL; - } - if (r->in.server_name) { - _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); - if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); - if (_ptr_computer_name) { - NDR_PULL_ALLOC(ndr, r->in.computer_name); - } else { - r->in.computer_name = NULL; - } - if (r->in.computer_name) { - _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); - NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); - NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); - if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { - return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); - } - NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); - NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential)); - if (_ptr_credential) { - NDR_PULL_ALLOC(ndr, r->in.credential); - } else { - r->in.credential = NULL; - } - if (r->in.credential) { - _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0); - } - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator)); - if (_ptr_return_authenticator) { - NDR_PULL_ALLOC(ndr, r->in.return_authenticator); - } else { - r->in.return_authenticator = NULL; - } - if (r->in.return_authenticator) { - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0); - } - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level)); - NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level)); - NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon)); - NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level)); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->in.flags); - } - _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC); - NDR_PULL_ALLOC(ndr, r->out.validation); - ZERO_STRUCTP(r->out.validation); - NDR_PULL_ALLOC(ndr, r->out.authoritative); - ZERO_STRUCTP(r->out.authoritative); - NDR_PULL_ALLOC(ndr, r->out.flags); - *r->out.flags = *r->in.flags; - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator)); - if (_ptr_return_authenticator) { - NDR_PULL_ALLOC(ndr, r->out.return_authenticator); - } else { - r->out.return_authenticator = NULL; - } - if (r->out.return_authenticator) { - _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0); - NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0); - } - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.validation); - } - _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level)); - NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.authoritative); - } - _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC); - if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { - NDR_PULL_ALLOC(ndr, r->out.flags); - } - _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr); - NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags)); - NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC); - NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r) -{ - ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags"); - ndr->depth++; - ndr_print_ptr(ndr, "server_name", r->in.server_name); - ndr->depth++; - if (r->in.server_name) { - ndr_print_string(ndr, "server_name", r->in.server_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "computer_name", r->in.computer_name); - ndr->depth++; - if (r->in.computer_name) { - ndr_print_string(ndr, "computer_name", r->in.computer_name); - } - ndr->depth--; - ndr_print_ptr(ndr, "credential", r->in.credential); - ndr->depth++; - if (r->in.credential) { - ndr_print_netr_Authenticator(ndr, "credential", r->in.credential); - } - ndr->depth--; - ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator); - ndr->depth++; - if (r->in.return_authenticator) { - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator); - } - ndr->depth--; - ndr_print_uint16(ndr, "logon_level", r->in.logon_level); - ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level); - ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon); - ndr_print_uint16(ndr, "validation_level", r->in.validation_level); - ndr_print_ptr(ndr, "flags", r->in.flags); - ndr->depth++; - ndr_print_uint32(ndr, "flags", *r->in.flags); - ndr->depth--; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags"); - ndr->depth++; - ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator); - ndr->depth++; - if (r->out.return_authenticator) { - ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator); - } - ndr->depth--; - ndr_print_ptr(ndr, "validation", r->out.validation); - ndr->depth++; - ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level); - ndr_print_netr_Validation(ndr, "validation", r->out.validation); - ndr->depth--; - ndr_print_ptr(ndr, "authoritative", r->out.authoritative); - ndr->depth++; - ndr_print_uint8(ndr, "authoritative", *r->out.authoritative); - ndr->depth--; - ndr_print_ptr(ndr, "flags", r->out.flags); - ndr->depth++; - ndr_print_uint32(ndr, "flags", *r->out.flags); - ndr->depth--; - ndr_print_NTSTATUS(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -NTSTATUS ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result)); - } - return NT_STATUS_OK; -} - -NTSTATUS ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r) -{ - if (flags & NDR_IN) { - } - if (flags & NDR_OUT) { - NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); - } - return NT_STATUS_OK; -} - -_PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r) -{ - ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO"); - ndr->depth++; - if (flags & NDR_SET_VALUES) { - ndr->flags |= LIBNDR_PRINT_SET_VALUES; - } - if (flags & NDR_IN) { - ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO"); - ndr->depth++; - ndr->depth--; - } - if (flags & NDR_OUT) { - ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO"); - ndr->depth++; - ndr_print_WERROR(ndr, "result", r->out.result); - ndr->depth--; - } - ndr->depth--; -} - -const struct dcerpc_interface_call netlogon_calls[] = { - { - "netr_LogonUasLogon", - sizeof(struct netr_LogonUasLogon), - (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon, - (ndr_print_function_t) ndr_print_netr_LogonUasLogon, - False, - }, - { - "netr_LogonUasLogoff", - sizeof(struct netr_LogonUasLogoff), - (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff, - (ndr_print_function_t) ndr_print_netr_LogonUasLogoff, - False, - }, - { - "netr_LogonSamLogon", - sizeof(struct netr_LogonSamLogon), - (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon, - (ndr_print_function_t) ndr_print_netr_LogonSamLogon, - False, - }, - { - "netr_LogonSamLogoff", - sizeof(struct netr_LogonSamLogoff), - (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff, - (ndr_print_function_t) ndr_print_netr_LogonSamLogoff, - False, - }, - { - "netr_ServerReqChallenge", - sizeof(struct netr_ServerReqChallenge), - (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge, - (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge, - (ndr_print_function_t) ndr_print_netr_ServerReqChallenge, - False, - }, - { - "netr_ServerAuthenticate", - sizeof(struct netr_ServerAuthenticate), - (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate, - (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate, - (ndr_print_function_t) ndr_print_netr_ServerAuthenticate, - False, - }, - { - "netr_ServerPasswordSet", - sizeof(struct netr_ServerPasswordSet), - (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet, - (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet, - (ndr_print_function_t) ndr_print_netr_ServerPasswordSet, - False, - }, - { - "netr_DatabaseDeltas", - sizeof(struct netr_DatabaseDeltas), - (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas, - (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas, - (ndr_print_function_t) ndr_print_netr_DatabaseDeltas, - False, - }, - { - "netr_DatabaseSync", - sizeof(struct netr_DatabaseSync), - (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync, - (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync, - (ndr_print_function_t) ndr_print_netr_DatabaseSync, - False, - }, - { - "netr_AccountDeltas", - sizeof(struct netr_AccountDeltas), - (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas, - (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas, - (ndr_print_function_t) ndr_print_netr_AccountDeltas, - False, - }, - { - "netr_AccountSync", - sizeof(struct netr_AccountSync), - (ndr_push_flags_fn_t) ndr_push_netr_AccountSync, - (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync, - (ndr_print_function_t) ndr_print_netr_AccountSync, - False, - }, - { - "netr_GetDcName", - sizeof(struct netr_GetDcName), - (ndr_push_flags_fn_t) ndr_push_netr_GetDcName, - (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName, - (ndr_print_function_t) ndr_print_netr_GetDcName, - False, - }, - { - "netr_LogonControl", - sizeof(struct netr_LogonControl), - (ndr_push_flags_fn_t) ndr_push_netr_LogonControl, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl, - (ndr_print_function_t) ndr_print_netr_LogonControl, - False, - }, - { - "netr_GetAnyDCName", - sizeof(struct netr_GetAnyDCName), - (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName, - (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName, - (ndr_print_function_t) ndr_print_netr_GetAnyDCName, - False, - }, - { - "netr_LogonControl2", - sizeof(struct netr_LogonControl2), - (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2, - (ndr_print_function_t) ndr_print_netr_LogonControl2, - False, - }, - { - "netr_ServerAuthenticate2", - sizeof(struct netr_ServerAuthenticate2), - (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2, - (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2, - (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2, - False, - }, - { - "netr_DatabaseSync2", - sizeof(struct netr_DatabaseSync2), - (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2, - (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2, - (ndr_print_function_t) ndr_print_netr_DatabaseSync2, - False, - }, - { - "netr_DatabaseRedo", - sizeof(struct netr_DatabaseRedo), - (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo, - (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo, - (ndr_print_function_t) ndr_print_netr_DatabaseRedo, - False, - }, - { - "netr_LogonControl2Ex", - sizeof(struct netr_LogonControl2Ex), - (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex, - (ndr_print_function_t) ndr_print_netr_LogonControl2Ex, - False, - }, - { - "netr_NETRENUMERATETRUSTEDDOMAINS", - sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINS), - (ndr_push_flags_fn_t) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS, - (ndr_print_function_t) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS, - False, - }, - { - "netr_DsRGetDCName", - sizeof(struct netr_DsRGetDCName), - (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName, - (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName, - (ndr_print_function_t) ndr_print_netr_DsRGetDCName, - False, - }, - { - "netr_NETRLOGONDUMMYROUTINE1", - sizeof(struct netr_NETRLOGONDUMMYROUTINE1), - (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1, - (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1, - False, - }, - { - "netr_NETRLOGONSETSERVICEBITS", - sizeof(struct netr_NETRLOGONSETSERVICEBITS), - (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS, - (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS, - False, - }, - { - "netr_NETRLOGONGETTRUSTRID", - sizeof(struct netr_NETRLOGONGETTRUSTRID), - (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTRUSTRID, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTRUSTRID, - (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTRUSTRID, - False, - }, - { - "netr_NETRLOGONCOMPUTESERVERDIGEST", - sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST), - (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST, - (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST, - False, - }, - { - "netr_NETRLOGONCOMPUTECLIENTDIGEST", - sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST), - (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST, - (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST, - False, - }, - { - "netr_ServerAuthenticate3", - sizeof(struct netr_ServerAuthenticate3), - (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3, - (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3, - (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3, - False, - }, - { - "netr_DsRGetDCNameEx", - sizeof(struct netr_DsRGetDCNameEx), - (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx, - (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx, - (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx, - False, - }, - { - "netr_DsRGetSiteName", - sizeof(struct netr_DsRGetSiteName), - (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName, - (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName, - (ndr_print_function_t) ndr_print_netr_DsRGetSiteName, - False, - }, - { - "netr_LogonGetDomainInfo", - sizeof(struct netr_LogonGetDomainInfo), - (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo, - (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo, - False, - }, - { - "netr_ServerPasswordSet2", - sizeof(struct netr_ServerPasswordSet2), - (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2, - (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2, - (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2, - False, - }, - { - "netr_NETRSERVERPASSWORDGET", - sizeof(struct netr_NETRSERVERPASSWORDGET), - (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERPASSWORDGET, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERPASSWORDGET, - (ndr_print_function_t) ndr_print_netr_NETRSERVERPASSWORDGET, - False, - }, - { - "netr_NETRLOGONSENDTOSAM", - sizeof(struct netr_NETRLOGONSENDTOSAM), - (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM, - (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM, - False, - }, - { - "netr_DSRADDRESSTOSITENAMESW", - sizeof(struct netr_DSRADDRESSTOSITENAMESW), - (ndr_push_flags_fn_t) ndr_push_netr_DSRADDRESSTOSITENAMESW, - (ndr_pull_flags_fn_t) ndr_pull_netr_DSRADDRESSTOSITENAMESW, - (ndr_print_function_t) ndr_print_netr_DSRADDRESSTOSITENAMESW, - False, - }, - { - "netr_DsRGetDCNameEx2", - sizeof(struct netr_DsRGetDCNameEx2), - (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2, - (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2, - (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2, - False, - }, - { - "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN", - sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN), - (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, - (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, - False, - }, - { - "netr_NETRENUMERATETRUSTEDDOMAINSEX", - sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINSEX), - (ndr_push_flags_fn_t) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX, - (ndr_print_function_t) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX, - False, - }, - { - "netr_DSRADDRESSTOSITENAMESEXW", - sizeof(struct netr_DSRADDRESSTOSITENAMESEXW), - (ndr_push_flags_fn_t) ndr_push_netr_DSRADDRESSTOSITENAMESEXW, - (ndr_pull_flags_fn_t) ndr_pull_netr_DSRADDRESSTOSITENAMESEXW, - (ndr_print_function_t) ndr_print_netr_DSRADDRESSTOSITENAMESEXW, - False, - }, - { - "netr_DSRGETDCSITECOVERAGEW", - sizeof(struct netr_DSRGETDCSITECOVERAGEW), - (ndr_push_flags_fn_t) ndr_push_netr_DSRGETDCSITECOVERAGEW, - (ndr_pull_flags_fn_t) ndr_pull_netr_DSRGETDCSITECOVERAGEW, - (ndr_print_function_t) ndr_print_netr_DSRGETDCSITECOVERAGEW, - False, - }, - { - "netr_LogonSamLogonEx", - sizeof(struct netr_LogonSamLogonEx), - (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx, - (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx, - False, - }, - { - "netr_DsrEnumerateDomainTrusts", - sizeof(struct netr_DsrEnumerateDomainTrusts), - (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts, - (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts, - (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts, - False, - }, - { - "netr_DSRDEREGISTERDNSHOSTRECORDS", - sizeof(struct netr_DSRDEREGISTERDNSHOSTRECORDS), - (ndr_push_flags_fn_t) ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS, - (ndr_pull_flags_fn_t) ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS, - (ndr_print_function_t) ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS, - False, - }, - { - "netr_NETRSERVERTRUSTPASSWORDSGET", - sizeof(struct netr_NETRSERVERTRUSTPASSWORDSGET), - (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET, - (ndr_print_function_t) ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET, - False, - }, - { - "netr_DSRGETFORESTTRUSTINFORMATION", - sizeof(struct netr_DSRGETFORESTTRUSTINFORMATION), - (ndr_push_flags_fn_t) ndr_push_netr_DSRGETFORESTTRUSTINFORMATION, - (ndr_pull_flags_fn_t) ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION, - (ndr_print_function_t) ndr_print_netr_DSRGETFORESTTRUSTINFORMATION, - False, - }, - { - "netr_NETRGETFORESTTRUSTINFORMATION", - sizeof(struct netr_NETRGETFORESTTRUSTINFORMATION), - (ndr_push_flags_fn_t) ndr_push_netr_NETRGETFORESTTRUSTINFORMATION, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION, - (ndr_print_function_t) ndr_print_netr_NETRGETFORESTTRUSTINFORMATION, - False, - }, - { - "netr_LogonSamLogonWithFlags", - sizeof(struct netr_LogonSamLogonWithFlags), - (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags, - (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags, - (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags, - False, - }, - { - "netr_NETRSERVERGETTRUSTINFO", - sizeof(struct netr_NETRSERVERGETTRUSTINFO), - (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO, - (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO, - (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO, - False, - }, - { NULL, 0, NULL, NULL, NULL, False } -}; - -const char * const netlogon_endpoint_strings[] = { - "ncacn_np:[\\pipe\\netlogon]", - "ncacn_ip_tcp:", - "ncalrpc:", -}; - -const struct dcerpc_endpoint_list netlogon_endpoints = { - .count = 3, - .names = netlogon_endpoint_strings -}; - -const char * const netlogon_authservice_strings[] = { - "host", -}; - -const struct dcerpc_authservice_list netlogon_authservices = { - .count = 3, - .names = netlogon_authservice_strings -}; - - -const struct dcerpc_interface_table dcerpc_table_netlogon = { - .name = "netlogon", - .syntax_id = { - {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}}, - DCERPC_NETLOGON_VERSION - }, - .helpstring = DCERPC_NETLOGON_HELPSTRING, - .num_calls = 47, - .calls = netlogon_calls, - .endpoints = &netlogon_endpoints, - .authservices = &netlogon_authservices -}; - |