LCOV - code coverage report
Current view: top level - bin/default/librpc/gen_ndr - ndr_dnsserver.c (source / functions) Hit Total Coverage
Test: coverage report for abartlet/fix-coverage dd10fb34 Lines: 2628 8755 30.0 %
Date: 2021-09-23 10:06:22 Functions: 77 222 34.7 %

          Line data    Source code
       1             : /* parser auto-generated by pidl */
       2             : 
       3             : #include "includes.h"
       4             : #include "bin/default/librpc/gen_ndr/ndr_dnsserver.h"
       5             : 
       6             : #include "librpc/gen_ndr/ndr_misc.h"
       7             : #include "librpc/gen_ndr/ndr_dnsp.h"
       8        6964 : static enum ndr_err_code ndr_push_DNS_RPC_CLIENT_VERSION(struct ndr_push *ndr, int ndr_flags, enum DNS_RPC_CLIENT_VERSION r)
       9             : {
      10        6964 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
      11        6964 :         return NDR_ERR_SUCCESS;
      12             : }
      13             : 
      14        6876 : static enum ndr_err_code ndr_pull_DNS_RPC_CLIENT_VERSION(struct ndr_pull *ndr, int ndr_flags, enum DNS_RPC_CLIENT_VERSION *r)
      15             : {
      16             :         uint32_t v;
      17        6876 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
      18        6876 :         *r = v;
      19        6876 :         return NDR_ERR_SUCCESS;
      20             : }
      21             : 
      22           2 : _PUBLIC_ void ndr_print_DNS_RPC_CLIENT_VERSION(struct ndr_print *ndr, const char *name, enum DNS_RPC_CLIENT_VERSION r)
      23             : {
      24           2 :         const char *val = NULL;
      25             : 
      26           2 :         switch (r) {
      27           0 :                 case DNS_CLIENT_VERSION_W2K: val = "DNS_CLIENT_VERSION_W2K"; break;
      28           0 :                 case DNS_CLIENT_VERSION_DOTNET: val = "DNS_CLIENT_VERSION_DOTNET"; break;
      29           2 :                 case DNS_CLIENT_VERSION_LONGHORN: val = "DNS_CLIENT_VERSION_LONGHORN"; break;
      30             :         }
      31           2 :         ndr_print_enum(ndr, name, "ENUM", val, r);
      32           2 : }
      33             : 
      34           0 : static enum ndr_err_code ndr_push_DNS_RPC_BUFFER(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_BUFFER *r)
      35             : {
      36           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      37           0 :         if (ndr_flags & NDR_SCALARS) {
      38           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->dwLength));
      39           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
      40           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLength));
      41           0 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Buffer, r->dwLength));
      42           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
      43             :         }
      44           0 :         if (ndr_flags & NDR_BUFFERS) {
      45             :         }
      46           0 :         return NDR_ERR_SUCCESS;
      47             : }
      48             : 
      49           0 : static enum ndr_err_code ndr_pull_DNS_RPC_BUFFER(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_BUFFER *r)
      50             : {
      51           0 :         uint32_t size_Buffer_0 = 0;
      52           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
      53           0 :         if (ndr_flags & NDR_SCALARS) {
      54           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->Buffer));
      55           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
      56           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLength));
      57           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->Buffer, &size_Buffer_0));
      58           0 :                 NDR_PULL_ALLOC_N(ndr, r->Buffer, size_Buffer_0);
      59           0 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Buffer, size_Buffer_0));
      60           0 :                 if (r->Buffer) {
      61           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->Buffer, r->dwLength));
      62             :                 }
      63           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
      64             :         }
      65           0 :         if (ndr_flags & NDR_BUFFERS) {
      66             :         }
      67           0 :         return NDR_ERR_SUCCESS;
      68             : }
      69             : 
      70           0 : _PUBLIC_ void ndr_print_DNS_RPC_BUFFER(struct ndr_print *ndr, const char *name, const struct DNS_RPC_BUFFER *r)
      71             : {
      72           0 :         ndr_print_struct(ndr, name, "DNS_RPC_BUFFER");
      73           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
      74           0 :         ndr->depth++;
      75           0 :         ndr_print_uint32(ndr, "dwLength", r->dwLength);
      76           0 :         ndr_print_array_uint8(ndr, "Buffer", r->Buffer, r->dwLength);
      77           0 :         ndr->depth--;
      78             : }
      79             : 
      80           0 : static enum ndr_err_code ndr_push_DNS_RPC_UTF8_STRING_LIST(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_UTF8_STRING_LIST *r)
      81             : {
      82             :         uint32_t cntr_pszStrings_0;
      83           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      84           0 :         if (ndr_flags & NDR_SCALARS) {
      85           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->dwCount));
      86           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
      87           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwCount));
      88           0 :                 for (cntr_pszStrings_0 = 0; cntr_pszStrings_0 < (r->dwCount); cntr_pszStrings_0++) {
      89           0 :                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszStrings[cntr_pszStrings_0]));
      90             :                 }
      91           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
      92             :         }
      93           0 :         if (ndr_flags & NDR_BUFFERS) {
      94           0 :                 for (cntr_pszStrings_0 = 0; cntr_pszStrings_0 < (r->dwCount); cntr_pszStrings_0++) {
      95           0 :                         if (r->pszStrings[cntr_pszStrings_0]) {
      96           0 :                                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszStrings[cntr_pszStrings_0], CH_UTF8)));
      97           0 :                                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
      98           0 :                                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszStrings[cntr_pszStrings_0], CH_UTF8)));
      99           0 :                                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszStrings[cntr_pszStrings_0], ndr_charset_length(r->pszStrings[cntr_pszStrings_0], CH_UTF8), sizeof(uint8_t), CH_UTF8));
     100             :                         }
     101             :                 }
     102             :         }
     103           0 :         return NDR_ERR_SUCCESS;
     104             : }
     105             : 
     106           0 : static enum ndr_err_code ndr_pull_DNS_RPC_UTF8_STRING_LIST(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_UTF8_STRING_LIST *r)
     107             : {
     108             :         uint32_t _ptr_pszStrings;
     109           0 :         uint32_t size_pszStrings_0 = 0;
     110             :         uint32_t cntr_pszStrings_0;
     111           0 :         uint32_t size_pszStrings_2 = 0;
     112           0 :         uint32_t length_pszStrings_2 = 0;
     113           0 :         TALLOC_CTX *_mem_save_pszStrings_0 = NULL;
     114           0 :         TALLOC_CTX *_mem_save_pszStrings_1 = NULL;
     115           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     116           0 :         if (ndr_flags & NDR_SCALARS) {
     117           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->pszStrings));
     118           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     119           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwCount));
     120           0 :                 if (r->dwCount > 10000) {
     121           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
     122             :                 }
     123           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->pszStrings, &size_pszStrings_0));
     124           0 :                 NDR_PULL_ALLOC_N(ndr, r->pszStrings, size_pszStrings_0);
     125           0 :                 _mem_save_pszStrings_0 = NDR_PULL_GET_MEM_CTX(ndr);
     126           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->pszStrings, 0);
     127           0 :                 for (cntr_pszStrings_0 = 0; cntr_pszStrings_0 < (size_pszStrings_0); cntr_pszStrings_0++) {
     128           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszStrings));
     129           0 :                         if (_ptr_pszStrings) {
     130           0 :                                 NDR_PULL_ALLOC(ndr, r->pszStrings[cntr_pszStrings_0]);
     131             :                         } else {
     132           0 :                                 r->pszStrings[cntr_pszStrings_0] = NULL;
     133             :                         }
     134             :                 }
     135           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszStrings_0, 0);
     136           0 :                 if (r->pszStrings) {
     137           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pszStrings, r->dwCount));
     138             :                 }
     139           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     140             :         }
     141           0 :         if (ndr_flags & NDR_BUFFERS) {
     142           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->pszStrings, &size_pszStrings_0));
     143           0 :                 _mem_save_pszStrings_0 = NDR_PULL_GET_MEM_CTX(ndr);
     144           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->pszStrings, 0);
     145           0 :                 for (cntr_pszStrings_0 = 0; cntr_pszStrings_0 < (size_pszStrings_0); cntr_pszStrings_0++) {
     146           0 :                         if (r->pszStrings[cntr_pszStrings_0]) {
     147           0 :                                 _mem_save_pszStrings_1 = NDR_PULL_GET_MEM_CTX(ndr);
     148           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->pszStrings[cntr_pszStrings_0], 0);
     149           0 :                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->pszStrings[cntr_pszStrings_0]));
     150           0 :                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->pszStrings[cntr_pszStrings_0]));
     151           0 :                                 NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszStrings[cntr_pszStrings_0], &size_pszStrings_2));
     152           0 :                                 NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszStrings[cntr_pszStrings_0], &length_pszStrings_2));
     153           0 :                                 if (length_pszStrings_2 > size_pszStrings_2) {
     154           0 :                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszStrings_2, length_pszStrings_2);
     155             :                                 }
     156           0 :                                 NDR_CHECK(ndr_check_string_terminator(ndr, length_pszStrings_2, sizeof(uint8_t)));
     157           0 :                                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszStrings[cntr_pszStrings_0], length_pszStrings_2, sizeof(uint8_t), CH_UTF8));
     158           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszStrings_1, 0);
     159             :                         }
     160             :                 }
     161           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszStrings_0, 0);
     162           0 :                 for (cntr_pszStrings_0 = 0; cntr_pszStrings_0 < (size_pszStrings_0); cntr_pszStrings_0++) {
     163             :                 }
     164             :         }
     165           0 :         return NDR_ERR_SUCCESS;
     166             : }
     167             : 
     168           0 : _PUBLIC_ void ndr_print_DNS_RPC_UTF8_STRING_LIST(struct ndr_print *ndr, const char *name, const struct DNS_RPC_UTF8_STRING_LIST *r)
     169             : {
     170             :         uint32_t cntr_pszStrings_0;
     171           0 :         ndr_print_struct(ndr, name, "DNS_RPC_UTF8_STRING_LIST");
     172           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     173           0 :         ndr->depth++;
     174           0 :         ndr_print_uint32(ndr, "dwCount", r->dwCount);
     175           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "pszStrings", (int)r->dwCount);
     176           0 :         ndr->depth++;
     177           0 :         for (cntr_pszStrings_0 = 0; cntr_pszStrings_0 < (r->dwCount); cntr_pszStrings_0++) {
     178           0 :                 ndr_print_ptr(ndr, "pszStrings", r->pszStrings[cntr_pszStrings_0]);
     179           0 :                 ndr->depth++;
     180           0 :                 if (r->pszStrings[cntr_pszStrings_0]) {
     181           0 :                         ndr_print_string(ndr, "pszStrings", r->pszStrings[cntr_pszStrings_0]);
     182             :                 }
     183           0 :                 ndr->depth--;
     184             :         }
     185           0 :         ndr->depth--;
     186           0 :         ndr->depth--;
     187             : }
     188             : 
     189         793 : static enum ndr_err_code ndr_push_DNS_RPC_NAME_AND_PARAM(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_NAME_AND_PARAM *r)
     190             : {
     191         793 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     192         793 :         if (ndr_flags & NDR_SCALARS) {
     193         793 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     194         793 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwParam));
     195         793 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszNodeName));
     196         793 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     197             :         }
     198         793 :         if (ndr_flags & NDR_BUFFERS) {
     199         793 :                 if (r->pszNodeName) {
     200         793 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszNodeName, CH_UTF8)));
     201         793 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
     202         793 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszNodeName, CH_UTF8)));
     203         793 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszNodeName, ndr_charset_length(r->pszNodeName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
     204             :                 }
     205             :         }
     206         793 :         return NDR_ERR_SUCCESS;
     207             : }
     208             : 
     209         793 : static enum ndr_err_code ndr_pull_DNS_RPC_NAME_AND_PARAM(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_NAME_AND_PARAM *r)
     210             : {
     211             :         uint32_t _ptr_pszNodeName;
     212         793 :         uint32_t size_pszNodeName_1 = 0;
     213         793 :         uint32_t length_pszNodeName_1 = 0;
     214         793 :         TALLOC_CTX *_mem_save_pszNodeName_0 = NULL;
     215         793 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     216         793 :         if (ndr_flags & NDR_SCALARS) {
     217         793 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     218         793 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwParam));
     219         793 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszNodeName));
     220         793 :                 if (_ptr_pszNodeName) {
     221         793 :                         NDR_PULL_ALLOC(ndr, r->pszNodeName);
     222             :                 } else {
     223           0 :                         r->pszNodeName = NULL;
     224             :                 }
     225         793 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     226             :         }
     227         793 :         if (ndr_flags & NDR_BUFFERS) {
     228         793 :                 if (r->pszNodeName) {
     229         793 :                         _mem_save_pszNodeName_0 = NDR_PULL_GET_MEM_CTX(ndr);
     230         793 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszNodeName, 0);
     231         793 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszNodeName));
     232         793 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszNodeName));
     233         793 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszNodeName, &size_pszNodeName_1));
     234         793 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszNodeName, &length_pszNodeName_1));
     235         793 :                         if (length_pszNodeName_1 > size_pszNodeName_1) {
     236           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszNodeName_1, length_pszNodeName_1);
     237             :                         }
     238         793 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszNodeName_1, sizeof(uint8_t)));
     239         793 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszNodeName, length_pszNodeName_1, sizeof(uint8_t), CH_UTF8));
     240         793 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszNodeName_0, 0);
     241             :                 }
     242             :         }
     243         793 :         return NDR_ERR_SUCCESS;
     244             : }
     245             : 
     246           0 : _PUBLIC_ void ndr_print_DNS_RPC_NAME_AND_PARAM(struct ndr_print *ndr, const char *name, const struct DNS_RPC_NAME_AND_PARAM *r)
     247             : {
     248           0 :         ndr_print_struct(ndr, name, "DNS_RPC_NAME_AND_PARAM");
     249           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     250           0 :         ndr->depth++;
     251           0 :         ndr_print_uint32(ndr, "dwParam", r->dwParam);
     252           0 :         ndr_print_ptr(ndr, "pszNodeName", r->pszNodeName);
     253           0 :         ndr->depth++;
     254           0 :         if (r->pszNodeName) {
     255           0 :                 ndr_print_string(ndr, "pszNodeName", r->pszNodeName);
     256             :         }
     257           0 :         ndr->depth--;
     258           0 :         ndr->depth--;
     259             : }
     260             : 
     261       27148 : _PUBLIC_ enum ndr_err_code ndr_push_DNS_RPC_NAME(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_NAME *r)
     262             : {
     263       27148 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     264       27148 :         if (ndr_flags & NDR_SCALARS) {
     265       27148 :                 NDR_CHECK(ndr_push_align(ndr, 1));
     266       27148 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, strlen(r->str)));
     267       27148 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str, strlen(r->str), sizeof(uint8_t), CH_UNIX));
     268       27148 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
     269             :         }
     270       27148 :         if (ndr_flags & NDR_BUFFERS) {
     271             :         }
     272       27148 :         return NDR_ERR_SUCCESS;
     273             : }
     274             : 
     275        5031 : _PUBLIC_ enum ndr_err_code ndr_pull_DNS_RPC_NAME(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_NAME *r)
     276             : {
     277        5031 :         uint32_t size_str_0 = 0;
     278        5031 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     279        5031 :         if (ndr_flags & NDR_SCALARS) {
     280        5031 :                 NDR_CHECK(ndr_pull_align(ndr, 1));
     281        5031 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->len));
     282        5031 :                 size_str_0 = r->len;
     283        5031 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str, size_str_0, sizeof(uint8_t), CH_UNIX));
     284        5031 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
     285             :         }
     286        5031 :         if (ndr_flags & NDR_BUFFERS) {
     287             :         }
     288        5031 :         return NDR_ERR_SUCCESS;
     289             : }
     290             : 
     291           0 : static void ndr_print_flags_DNS_RPC_NAME(struct ndr_print *ndr, const char *name, int unused, const struct DNS_RPC_NAME *r)
     292             : {
     293           0 :         ndr_print_DNS_RPC_NAME(ndr, name, r);
     294           0 : }
     295             : 
     296           0 : _PUBLIC_ void ndr_print_DNS_RPC_NAME(struct ndr_print *ndr, const char *name, const struct DNS_RPC_NAME *r)
     297             : {
     298           0 :         ndr_print_struct(ndr, name, "DNS_RPC_NAME");
     299           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     300           0 :         ndr->depth++;
     301           0 :         ndr_print_uint8(ndr, "len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->str):r->len);
     302           0 :         ndr_print_string(ndr, "str", r->str);
     303           0 :         ndr->depth--;
     304             : }
     305             : 
     306        2356 : _PUBLIC_ size_t ndr_size_DNS_RPC_NAME(const struct DNS_RPC_NAME *r, int flags)
     307             : {
     308        2356 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_DNS_RPC_NAME);
     309             : }
     310             : 
     311           0 : static enum ndr_err_code ndr_push_DNS_RPC_RECORD_SOA(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_RECORD_SOA *r)
     312             : {
     313           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     314           0 :         if (ndr_flags & NDR_SCALARS) {
     315           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     316           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwSerialNo));
     317           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRefresh));
     318           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRetry));
     319           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwExpire));
     320           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwMinimumTtl));
     321           0 :                 NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->NamePrimaryServer));
     322           0 :                 NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->ZoneAdministratorEmail));
     323           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     324             :         }
     325           0 :         if (ndr_flags & NDR_BUFFERS) {
     326             :         }
     327           0 :         return NDR_ERR_SUCCESS;
     328             : }
     329             : 
     330           0 : static enum ndr_err_code ndr_pull_DNS_RPC_RECORD_SOA(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_RECORD_SOA *r)
     331             : {
     332           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     333           0 :         if (ndr_flags & NDR_SCALARS) {
     334           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     335           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwSerialNo));
     336           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRefresh));
     337           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRetry));
     338           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwExpire));
     339           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwMinimumTtl));
     340           0 :                 NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->NamePrimaryServer));
     341           0 :                 NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->ZoneAdministratorEmail));
     342           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     343             :         }
     344           0 :         if (ndr_flags & NDR_BUFFERS) {
     345             :         }
     346           0 :         return NDR_ERR_SUCCESS;
     347             : }
     348             : 
     349           0 : _PUBLIC_ void ndr_print_DNS_RPC_RECORD_SOA(struct ndr_print *ndr, const char *name, const struct DNS_RPC_RECORD_SOA *r)
     350             : {
     351           0 :         ndr_print_struct(ndr, name, "DNS_RPC_RECORD_SOA");
     352           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     353           0 :         ndr->depth++;
     354           0 :         ndr_print_uint32(ndr, "dwSerialNo", r->dwSerialNo);
     355           0 :         ndr_print_uint32(ndr, "dwRefresh", r->dwRefresh);
     356           0 :         ndr_print_uint32(ndr, "dwRetry", r->dwRetry);
     357           0 :         ndr_print_uint32(ndr, "dwExpire", r->dwExpire);
     358           0 :         ndr_print_uint32(ndr, "dwMinimumTtl", r->dwMinimumTtl);
     359           0 :         ndr_print_DNS_RPC_NAME(ndr, "NamePrimaryServer", &r->NamePrimaryServer);
     360           0 :         ndr_print_DNS_RPC_NAME(ndr, "ZoneAdministratorEmail", &r->ZoneAdministratorEmail);
     361           0 :         ndr->depth--;
     362             : }
     363             : 
     364        3435 : static enum ndr_err_code ndr_push_DNS_RPC_RECORD_NAME_PREFERENCE(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_RECORD_NAME_PREFERENCE *r)
     365             : {
     366        3435 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     367        3435 :         if (ndr_flags & NDR_SCALARS) {
     368        3435 :                 NDR_CHECK(ndr_push_align(ndr, 2));
     369        3435 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wPreference));
     370        3435 :                 NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->nameExchange));
     371        3435 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
     372             :         }
     373        3435 :         if (ndr_flags & NDR_BUFFERS) {
     374             :         }
     375        3435 :         return NDR_ERR_SUCCESS;
     376             : }
     377             : 
     378         591 : static enum ndr_err_code ndr_pull_DNS_RPC_RECORD_NAME_PREFERENCE(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_RECORD_NAME_PREFERENCE *r)
     379             : {
     380         591 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     381         591 :         if (ndr_flags & NDR_SCALARS) {
     382         591 :                 NDR_CHECK(ndr_pull_align(ndr, 2));
     383         591 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wPreference));
     384         591 :                 NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->nameExchange));
     385         591 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
     386             :         }
     387         591 :         if (ndr_flags & NDR_BUFFERS) {
     388             :         }
     389         591 :         return NDR_ERR_SUCCESS;
     390             : }
     391             : 
     392           0 : _PUBLIC_ void ndr_print_DNS_RPC_RECORD_NAME_PREFERENCE(struct ndr_print *ndr, const char *name, const struct DNS_RPC_RECORD_NAME_PREFERENCE *r)
     393             : {
     394           0 :         ndr_print_struct(ndr, name, "DNS_RPC_RECORD_NAME_PREFERENCE");
     395           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     396           0 :         ndr->depth++;
     397           0 :         ndr_print_uint16(ndr, "wPreference", r->wPreference);
     398           0 :         ndr_print_DNS_RPC_NAME(ndr, "nameExchange", &r->nameExchange);
     399           0 :         ndr->depth--;
     400             : }
     401             : 
     402           0 : _PUBLIC_ void ndr_print_DNS_RPC_RECORD_STRING(struct ndr_print *ndr, const char *name, const struct DNS_RPC_RECORD_STRING *r)
     403             : {
     404             :         uint32_t cntr_str_0;
     405           0 :         ndr_print_struct(ndr, name, "DNS_RPC_RECORD_STRING");
     406           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     407           0 :         ndr->depth++;
     408           0 :         ndr_print_uint8(ndr, "count", r->count);
     409           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "str", (int)r->count);
     410           0 :         ndr->depth++;
     411           0 :         for (cntr_str_0 = 0; cntr_str_0 < (r->count); cntr_str_0++) {
     412           0 :                 ndr_print_DNS_RPC_NAME(ndr, "str", &r->str[cntr_str_0]);
     413             :         }
     414           0 :         ndr->depth--;
     415           0 :         ndr->depth--;
     416             : }
     417             : 
     418        4729 : static enum ndr_err_code ndr_push_DNS_RPC_RECORD_SRV(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_RECORD_SRV *r)
     419             : {
     420        4729 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     421        4729 :         if (ndr_flags & NDR_SCALARS) {
     422        4729 :                 NDR_CHECK(ndr_push_align(ndr, 2));
     423        4729 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wPriority));
     424        4729 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wWeight));
     425        4729 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wPort));
     426        4729 :                 NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->nameTarget));
     427        4729 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
     428             :         }
     429        4729 :         if (ndr_flags & NDR_BUFFERS) {
     430             :         }
     431        4729 :         return NDR_ERR_SUCCESS;
     432             : }
     433             : 
     434         800 : static enum ndr_err_code ndr_pull_DNS_RPC_RECORD_SRV(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_RECORD_SRV *r)
     435             : {
     436         800 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     437         800 :         if (ndr_flags & NDR_SCALARS) {
     438         800 :                 NDR_CHECK(ndr_pull_align(ndr, 2));
     439         800 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wPriority));
     440         800 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wWeight));
     441         800 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wPort));
     442         800 :                 NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->nameTarget));
     443         800 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
     444             :         }
     445         800 :         if (ndr_flags & NDR_BUFFERS) {
     446             :         }
     447         800 :         return NDR_ERR_SUCCESS;
     448             : }
     449             : 
     450           0 : _PUBLIC_ void ndr_print_DNS_RPC_RECORD_SRV(struct ndr_print *ndr, const char *name, const struct DNS_RPC_RECORD_SRV *r)
     451             : {
     452           0 :         ndr_print_struct(ndr, name, "DNS_RPC_RECORD_SRV");
     453           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     454           0 :         ndr->depth++;
     455           0 :         ndr_print_uint16(ndr, "wPriority", r->wPriority);
     456           0 :         ndr_print_uint16(ndr, "wWeight", r->wWeight);
     457           0 :         ndr_print_uint16(ndr, "wPort", r->wPort);
     458           0 :         ndr_print_DNS_RPC_NAME(ndr, "nameTarget", &r->nameTarget);
     459           0 :         ndr->depth--;
     460             : }
     461             : 
     462       32832 : static enum ndr_err_code ndr_push_DNS_RPC_RECORD_DATA(struct ndr_push *ndr, int ndr_flags, const union DNS_RPC_RECORD_DATA *r)
     463             : {
     464             :         uint32_t level;
     465             :         {
     466       32832 :                 uint32_t _flags_save_UNION = ndr->flags;
     467       32832 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     468       32832 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     469       32832 :                 if (ndr_flags & NDR_SCALARS) {
     470             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     471       32832 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
     472       32832 :                         NDR_CHECK(ndr_push_union_align(ndr, 4));
     473       32832 :                         switch (level) {
     474           0 :                                 case DNS_TYPE_TOMBSTONE: {
     475           0 :                                         NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->EntombedTime));
     476           0 :                                 break; }
     477             : 
     478        5069 :                                 case DNS_TYPE_A: {
     479             :                                         {
     480        5069 :                                                 uint32_t _flags_save_ipv4address = ndr->flags;
     481        5069 :                                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     482        5069 :                                                 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->ipv4));
     483        4981 :                                                 ndr->flags = _flags_save_ipv4address;
     484             :                                         }
     485        4981 :                                 break; }
     486             : 
     487        4092 :                                 case DNS_TYPE_NS: {
     488        4092 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     489        4092 :                                 break; }
     490             : 
     491           0 :                                 case DNS_TYPE_MD: {
     492           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     493           0 :                                 break; }
     494             : 
     495           0 :                                 case DNS_TYPE_MF: {
     496           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     497           0 :                                 break; }
     498             : 
     499        3095 :                                 case DNS_TYPE_CNAME: {
     500        3095 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     501        3095 :                                 break; }
     502             : 
     503           0 :                                 case DNS_TYPE_SOA: {
     504           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_RECORD_SOA(ndr, NDR_SCALARS, &r->soa));
     505           0 :                                 break; }
     506             : 
     507           0 :                                 case DNS_TYPE_MB: {
     508           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     509           0 :                                 break; }
     510             : 
     511           0 :                                 case DNS_TYPE_MG: {
     512           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     513           0 :                                 break; }
     514             : 
     515           0 :                                 case DNS_TYPE_MR: {
     516           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     517           0 :                                 break; }
     518             : 
     519        3832 :                                 case DNS_TYPE_PTR: {
     520        3832 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->ptr));
     521        3832 :                                 break; }
     522             : 
     523           0 :                                 case DNS_TYPE_HINFO: {
     524           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->hinfo));
     525           0 :                                 break; }
     526             : 
     527        3435 :                                 case DNS_TYPE_MX: {
     528        3435 :                                         NDR_CHECK(ndr_push_DNS_RPC_RECORD_NAME_PREFERENCE(ndr, NDR_SCALARS, &r->mx));
     529        3435 :                                 break; }
     530             : 
     531        2988 :                                 case DNS_TYPE_TXT: {
     532        2988 :                                         NDR_CHECK(ndr_push_DNS_RPC_RECORD_STRING(ndr, NDR_SCALARS, &r->txt));
     533        2988 :                                 break; }
     534             : 
     535        5592 :                                 case DNS_TYPE_AAAA: {
     536        5592 :                                         NDR_CHECK(ndr_push_ipv6address(ndr, NDR_SCALARS, r->ipv6));
     537        5328 :                                 break; }
     538             : 
     539        4729 :                                 case DNS_TYPE_SRV: {
     540        4729 :                                         NDR_CHECK(ndr_push_DNS_RPC_RECORD_SRV(ndr, NDR_SCALARS, &r->srv));
     541        4729 :                                 break; }
     542             : 
     543           0 :                                 case DNS_TYPE_DNAME: {
     544           0 :                                         NDR_CHECK(ndr_push_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     545           0 :                                 break; }
     546             : 
     547           0 :                                 default:
     548           0 :                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
     549             :                         }
     550           0 :                 }
     551       32480 :                 if (ndr_flags & NDR_BUFFERS) {
     552       25380 :                         if (!(ndr_flags & NDR_SCALARS)) {
     553             :                                 /* We didn't get it above, and the token is not needed after this. */
     554           0 :                                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
     555             :                         }
     556       25380 :                         switch (level) {
     557           0 :                                 case DNS_TYPE_TOMBSTONE:
     558           0 :                                 break;
     559             : 
     560        3894 :                                 case DNS_TYPE_A:
     561        3894 :                                 break;
     562             : 
     563        3188 :                                 case DNS_TYPE_NS:
     564        3188 :                                 break;
     565             : 
     566           0 :                                 case DNS_TYPE_MD:
     567           0 :                                 break;
     568             : 
     569           0 :                                 case DNS_TYPE_MF:
     570           0 :                                 break;
     571             : 
     572        2430 :                                 case DNS_TYPE_CNAME:
     573        2430 :                                 break;
     574             : 
     575           0 :                                 case DNS_TYPE_SOA:
     576           0 :                                 break;
     577             : 
     578           0 :                                 case DNS_TYPE_MB:
     579           0 :                                 break;
     580             : 
     581           0 :                                 case DNS_TYPE_MG:
     582           0 :                                 break;
     583             : 
     584           0 :                                 case DNS_TYPE_MR:
     585           0 :                                 break;
     586             : 
     587        2992 :                                 case DNS_TYPE_PTR:
     588        2992 :                                 break;
     589             : 
     590           0 :                                 case DNS_TYPE_HINFO:
     591           0 :                                 break;
     592             : 
     593        2684 :                                 case DNS_TYPE_MX:
     594        2684 :                                 break;
     595             : 
     596        2340 :                                 case DNS_TYPE_TXT:
     597        2340 :                                 break;
     598             : 
     599        4166 :                                 case DNS_TYPE_AAAA:
     600        4166 :                                 break;
     601             : 
     602        3686 :                                 case DNS_TYPE_SRV:
     603        3686 :                                 break;
     604             : 
     605           0 :                                 case DNS_TYPE_DNAME:
     606           0 :                                 break;
     607             : 
     608           0 :                                 default:
     609           0 :                                         return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
     610             :                         }
     611        5183 :                 }
     612       32480 :                 ndr->flags = _flags_save_UNION;
     613             :         }
     614       32480 :         return NDR_ERR_SUCCESS;
     615             : }
     616             : 
     617        5590 : static enum ndr_err_code ndr_pull_DNS_RPC_RECORD_DATA(struct ndr_pull *ndr, int ndr_flags, union DNS_RPC_RECORD_DATA *r)
     618             : {
     619             :         uint32_t level;
     620             :         {
     621        5590 :                 uint32_t _flags_save_UNION = ndr->flags;
     622        5590 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     623        5590 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     624        5590 :                 if (ndr_flags & NDR_SCALARS) {
     625             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     626        5590 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
     627        5590 :                         NDR_CHECK(ndr_pull_union_align(ndr, 4));
     628        5590 :                         switch (level) {
     629           0 :                                 case DNS_TYPE_TOMBSTONE: {
     630           0 :                                         NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->EntombedTime));
     631           0 :                                 break; }
     632             : 
     633         860 :                                 case DNS_TYPE_A: {
     634             :                                         {
     635         860 :                                                 uint32_t _flags_save_ipv4address = ndr->flags;
     636         860 :                                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     637         860 :                                                 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->ipv4));
     638         860 :                                                 ndr->flags = _flags_save_ipv4address;
     639             :                                         }
     640         860 :                                 break; }
     641             : 
     642         690 :                                 case DNS_TYPE_NS: {
     643         690 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     644         690 :                                 break; }
     645             : 
     646           0 :                                 case DNS_TYPE_MD: {
     647           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     648           0 :                                 break; }
     649             : 
     650           0 :                                 case DNS_TYPE_MF: {
     651           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     652           0 :                                 break; }
     653             : 
     654         550 :                                 case DNS_TYPE_CNAME: {
     655         550 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     656         550 :                                 break; }
     657             : 
     658           0 :                                 case DNS_TYPE_SOA: {
     659           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_RECORD_SOA(ndr, NDR_SCALARS, &r->soa));
     660           0 :                                 break; }
     661             : 
     662           0 :                                 case DNS_TYPE_MB: {
     663           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     664           0 :                                 break; }
     665             : 
     666           0 :                                 case DNS_TYPE_MG: {
     667           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     668           0 :                                 break; }
     669             : 
     670           0 :                                 case DNS_TYPE_MR: {
     671           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     672           0 :                                 break; }
     673             : 
     674         656 :                                 case DNS_TYPE_PTR: {
     675         656 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->ptr));
     676         656 :                                 break; }
     677             : 
     678           0 :                                 case DNS_TYPE_HINFO: {
     679           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->hinfo));
     680           0 :                                 break; }
     681             : 
     682         591 :                                 case DNS_TYPE_MX: {
     683         591 :                                         NDR_CHECK(ndr_pull_DNS_RPC_RECORD_NAME_PREFERENCE(ndr, NDR_SCALARS, &r->mx));
     684         591 :                                 break; }
     685             : 
     686         522 :                                 case DNS_TYPE_TXT: {
     687         522 :                                         NDR_CHECK(ndr_pull_DNS_RPC_RECORD_STRING(ndr, NDR_SCALARS, &r->txt));
     688         522 :                                 break; }
     689             : 
     690         921 :                                 case DNS_TYPE_AAAA: {
     691         921 :                                         NDR_CHECK(ndr_pull_ipv6address(ndr, NDR_SCALARS, &r->ipv6));
     692         921 :                                 break; }
     693             : 
     694         800 :                                 case DNS_TYPE_SRV: {
     695         800 :                                         NDR_CHECK(ndr_pull_DNS_RPC_RECORD_SRV(ndr, NDR_SCALARS, &r->srv));
     696         800 :                                 break; }
     697             : 
     698           0 :                                 case DNS_TYPE_DNAME: {
     699           0 :                                         NDR_CHECK(ndr_pull_DNS_RPC_NAME(ndr, NDR_SCALARS, &r->name));
     700           0 :                                 break; }
     701             : 
     702           0 :                                 default:
     703           0 :                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
     704             :                         }
     705           0 :                 }
     706        5590 :                 if (ndr_flags & NDR_BUFFERS) {
     707           0 :                         if (!(ndr_flags & NDR_SCALARS)) {
     708             :                                 /* We didn't get it above, and the token is not needed after this. */
     709           0 :                                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
     710             :                         }
     711           0 :                         switch (level) {
     712           0 :                                 case DNS_TYPE_TOMBSTONE:
     713           0 :                                 break;
     714             : 
     715           0 :                                 case DNS_TYPE_A:
     716           0 :                                 break;
     717             : 
     718           0 :                                 case DNS_TYPE_NS:
     719           0 :                                 break;
     720             : 
     721           0 :                                 case DNS_TYPE_MD:
     722           0 :                                 break;
     723             : 
     724           0 :                                 case DNS_TYPE_MF:
     725           0 :                                 break;
     726             : 
     727           0 :                                 case DNS_TYPE_CNAME:
     728           0 :                                 break;
     729             : 
     730           0 :                                 case DNS_TYPE_SOA:
     731           0 :                                 break;
     732             : 
     733           0 :                                 case DNS_TYPE_MB:
     734           0 :                                 break;
     735             : 
     736           0 :                                 case DNS_TYPE_MG:
     737           0 :                                 break;
     738             : 
     739           0 :                                 case DNS_TYPE_MR:
     740           0 :                                 break;
     741             : 
     742           0 :                                 case DNS_TYPE_PTR:
     743           0 :                                 break;
     744             : 
     745           0 :                                 case DNS_TYPE_HINFO:
     746           0 :                                 break;
     747             : 
     748           0 :                                 case DNS_TYPE_MX:
     749           0 :                                 break;
     750             : 
     751           0 :                                 case DNS_TYPE_TXT:
     752           0 :                                 break;
     753             : 
     754           0 :                                 case DNS_TYPE_AAAA:
     755           0 :                                 break;
     756             : 
     757           0 :                                 case DNS_TYPE_SRV:
     758           0 :                                 break;
     759             : 
     760           0 :                                 case DNS_TYPE_DNAME:
     761           0 :                                 break;
     762             : 
     763           0 :                                 default:
     764           0 :                                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
     765             :                         }
     766        4104 :                 }
     767        5590 :                 ndr->flags = _flags_save_UNION;
     768             :         }
     769        5590 :         return NDR_ERR_SUCCESS;
     770             : }
     771             : 
     772           0 : _PUBLIC_ void ndr_print_DNS_RPC_RECORD_DATA(struct ndr_print *ndr, const char *name, const union DNS_RPC_RECORD_DATA *r)
     773             : {
     774             :         uint32_t level;
     775             :         {
     776           0 :                 uint32_t _flags_save_UNION = ndr->flags;
     777           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     778           0 :                 level = ndr_print_steal_switch_value(ndr, r);
     779           0 :                 ndr_print_union(ndr, name, level, "DNS_RPC_RECORD_DATA");
     780           0 :                 switch (level) {
     781           0 :                         case DNS_TYPE_TOMBSTONE:
     782           0 :                                 ndr_print_NTTIME(ndr, "EntombedTime", r->EntombedTime);
     783           0 :                         break;
     784             : 
     785           0 :                         case DNS_TYPE_A:
     786             :                                 {
     787           0 :                                         uint32_t _flags_save_ipv4address = ndr->flags;
     788           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     789           0 :                                         ndr_print_ipv4address(ndr, "ipv4", r->ipv4);
     790           0 :                                         ndr->flags = _flags_save_ipv4address;
     791             :                                 }
     792           0 :                         break;
     793             : 
     794           0 :                         case DNS_TYPE_NS:
     795           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     796           0 :                         break;
     797             : 
     798           0 :                         case DNS_TYPE_MD:
     799           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     800           0 :                         break;
     801             : 
     802           0 :                         case DNS_TYPE_MF:
     803           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     804           0 :                         break;
     805             : 
     806           0 :                         case DNS_TYPE_CNAME:
     807           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     808           0 :                         break;
     809             : 
     810           0 :                         case DNS_TYPE_SOA:
     811           0 :                                 ndr_print_DNS_RPC_RECORD_SOA(ndr, "soa", &r->soa);
     812           0 :                         break;
     813             : 
     814           0 :                         case DNS_TYPE_MB:
     815           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     816           0 :                         break;
     817             : 
     818           0 :                         case DNS_TYPE_MG:
     819           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     820           0 :                         break;
     821             : 
     822           0 :                         case DNS_TYPE_MR:
     823           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     824           0 :                         break;
     825             : 
     826           0 :                         case DNS_TYPE_PTR:
     827           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "ptr", &r->ptr);
     828           0 :                         break;
     829             : 
     830           0 :                         case DNS_TYPE_HINFO:
     831           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "hinfo", &r->hinfo);
     832           0 :                         break;
     833             : 
     834           0 :                         case DNS_TYPE_MX:
     835           0 :                                 ndr_print_DNS_RPC_RECORD_NAME_PREFERENCE(ndr, "mx", &r->mx);
     836           0 :                         break;
     837             : 
     838           0 :                         case DNS_TYPE_TXT:
     839           0 :                                 ndr_print_DNS_RPC_RECORD_STRING(ndr, "txt", &r->txt);
     840           0 :                         break;
     841             : 
     842           0 :                         case DNS_TYPE_AAAA:
     843           0 :                                 ndr_print_ipv6address(ndr, "ipv6", r->ipv6);
     844           0 :                         break;
     845             : 
     846           0 :                         case DNS_TYPE_SRV:
     847           0 :                                 ndr_print_DNS_RPC_RECORD_SRV(ndr, "srv", &r->srv);
     848           0 :                         break;
     849             : 
     850           0 :                         case DNS_TYPE_DNAME:
     851           0 :                                 ndr_print_DNS_RPC_NAME(ndr, "name", &r->name);
     852           0 :                         break;
     853             : 
     854           0 :                         default:
     855           0 :                                 ndr_print_bad_level(ndr, name, level);
     856             :                 }
     857           0 :                 ndr->flags = _flags_save_UNION;
     858             :         }
     859           0 : }
     860             : 
     861       25644 : static size_t ndr_size_DNS_RPC_RECORD_DATA(const union DNS_RPC_RECORD_DATA *r, uint32_t level, int flags)
     862             : {
     863       25644 :         flags |= LIBNDR_FLAG_NOALIGN;
     864       25644 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_DNS_RPC_RECORD_DATA);
     865             : }
     866             : 
     867        7188 : _PUBLIC_ enum ndr_err_code ndr_push_DNS_RPC_RECORD(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_RECORD *r)
     868             : {
     869        7188 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     870        7188 :         if (ndr_flags & NDR_SCALARS) {
     871        7188 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     872        7188 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_DNS_RPC_RECORD_DATA(&r->data, r->wType, 0)));
     873        7188 :                 NDR_CHECK(ndr_push_dns_record_type(ndr, NDR_SCALARS, r->wType));
     874        7188 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwFlags));
     875        7188 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwSerial));
     876        7188 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwTtlSeconds));
     877        7188 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwTimeStamp));
     878        7188 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved));
     879             :                 {
     880             :                         struct ndr_push *_ndr_data;
     881        7276 :                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, ndr_size_DNS_RPC_RECORD_DATA(&r->data, r->wType, 0)));
     882        7188 :                         NDR_CHECK(ndr_push_set_switch_value(_ndr_data, &r->data, r->wType));
     883        7188 :                         NDR_CHECK(ndr_push_DNS_RPC_RECORD_DATA(_ndr_data, NDR_SCALARS, &r->data));
     884        7100 :                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, ndr_size_DNS_RPC_RECORD_DATA(&r->data, r->wType, 0)));
     885             :                 }
     886        7100 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     887             :         }
     888        7100 :         if (ndr_flags & NDR_BUFFERS) {
     889             :         }
     890        7100 :         return NDR_ERR_SUCCESS;
     891             : }
     892             : 
     893        5590 : _PUBLIC_ enum ndr_err_code ndr_pull_DNS_RPC_RECORD(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_RECORD *r)
     894             : {
     895        5590 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     896        5590 :         if (ndr_flags & NDR_SCALARS) {
     897        5590 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     898        5590 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wDataLength));
     899        5590 :                 NDR_CHECK(ndr_pull_dns_record_type(ndr, NDR_SCALARS, &r->wType));
     900        5590 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwFlags));
     901        5590 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwSerial));
     902        5590 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwTtlSeconds));
     903        5590 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwTimeStamp));
     904        5590 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved));
     905             :                 {
     906             :                         struct ndr_pull *_ndr_data;
     907        5590 :                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->wDataLength));
     908        5590 :                         NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->data, r->wType));
     909        5590 :                         NDR_CHECK(ndr_pull_DNS_RPC_RECORD_DATA(_ndr_data, NDR_SCALARS, &r->data));
     910        5590 :                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->wDataLength));
     911             :                 }
     912        5590 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     913             :         }
     914        5590 :         if (ndr_flags & NDR_BUFFERS) {
     915             :         }
     916        5590 :         return NDR_ERR_SUCCESS;
     917             : }
     918             : 
     919           0 : static void ndr_print_flags_DNS_RPC_RECORD(struct ndr_print *ndr, const char *name, int unused, const struct DNS_RPC_RECORD *r)
     920             : {
     921           0 :         ndr_print_DNS_RPC_RECORD(ndr, name, r);
     922           0 : }
     923             : 
     924           0 : _PUBLIC_ void ndr_print_DNS_RPC_RECORD(struct ndr_print *ndr, const char *name, const struct DNS_RPC_RECORD *r)
     925             : {
     926           0 :         ndr_print_struct(ndr, name, "DNS_RPC_RECORD");
     927           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     928           0 :         ndr->depth++;
     929           0 :         ndr_print_uint16(ndr, "wDataLength", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DNS_RPC_RECORD_DATA(&r->data, r->wType, 0):r->wDataLength);
     930           0 :         ndr_print_dns_record_type(ndr, "wType", r->wType);
     931           0 :         ndr_print_uint32(ndr, "dwFlags", r->dwFlags);
     932           0 :         ndr_print_uint32(ndr, "dwSerial", r->dwSerial);
     933           0 :         ndr_print_uint32(ndr, "dwTtlSeconds", r->dwTtlSeconds);
     934           0 :         ndr_print_uint32(ndr, "dwTimeStamp", r->dwTimeStamp);
     935           0 :         ndr_print_uint32(ndr, "dwReserved", r->dwReserved);
     936           0 :         ndr_print_set_switch_value(ndr, &r->data, r->wType);
     937           0 :         ndr_print_DNS_RPC_RECORD_DATA(ndr, "data", &r->data);
     938           0 :         ndr->depth--;
     939             : }
     940             : 
     941        4168 : static enum ndr_err_code ndr_push_DNS_RPC_RECORD_BUF(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_RECORD_BUF *r)
     942             : {
     943        4168 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     944        4168 :         if (ndr_flags & NDR_SCALARS) {
     945        4168 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     946        4168 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_size_DNS_RPC_RECORD_DATA(&r->rec.data, r->rec.wType, 0)));
     947        4168 :                 NDR_CHECK(ndr_push_DNS_RPC_RECORD(ndr, NDR_SCALARS, &r->rec));
     948        4080 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     949             :         }
     950        4080 :         if (ndr_flags & NDR_BUFFERS) {
     951             :         }
     952        4080 :         return NDR_ERR_SUCCESS;
     953             : }
     954             : 
     955        4080 : static enum ndr_err_code ndr_pull_DNS_RPC_RECORD_BUF(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_RECORD_BUF *r)
     956             : {
     957        4080 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     958        4080 :         if (ndr_flags & NDR_SCALARS) {
     959        4080 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     960        4080 :                 NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->wContextLength));
     961        4080 :                 NDR_CHECK(ndr_pull_DNS_RPC_RECORD(ndr, NDR_SCALARS, &r->rec));
     962        4080 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     963             :         }
     964        4080 :         if (ndr_flags & NDR_BUFFERS) {
     965             :         }
     966        4080 :         return NDR_ERR_SUCCESS;
     967             : }
     968             : 
     969           0 : _PUBLIC_ void ndr_print_DNS_RPC_RECORD_BUF(struct ndr_print *ndr, const char *name, const struct DNS_RPC_RECORD_BUF *r)
     970             : {
     971           0 :         ndr_print_struct(ndr, name, "DNS_RPC_RECORD_BUF");
     972           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     973           0 :         ndr->depth++;
     974           0 :         ndr_print_uint3264(ndr, "wContextLength", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DNS_RPC_RECORD_DATA(&r->rec.data, r->rec.wType, 0):r->wContextLength);
     975           0 :         ndr_print_DNS_RPC_RECORD(ndr, "rec", &r->rec);
     976           0 :         ndr->depth--;
     977             : }
     978             : 
     979          16 : static enum ndr_err_code ndr_push_IP4_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct IP4_ARRAY *r)
     980             : {
     981             :         uint32_t cntr_AddrArray_0;
     982          16 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     983          16 :         if (ndr_flags & NDR_SCALARS) {
     984          16 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->AddrCount));
     985          16 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     986          16 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->AddrCount));
     987          32 :                 for (cntr_AddrArray_0 = 0; cntr_AddrArray_0 < (r->AddrCount); cntr_AddrArray_0++) {
     988          16 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->AddrArray[cntr_AddrArray_0]));
     989             :                 }
     990          16 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     991             :         }
     992          16 :         if (ndr_flags & NDR_BUFFERS) {
     993             :         }
     994          16 :         return NDR_ERR_SUCCESS;
     995             : }
     996             : 
     997          16 : static enum ndr_err_code ndr_pull_IP4_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct IP4_ARRAY *r)
     998             : {
     999          16 :         uint32_t size_AddrArray_0 = 0;
    1000             :         uint32_t cntr_AddrArray_0;
    1001          16 :         TALLOC_CTX *_mem_save_AddrArray_0 = NULL;
    1002          16 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1003          16 :         if (ndr_flags & NDR_SCALARS) {
    1004          16 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->AddrArray));
    1005          16 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1006          16 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->AddrCount));
    1007          16 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->AddrArray, &size_AddrArray_0));
    1008          16 :                 NDR_PULL_ALLOC_N(ndr, r->AddrArray, size_AddrArray_0);
    1009          16 :                 _mem_save_AddrArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1010          16 :                 NDR_PULL_SET_MEM_CTX(ndr, r->AddrArray, 0);
    1011          32 :                 for (cntr_AddrArray_0 = 0; cntr_AddrArray_0 < (size_AddrArray_0); cntr_AddrArray_0++) {
    1012          16 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->AddrArray[cntr_AddrArray_0]));
    1013             :                 }
    1014          16 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_AddrArray_0, 0);
    1015          16 :                 if (r->AddrArray) {
    1016          16 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->AddrArray, r->AddrCount));
    1017             :                 }
    1018          16 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1019             :         }
    1020          16 :         if (ndr_flags & NDR_BUFFERS) {
    1021             :         }
    1022          16 :         return NDR_ERR_SUCCESS;
    1023             : }
    1024             : 
    1025           0 : _PUBLIC_ void ndr_print_IP4_ARRAY(struct ndr_print *ndr, const char *name, const struct IP4_ARRAY *r)
    1026             : {
    1027             :         uint32_t cntr_AddrArray_0;
    1028           0 :         ndr_print_struct(ndr, name, "IP4_ARRAY");
    1029           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1030           0 :         ndr->depth++;
    1031           0 :         ndr_print_uint32(ndr, "AddrCount", r->AddrCount);
    1032           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "AddrArray", (int)r->AddrCount);
    1033           0 :         ndr->depth++;
    1034           0 :         for (cntr_AddrArray_0 = 0; cntr_AddrArray_0 < (r->AddrCount); cntr_AddrArray_0++) {
    1035           0 :                 ndr_print_uint32(ndr, "AddrArray", r->AddrArray[cntr_AddrArray_0]);
    1036             :         }
    1037           0 :         ndr->depth--;
    1038           0 :         ndr->depth--;
    1039             : }
    1040             : 
    1041          16 : static enum ndr_err_code ndr_push_DNS_ADDR(struct ndr_push *ndr, int ndr_flags, const struct DNS_ADDR *r)
    1042             : {
    1043             :         uint32_t cntr_DnsAddrUserDword_0;
    1044          16 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1045          16 :         if (ndr_flags & NDR_SCALARS) {
    1046          16 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1047          16 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->MaxSa, 32));
    1048         144 :                 for (cntr_DnsAddrUserDword_0 = 0; cntr_DnsAddrUserDword_0 < (8); cntr_DnsAddrUserDword_0++) {
    1049         128 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DnsAddrUserDword[cntr_DnsAddrUserDword_0]));
    1050             :                 }
    1051          16 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1052             :         }
    1053          16 :         if (ndr_flags & NDR_BUFFERS) {
    1054             :         }
    1055          16 :         return NDR_ERR_SUCCESS;
    1056             : }
    1057             : 
    1058          16 : static enum ndr_err_code ndr_pull_DNS_ADDR(struct ndr_pull *ndr, int ndr_flags, struct DNS_ADDR *r)
    1059             : {
    1060          16 :         uint32_t size_MaxSa_0 = 0;
    1061          16 :         uint32_t size_DnsAddrUserDword_0 = 0;
    1062             :         uint32_t cntr_DnsAddrUserDword_0;
    1063          16 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1064          16 :         if (ndr_flags & NDR_SCALARS) {
    1065          16 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1066          16 :                 size_MaxSa_0 = 32;
    1067          16 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->MaxSa, size_MaxSa_0));
    1068          16 :                 size_DnsAddrUserDword_0 = 8;
    1069         144 :                 for (cntr_DnsAddrUserDword_0 = 0; cntr_DnsAddrUserDword_0 < (size_DnsAddrUserDword_0); cntr_DnsAddrUserDword_0++) {
    1070         128 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DnsAddrUserDword[cntr_DnsAddrUserDword_0]));
    1071             :                 }
    1072          16 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1073             :         }
    1074          16 :         if (ndr_flags & NDR_BUFFERS) {
    1075             :         }
    1076          16 :         return NDR_ERR_SUCCESS;
    1077             : }
    1078             : 
    1079           0 : _PUBLIC_ void ndr_print_DNS_ADDR(struct ndr_print *ndr, const char *name, const struct DNS_ADDR *r)
    1080             : {
    1081             :         uint32_t cntr_DnsAddrUserDword_0;
    1082           0 :         ndr_print_struct(ndr, name, "DNS_ADDR");
    1083           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1084           0 :         ndr->depth++;
    1085           0 :         ndr_print_array_uint8(ndr, "MaxSa", r->MaxSa, 32);
    1086           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "DnsAddrUserDword", (int)8);
    1087           0 :         ndr->depth++;
    1088           0 :         for (cntr_DnsAddrUserDword_0 = 0; cntr_DnsAddrUserDword_0 < (8); cntr_DnsAddrUserDword_0++) {
    1089           0 :                 ndr_print_uint32(ndr, "DnsAddrUserDword", r->DnsAddrUserDword[cntr_DnsAddrUserDword_0]);
    1090             :         }
    1091           0 :         ndr->depth--;
    1092           0 :         ndr->depth--;
    1093             : }
    1094             : 
    1095           8 : static enum ndr_err_code ndr_push_DNS_ADDR_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct DNS_ADDR_ARRAY *r)
    1096             : {
    1097             :         uint32_t cntr_AddrArray_0;
    1098           8 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1099           8 :         if (ndr_flags & NDR_SCALARS) {
    1100           8 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->AddrCount));
    1101           8 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1102           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MaxCount));
    1103           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->AddrCount));
    1104           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Tag));
    1105           8 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Family));
    1106           8 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->WordReserved));
    1107           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Flags));
    1108           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MatchFlag));
    1109           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved1));
    1110           8 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved2));
    1111          24 :                 for (cntr_AddrArray_0 = 0; cntr_AddrArray_0 < (r->AddrCount); cntr_AddrArray_0++) {
    1112          16 :                         NDR_CHECK(ndr_push_DNS_ADDR(ndr, NDR_SCALARS, &r->AddrArray[cntr_AddrArray_0]));
    1113             :                 }
    1114           8 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1115             :         }
    1116           8 :         if (ndr_flags & NDR_BUFFERS) {
    1117             :         }
    1118           8 :         return NDR_ERR_SUCCESS;
    1119             : }
    1120             : 
    1121           8 : static enum ndr_err_code ndr_pull_DNS_ADDR_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct DNS_ADDR_ARRAY *r)
    1122             : {
    1123           8 :         uint32_t size_AddrArray_0 = 0;
    1124             :         uint32_t cntr_AddrArray_0;
    1125           8 :         TALLOC_CTX *_mem_save_AddrArray_0 = NULL;
    1126           8 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1127           8 :         if (ndr_flags & NDR_SCALARS) {
    1128           8 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->AddrArray));
    1129           8 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1130           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MaxCount));
    1131           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->AddrCount));
    1132           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Tag));
    1133           8 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Family));
    1134           8 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WordReserved));
    1135           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Flags));
    1136           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MatchFlag));
    1137           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved1));
    1138           8 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved2));
    1139           8 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->AddrArray, &size_AddrArray_0));
    1140           8 :                 NDR_PULL_ALLOC_N(ndr, r->AddrArray, size_AddrArray_0);
    1141           8 :                 _mem_save_AddrArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1142           8 :                 NDR_PULL_SET_MEM_CTX(ndr, r->AddrArray, 0);
    1143          24 :                 for (cntr_AddrArray_0 = 0; cntr_AddrArray_0 < (size_AddrArray_0); cntr_AddrArray_0++) {
    1144          16 :                         NDR_CHECK(ndr_pull_DNS_ADDR(ndr, NDR_SCALARS, &r->AddrArray[cntr_AddrArray_0]));
    1145             :                 }
    1146           8 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_AddrArray_0, 0);
    1147           8 :                 if (r->AddrArray) {
    1148           8 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->AddrArray, r->AddrCount));
    1149             :                 }
    1150           8 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1151             :         }
    1152           8 :         if (ndr_flags & NDR_BUFFERS) {
    1153             :         }
    1154           8 :         return NDR_ERR_SUCCESS;
    1155             : }
    1156             : 
    1157           0 : _PUBLIC_ void ndr_print_DNS_ADDR_ARRAY(struct ndr_print *ndr, const char *name, const struct DNS_ADDR_ARRAY *r)
    1158             : {
    1159             :         uint32_t cntr_AddrArray_0;
    1160           0 :         ndr_print_struct(ndr, name, "DNS_ADDR_ARRAY");
    1161           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1162           0 :         ndr->depth++;
    1163           0 :         ndr_print_uint32(ndr, "MaxCount", r->MaxCount);
    1164           0 :         ndr_print_uint32(ndr, "AddrCount", r->AddrCount);
    1165           0 :         ndr_print_uint32(ndr, "Tag", r->Tag);
    1166           0 :         ndr_print_uint16(ndr, "Family", r->Family);
    1167           0 :         ndr_print_uint16(ndr, "WordReserved", r->WordReserved);
    1168           0 :         ndr_print_uint32(ndr, "Flags", r->Flags);
    1169           0 :         ndr_print_uint32(ndr, "MatchFlag", r->MatchFlag);
    1170           0 :         ndr_print_uint32(ndr, "Reserved1", r->Reserved1);
    1171           0 :         ndr_print_uint32(ndr, "Reserved2", r->Reserved2);
    1172           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "AddrArray", (int)r->AddrCount);
    1173           0 :         ndr->depth++;
    1174           0 :         for (cntr_AddrArray_0 = 0; cntr_AddrArray_0 < (r->AddrCount); cntr_AddrArray_0++) {
    1175           0 :                 ndr_print_DNS_ADDR(ndr, "AddrArray", &r->AddrArray[cntr_AddrArray_0]);
    1176             :         }
    1177           0 :         ndr->depth--;
    1178           0 :         ndr->depth--;
    1179             : }
    1180             : 
    1181           0 : static enum ndr_err_code ndr_push_DNS_RPC_IP_VALIDATE(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_IP_VALIDATE *r)
    1182             : {
    1183           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1184           0 :         if (ndr_flags & NDR_SCALARS) {
    1185           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1186           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    1187           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    1188           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwContext));
    1189           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved1));
    1190           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszContextName));
    1191           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipValidateAddrs));
    1192           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1193             :         }
    1194           0 :         if (ndr_flags & NDR_BUFFERS) {
    1195           0 :                 if (r->pszContextName) {
    1196           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszContextName, CH_UTF8)));
    1197           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1198           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszContextName, CH_UTF8)));
    1199           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszContextName, ndr_charset_length(r->pszContextName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1200             :                 }
    1201           0 :                 if (r->aipValidateAddrs) {
    1202           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipValidateAddrs));
    1203             :                 }
    1204             :         }
    1205           0 :         return NDR_ERR_SUCCESS;
    1206             : }
    1207             : 
    1208           0 : static enum ndr_err_code ndr_pull_DNS_RPC_IP_VALIDATE(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_IP_VALIDATE *r)
    1209             : {
    1210             :         uint32_t _ptr_pszContextName;
    1211           0 :         uint32_t size_pszContextName_1 = 0;
    1212           0 :         uint32_t length_pszContextName_1 = 0;
    1213           0 :         TALLOC_CTX *_mem_save_pszContextName_0 = NULL;
    1214             :         uint32_t _ptr_aipValidateAddrs;
    1215           0 :         TALLOC_CTX *_mem_save_aipValidateAddrs_0 = NULL;
    1216           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1217           0 :         if (ndr_flags & NDR_SCALARS) {
    1218           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1219           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    1220           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    1221           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwContext));
    1222           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved1));
    1223           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszContextName));
    1224           0 :                 if (_ptr_pszContextName) {
    1225           0 :                         NDR_PULL_ALLOC(ndr, r->pszContextName);
    1226             :                 } else {
    1227           0 :                         r->pszContextName = NULL;
    1228             :                 }
    1229           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipValidateAddrs));
    1230           0 :                 if (_ptr_aipValidateAddrs) {
    1231           0 :                         NDR_PULL_ALLOC(ndr, r->aipValidateAddrs);
    1232             :                 } else {
    1233           0 :                         r->aipValidateAddrs = NULL;
    1234             :                 }
    1235           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1236             :         }
    1237           0 :         if (ndr_flags & NDR_BUFFERS) {
    1238           0 :                 if (r->pszContextName) {
    1239           0 :                         _mem_save_pszContextName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1240           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszContextName, 0);
    1241           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszContextName));
    1242           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszContextName));
    1243           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszContextName, &size_pszContextName_1));
    1244           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszContextName, &length_pszContextName_1));
    1245           0 :                         if (length_pszContextName_1 > size_pszContextName_1) {
    1246           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszContextName_1, length_pszContextName_1);
    1247             :                         }
    1248           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszContextName_1, sizeof(uint8_t)));
    1249           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszContextName, length_pszContextName_1, sizeof(uint8_t), CH_UTF8));
    1250           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszContextName_0, 0);
    1251             :                 }
    1252           0 :                 if (r->aipValidateAddrs) {
    1253           0 :                         _mem_save_aipValidateAddrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1254           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipValidateAddrs, 0);
    1255           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipValidateAddrs));
    1256           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipValidateAddrs_0, 0);
    1257             :                 }
    1258             :         }
    1259           0 :         return NDR_ERR_SUCCESS;
    1260             : }
    1261             : 
    1262           0 : _PUBLIC_ void ndr_print_DNS_RPC_IP_VALIDATE(struct ndr_print *ndr, const char *name, const struct DNS_RPC_IP_VALIDATE *r)
    1263             : {
    1264           0 :         ndr_print_struct(ndr, name, "DNS_RPC_IP_VALIDATE");
    1265           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1266           0 :         ndr->depth++;
    1267           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    1268           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    1269           0 :         ndr_print_uint32(ndr, "dwContext", r->dwContext);
    1270           0 :         ndr_print_uint32(ndr, "dwReserved1", r->dwReserved1);
    1271           0 :         ndr_print_ptr(ndr, "pszContextName", r->pszContextName);
    1272           0 :         ndr->depth++;
    1273           0 :         if (r->pszContextName) {
    1274           0 :                 ndr_print_string(ndr, "pszContextName", r->pszContextName);
    1275             :         }
    1276           0 :         ndr->depth--;
    1277           0 :         ndr_print_ptr(ndr, "aipValidateAddrs", r->aipValidateAddrs);
    1278           0 :         ndr->depth++;
    1279           0 :         if (r->aipValidateAddrs) {
    1280           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipValidateAddrs", r->aipValidateAddrs);
    1281             :         }
    1282           0 :         ndr->depth--;
    1283           0 :         ndr->depth--;
    1284             : }
    1285             : 
    1286          12 : static enum ndr_err_code ndr_push_DNS_BOOT_METHOD(struct ndr_push *ndr, int ndr_flags, enum DNS_BOOT_METHOD r)
    1287             : {
    1288          12 :         NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
    1289          12 :         return NDR_ERR_SUCCESS;
    1290             : }
    1291             : 
    1292          12 : static enum ndr_err_code ndr_pull_DNS_BOOT_METHOD(struct ndr_pull *ndr, int ndr_flags, enum DNS_BOOT_METHOD *r)
    1293             : {
    1294             :         uint8_t v;
    1295          12 :         NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
    1296          12 :         *r = v;
    1297          12 :         return NDR_ERR_SUCCESS;
    1298             : }
    1299             : 
    1300           0 : _PUBLIC_ void ndr_print_DNS_BOOT_METHOD(struct ndr_print *ndr, const char *name, enum DNS_BOOT_METHOD r)
    1301             : {
    1302           0 :         const char *val = NULL;
    1303             : 
    1304           0 :         switch (r) {
    1305           0 :                 case DNS_BOOT_METHOD_UNINITIALIZED: val = "DNS_BOOT_METHOD_UNINITIALIZED"; break;
    1306           0 :                 case DNS_BOOT_METHOD_FILE: val = "DNS_BOOT_METHOD_FILE"; break;
    1307           0 :                 case DNS_BOOT_METHOD_REGISTRY: val = "DNS_BOOT_METHOD_REGISTRY"; break;
    1308           0 :                 case DNS_BOOT_METHOD_DIRECTORY: val = "DNS_BOOT_METHOD_DIRECTORY"; break;
    1309             :         }
    1310           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1311           0 : }
    1312             : 
    1313          12 : static enum ndr_err_code ndr_push_DNS_NAME_CHECK_FLAG(struct ndr_push *ndr, int ndr_flags, enum DNS_NAME_CHECK_FLAG r)
    1314             : {
    1315          12 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1316          12 :         return NDR_ERR_SUCCESS;
    1317             : }
    1318             : 
    1319          12 : static enum ndr_err_code ndr_pull_DNS_NAME_CHECK_FLAG(struct ndr_pull *ndr, int ndr_flags, enum DNS_NAME_CHECK_FLAG *r)
    1320             : {
    1321             :         uint32_t v;
    1322          12 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1323          12 :         *r = v;
    1324          12 :         return NDR_ERR_SUCCESS;
    1325             : }
    1326             : 
    1327           0 : _PUBLIC_ void ndr_print_DNS_NAME_CHECK_FLAG(struct ndr_print *ndr, const char *name, enum DNS_NAME_CHECK_FLAG r)
    1328             : {
    1329           0 :         const char *val = NULL;
    1330             : 
    1331           0 :         switch (r) {
    1332           0 :                 case DNS_ALLOW_RFC_NAMES_ONLY: val = "DNS_ALLOW_RFC_NAMES_ONLY"; break;
    1333           0 :                 case DNS_ALLOW_NONRFC_NAMES: val = "DNS_ALLOW_NONRFC_NAMES"; break;
    1334           0 :                 case DNS_ALLOW_MULTIBYTE_NAMES: val = "DNS_ALLOW_MULTIBYTE_NAMES"; break;
    1335           0 :                 case DNS_ALLOW_ALL_NAMES: val = "DNS_ALLOW_ALL_NAMES"; break;
    1336             :         }
    1337           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1338           0 : }
    1339             : 
    1340           4 : static enum ndr_err_code ndr_push_DNS_RPC_SERVER_INFO_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_SERVER_INFO_W2K *r)
    1341             : {
    1342             :         uint32_t cntr_dwReserveArray_0;
    1343           4 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1344           4 :         if (ndr_flags & NDR_SCALARS) {
    1345           4 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1346           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwVersion));
    1347           4 :                 NDR_CHECK(ndr_push_DNS_BOOT_METHOD(ndr, NDR_SCALARS, r->fBootMethod));
    1348           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAdminConfigured));
    1349           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAllowUpdate));
    1350           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fDsAvailable));
    1351           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszServerName));
    1352           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDsContainer));
    1353           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipServerAddrs));
    1354           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipListenAddrs));
    1355           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipForwarders));
    1356           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtension1));
    1357           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtension2));
    1358           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtension3));
    1359           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtension4));
    1360           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtension5));
    1361           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLogLevel));
    1362           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDebugLevel));
    1363           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwardTimeout));
    1364           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcProtocol));
    1365           4 :                 NDR_CHECK(ndr_push_DNS_NAME_CHECK_FLAG(ndr, NDR_SCALARS, r->dwNameCheckFlag));
    1366           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cAddressAnswerLimit));
    1367           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRecursionRetry));
    1368           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRecursionTimeout));
    1369           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwMaxCacheTtl));
    1370           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsPollingInterval));
    1371           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwScavengingInterval));
    1372           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDefaultRefreshInterval));
    1373           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDefaultNoRefreshInterval));
    1374          44 :                 for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (10); cntr_dwReserveArray_0++) {
    1375          40 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserveArray[cntr_dwReserveArray_0]));
    1376             :                 }
    1377           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAutoReverseZones));
    1378           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAutoCacheUpdate));
    1379           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    1380           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fForwardDelegations));
    1381           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fNoRecursion));
    1382           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fSecureResponses));
    1383           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fRoundRobin));
    1384           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fLocalNetPriority));
    1385           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fBindSecondaries));
    1386           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fWriteAuthorityNs));
    1387           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fStrictFileParsing));
    1388           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fLooseWildcarding));
    1389           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fDefaultAgingState));
    1390           4 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->fReserveArray, 15));
    1391           4 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1392             :         }
    1393           4 :         if (ndr_flags & NDR_BUFFERS) {
    1394           4 :                 if (r->pszServerName) {
    1395           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszServerName, CH_UTF8)));
    1396           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1397           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszServerName, CH_UTF8)));
    1398           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszServerName, ndr_charset_length(r->pszServerName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1399             :                 }
    1400           4 :                 if (r->pszDsContainer) {
    1401           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDsContainer, CH_UTF16)));
    1402           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1403           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDsContainer, CH_UTF16)));
    1404           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDsContainer, ndr_charset_length(r->pszDsContainer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    1405             :                 }
    1406           4 :                 if (r->aipServerAddrs) {
    1407           4 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipServerAddrs));
    1408             :                 }
    1409           4 :                 if (r->aipListenAddrs) {
    1410           4 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipListenAddrs));
    1411             :                 }
    1412           4 :                 if (r->aipForwarders) {
    1413           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    1414             :                 }
    1415           4 :                 if (r->pExtension1) {
    1416           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->pExtension1));
    1417             :                 }
    1418           4 :                 if (r->pExtension2) {
    1419           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->pExtension2));
    1420             :                 }
    1421           4 :                 if (r->pExtension3) {
    1422           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->pExtension3));
    1423             :                 }
    1424           4 :                 if (r->pExtension4) {
    1425           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->pExtension4));
    1426             :                 }
    1427           4 :                 if (r->pExtension5) {
    1428           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->pExtension5));
    1429             :                 }
    1430             :         }
    1431           4 :         return NDR_ERR_SUCCESS;
    1432             : }
    1433             : 
    1434           4 : static enum ndr_err_code ndr_pull_DNS_RPC_SERVER_INFO_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_SERVER_INFO_W2K *r)
    1435             : {
    1436             :         uint32_t _ptr_pszServerName;
    1437           4 :         uint32_t size_pszServerName_1 = 0;
    1438           4 :         uint32_t length_pszServerName_1 = 0;
    1439           4 :         TALLOC_CTX *_mem_save_pszServerName_0 = NULL;
    1440             :         uint32_t _ptr_pszDsContainer;
    1441           4 :         uint32_t size_pszDsContainer_1 = 0;
    1442           4 :         uint32_t length_pszDsContainer_1 = 0;
    1443           4 :         TALLOC_CTX *_mem_save_pszDsContainer_0 = NULL;
    1444             :         uint32_t _ptr_aipServerAddrs;
    1445           4 :         TALLOC_CTX *_mem_save_aipServerAddrs_0 = NULL;
    1446             :         uint32_t _ptr_aipListenAddrs;
    1447           4 :         TALLOC_CTX *_mem_save_aipListenAddrs_0 = NULL;
    1448             :         uint32_t _ptr_aipForwarders;
    1449           4 :         TALLOC_CTX *_mem_save_aipForwarders_0 = NULL;
    1450             :         uint32_t _ptr_pExtension1;
    1451           4 :         TALLOC_CTX *_mem_save_pExtension1_0 = NULL;
    1452             :         uint32_t _ptr_pExtension2;
    1453           4 :         TALLOC_CTX *_mem_save_pExtension2_0 = NULL;
    1454             :         uint32_t _ptr_pExtension3;
    1455           4 :         TALLOC_CTX *_mem_save_pExtension3_0 = NULL;
    1456             :         uint32_t _ptr_pExtension4;
    1457           4 :         TALLOC_CTX *_mem_save_pExtension4_0 = NULL;
    1458             :         uint32_t _ptr_pExtension5;
    1459           4 :         TALLOC_CTX *_mem_save_pExtension5_0 = NULL;
    1460           4 :         uint32_t size_dwReserveArray_0 = 0;
    1461             :         uint32_t cntr_dwReserveArray_0;
    1462           4 :         uint32_t size_fReserveArray_0 = 0;
    1463           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1464           4 :         if (ndr_flags & NDR_SCALARS) {
    1465           4 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1466           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwVersion));
    1467           4 :                 NDR_CHECK(ndr_pull_DNS_BOOT_METHOD(ndr, NDR_SCALARS, &r->fBootMethod));
    1468           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAdminConfigured));
    1469           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAllowUpdate));
    1470           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fDsAvailable));
    1471           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszServerName));
    1472           4 :                 if (_ptr_pszServerName) {
    1473           4 :                         NDR_PULL_ALLOC(ndr, r->pszServerName);
    1474             :                 } else {
    1475           0 :                         r->pszServerName = NULL;
    1476             :                 }
    1477           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDsContainer));
    1478           4 :                 if (_ptr_pszDsContainer) {
    1479           4 :                         NDR_PULL_ALLOC(ndr, r->pszDsContainer);
    1480             :                 } else {
    1481           0 :                         r->pszDsContainer = NULL;
    1482             :                 }
    1483           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipServerAddrs));
    1484           4 :                 if (_ptr_aipServerAddrs) {
    1485           4 :                         NDR_PULL_ALLOC(ndr, r->aipServerAddrs);
    1486             :                 } else {
    1487           0 :                         r->aipServerAddrs = NULL;
    1488             :                 }
    1489           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipListenAddrs));
    1490           4 :                 if (_ptr_aipListenAddrs) {
    1491           4 :                         NDR_PULL_ALLOC(ndr, r->aipListenAddrs);
    1492             :                 } else {
    1493           0 :                         r->aipListenAddrs = NULL;
    1494             :                 }
    1495           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipForwarders));
    1496           4 :                 if (_ptr_aipForwarders) {
    1497           0 :                         NDR_PULL_ALLOC(ndr, r->aipForwarders);
    1498             :                 } else {
    1499           4 :                         r->aipForwarders = NULL;
    1500             :                 }
    1501           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtension1));
    1502           4 :                 if (_ptr_pExtension1) {
    1503           0 :                         NDR_PULL_ALLOC(ndr, r->pExtension1);
    1504             :                 } else {
    1505           4 :                         r->pExtension1 = NULL;
    1506             :                 }
    1507           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtension2));
    1508           4 :                 if (_ptr_pExtension2) {
    1509           0 :                         NDR_PULL_ALLOC(ndr, r->pExtension2);
    1510             :                 } else {
    1511           4 :                         r->pExtension2 = NULL;
    1512             :                 }
    1513           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtension3));
    1514           4 :                 if (_ptr_pExtension3) {
    1515           0 :                         NDR_PULL_ALLOC(ndr, r->pExtension3);
    1516             :                 } else {
    1517           4 :                         r->pExtension3 = NULL;
    1518             :                 }
    1519           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtension4));
    1520           4 :                 if (_ptr_pExtension4) {
    1521           0 :                         NDR_PULL_ALLOC(ndr, r->pExtension4);
    1522             :                 } else {
    1523           4 :                         r->pExtension4 = NULL;
    1524             :                 }
    1525           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtension5));
    1526           4 :                 if (_ptr_pExtension5) {
    1527           0 :                         NDR_PULL_ALLOC(ndr, r->pExtension5);
    1528             :                 } else {
    1529           4 :                         r->pExtension5 = NULL;
    1530             :                 }
    1531           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLogLevel));
    1532           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDebugLevel));
    1533           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwardTimeout));
    1534           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcProtocol));
    1535           4 :                 NDR_CHECK(ndr_pull_DNS_NAME_CHECK_FLAG(ndr, NDR_SCALARS, &r->dwNameCheckFlag));
    1536           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cAddressAnswerLimit));
    1537           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRecursionRetry));
    1538           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRecursionTimeout));
    1539           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwMaxCacheTtl));
    1540           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsPollingInterval));
    1541           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwScavengingInterval));
    1542           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDefaultRefreshInterval));
    1543           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDefaultNoRefreshInterval));
    1544           4 :                 size_dwReserveArray_0 = 10;
    1545          44 :                 for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (size_dwReserveArray_0); cntr_dwReserveArray_0++) {
    1546          40 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserveArray[cntr_dwReserveArray_0]));
    1547             :                 }
    1548           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAutoReverseZones));
    1549           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAutoCacheUpdate));
    1550           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    1551           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fForwardDelegations));
    1552           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fNoRecursion));
    1553           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fSecureResponses));
    1554           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fRoundRobin));
    1555           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fLocalNetPriority));
    1556           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fBindSecondaries));
    1557           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fWriteAuthorityNs));
    1558           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fStrictFileParsing));
    1559           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fLooseWildcarding));
    1560           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fDefaultAgingState));
    1561           4 :                 size_fReserveArray_0 = 15;
    1562           4 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->fReserveArray, size_fReserveArray_0));
    1563           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1564             :         }
    1565           4 :         if (ndr_flags & NDR_BUFFERS) {
    1566           4 :                 if (r->pszServerName) {
    1567           4 :                         _mem_save_pszServerName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1568           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszServerName, 0);
    1569           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszServerName));
    1570           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszServerName));
    1571           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszServerName, &size_pszServerName_1));
    1572           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszServerName, &length_pszServerName_1));
    1573           4 :                         if (length_pszServerName_1 > size_pszServerName_1) {
    1574           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszServerName_1, length_pszServerName_1);
    1575             :                         }
    1576           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszServerName_1, sizeof(uint8_t)));
    1577           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszServerName, length_pszServerName_1, sizeof(uint8_t), CH_UTF8));
    1578           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszServerName_0, 0);
    1579             :                 }
    1580           4 :                 if (r->pszDsContainer) {
    1581           4 :                         _mem_save_pszDsContainer_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1582           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDsContainer, 0);
    1583           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDsContainer));
    1584           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDsContainer));
    1585           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDsContainer, &size_pszDsContainer_1));
    1586           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDsContainer, &length_pszDsContainer_1));
    1587           4 :                         if (length_pszDsContainer_1 > size_pszDsContainer_1) {
    1588           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDsContainer_1, length_pszDsContainer_1);
    1589             :                         }
    1590           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDsContainer_1, sizeof(uint16_t)));
    1591           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDsContainer, length_pszDsContainer_1, sizeof(uint16_t), CH_UTF16));
    1592           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDsContainer_0, 0);
    1593             :                 }
    1594           4 :                 if (r->aipServerAddrs) {
    1595           4 :                         _mem_save_aipServerAddrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1596           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipServerAddrs, 0);
    1597           4 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipServerAddrs));
    1598           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipServerAddrs_0, 0);
    1599             :                 }
    1600           4 :                 if (r->aipListenAddrs) {
    1601           4 :                         _mem_save_aipListenAddrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1602           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipListenAddrs, 0);
    1603           4 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipListenAddrs));
    1604           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipListenAddrs_0, 0);
    1605             :                 }
    1606           4 :                 if (r->aipForwarders) {
    1607           0 :                         _mem_save_aipForwarders_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1608           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipForwarders, 0);
    1609           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    1610           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipForwarders_0, 0);
    1611             :                 }
    1612           4 :                 if (r->pExtension1) {
    1613           0 :                         _mem_save_pExtension1_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1614           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pExtension1, 0);
    1615           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->pExtension1));
    1616           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtension1_0, 0);
    1617             :                 }
    1618           4 :                 if (r->pExtension2) {
    1619           0 :                         _mem_save_pExtension2_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1620           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pExtension2, 0);
    1621           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->pExtension2));
    1622           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtension2_0, 0);
    1623             :                 }
    1624           4 :                 if (r->pExtension3) {
    1625           0 :                         _mem_save_pExtension3_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1626           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pExtension3, 0);
    1627           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->pExtension3));
    1628           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtension3_0, 0);
    1629             :                 }
    1630           4 :                 if (r->pExtension4) {
    1631           0 :                         _mem_save_pExtension4_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1632           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pExtension4, 0);
    1633           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->pExtension4));
    1634           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtension4_0, 0);
    1635             :                 }
    1636           4 :                 if (r->pExtension5) {
    1637           0 :                         _mem_save_pExtension5_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1638           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pExtension5, 0);
    1639           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->pExtension5));
    1640           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtension5_0, 0);
    1641             :                 }
    1642             :         }
    1643           4 :         return NDR_ERR_SUCCESS;
    1644             : }
    1645             : 
    1646           0 : _PUBLIC_ void ndr_print_DNS_RPC_SERVER_INFO_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_SERVER_INFO_W2K *r)
    1647             : {
    1648             :         uint32_t cntr_dwReserveArray_0;
    1649           0 :         ndr_print_struct(ndr, name, "DNS_RPC_SERVER_INFO_W2K");
    1650           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1651           0 :         ndr->depth++;
    1652           0 :         ndr_print_uint32(ndr, "dwVersion", r->dwVersion);
    1653           0 :         ndr_print_DNS_BOOT_METHOD(ndr, "fBootMethod", r->fBootMethod);
    1654           0 :         ndr_print_uint8(ndr, "fAdminConfigured", r->fAdminConfigured);
    1655           0 :         ndr_print_uint8(ndr, "fAllowUpdate", r->fAllowUpdate);
    1656           0 :         ndr_print_uint8(ndr, "fDsAvailable", r->fDsAvailable);
    1657           0 :         ndr_print_ptr(ndr, "pszServerName", r->pszServerName);
    1658           0 :         ndr->depth++;
    1659           0 :         if (r->pszServerName) {
    1660           0 :                 ndr_print_string(ndr, "pszServerName", r->pszServerName);
    1661             :         }
    1662           0 :         ndr->depth--;
    1663           0 :         ndr_print_ptr(ndr, "pszDsContainer", r->pszDsContainer);
    1664           0 :         ndr->depth++;
    1665           0 :         if (r->pszDsContainer) {
    1666           0 :                 ndr_print_string(ndr, "pszDsContainer", r->pszDsContainer);
    1667             :         }
    1668           0 :         ndr->depth--;
    1669           0 :         ndr_print_ptr(ndr, "aipServerAddrs", r->aipServerAddrs);
    1670           0 :         ndr->depth++;
    1671           0 :         if (r->aipServerAddrs) {
    1672           0 :                 ndr_print_IP4_ARRAY(ndr, "aipServerAddrs", r->aipServerAddrs);
    1673             :         }
    1674           0 :         ndr->depth--;
    1675           0 :         ndr_print_ptr(ndr, "aipListenAddrs", r->aipListenAddrs);
    1676           0 :         ndr->depth++;
    1677           0 :         if (r->aipListenAddrs) {
    1678           0 :                 ndr_print_IP4_ARRAY(ndr, "aipListenAddrs", r->aipListenAddrs);
    1679             :         }
    1680           0 :         ndr->depth--;
    1681           0 :         ndr_print_ptr(ndr, "aipForwarders", r->aipForwarders);
    1682           0 :         ndr->depth++;
    1683           0 :         if (r->aipForwarders) {
    1684           0 :                 ndr_print_IP4_ARRAY(ndr, "aipForwarders", r->aipForwarders);
    1685             :         }
    1686           0 :         ndr->depth--;
    1687           0 :         ndr_print_ptr(ndr, "pExtension1", r->pExtension1);
    1688           0 :         ndr->depth++;
    1689           0 :         if (r->pExtension1) {
    1690           0 :                 ndr_print_uint32(ndr, "pExtension1", *r->pExtension1);
    1691             :         }
    1692           0 :         ndr->depth--;
    1693           0 :         ndr_print_ptr(ndr, "pExtension2", r->pExtension2);
    1694           0 :         ndr->depth++;
    1695           0 :         if (r->pExtension2) {
    1696           0 :                 ndr_print_uint32(ndr, "pExtension2", *r->pExtension2);
    1697             :         }
    1698           0 :         ndr->depth--;
    1699           0 :         ndr_print_ptr(ndr, "pExtension3", r->pExtension3);
    1700           0 :         ndr->depth++;
    1701           0 :         if (r->pExtension3) {
    1702           0 :                 ndr_print_uint32(ndr, "pExtension3", *r->pExtension3);
    1703             :         }
    1704           0 :         ndr->depth--;
    1705           0 :         ndr_print_ptr(ndr, "pExtension4", r->pExtension4);
    1706           0 :         ndr->depth++;
    1707           0 :         if (r->pExtension4) {
    1708           0 :                 ndr_print_uint32(ndr, "pExtension4", *r->pExtension4);
    1709             :         }
    1710           0 :         ndr->depth--;
    1711           0 :         ndr_print_ptr(ndr, "pExtension5", r->pExtension5);
    1712           0 :         ndr->depth++;
    1713           0 :         if (r->pExtension5) {
    1714           0 :                 ndr_print_uint32(ndr, "pExtension5", *r->pExtension5);
    1715             :         }
    1716           0 :         ndr->depth--;
    1717           0 :         ndr_print_uint32(ndr, "dwLogLevel", r->dwLogLevel);
    1718           0 :         ndr_print_uint32(ndr, "dwDebugLevel", r->dwDebugLevel);
    1719           0 :         ndr_print_uint32(ndr, "dwForwardTimeout", r->dwForwardTimeout);
    1720           0 :         ndr_print_uint32(ndr, "dwRpcProtocol", r->dwRpcProtocol);
    1721           0 :         ndr_print_DNS_NAME_CHECK_FLAG(ndr, "dwNameCheckFlag", r->dwNameCheckFlag);
    1722           0 :         ndr_print_uint32(ndr, "cAddressAnswerLimit", r->cAddressAnswerLimit);
    1723           0 :         ndr_print_uint32(ndr, "dwRecursionRetry", r->dwRecursionRetry);
    1724           0 :         ndr_print_uint32(ndr, "dwRecursionTimeout", r->dwRecursionTimeout);
    1725           0 :         ndr_print_uint32(ndr, "dwMaxCacheTtl", r->dwMaxCacheTtl);
    1726           0 :         ndr_print_uint32(ndr, "dwDsPollingInterval", r->dwDsPollingInterval);
    1727           0 :         ndr_print_uint32(ndr, "dwScavengingInterval", r->dwScavengingInterval);
    1728           0 :         ndr_print_uint32(ndr, "dwDefaultRefreshInterval", r->dwDefaultRefreshInterval);
    1729           0 :         ndr_print_uint32(ndr, "dwDefaultNoRefreshInterval", r->dwDefaultNoRefreshInterval);
    1730           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "dwReserveArray", (int)10);
    1731           0 :         ndr->depth++;
    1732           0 :         for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (10); cntr_dwReserveArray_0++) {
    1733           0 :                 ndr_print_uint32(ndr, "dwReserveArray", r->dwReserveArray[cntr_dwReserveArray_0]);
    1734             :         }
    1735           0 :         ndr->depth--;
    1736           0 :         ndr_print_uint8(ndr, "fAutoReverseZones", r->fAutoReverseZones);
    1737           0 :         ndr_print_uint8(ndr, "fAutoCacheUpdate", r->fAutoCacheUpdate);
    1738           0 :         ndr_print_uint8(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    1739           0 :         ndr_print_uint8(ndr, "fForwardDelegations", r->fForwardDelegations);
    1740           0 :         ndr_print_uint8(ndr, "fNoRecursion", r->fNoRecursion);
    1741           0 :         ndr_print_uint8(ndr, "fSecureResponses", r->fSecureResponses);
    1742           0 :         ndr_print_uint8(ndr, "fRoundRobin", r->fRoundRobin);
    1743           0 :         ndr_print_uint8(ndr, "fLocalNetPriority", r->fLocalNetPriority);
    1744           0 :         ndr_print_uint8(ndr, "fBindSecondaries", r->fBindSecondaries);
    1745           0 :         ndr_print_uint8(ndr, "fWriteAuthorityNs", r->fWriteAuthorityNs);
    1746           0 :         ndr_print_uint8(ndr, "fStrictFileParsing", r->fStrictFileParsing);
    1747           0 :         ndr_print_uint8(ndr, "fLooseWildcarding", r->fLooseWildcarding);
    1748           0 :         ndr_print_uint8(ndr, "fDefaultAgingState", r->fDefaultAgingState);
    1749           0 :         ndr_print_array_uint8(ndr, "fReserveArray", r->fReserveArray, 15);
    1750           0 :         ndr->depth--;
    1751             : }
    1752             : 
    1753          96 : static enum ndr_err_code ndr_push_DNS_EXTENSION(struct ndr_push *ndr, int ndr_flags, const struct DNS_EXTENSION *r)
    1754             : {
    1755          96 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1756          96 :         if (ndr_flags & NDR_SCALARS) {
    1757          48 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1758          48 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->extension));
    1759          48 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1760             :         }
    1761          96 :         if (ndr_flags & NDR_BUFFERS) {
    1762          48 :                 if (r->extension) {
    1763           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->extension, CH_UTF8)));
    1764           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1765           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->extension, CH_UTF8)));
    1766           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->extension, ndr_charset_length(r->extension, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1767             :                 }
    1768             :         }
    1769          96 :         return NDR_ERR_SUCCESS;
    1770             : }
    1771             : 
    1772          96 : static enum ndr_err_code ndr_pull_DNS_EXTENSION(struct ndr_pull *ndr, int ndr_flags, struct DNS_EXTENSION *r)
    1773             : {
    1774             :         uint32_t _ptr_extension;
    1775          96 :         uint32_t size_extension_1 = 0;
    1776          96 :         uint32_t length_extension_1 = 0;
    1777          96 :         TALLOC_CTX *_mem_save_extension_0 = NULL;
    1778          96 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1779          96 :         if (ndr_flags & NDR_SCALARS) {
    1780          48 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1781          48 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_extension));
    1782          48 :                 if (_ptr_extension) {
    1783           0 :                         NDR_PULL_ALLOC(ndr, r->extension);
    1784             :                 } else {
    1785          48 :                         r->extension = NULL;
    1786             :                 }
    1787          48 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1788             :         }
    1789          96 :         if (ndr_flags & NDR_BUFFERS) {
    1790          48 :                 if (r->extension) {
    1791           0 :                         _mem_save_extension_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1792           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->extension, 0);
    1793           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->extension));
    1794           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->extension));
    1795           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->extension, &size_extension_1));
    1796           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->extension, &length_extension_1));
    1797           0 :                         if (length_extension_1 > size_extension_1) {
    1798           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_extension_1, length_extension_1);
    1799             :                         }
    1800           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_extension_1, sizeof(uint8_t)));
    1801           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->extension, length_extension_1, sizeof(uint8_t), CH_UTF8));
    1802           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_extension_0, 0);
    1803             :                 }
    1804             :         }
    1805          96 :         return NDR_ERR_SUCCESS;
    1806             : }
    1807             : 
    1808           0 : _PUBLIC_ void ndr_print_DNS_EXTENSION(struct ndr_print *ndr, const char *name, const struct DNS_EXTENSION *r)
    1809             : {
    1810           0 :         ndr_print_struct(ndr, name, "DNS_EXTENSION");
    1811           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1812           0 :         ndr->depth++;
    1813           0 :         ndr_print_ptr(ndr, "extension", r->extension);
    1814           0 :         ndr->depth++;
    1815           0 :         if (r->extension) {
    1816           0 :                 ndr_print_string(ndr, "extension", r->extension);
    1817             :         }
    1818           0 :         ndr->depth--;
    1819           0 :         ndr->depth--;
    1820             : }
    1821             : 
    1822           4 : _PUBLIC_ enum ndr_err_code ndr_push_DNS_RPC_SERVER_INFO_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_SERVER_INFO_DOTNET *r)
    1823             : {
    1824             :         uint32_t cntr_pExtensions_0;
    1825             :         uint32_t cntr_dwReserveArray_0;
    1826           4 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1827           4 :         if (ndr_flags & NDR_SCALARS) {
    1828           4 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1829           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    1830           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    1831           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwVersion));
    1832           4 :                 NDR_CHECK(ndr_push_DNS_BOOT_METHOD(ndr, NDR_SCALARS, r->fBootMethod));
    1833           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAdminConfigured));
    1834           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAllowUpdate));
    1835           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fDsAvailable));
    1836           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszServerName));
    1837           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDsContainer));
    1838           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipServerAddrs));
    1839           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipListenAddrs));
    1840           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipForwarders));
    1841           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipLogFilter));
    1842           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pwszLogFilePath));
    1843           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDomainName));
    1844           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszForestName));
    1845           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDomainDirectoryPartition));
    1846           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszForestDirectoryPartition));
    1847          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (6); cntr_pExtensions_0++) {
    1848          24 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pExtensions[cntr_pExtensions_0]));
    1849             :                 }
    1850           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLogLevel));
    1851           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDebugLevel));
    1852           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwardTimeout));
    1853           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcProtocol));
    1854           4 :                 NDR_CHECK(ndr_push_DNS_NAME_CHECK_FLAG(ndr, NDR_SCALARS, r->dwNameCheckFlag));
    1855           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cAddressAnswerLimit));
    1856           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRecursionRetry));
    1857           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRecursionTimeout));
    1858           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwMaxCacheTtl));
    1859           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsPollingInterval));
    1860           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLocalNetPriorityNetMask));
    1861           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwScavengingInterval));
    1862           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDefaultRefreshInterval));
    1863           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDefaultNoRefreshInterval));
    1864           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastScavengeTime));
    1865           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwEventLogLevel));
    1866           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLogFileMaxSize));
    1867           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsForestVersion));
    1868           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsDomainVersion));
    1869           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsDsaVersion));
    1870          20 :                 for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (4); cntr_dwReserveArray_0++) {
    1871          16 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserveArray[cntr_dwReserveArray_0]));
    1872             :                 }
    1873           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAutoReverseZones));
    1874           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAutoCacheUpdate));
    1875           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    1876           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fForwardDelegations));
    1877           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fNoRecursion));
    1878           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fSecureResponses));
    1879           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fRoundRobin));
    1880           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fLocalNetPriority));
    1881           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fBindSecondaries));
    1882           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fWriteAuthorityNs));
    1883           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fStrictFileParsing));
    1884           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fLooseWildcarding));
    1885           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fDefaultAgingState));
    1886           4 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->fReserveArray, 15));
    1887           4 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1888             :         }
    1889           4 :         if (ndr_flags & NDR_BUFFERS) {
    1890           4 :                 if (r->pszServerName) {
    1891           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszServerName, CH_UTF8)));
    1892           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1893           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszServerName, CH_UTF8)));
    1894           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszServerName, ndr_charset_length(r->pszServerName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1895             :                 }
    1896           4 :                 if (r->pszDsContainer) {
    1897           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDsContainer, CH_UTF16)));
    1898           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1899           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDsContainer, CH_UTF16)));
    1900           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDsContainer, ndr_charset_length(r->pszDsContainer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    1901             :                 }
    1902           4 :                 if (r->aipServerAddrs) {
    1903           4 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipServerAddrs));
    1904             :                 }
    1905           4 :                 if (r->aipListenAddrs) {
    1906           4 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipListenAddrs));
    1907             :                 }
    1908           4 :                 if (r->aipForwarders) {
    1909           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    1910             :                 }
    1911           4 :                 if (r->aipLogFilter) {
    1912           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipLogFilter));
    1913             :                 }
    1914           4 :                 if (r->pwszLogFilePath) {
    1915           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszLogFilePath, CH_UTF16)));
    1916           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1917           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszLogFilePath, CH_UTF16)));
    1918           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pwszLogFilePath, ndr_charset_length(r->pwszLogFilePath, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    1919             :                 }
    1920           4 :                 if (r->pszDomainName) {
    1921           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainName, CH_UTF8)));
    1922           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1923           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainName, CH_UTF8)));
    1924           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDomainName, ndr_charset_length(r->pszDomainName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1925             :                 }
    1926           4 :                 if (r->pszForestName) {
    1927           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestName, CH_UTF8)));
    1928           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1929           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestName, CH_UTF8)));
    1930           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszForestName, ndr_charset_length(r->pszForestName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1931             :                 }
    1932           4 :                 if (r->pszDomainDirectoryPartition) {
    1933           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainDirectoryPartition, CH_UTF8)));
    1934           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1935           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainDirectoryPartition, CH_UTF8)));
    1936           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDomainDirectoryPartition, ndr_charset_length(r->pszDomainDirectoryPartition, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1937             :                 }
    1938           4 :                 if (r->pszForestDirectoryPartition) {
    1939           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestDirectoryPartition, CH_UTF8)));
    1940           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1941           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestDirectoryPartition, CH_UTF8)));
    1942           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszForestDirectoryPartition, ndr_charset_length(r->pszForestDirectoryPartition, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    1943             :                 }
    1944          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (6); cntr_pExtensions_0++) {
    1945          24 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pExtensions[cntr_pExtensions_0]));
    1946             :                 }
    1947             :         }
    1948           4 :         return NDR_ERR_SUCCESS;
    1949             : }
    1950             : 
    1951           4 : _PUBLIC_ enum ndr_err_code ndr_pull_DNS_RPC_SERVER_INFO_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_SERVER_INFO_DOTNET *r)
    1952             : {
    1953             :         uint32_t _ptr_pszServerName;
    1954           4 :         uint32_t size_pszServerName_1 = 0;
    1955           4 :         uint32_t length_pszServerName_1 = 0;
    1956           4 :         TALLOC_CTX *_mem_save_pszServerName_0 = NULL;
    1957             :         uint32_t _ptr_pszDsContainer;
    1958           4 :         uint32_t size_pszDsContainer_1 = 0;
    1959           4 :         uint32_t length_pszDsContainer_1 = 0;
    1960           4 :         TALLOC_CTX *_mem_save_pszDsContainer_0 = NULL;
    1961             :         uint32_t _ptr_aipServerAddrs;
    1962           4 :         TALLOC_CTX *_mem_save_aipServerAddrs_0 = NULL;
    1963             :         uint32_t _ptr_aipListenAddrs;
    1964           4 :         TALLOC_CTX *_mem_save_aipListenAddrs_0 = NULL;
    1965             :         uint32_t _ptr_aipForwarders;
    1966           4 :         TALLOC_CTX *_mem_save_aipForwarders_0 = NULL;
    1967             :         uint32_t _ptr_aipLogFilter;
    1968           4 :         TALLOC_CTX *_mem_save_aipLogFilter_0 = NULL;
    1969             :         uint32_t _ptr_pwszLogFilePath;
    1970           4 :         uint32_t size_pwszLogFilePath_1 = 0;
    1971           4 :         uint32_t length_pwszLogFilePath_1 = 0;
    1972           4 :         TALLOC_CTX *_mem_save_pwszLogFilePath_0 = NULL;
    1973             :         uint32_t _ptr_pszDomainName;
    1974           4 :         uint32_t size_pszDomainName_1 = 0;
    1975           4 :         uint32_t length_pszDomainName_1 = 0;
    1976           4 :         TALLOC_CTX *_mem_save_pszDomainName_0 = NULL;
    1977             :         uint32_t _ptr_pszForestName;
    1978           4 :         uint32_t size_pszForestName_1 = 0;
    1979           4 :         uint32_t length_pszForestName_1 = 0;
    1980           4 :         TALLOC_CTX *_mem_save_pszForestName_0 = NULL;
    1981             :         uint32_t _ptr_pszDomainDirectoryPartition;
    1982           4 :         uint32_t size_pszDomainDirectoryPartition_1 = 0;
    1983           4 :         uint32_t length_pszDomainDirectoryPartition_1 = 0;
    1984           4 :         TALLOC_CTX *_mem_save_pszDomainDirectoryPartition_0 = NULL;
    1985             :         uint32_t _ptr_pszForestDirectoryPartition;
    1986           4 :         uint32_t size_pszForestDirectoryPartition_1 = 0;
    1987           4 :         uint32_t length_pszForestDirectoryPartition_1 = 0;
    1988           4 :         TALLOC_CTX *_mem_save_pszForestDirectoryPartition_0 = NULL;
    1989           4 :         uint32_t size_pExtensions_0 = 0;
    1990             :         uint32_t cntr_pExtensions_0;
    1991           4 :         uint32_t size_dwReserveArray_0 = 0;
    1992             :         uint32_t cntr_dwReserveArray_0;
    1993           4 :         uint32_t size_fReserveArray_0 = 0;
    1994           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1995           4 :         if (ndr_flags & NDR_SCALARS) {
    1996           4 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1997           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    1998           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    1999           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwVersion));
    2000           4 :                 NDR_CHECK(ndr_pull_DNS_BOOT_METHOD(ndr, NDR_SCALARS, &r->fBootMethod));
    2001           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAdminConfigured));
    2002           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAllowUpdate));
    2003           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fDsAvailable));
    2004           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszServerName));
    2005           4 :                 if (_ptr_pszServerName) {
    2006           4 :                         NDR_PULL_ALLOC(ndr, r->pszServerName);
    2007             :                 } else {
    2008           0 :                         r->pszServerName = NULL;
    2009             :                 }
    2010           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDsContainer));
    2011           4 :                 if (_ptr_pszDsContainer) {
    2012           4 :                         NDR_PULL_ALLOC(ndr, r->pszDsContainer);
    2013             :                 } else {
    2014           0 :                         r->pszDsContainer = NULL;
    2015             :                 }
    2016           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipServerAddrs));
    2017           4 :                 if (_ptr_aipServerAddrs) {
    2018           4 :                         NDR_PULL_ALLOC(ndr, r->aipServerAddrs);
    2019             :                 } else {
    2020           0 :                         r->aipServerAddrs = NULL;
    2021             :                 }
    2022           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipListenAddrs));
    2023           4 :                 if (_ptr_aipListenAddrs) {
    2024           4 :                         NDR_PULL_ALLOC(ndr, r->aipListenAddrs);
    2025             :                 } else {
    2026           0 :                         r->aipListenAddrs = NULL;
    2027             :                 }
    2028           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipForwarders));
    2029           4 :                 if (_ptr_aipForwarders) {
    2030           0 :                         NDR_PULL_ALLOC(ndr, r->aipForwarders);
    2031             :                 } else {
    2032           4 :                         r->aipForwarders = NULL;
    2033             :                 }
    2034           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipLogFilter));
    2035           4 :                 if (_ptr_aipLogFilter) {
    2036           0 :                         NDR_PULL_ALLOC(ndr, r->aipLogFilter);
    2037             :                 } else {
    2038           4 :                         r->aipLogFilter = NULL;
    2039             :                 }
    2040           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pwszLogFilePath));
    2041           4 :                 if (_ptr_pwszLogFilePath) {
    2042           0 :                         NDR_PULL_ALLOC(ndr, r->pwszLogFilePath);
    2043             :                 } else {
    2044           4 :                         r->pwszLogFilePath = NULL;
    2045             :                 }
    2046           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDomainName));
    2047           4 :                 if (_ptr_pszDomainName) {
    2048           4 :                         NDR_PULL_ALLOC(ndr, r->pszDomainName);
    2049             :                 } else {
    2050           0 :                         r->pszDomainName = NULL;
    2051             :                 }
    2052           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszForestName));
    2053           4 :                 if (_ptr_pszForestName) {
    2054           4 :                         NDR_PULL_ALLOC(ndr, r->pszForestName);
    2055             :                 } else {
    2056           0 :                         r->pszForestName = NULL;
    2057             :                 }
    2058           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDomainDirectoryPartition));
    2059           4 :                 if (_ptr_pszDomainDirectoryPartition) {
    2060           4 :                         NDR_PULL_ALLOC(ndr, r->pszDomainDirectoryPartition);
    2061             :                 } else {
    2062           0 :                         r->pszDomainDirectoryPartition = NULL;
    2063             :                 }
    2064           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszForestDirectoryPartition));
    2065           4 :                 if (_ptr_pszForestDirectoryPartition) {
    2066           4 :                         NDR_PULL_ALLOC(ndr, r->pszForestDirectoryPartition);
    2067             :                 } else {
    2068           0 :                         r->pszForestDirectoryPartition = NULL;
    2069             :                 }
    2070           4 :                 size_pExtensions_0 = 6;
    2071          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (size_pExtensions_0); cntr_pExtensions_0++) {
    2072          24 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pExtensions[cntr_pExtensions_0]));
    2073             :                 }
    2074           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLogLevel));
    2075           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDebugLevel));
    2076           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwardTimeout));
    2077           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcProtocol));
    2078           4 :                 NDR_CHECK(ndr_pull_DNS_NAME_CHECK_FLAG(ndr, NDR_SCALARS, &r->dwNameCheckFlag));
    2079           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cAddressAnswerLimit));
    2080           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRecursionRetry));
    2081           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRecursionTimeout));
    2082           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwMaxCacheTtl));
    2083           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsPollingInterval));
    2084           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLocalNetPriorityNetMask));
    2085           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwScavengingInterval));
    2086           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDefaultRefreshInterval));
    2087           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDefaultNoRefreshInterval));
    2088           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastScavengeTime));
    2089           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwEventLogLevel));
    2090           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLogFileMaxSize));
    2091           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsForestVersion));
    2092           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsDomainVersion));
    2093           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsDsaVersion));
    2094           4 :                 size_dwReserveArray_0 = 4;
    2095          20 :                 for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (size_dwReserveArray_0); cntr_dwReserveArray_0++) {
    2096          16 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserveArray[cntr_dwReserveArray_0]));
    2097             :                 }
    2098           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAutoReverseZones));
    2099           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAutoCacheUpdate));
    2100           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    2101           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fForwardDelegations));
    2102           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fNoRecursion));
    2103           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fSecureResponses));
    2104           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fRoundRobin));
    2105           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fLocalNetPriority));
    2106           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fBindSecondaries));
    2107           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fWriteAuthorityNs));
    2108           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fStrictFileParsing));
    2109           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fLooseWildcarding));
    2110           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fDefaultAgingState));
    2111           4 :                 size_fReserveArray_0 = 15;
    2112           4 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->fReserveArray, size_fReserveArray_0));
    2113           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2114             :         }
    2115           4 :         if (ndr_flags & NDR_BUFFERS) {
    2116           4 :                 if (r->pszServerName) {
    2117           4 :                         _mem_save_pszServerName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2118           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszServerName, 0);
    2119           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszServerName));
    2120           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszServerName));
    2121           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszServerName, &size_pszServerName_1));
    2122           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszServerName, &length_pszServerName_1));
    2123           4 :                         if (length_pszServerName_1 > size_pszServerName_1) {
    2124           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszServerName_1, length_pszServerName_1);
    2125             :                         }
    2126           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszServerName_1, sizeof(uint8_t)));
    2127           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszServerName, length_pszServerName_1, sizeof(uint8_t), CH_UTF8));
    2128           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszServerName_0, 0);
    2129             :                 }
    2130           4 :                 if (r->pszDsContainer) {
    2131           4 :                         _mem_save_pszDsContainer_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2132           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDsContainer, 0);
    2133           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDsContainer));
    2134           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDsContainer));
    2135           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDsContainer, &size_pszDsContainer_1));
    2136           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDsContainer, &length_pszDsContainer_1));
    2137           4 :                         if (length_pszDsContainer_1 > size_pszDsContainer_1) {
    2138           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDsContainer_1, length_pszDsContainer_1);
    2139             :                         }
    2140           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDsContainer_1, sizeof(uint16_t)));
    2141           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDsContainer, length_pszDsContainer_1, sizeof(uint16_t), CH_UTF16));
    2142           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDsContainer_0, 0);
    2143             :                 }
    2144           4 :                 if (r->aipServerAddrs) {
    2145           4 :                         _mem_save_aipServerAddrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2146           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipServerAddrs, 0);
    2147           4 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipServerAddrs));
    2148           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipServerAddrs_0, 0);
    2149             :                 }
    2150           4 :                 if (r->aipListenAddrs) {
    2151           4 :                         _mem_save_aipListenAddrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2152           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipListenAddrs, 0);
    2153           4 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipListenAddrs));
    2154           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipListenAddrs_0, 0);
    2155             :                 }
    2156           4 :                 if (r->aipForwarders) {
    2157           0 :                         _mem_save_aipForwarders_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2158           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipForwarders, 0);
    2159           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    2160           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipForwarders_0, 0);
    2161             :                 }
    2162           4 :                 if (r->aipLogFilter) {
    2163           0 :                         _mem_save_aipLogFilter_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2164           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipLogFilter, 0);
    2165           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipLogFilter));
    2166           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipLogFilter_0, 0);
    2167             :                 }
    2168           4 :                 if (r->pwszLogFilePath) {
    2169           0 :                         _mem_save_pwszLogFilePath_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2170           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pwszLogFilePath, 0);
    2171           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pwszLogFilePath));
    2172           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pwszLogFilePath));
    2173           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pwszLogFilePath, &size_pwszLogFilePath_1));
    2174           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pwszLogFilePath, &length_pwszLogFilePath_1));
    2175           0 :                         if (length_pwszLogFilePath_1 > size_pwszLogFilePath_1) {
    2176           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pwszLogFilePath_1, length_pwszLogFilePath_1);
    2177             :                         }
    2178           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pwszLogFilePath_1, sizeof(uint16_t)));
    2179           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pwszLogFilePath, length_pwszLogFilePath_1, sizeof(uint16_t), CH_UTF16));
    2180           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwszLogFilePath_0, 0);
    2181             :                 }
    2182           4 :                 if (r->pszDomainName) {
    2183           4 :                         _mem_save_pszDomainName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2184           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDomainName, 0);
    2185           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDomainName));
    2186           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDomainName));
    2187           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDomainName, &size_pszDomainName_1));
    2188           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDomainName, &length_pszDomainName_1));
    2189           4 :                         if (length_pszDomainName_1 > size_pszDomainName_1) {
    2190           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDomainName_1, length_pszDomainName_1);
    2191             :                         }
    2192           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDomainName_1, sizeof(uint8_t)));
    2193           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDomainName, length_pszDomainName_1, sizeof(uint8_t), CH_UTF8));
    2194           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDomainName_0, 0);
    2195             :                 }
    2196           4 :                 if (r->pszForestName) {
    2197           4 :                         _mem_save_pszForestName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2198           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszForestName, 0);
    2199           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszForestName));
    2200           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszForestName));
    2201           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszForestName, &size_pszForestName_1));
    2202           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszForestName, &length_pszForestName_1));
    2203           4 :                         if (length_pszForestName_1 > size_pszForestName_1) {
    2204           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszForestName_1, length_pszForestName_1);
    2205             :                         }
    2206           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszForestName_1, sizeof(uint8_t)));
    2207           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszForestName, length_pszForestName_1, sizeof(uint8_t), CH_UTF8));
    2208           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszForestName_0, 0);
    2209             :                 }
    2210           4 :                 if (r->pszDomainDirectoryPartition) {
    2211           4 :                         _mem_save_pszDomainDirectoryPartition_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2212           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDomainDirectoryPartition, 0);
    2213           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDomainDirectoryPartition));
    2214           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDomainDirectoryPartition));
    2215           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDomainDirectoryPartition, &size_pszDomainDirectoryPartition_1));
    2216           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDomainDirectoryPartition, &length_pszDomainDirectoryPartition_1));
    2217           4 :                         if (length_pszDomainDirectoryPartition_1 > size_pszDomainDirectoryPartition_1) {
    2218           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDomainDirectoryPartition_1, length_pszDomainDirectoryPartition_1);
    2219             :                         }
    2220           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDomainDirectoryPartition_1, sizeof(uint8_t)));
    2221           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDomainDirectoryPartition, length_pszDomainDirectoryPartition_1, sizeof(uint8_t), CH_UTF8));
    2222           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDomainDirectoryPartition_0, 0);
    2223             :                 }
    2224           4 :                 if (r->pszForestDirectoryPartition) {
    2225           4 :                         _mem_save_pszForestDirectoryPartition_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2226           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszForestDirectoryPartition, 0);
    2227           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszForestDirectoryPartition));
    2228           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszForestDirectoryPartition));
    2229           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszForestDirectoryPartition, &size_pszForestDirectoryPartition_1));
    2230           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszForestDirectoryPartition, &length_pszForestDirectoryPartition_1));
    2231           4 :                         if (length_pszForestDirectoryPartition_1 > size_pszForestDirectoryPartition_1) {
    2232           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszForestDirectoryPartition_1, length_pszForestDirectoryPartition_1);
    2233             :                         }
    2234           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszForestDirectoryPartition_1, sizeof(uint8_t)));
    2235           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszForestDirectoryPartition, length_pszForestDirectoryPartition_1, sizeof(uint8_t), CH_UTF8));
    2236           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszForestDirectoryPartition_0, 0);
    2237             :                 }
    2238           4 :                 size_pExtensions_0 = 6;
    2239          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (size_pExtensions_0); cntr_pExtensions_0++) {
    2240          24 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pExtensions[cntr_pExtensions_0]));
    2241             :                 }
    2242          10 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (size_pExtensions_0); cntr_pExtensions_0++) {
    2243             :                 }
    2244             :         }
    2245           4 :         return NDR_ERR_SUCCESS;
    2246             : }
    2247             : 
    2248           0 : static void ndr_print_flags_DNS_RPC_SERVER_INFO_DOTNET(struct ndr_print *ndr, const char *name, int unused, const struct DNS_RPC_SERVER_INFO_DOTNET *r)
    2249             : {
    2250           0 :         ndr_print_DNS_RPC_SERVER_INFO_DOTNET(ndr, name, r);
    2251           0 : }
    2252             : 
    2253           0 : _PUBLIC_ void ndr_print_DNS_RPC_SERVER_INFO_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_SERVER_INFO_DOTNET *r)
    2254             : {
    2255             :         uint32_t cntr_pExtensions_0;
    2256             :         uint32_t cntr_dwReserveArray_0;
    2257           0 :         ndr_print_struct(ndr, name, "DNS_RPC_SERVER_INFO_DOTNET");
    2258           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2259           0 :         ndr->depth++;
    2260           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    2261           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    2262           0 :         ndr_print_uint32(ndr, "dwVersion", r->dwVersion);
    2263           0 :         ndr_print_DNS_BOOT_METHOD(ndr, "fBootMethod", r->fBootMethod);
    2264           0 :         ndr_print_uint8(ndr, "fAdminConfigured", r->fAdminConfigured);
    2265           0 :         ndr_print_uint8(ndr, "fAllowUpdate", r->fAllowUpdate);
    2266           0 :         ndr_print_uint8(ndr, "fDsAvailable", r->fDsAvailable);
    2267           0 :         ndr_print_ptr(ndr, "pszServerName", r->pszServerName);
    2268           0 :         ndr->depth++;
    2269           0 :         if (r->pszServerName) {
    2270           0 :                 ndr_print_string(ndr, "pszServerName", r->pszServerName);
    2271             :         }
    2272           0 :         ndr->depth--;
    2273           0 :         ndr_print_ptr(ndr, "pszDsContainer", r->pszDsContainer);
    2274           0 :         ndr->depth++;
    2275           0 :         if (r->pszDsContainer) {
    2276           0 :                 ndr_print_string(ndr, "pszDsContainer", r->pszDsContainer);
    2277             :         }
    2278           0 :         ndr->depth--;
    2279           0 :         ndr_print_ptr(ndr, "aipServerAddrs", r->aipServerAddrs);
    2280           0 :         ndr->depth++;
    2281           0 :         if (r->aipServerAddrs) {
    2282           0 :                 ndr_print_IP4_ARRAY(ndr, "aipServerAddrs", r->aipServerAddrs);
    2283             :         }
    2284           0 :         ndr->depth--;
    2285           0 :         ndr_print_ptr(ndr, "aipListenAddrs", r->aipListenAddrs);
    2286           0 :         ndr->depth++;
    2287           0 :         if (r->aipListenAddrs) {
    2288           0 :                 ndr_print_IP4_ARRAY(ndr, "aipListenAddrs", r->aipListenAddrs);
    2289             :         }
    2290           0 :         ndr->depth--;
    2291           0 :         ndr_print_ptr(ndr, "aipForwarders", r->aipForwarders);
    2292           0 :         ndr->depth++;
    2293           0 :         if (r->aipForwarders) {
    2294           0 :                 ndr_print_IP4_ARRAY(ndr, "aipForwarders", r->aipForwarders);
    2295             :         }
    2296           0 :         ndr->depth--;
    2297           0 :         ndr_print_ptr(ndr, "aipLogFilter", r->aipLogFilter);
    2298           0 :         ndr->depth++;
    2299           0 :         if (r->aipLogFilter) {
    2300           0 :                 ndr_print_IP4_ARRAY(ndr, "aipLogFilter", r->aipLogFilter);
    2301             :         }
    2302           0 :         ndr->depth--;
    2303           0 :         ndr_print_ptr(ndr, "pwszLogFilePath", r->pwszLogFilePath);
    2304           0 :         ndr->depth++;
    2305           0 :         if (r->pwszLogFilePath) {
    2306           0 :                 ndr_print_string(ndr, "pwszLogFilePath", r->pwszLogFilePath);
    2307             :         }
    2308           0 :         ndr->depth--;
    2309           0 :         ndr_print_ptr(ndr, "pszDomainName", r->pszDomainName);
    2310           0 :         ndr->depth++;
    2311           0 :         if (r->pszDomainName) {
    2312           0 :                 ndr_print_string(ndr, "pszDomainName", r->pszDomainName);
    2313             :         }
    2314           0 :         ndr->depth--;
    2315           0 :         ndr_print_ptr(ndr, "pszForestName", r->pszForestName);
    2316           0 :         ndr->depth++;
    2317           0 :         if (r->pszForestName) {
    2318           0 :                 ndr_print_string(ndr, "pszForestName", r->pszForestName);
    2319             :         }
    2320           0 :         ndr->depth--;
    2321           0 :         ndr_print_ptr(ndr, "pszDomainDirectoryPartition", r->pszDomainDirectoryPartition);
    2322           0 :         ndr->depth++;
    2323           0 :         if (r->pszDomainDirectoryPartition) {
    2324           0 :                 ndr_print_string(ndr, "pszDomainDirectoryPartition", r->pszDomainDirectoryPartition);
    2325             :         }
    2326           0 :         ndr->depth--;
    2327           0 :         ndr_print_ptr(ndr, "pszForestDirectoryPartition", r->pszForestDirectoryPartition);
    2328           0 :         ndr->depth++;
    2329           0 :         if (r->pszForestDirectoryPartition) {
    2330           0 :                 ndr_print_string(ndr, "pszForestDirectoryPartition", r->pszForestDirectoryPartition);
    2331             :         }
    2332           0 :         ndr->depth--;
    2333           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "pExtensions", (int)6);
    2334           0 :         ndr->depth++;
    2335           0 :         for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (6); cntr_pExtensions_0++) {
    2336           0 :                 ndr_print_DNS_EXTENSION(ndr, "pExtensions", &r->pExtensions[cntr_pExtensions_0]);
    2337             :         }
    2338           0 :         ndr->depth--;
    2339           0 :         ndr_print_uint32(ndr, "dwLogLevel", r->dwLogLevel);
    2340           0 :         ndr_print_uint32(ndr, "dwDebugLevel", r->dwDebugLevel);
    2341           0 :         ndr_print_uint32(ndr, "dwForwardTimeout", r->dwForwardTimeout);
    2342           0 :         ndr_print_uint32(ndr, "dwRpcProtocol", r->dwRpcProtocol);
    2343           0 :         ndr_print_DNS_NAME_CHECK_FLAG(ndr, "dwNameCheckFlag", r->dwNameCheckFlag);
    2344           0 :         ndr_print_uint32(ndr, "cAddressAnswerLimit", r->cAddressAnswerLimit);
    2345           0 :         ndr_print_uint32(ndr, "dwRecursionRetry", r->dwRecursionRetry);
    2346           0 :         ndr_print_uint32(ndr, "dwRecursionTimeout", r->dwRecursionTimeout);
    2347           0 :         ndr_print_uint32(ndr, "dwMaxCacheTtl", r->dwMaxCacheTtl);
    2348           0 :         ndr_print_uint32(ndr, "dwDsPollingInterval", r->dwDsPollingInterval);
    2349           0 :         ndr_print_uint32(ndr, "dwLocalNetPriorityNetMask", r->dwLocalNetPriorityNetMask);
    2350           0 :         ndr_print_uint32(ndr, "dwScavengingInterval", r->dwScavengingInterval);
    2351           0 :         ndr_print_uint32(ndr, "dwDefaultRefreshInterval", r->dwDefaultRefreshInterval);
    2352           0 :         ndr_print_uint32(ndr, "dwDefaultNoRefreshInterval", r->dwDefaultNoRefreshInterval);
    2353           0 :         ndr_print_uint32(ndr, "dwLastScavengeTime", r->dwLastScavengeTime);
    2354           0 :         ndr_print_uint32(ndr, "dwEventLogLevel", r->dwEventLogLevel);
    2355           0 :         ndr_print_uint32(ndr, "dwLogFileMaxSize", r->dwLogFileMaxSize);
    2356           0 :         ndr_print_uint32(ndr, "dwDsForestVersion", r->dwDsForestVersion);
    2357           0 :         ndr_print_uint32(ndr, "dwDsDomainVersion", r->dwDsDomainVersion);
    2358           0 :         ndr_print_uint32(ndr, "dwDsDsaVersion", r->dwDsDsaVersion);
    2359           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "dwReserveArray", (int)4);
    2360           0 :         ndr->depth++;
    2361           0 :         for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (4); cntr_dwReserveArray_0++) {
    2362           0 :                 ndr_print_uint32(ndr, "dwReserveArray", r->dwReserveArray[cntr_dwReserveArray_0]);
    2363             :         }
    2364           0 :         ndr->depth--;
    2365           0 :         ndr_print_uint8(ndr, "fAutoReverseZones", r->fAutoReverseZones);
    2366           0 :         ndr_print_uint8(ndr, "fAutoCacheUpdate", r->fAutoCacheUpdate);
    2367           0 :         ndr_print_uint8(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    2368           0 :         ndr_print_uint8(ndr, "fForwardDelegations", r->fForwardDelegations);
    2369           0 :         ndr_print_uint8(ndr, "fNoRecursion", r->fNoRecursion);
    2370           0 :         ndr_print_uint8(ndr, "fSecureResponses", r->fSecureResponses);
    2371           0 :         ndr_print_uint8(ndr, "fRoundRobin", r->fRoundRobin);
    2372           0 :         ndr_print_uint8(ndr, "fLocalNetPriority", r->fLocalNetPriority);
    2373           0 :         ndr_print_uint8(ndr, "fBindSecondaries", r->fBindSecondaries);
    2374           0 :         ndr_print_uint8(ndr, "fWriteAuthorityNs", r->fWriteAuthorityNs);
    2375           0 :         ndr_print_uint8(ndr, "fStrictFileParsing", r->fStrictFileParsing);
    2376           0 :         ndr_print_uint8(ndr, "fLooseWildcarding", r->fLooseWildcarding);
    2377           0 :         ndr_print_uint8(ndr, "fDefaultAgingState", r->fDefaultAgingState);
    2378           0 :         ndr_print_array_uint8(ndr, "fReserveArray", r->fReserveArray, 15);
    2379           0 :         ndr->depth--;
    2380             : }
    2381             : 
    2382           4 : _PUBLIC_ enum ndr_err_code ndr_push_DNS_RPC_SERVER_INFO_LONGHORN(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_SERVER_INFO_LONGHORN *r)
    2383             : {
    2384             :         uint32_t cntr_pExtensions_0;
    2385             :         uint32_t cntr_dwReserveArray_0;
    2386           4 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2387           4 :         if (ndr_flags & NDR_SCALARS) {
    2388           4 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    2389           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    2390           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    2391           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwVersion));
    2392           4 :                 NDR_CHECK(ndr_push_DNS_BOOT_METHOD(ndr, NDR_SCALARS, r->fBootMethod));
    2393           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAdminConfigured));
    2394           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAllowUpdate));
    2395           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fDsAvailable));
    2396           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszServerName));
    2397           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDsContainer));
    2398           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipServerAddrs));
    2399           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipListenAddrs));
    2400           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipForwarders));
    2401           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipLogFilter));
    2402           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pwszLogFilePath));
    2403           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDomainName));
    2404           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszForestName));
    2405           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDomainDirectoryPartition));
    2406           4 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszForestDirectoryPartition));
    2407          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (6); cntr_pExtensions_0++) {
    2408          24 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pExtensions[cntr_pExtensions_0]));
    2409             :                 }
    2410           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLogLevel));
    2411           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDebugLevel));
    2412           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwardTimeout));
    2413           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcProtocol));
    2414           4 :                 NDR_CHECK(ndr_push_DNS_NAME_CHECK_FLAG(ndr, NDR_SCALARS, r->dwNameCheckFlag));
    2415           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cAddressAnswerLimit));
    2416           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRecursionRetry));
    2417           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRecursionTimeout));
    2418           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwMaxCacheTtl));
    2419           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsPollingInterval));
    2420           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLocalNetPriorityNetMask));
    2421           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwScavengingInterval));
    2422           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDefaultRefreshInterval));
    2423           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDefaultNoRefreshInterval));
    2424           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastScavengeTime));
    2425           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwEventLogLevel));
    2426           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLogFileMaxSize));
    2427           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsForestVersion));
    2428           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsDomainVersion));
    2429           4 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDsDsaVersion));
    2430           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fReadOnlyDC));
    2431          16 :                 for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (3); cntr_dwReserveArray_0++) {
    2432          12 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserveArray[cntr_dwReserveArray_0]));
    2433             :                 }
    2434           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAutoReverseZones));
    2435           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fAutoCacheUpdate));
    2436           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    2437           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fForwardDelegations));
    2438           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fNoRecursion));
    2439           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fSecureResponses));
    2440           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fRoundRobin));
    2441           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fLocalNetPriority));
    2442           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fBindSecondaries));
    2443           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fWriteAuthorityNs));
    2444           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fStrictFileParsing));
    2445           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fLooseWildcarding));
    2446           4 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fDefaultAgingState));
    2447           4 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->fReserveArray, 15));
    2448           4 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    2449             :         }
    2450           4 :         if (ndr_flags & NDR_BUFFERS) {
    2451           4 :                 if (r->pszServerName) {
    2452           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszServerName, CH_UTF8)));
    2453           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2454           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszServerName, CH_UTF8)));
    2455           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszServerName, ndr_charset_length(r->pszServerName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    2456             :                 }
    2457           4 :                 if (r->pszDsContainer) {
    2458           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDsContainer, CH_UTF16)));
    2459           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2460           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDsContainer, CH_UTF16)));
    2461           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDsContainer, ndr_charset_length(r->pszDsContainer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    2462             :                 }
    2463           4 :                 if (r->aipServerAddrs) {
    2464           4 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipServerAddrs));
    2465             :                 }
    2466           4 :                 if (r->aipListenAddrs) {
    2467           4 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipListenAddrs));
    2468             :                 }
    2469           4 :                 if (r->aipForwarders) {
    2470           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    2471             :                 }
    2472           4 :                 if (r->aipLogFilter) {
    2473           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipLogFilter));
    2474             :                 }
    2475           4 :                 if (r->pwszLogFilePath) {
    2476           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszLogFilePath, CH_UTF16)));
    2477           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2478           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszLogFilePath, CH_UTF16)));
    2479           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pwszLogFilePath, ndr_charset_length(r->pwszLogFilePath, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    2480             :                 }
    2481           4 :                 if (r->pszDomainName) {
    2482           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainName, CH_UTF8)));
    2483           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2484           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainName, CH_UTF8)));
    2485           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDomainName, ndr_charset_length(r->pszDomainName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    2486             :                 }
    2487           4 :                 if (r->pszForestName) {
    2488           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestName, CH_UTF8)));
    2489           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2490           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestName, CH_UTF8)));
    2491           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszForestName, ndr_charset_length(r->pszForestName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    2492             :                 }
    2493           4 :                 if (r->pszDomainDirectoryPartition) {
    2494           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainDirectoryPartition, CH_UTF8)));
    2495           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2496           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDomainDirectoryPartition, CH_UTF8)));
    2497           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDomainDirectoryPartition, ndr_charset_length(r->pszDomainDirectoryPartition, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    2498             :                 }
    2499           4 :                 if (r->pszForestDirectoryPartition) {
    2500           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestDirectoryPartition, CH_UTF8)));
    2501           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2502           4 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszForestDirectoryPartition, CH_UTF8)));
    2503           4 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszForestDirectoryPartition, ndr_charset_length(r->pszForestDirectoryPartition, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    2504             :                 }
    2505          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (6); cntr_pExtensions_0++) {
    2506          24 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pExtensions[cntr_pExtensions_0]));
    2507             :                 }
    2508             :         }
    2509           4 :         return NDR_ERR_SUCCESS;
    2510             : }
    2511             : 
    2512           4 : _PUBLIC_ enum ndr_err_code ndr_pull_DNS_RPC_SERVER_INFO_LONGHORN(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_SERVER_INFO_LONGHORN *r)
    2513             : {
    2514             :         uint32_t _ptr_pszServerName;
    2515           4 :         uint32_t size_pszServerName_1 = 0;
    2516           4 :         uint32_t length_pszServerName_1 = 0;
    2517           4 :         TALLOC_CTX *_mem_save_pszServerName_0 = NULL;
    2518             :         uint32_t _ptr_pszDsContainer;
    2519           4 :         uint32_t size_pszDsContainer_1 = 0;
    2520           4 :         uint32_t length_pszDsContainer_1 = 0;
    2521           4 :         TALLOC_CTX *_mem_save_pszDsContainer_0 = NULL;
    2522             :         uint32_t _ptr_aipServerAddrs;
    2523           4 :         TALLOC_CTX *_mem_save_aipServerAddrs_0 = NULL;
    2524             :         uint32_t _ptr_aipListenAddrs;
    2525           4 :         TALLOC_CTX *_mem_save_aipListenAddrs_0 = NULL;
    2526             :         uint32_t _ptr_aipForwarders;
    2527           4 :         TALLOC_CTX *_mem_save_aipForwarders_0 = NULL;
    2528             :         uint32_t _ptr_aipLogFilter;
    2529           4 :         TALLOC_CTX *_mem_save_aipLogFilter_0 = NULL;
    2530             :         uint32_t _ptr_pwszLogFilePath;
    2531           4 :         uint32_t size_pwszLogFilePath_1 = 0;
    2532           4 :         uint32_t length_pwszLogFilePath_1 = 0;
    2533           4 :         TALLOC_CTX *_mem_save_pwszLogFilePath_0 = NULL;
    2534             :         uint32_t _ptr_pszDomainName;
    2535           4 :         uint32_t size_pszDomainName_1 = 0;
    2536           4 :         uint32_t length_pszDomainName_1 = 0;
    2537           4 :         TALLOC_CTX *_mem_save_pszDomainName_0 = NULL;
    2538             :         uint32_t _ptr_pszForestName;
    2539           4 :         uint32_t size_pszForestName_1 = 0;
    2540           4 :         uint32_t length_pszForestName_1 = 0;
    2541           4 :         TALLOC_CTX *_mem_save_pszForestName_0 = NULL;
    2542             :         uint32_t _ptr_pszDomainDirectoryPartition;
    2543           4 :         uint32_t size_pszDomainDirectoryPartition_1 = 0;
    2544           4 :         uint32_t length_pszDomainDirectoryPartition_1 = 0;
    2545           4 :         TALLOC_CTX *_mem_save_pszDomainDirectoryPartition_0 = NULL;
    2546             :         uint32_t _ptr_pszForestDirectoryPartition;
    2547           4 :         uint32_t size_pszForestDirectoryPartition_1 = 0;
    2548           4 :         uint32_t length_pszForestDirectoryPartition_1 = 0;
    2549           4 :         TALLOC_CTX *_mem_save_pszForestDirectoryPartition_0 = NULL;
    2550           4 :         uint32_t size_pExtensions_0 = 0;
    2551             :         uint32_t cntr_pExtensions_0;
    2552           4 :         uint32_t size_dwReserveArray_0 = 0;
    2553             :         uint32_t cntr_dwReserveArray_0;
    2554           4 :         uint32_t size_fReserveArray_0 = 0;
    2555           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2556           4 :         if (ndr_flags & NDR_SCALARS) {
    2557           4 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    2558           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    2559           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    2560           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwVersion));
    2561           4 :                 NDR_CHECK(ndr_pull_DNS_BOOT_METHOD(ndr, NDR_SCALARS, &r->fBootMethod));
    2562           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAdminConfigured));
    2563           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAllowUpdate));
    2564           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fDsAvailable));
    2565           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszServerName));
    2566           4 :                 if (_ptr_pszServerName) {
    2567           4 :                         NDR_PULL_ALLOC(ndr, r->pszServerName);
    2568             :                 } else {
    2569           0 :                         r->pszServerName = NULL;
    2570             :                 }
    2571           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDsContainer));
    2572           4 :                 if (_ptr_pszDsContainer) {
    2573           4 :                         NDR_PULL_ALLOC(ndr, r->pszDsContainer);
    2574             :                 } else {
    2575           0 :                         r->pszDsContainer = NULL;
    2576             :                 }
    2577           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipServerAddrs));
    2578           4 :                 if (_ptr_aipServerAddrs) {
    2579           4 :                         NDR_PULL_ALLOC(ndr, r->aipServerAddrs);
    2580             :                 } else {
    2581           0 :                         r->aipServerAddrs = NULL;
    2582             :                 }
    2583           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipListenAddrs));
    2584           4 :                 if (_ptr_aipListenAddrs) {
    2585           4 :                         NDR_PULL_ALLOC(ndr, r->aipListenAddrs);
    2586             :                 } else {
    2587           0 :                         r->aipListenAddrs = NULL;
    2588             :                 }
    2589           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipForwarders));
    2590           4 :                 if (_ptr_aipForwarders) {
    2591           0 :                         NDR_PULL_ALLOC(ndr, r->aipForwarders);
    2592             :                 } else {
    2593           4 :                         r->aipForwarders = NULL;
    2594             :                 }
    2595           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipLogFilter));
    2596           4 :                 if (_ptr_aipLogFilter) {
    2597           0 :                         NDR_PULL_ALLOC(ndr, r->aipLogFilter);
    2598             :                 } else {
    2599           4 :                         r->aipLogFilter = NULL;
    2600             :                 }
    2601           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pwszLogFilePath));
    2602           4 :                 if (_ptr_pwszLogFilePath) {
    2603           0 :                         NDR_PULL_ALLOC(ndr, r->pwszLogFilePath);
    2604             :                 } else {
    2605           4 :                         r->pwszLogFilePath = NULL;
    2606             :                 }
    2607           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDomainName));
    2608           4 :                 if (_ptr_pszDomainName) {
    2609           4 :                         NDR_PULL_ALLOC(ndr, r->pszDomainName);
    2610             :                 } else {
    2611           0 :                         r->pszDomainName = NULL;
    2612             :                 }
    2613           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszForestName));
    2614           4 :                 if (_ptr_pszForestName) {
    2615           4 :                         NDR_PULL_ALLOC(ndr, r->pszForestName);
    2616             :                 } else {
    2617           0 :                         r->pszForestName = NULL;
    2618             :                 }
    2619           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDomainDirectoryPartition));
    2620           4 :                 if (_ptr_pszDomainDirectoryPartition) {
    2621           4 :                         NDR_PULL_ALLOC(ndr, r->pszDomainDirectoryPartition);
    2622             :                 } else {
    2623           0 :                         r->pszDomainDirectoryPartition = NULL;
    2624             :                 }
    2625           4 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszForestDirectoryPartition));
    2626           4 :                 if (_ptr_pszForestDirectoryPartition) {
    2627           4 :                         NDR_PULL_ALLOC(ndr, r->pszForestDirectoryPartition);
    2628             :                 } else {
    2629           0 :                         r->pszForestDirectoryPartition = NULL;
    2630             :                 }
    2631           4 :                 size_pExtensions_0 = 6;
    2632          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (size_pExtensions_0); cntr_pExtensions_0++) {
    2633          24 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pExtensions[cntr_pExtensions_0]));
    2634             :                 }
    2635           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLogLevel));
    2636           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDebugLevel));
    2637           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwardTimeout));
    2638           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcProtocol));
    2639           4 :                 NDR_CHECK(ndr_pull_DNS_NAME_CHECK_FLAG(ndr, NDR_SCALARS, &r->dwNameCheckFlag));
    2640           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cAddressAnswerLimit));
    2641           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRecursionRetry));
    2642           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRecursionTimeout));
    2643           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwMaxCacheTtl));
    2644           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsPollingInterval));
    2645           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLocalNetPriorityNetMask));
    2646           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwScavengingInterval));
    2647           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDefaultRefreshInterval));
    2648           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDefaultNoRefreshInterval));
    2649           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastScavengeTime));
    2650           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwEventLogLevel));
    2651           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLogFileMaxSize));
    2652           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsForestVersion));
    2653           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsDomainVersion));
    2654           4 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDsDsaVersion));
    2655           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fReadOnlyDC));
    2656           4 :                 size_dwReserveArray_0 = 3;
    2657          16 :                 for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (size_dwReserveArray_0); cntr_dwReserveArray_0++) {
    2658          12 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserveArray[cntr_dwReserveArray_0]));
    2659             :                 }
    2660           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAutoReverseZones));
    2661           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fAutoCacheUpdate));
    2662           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    2663           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fForwardDelegations));
    2664           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fNoRecursion));
    2665           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fSecureResponses));
    2666           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fRoundRobin));
    2667           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fLocalNetPriority));
    2668           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fBindSecondaries));
    2669           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fWriteAuthorityNs));
    2670           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fStrictFileParsing));
    2671           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fLooseWildcarding));
    2672           4 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fDefaultAgingState));
    2673           4 :                 size_fReserveArray_0 = 15;
    2674           4 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->fReserveArray, size_fReserveArray_0));
    2675           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2676             :         }
    2677           4 :         if (ndr_flags & NDR_BUFFERS) {
    2678           4 :                 if (r->pszServerName) {
    2679           4 :                         _mem_save_pszServerName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2680           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszServerName, 0);
    2681           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszServerName));
    2682           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszServerName));
    2683           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszServerName, &size_pszServerName_1));
    2684           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszServerName, &length_pszServerName_1));
    2685           4 :                         if (length_pszServerName_1 > size_pszServerName_1) {
    2686           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszServerName_1, length_pszServerName_1);
    2687             :                         }
    2688           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszServerName_1, sizeof(uint8_t)));
    2689           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszServerName, length_pszServerName_1, sizeof(uint8_t), CH_UTF8));
    2690           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszServerName_0, 0);
    2691             :                 }
    2692           4 :                 if (r->pszDsContainer) {
    2693           4 :                         _mem_save_pszDsContainer_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2694           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDsContainer, 0);
    2695           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDsContainer));
    2696           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDsContainer));
    2697           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDsContainer, &size_pszDsContainer_1));
    2698           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDsContainer, &length_pszDsContainer_1));
    2699           4 :                         if (length_pszDsContainer_1 > size_pszDsContainer_1) {
    2700           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDsContainer_1, length_pszDsContainer_1);
    2701             :                         }
    2702           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDsContainer_1, sizeof(uint16_t)));
    2703           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDsContainer, length_pszDsContainer_1, sizeof(uint16_t), CH_UTF16));
    2704           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDsContainer_0, 0);
    2705             :                 }
    2706           4 :                 if (r->aipServerAddrs) {
    2707           4 :                         _mem_save_aipServerAddrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2708           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipServerAddrs, 0);
    2709           4 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipServerAddrs));
    2710           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipServerAddrs_0, 0);
    2711             :                 }
    2712           4 :                 if (r->aipListenAddrs) {
    2713           4 :                         _mem_save_aipListenAddrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2714           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipListenAddrs, 0);
    2715           4 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipListenAddrs));
    2716           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipListenAddrs_0, 0);
    2717             :                 }
    2718           4 :                 if (r->aipForwarders) {
    2719           0 :                         _mem_save_aipForwarders_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2720           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipForwarders, 0);
    2721           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    2722           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipForwarders_0, 0);
    2723             :                 }
    2724           4 :                 if (r->aipLogFilter) {
    2725           0 :                         _mem_save_aipLogFilter_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2726           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipLogFilter, 0);
    2727           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipLogFilter));
    2728           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipLogFilter_0, 0);
    2729             :                 }
    2730           4 :                 if (r->pwszLogFilePath) {
    2731           0 :                         _mem_save_pwszLogFilePath_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2732           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pwszLogFilePath, 0);
    2733           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pwszLogFilePath));
    2734           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pwszLogFilePath));
    2735           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pwszLogFilePath, &size_pwszLogFilePath_1));
    2736           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pwszLogFilePath, &length_pwszLogFilePath_1));
    2737           0 :                         if (length_pwszLogFilePath_1 > size_pwszLogFilePath_1) {
    2738           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pwszLogFilePath_1, length_pwszLogFilePath_1);
    2739             :                         }
    2740           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pwszLogFilePath_1, sizeof(uint16_t)));
    2741           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pwszLogFilePath, length_pwszLogFilePath_1, sizeof(uint16_t), CH_UTF16));
    2742           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwszLogFilePath_0, 0);
    2743             :                 }
    2744           4 :                 if (r->pszDomainName) {
    2745           4 :                         _mem_save_pszDomainName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2746           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDomainName, 0);
    2747           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDomainName));
    2748           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDomainName));
    2749           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDomainName, &size_pszDomainName_1));
    2750           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDomainName, &length_pszDomainName_1));
    2751           4 :                         if (length_pszDomainName_1 > size_pszDomainName_1) {
    2752           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDomainName_1, length_pszDomainName_1);
    2753             :                         }
    2754           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDomainName_1, sizeof(uint8_t)));
    2755           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDomainName, length_pszDomainName_1, sizeof(uint8_t), CH_UTF8));
    2756           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDomainName_0, 0);
    2757             :                 }
    2758           4 :                 if (r->pszForestName) {
    2759           4 :                         _mem_save_pszForestName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2760           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszForestName, 0);
    2761           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszForestName));
    2762           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszForestName));
    2763           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszForestName, &size_pszForestName_1));
    2764           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszForestName, &length_pszForestName_1));
    2765           4 :                         if (length_pszForestName_1 > size_pszForestName_1) {
    2766           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszForestName_1, length_pszForestName_1);
    2767             :                         }
    2768           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszForestName_1, sizeof(uint8_t)));
    2769           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszForestName, length_pszForestName_1, sizeof(uint8_t), CH_UTF8));
    2770           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszForestName_0, 0);
    2771             :                 }
    2772           4 :                 if (r->pszDomainDirectoryPartition) {
    2773           4 :                         _mem_save_pszDomainDirectoryPartition_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2774           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDomainDirectoryPartition, 0);
    2775           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDomainDirectoryPartition));
    2776           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDomainDirectoryPartition));
    2777           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDomainDirectoryPartition, &size_pszDomainDirectoryPartition_1));
    2778           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDomainDirectoryPartition, &length_pszDomainDirectoryPartition_1));
    2779           4 :                         if (length_pszDomainDirectoryPartition_1 > size_pszDomainDirectoryPartition_1) {
    2780           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDomainDirectoryPartition_1, length_pszDomainDirectoryPartition_1);
    2781             :                         }
    2782           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDomainDirectoryPartition_1, sizeof(uint8_t)));
    2783           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDomainDirectoryPartition, length_pszDomainDirectoryPartition_1, sizeof(uint8_t), CH_UTF8));
    2784           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDomainDirectoryPartition_0, 0);
    2785             :                 }
    2786           4 :                 if (r->pszForestDirectoryPartition) {
    2787           4 :                         _mem_save_pszForestDirectoryPartition_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2788           4 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszForestDirectoryPartition, 0);
    2789           4 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszForestDirectoryPartition));
    2790           4 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszForestDirectoryPartition));
    2791           4 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszForestDirectoryPartition, &size_pszForestDirectoryPartition_1));
    2792           4 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszForestDirectoryPartition, &length_pszForestDirectoryPartition_1));
    2793           4 :                         if (length_pszForestDirectoryPartition_1 > size_pszForestDirectoryPartition_1) {
    2794           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszForestDirectoryPartition_1, length_pszForestDirectoryPartition_1);
    2795             :                         }
    2796           4 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszForestDirectoryPartition_1, sizeof(uint8_t)));
    2797           4 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszForestDirectoryPartition, length_pszForestDirectoryPartition_1, sizeof(uint8_t), CH_UTF8));
    2798           4 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszForestDirectoryPartition_0, 0);
    2799             :                 }
    2800           4 :                 size_pExtensions_0 = 6;
    2801          28 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (size_pExtensions_0); cntr_pExtensions_0++) {
    2802          24 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pExtensions[cntr_pExtensions_0]));
    2803             :                 }
    2804          10 :                 for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (size_pExtensions_0); cntr_pExtensions_0++) {
    2805             :                 }
    2806             :         }
    2807           4 :         return NDR_ERR_SUCCESS;
    2808             : }
    2809             : 
    2810           0 : static void ndr_print_flags_DNS_RPC_SERVER_INFO_LONGHORN(struct ndr_print *ndr, const char *name, int unused, const struct DNS_RPC_SERVER_INFO_LONGHORN *r)
    2811             : {
    2812           0 :         ndr_print_DNS_RPC_SERVER_INFO_LONGHORN(ndr, name, r);
    2813           0 : }
    2814             : 
    2815           0 : _PUBLIC_ void ndr_print_DNS_RPC_SERVER_INFO_LONGHORN(struct ndr_print *ndr, const char *name, const struct DNS_RPC_SERVER_INFO_LONGHORN *r)
    2816             : {
    2817             :         uint32_t cntr_pExtensions_0;
    2818             :         uint32_t cntr_dwReserveArray_0;
    2819           0 :         ndr_print_struct(ndr, name, "DNS_RPC_SERVER_INFO_LONGHORN");
    2820           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2821           0 :         ndr->depth++;
    2822           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    2823           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    2824           0 :         ndr_print_uint32(ndr, "dwVersion", r->dwVersion);
    2825           0 :         ndr_print_DNS_BOOT_METHOD(ndr, "fBootMethod", r->fBootMethod);
    2826           0 :         ndr_print_uint8(ndr, "fAdminConfigured", r->fAdminConfigured);
    2827           0 :         ndr_print_uint8(ndr, "fAllowUpdate", r->fAllowUpdate);
    2828           0 :         ndr_print_uint8(ndr, "fDsAvailable", r->fDsAvailable);
    2829           0 :         ndr_print_ptr(ndr, "pszServerName", r->pszServerName);
    2830           0 :         ndr->depth++;
    2831           0 :         if (r->pszServerName) {
    2832           0 :                 ndr_print_string(ndr, "pszServerName", r->pszServerName);
    2833             :         }
    2834           0 :         ndr->depth--;
    2835           0 :         ndr_print_ptr(ndr, "pszDsContainer", r->pszDsContainer);
    2836           0 :         ndr->depth++;
    2837           0 :         if (r->pszDsContainer) {
    2838           0 :                 ndr_print_string(ndr, "pszDsContainer", r->pszDsContainer);
    2839             :         }
    2840           0 :         ndr->depth--;
    2841           0 :         ndr_print_ptr(ndr, "aipServerAddrs", r->aipServerAddrs);
    2842           0 :         ndr->depth++;
    2843           0 :         if (r->aipServerAddrs) {
    2844           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipServerAddrs", r->aipServerAddrs);
    2845             :         }
    2846           0 :         ndr->depth--;
    2847           0 :         ndr_print_ptr(ndr, "aipListenAddrs", r->aipListenAddrs);
    2848           0 :         ndr->depth++;
    2849           0 :         if (r->aipListenAddrs) {
    2850           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipListenAddrs", r->aipListenAddrs);
    2851             :         }
    2852           0 :         ndr->depth--;
    2853           0 :         ndr_print_ptr(ndr, "aipForwarders", r->aipForwarders);
    2854           0 :         ndr->depth++;
    2855           0 :         if (r->aipForwarders) {
    2856           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipForwarders", r->aipForwarders);
    2857             :         }
    2858           0 :         ndr->depth--;
    2859           0 :         ndr_print_ptr(ndr, "aipLogFilter", r->aipLogFilter);
    2860           0 :         ndr->depth++;
    2861           0 :         if (r->aipLogFilter) {
    2862           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipLogFilter", r->aipLogFilter);
    2863             :         }
    2864           0 :         ndr->depth--;
    2865           0 :         ndr_print_ptr(ndr, "pwszLogFilePath", r->pwszLogFilePath);
    2866           0 :         ndr->depth++;
    2867           0 :         if (r->pwszLogFilePath) {
    2868           0 :                 ndr_print_string(ndr, "pwszLogFilePath", r->pwszLogFilePath);
    2869             :         }
    2870           0 :         ndr->depth--;
    2871           0 :         ndr_print_ptr(ndr, "pszDomainName", r->pszDomainName);
    2872           0 :         ndr->depth++;
    2873           0 :         if (r->pszDomainName) {
    2874           0 :                 ndr_print_string(ndr, "pszDomainName", r->pszDomainName);
    2875             :         }
    2876           0 :         ndr->depth--;
    2877           0 :         ndr_print_ptr(ndr, "pszForestName", r->pszForestName);
    2878           0 :         ndr->depth++;
    2879           0 :         if (r->pszForestName) {
    2880           0 :                 ndr_print_string(ndr, "pszForestName", r->pszForestName);
    2881             :         }
    2882           0 :         ndr->depth--;
    2883           0 :         ndr_print_ptr(ndr, "pszDomainDirectoryPartition", r->pszDomainDirectoryPartition);
    2884           0 :         ndr->depth++;
    2885           0 :         if (r->pszDomainDirectoryPartition) {
    2886           0 :                 ndr_print_string(ndr, "pszDomainDirectoryPartition", r->pszDomainDirectoryPartition);
    2887             :         }
    2888           0 :         ndr->depth--;
    2889           0 :         ndr_print_ptr(ndr, "pszForestDirectoryPartition", r->pszForestDirectoryPartition);
    2890           0 :         ndr->depth++;
    2891           0 :         if (r->pszForestDirectoryPartition) {
    2892           0 :                 ndr_print_string(ndr, "pszForestDirectoryPartition", r->pszForestDirectoryPartition);
    2893             :         }
    2894           0 :         ndr->depth--;
    2895           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "pExtensions", (int)6);
    2896           0 :         ndr->depth++;
    2897           0 :         for (cntr_pExtensions_0 = 0; cntr_pExtensions_0 < (6); cntr_pExtensions_0++) {
    2898           0 :                 ndr_print_DNS_EXTENSION(ndr, "pExtensions", &r->pExtensions[cntr_pExtensions_0]);
    2899             :         }
    2900           0 :         ndr->depth--;
    2901           0 :         ndr_print_uint32(ndr, "dwLogLevel", r->dwLogLevel);
    2902           0 :         ndr_print_uint32(ndr, "dwDebugLevel", r->dwDebugLevel);
    2903           0 :         ndr_print_uint32(ndr, "dwForwardTimeout", r->dwForwardTimeout);
    2904           0 :         ndr_print_uint32(ndr, "dwRpcProtocol", r->dwRpcProtocol);
    2905           0 :         ndr_print_DNS_NAME_CHECK_FLAG(ndr, "dwNameCheckFlag", r->dwNameCheckFlag);
    2906           0 :         ndr_print_uint32(ndr, "cAddressAnswerLimit", r->cAddressAnswerLimit);
    2907           0 :         ndr_print_uint32(ndr, "dwRecursionRetry", r->dwRecursionRetry);
    2908           0 :         ndr_print_uint32(ndr, "dwRecursionTimeout", r->dwRecursionTimeout);
    2909           0 :         ndr_print_uint32(ndr, "dwMaxCacheTtl", r->dwMaxCacheTtl);
    2910           0 :         ndr_print_uint32(ndr, "dwDsPollingInterval", r->dwDsPollingInterval);
    2911           0 :         ndr_print_uint32(ndr, "dwLocalNetPriorityNetMask", r->dwLocalNetPriorityNetMask);
    2912           0 :         ndr_print_uint32(ndr, "dwScavengingInterval", r->dwScavengingInterval);
    2913           0 :         ndr_print_uint32(ndr, "dwDefaultRefreshInterval", r->dwDefaultRefreshInterval);
    2914           0 :         ndr_print_uint32(ndr, "dwDefaultNoRefreshInterval", r->dwDefaultNoRefreshInterval);
    2915           0 :         ndr_print_uint32(ndr, "dwLastScavengeTime", r->dwLastScavengeTime);
    2916           0 :         ndr_print_uint32(ndr, "dwEventLogLevel", r->dwEventLogLevel);
    2917           0 :         ndr_print_uint32(ndr, "dwLogFileMaxSize", r->dwLogFileMaxSize);
    2918           0 :         ndr_print_uint32(ndr, "dwDsForestVersion", r->dwDsForestVersion);
    2919           0 :         ndr_print_uint32(ndr, "dwDsDomainVersion", r->dwDsDomainVersion);
    2920           0 :         ndr_print_uint32(ndr, "dwDsDsaVersion", r->dwDsDsaVersion);
    2921           0 :         ndr_print_uint8(ndr, "fReadOnlyDC", r->fReadOnlyDC);
    2922           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "dwReserveArray", (int)3);
    2923           0 :         ndr->depth++;
    2924           0 :         for (cntr_dwReserveArray_0 = 0; cntr_dwReserveArray_0 < (3); cntr_dwReserveArray_0++) {
    2925           0 :                 ndr_print_uint32(ndr, "dwReserveArray", r->dwReserveArray[cntr_dwReserveArray_0]);
    2926             :         }
    2927           0 :         ndr->depth--;
    2928           0 :         ndr_print_uint8(ndr, "fAutoReverseZones", r->fAutoReverseZones);
    2929           0 :         ndr_print_uint8(ndr, "fAutoCacheUpdate", r->fAutoCacheUpdate);
    2930           0 :         ndr_print_uint8(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    2931           0 :         ndr_print_uint8(ndr, "fForwardDelegations", r->fForwardDelegations);
    2932           0 :         ndr_print_uint8(ndr, "fNoRecursion", r->fNoRecursion);
    2933           0 :         ndr_print_uint8(ndr, "fSecureResponses", r->fSecureResponses);
    2934           0 :         ndr_print_uint8(ndr, "fRoundRobin", r->fRoundRobin);
    2935           0 :         ndr_print_uint8(ndr, "fLocalNetPriority", r->fLocalNetPriority);
    2936           0 :         ndr_print_uint8(ndr, "fBindSecondaries", r->fBindSecondaries);
    2937           0 :         ndr_print_uint8(ndr, "fWriteAuthorityNs", r->fWriteAuthorityNs);
    2938           0 :         ndr_print_uint8(ndr, "fStrictFileParsing", r->fStrictFileParsing);
    2939           0 :         ndr_print_uint8(ndr, "fLooseWildcarding", r->fLooseWildcarding);
    2940           0 :         ndr_print_uint8(ndr, "fDefaultAgingState", r->fDefaultAgingState);
    2941           0 :         ndr_print_array_uint8(ndr, "fReserveArray", r->fReserveArray, 15);
    2942           0 :         ndr->depth--;
    2943             : }
    2944             : 
    2945          33 : static enum ndr_err_code ndr_push_DNS_RPC_DP_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
    2946             : {
    2947          33 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
    2948          33 :         return NDR_ERR_SUCCESS;
    2949             : }
    2950             : 
    2951          33 : static enum ndr_err_code ndr_pull_DNS_RPC_DP_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
    2952             : {
    2953             :         uint32_t v;
    2954          33 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
    2955          33 :         *r = v;
    2956          33 :         return NDR_ERR_SUCCESS;
    2957             : }
    2958             : 
    2959           0 : _PUBLIC_ void ndr_print_DNS_RPC_DP_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
    2960             : {
    2961           0 :         ndr_print_uint32(ndr, name, r);
    2962           0 :         ndr->depth++;
    2963           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_DP_AUTOCREATED", DNS_DP_AUTOCREATED, r);
    2964           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_DP_LEGACY", DNS_DP_LEGACY, r);
    2965           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_DP_DOMAIN_DEFAULT", DNS_DP_DOMAIN_DEFAULT, r);
    2966           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_DP_FOREST_DEFAULT", DNS_DP_FOREST_DEFAULT, r);
    2967           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_DP_ENLISTED", DNS_DP_ENLISTED, r);
    2968           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_DP_DELETED", DNS_DP_DELETED, r);
    2969           0 :         ndr->depth--;
    2970           0 : }
    2971             : 
    2972           0 : static enum ndr_err_code ndr_push_DNS_RPC_DP_REPLICA(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_DP_REPLICA *r)
    2973             : {
    2974           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2975           0 :         if (ndr_flags & NDR_SCALARS) {
    2976           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    2977           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszReplicaDn));
    2978           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    2979             :         }
    2980           0 :         if (ndr_flags & NDR_BUFFERS) {
    2981           0 :                 if (r->pszReplicaDn) {
    2982           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszReplicaDn, CH_UTF16)));
    2983           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    2984           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszReplicaDn, CH_UTF16)));
    2985           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszReplicaDn, ndr_charset_length(r->pszReplicaDn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    2986             :                 }
    2987             :         }
    2988           0 :         return NDR_ERR_SUCCESS;
    2989             : }
    2990             : 
    2991           0 : static enum ndr_err_code ndr_pull_DNS_RPC_DP_REPLICA(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_DP_REPLICA *r)
    2992             : {
    2993             :         uint32_t _ptr_pszReplicaDn;
    2994           0 :         uint32_t size_pszReplicaDn_1 = 0;
    2995           0 :         uint32_t length_pszReplicaDn_1 = 0;
    2996           0 :         TALLOC_CTX *_mem_save_pszReplicaDn_0 = NULL;
    2997           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2998           0 :         if (ndr_flags & NDR_SCALARS) {
    2999           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3000           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszReplicaDn));
    3001           0 :                 if (_ptr_pszReplicaDn) {
    3002           0 :                         NDR_PULL_ALLOC(ndr, r->pszReplicaDn);
    3003             :                 } else {
    3004           0 :                         r->pszReplicaDn = NULL;
    3005             :                 }
    3006           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3007             :         }
    3008           0 :         if (ndr_flags & NDR_BUFFERS) {
    3009           0 :                 if (r->pszReplicaDn) {
    3010           0 :                         _mem_save_pszReplicaDn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3011           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszReplicaDn, 0);
    3012           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszReplicaDn));
    3013           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszReplicaDn));
    3014           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszReplicaDn, &size_pszReplicaDn_1));
    3015           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszReplicaDn, &length_pszReplicaDn_1));
    3016           0 :                         if (length_pszReplicaDn_1 > size_pszReplicaDn_1) {
    3017           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszReplicaDn_1, length_pszReplicaDn_1);
    3018             :                         }
    3019           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszReplicaDn_1, sizeof(uint16_t)));
    3020           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszReplicaDn, length_pszReplicaDn_1, sizeof(uint16_t), CH_UTF16));
    3021           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszReplicaDn_0, 0);
    3022             :                 }
    3023             :         }
    3024           0 :         return NDR_ERR_SUCCESS;
    3025             : }
    3026             : 
    3027           0 : _PUBLIC_ void ndr_print_DNS_RPC_DP_REPLICA(struct ndr_print *ndr, const char *name, const struct DNS_RPC_DP_REPLICA *r)
    3028             : {
    3029           0 :         ndr_print_struct(ndr, name, "DNS_RPC_DP_REPLICA");
    3030           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3031           0 :         ndr->depth++;
    3032           0 :         ndr_print_ptr(ndr, "pszReplicaDn", r->pszReplicaDn);
    3033           0 :         ndr->depth++;
    3034           0 :         if (r->pszReplicaDn) {
    3035           0 :                 ndr_print_string(ndr, "pszReplicaDn", r->pszReplicaDn);
    3036             :         }
    3037           0 :         ndr->depth--;
    3038           0 :         ndr->depth--;
    3039             : }
    3040             : 
    3041           0 : static enum ndr_err_code ndr_push_DNS_DP_STATE(struct ndr_push *ndr, int ndr_flags, enum DNS_DP_STATE r)
    3042             : {
    3043           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    3044           0 :         return NDR_ERR_SUCCESS;
    3045             : }
    3046             : 
    3047           0 : static enum ndr_err_code ndr_pull_DNS_DP_STATE(struct ndr_pull *ndr, int ndr_flags, enum DNS_DP_STATE *r)
    3048             : {
    3049             :         uint32_t v;
    3050           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    3051           0 :         *r = v;
    3052           0 :         return NDR_ERR_SUCCESS;
    3053             : }
    3054             : 
    3055           0 : _PUBLIC_ void ndr_print_DNS_DP_STATE(struct ndr_print *ndr, const char *name, enum DNS_DP_STATE r)
    3056             : {
    3057           0 :         const char *val = NULL;
    3058             : 
    3059           0 :         switch (r) {
    3060           0 :                 case DNS_DP_OKAY: val = "DNS_DP_OKAY"; break;
    3061           0 :                 case DNS_DP_STATE_REPL_INCOMING: val = "DNS_DP_STATE_REPL_INCOMING"; break;
    3062           0 :                 case DNS_DP_STATE_REPL_OUTGOING: val = "DNS_DP_STATE_REPL_OUTGOING"; break;
    3063           0 :                 case DNS_DP_STATE_UNKNOWN: val = "DNS_DP_STATE_UNKNOWN"; break;
    3064             :         }
    3065           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    3066           0 : }
    3067             : 
    3068           0 : static enum ndr_err_code ndr_push_DNS_RPC_DP_INFO(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_DP_INFO *r)
    3069             : {
    3070             :         uint32_t cntr_dwReserved_0;
    3071             :         uint32_t cntr_pwszReserved_0;
    3072             :         uint32_t cntr_ReplicaArray_0;
    3073           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3074           0 :         if (ndr_flags & NDR_SCALARS) {
    3075           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->dwReplicaCount));
    3076           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3077           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    3078           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    3079           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    3080           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpDn));
    3081           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszCrDn));
    3082           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwFlags));
    3083           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneCount));
    3084           0 :                 NDR_CHECK(ndr_push_DNS_DP_STATE(ndr, NDR_SCALARS, r->dwState));
    3085           0 :                 for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (3); cntr_dwReserved_0++) {
    3086           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved[cntr_dwReserved_0]));
    3087             :                 }
    3088           0 :                 for (cntr_pwszReserved_0 = 0; cntr_pwszReserved_0 < (3); cntr_pwszReserved_0++) {
    3089           0 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pwszReserved[cntr_pwszReserved_0]));
    3090             :                 }
    3091           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReplicaCount));
    3092           0 :                 for (cntr_ReplicaArray_0 = 0; cntr_ReplicaArray_0 < (r->dwReplicaCount); cntr_ReplicaArray_0++) {
    3093           0 :                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->ReplicaArray[cntr_ReplicaArray_0]));
    3094             :                 }
    3095           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3096             :         }
    3097           0 :         if (ndr_flags & NDR_BUFFERS) {
    3098           0 :                 if (r->pszDpFqdn) {
    3099           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3100           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3101           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3102           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    3103             :                 }
    3104           0 :                 if (r->pszDpDn) {
    3105           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpDn, CH_UTF16)));
    3106           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3107           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpDn, CH_UTF16)));
    3108           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpDn, ndr_charset_length(r->pszDpDn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    3109             :                 }
    3110           0 :                 if (r->pszCrDn) {
    3111           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszCrDn, CH_UTF16)));
    3112           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3113           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszCrDn, CH_UTF16)));
    3114           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszCrDn, ndr_charset_length(r->pszCrDn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    3115             :                 }
    3116           0 :                 for (cntr_pwszReserved_0 = 0; cntr_pwszReserved_0 < (3); cntr_pwszReserved_0++) {
    3117           0 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pwszReserved[cntr_pwszReserved_0]));
    3118             :                 }
    3119           0 :                 for (cntr_ReplicaArray_0 = 0; cntr_ReplicaArray_0 < (r->dwReplicaCount); cntr_ReplicaArray_0++) {
    3120           0 :                         if (r->ReplicaArray[cntr_ReplicaArray_0]) {
    3121           0 :                                 NDR_CHECK(ndr_push_DNS_RPC_DP_REPLICA(ndr, NDR_SCALARS|NDR_BUFFERS, r->ReplicaArray[cntr_ReplicaArray_0]));
    3122             :                         }
    3123             :                 }
    3124             :         }
    3125           0 :         return NDR_ERR_SUCCESS;
    3126             : }
    3127             : 
    3128           0 : static enum ndr_err_code ndr_pull_DNS_RPC_DP_INFO(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_DP_INFO *r)
    3129             : {
    3130             :         uint32_t _ptr_pszDpFqdn;
    3131           0 :         uint32_t size_pszDpFqdn_1 = 0;
    3132           0 :         uint32_t length_pszDpFqdn_1 = 0;
    3133           0 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    3134             :         uint32_t _ptr_pszDpDn;
    3135           0 :         uint32_t size_pszDpDn_1 = 0;
    3136           0 :         uint32_t length_pszDpDn_1 = 0;
    3137           0 :         TALLOC_CTX *_mem_save_pszDpDn_0 = NULL;
    3138             :         uint32_t _ptr_pszCrDn;
    3139           0 :         uint32_t size_pszCrDn_1 = 0;
    3140           0 :         uint32_t length_pszCrDn_1 = 0;
    3141           0 :         TALLOC_CTX *_mem_save_pszCrDn_0 = NULL;
    3142           0 :         uint32_t size_dwReserved_0 = 0;
    3143             :         uint32_t cntr_dwReserved_0;
    3144           0 :         uint32_t size_pwszReserved_0 = 0;
    3145             :         uint32_t cntr_pwszReserved_0;
    3146             :         uint32_t _ptr_ReplicaArray;
    3147           0 :         uint32_t size_ReplicaArray_0 = 0;
    3148             :         uint32_t cntr_ReplicaArray_0;
    3149           0 :         TALLOC_CTX *_mem_save_ReplicaArray_0 = NULL;
    3150           0 :         TALLOC_CTX *_mem_save_ReplicaArray_1 = NULL;
    3151           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3152           0 :         if (ndr_flags & NDR_SCALARS) {
    3153           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->ReplicaArray));
    3154           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3155           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    3156           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    3157           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    3158           0 :                 if (_ptr_pszDpFqdn) {
    3159           0 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    3160             :                 } else {
    3161           0 :                         r->pszDpFqdn = NULL;
    3162             :                 }
    3163           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpDn));
    3164           0 :                 if (_ptr_pszDpDn) {
    3165           0 :                         NDR_PULL_ALLOC(ndr, r->pszDpDn);
    3166             :                 } else {
    3167           0 :                         r->pszDpDn = NULL;
    3168             :                 }
    3169           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszCrDn));
    3170           0 :                 if (_ptr_pszCrDn) {
    3171           0 :                         NDR_PULL_ALLOC(ndr, r->pszCrDn);
    3172             :                 } else {
    3173           0 :                         r->pszCrDn = NULL;
    3174             :                 }
    3175           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwFlags));
    3176           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneCount));
    3177           0 :                 NDR_CHECK(ndr_pull_DNS_DP_STATE(ndr, NDR_SCALARS, &r->dwState));
    3178           0 :                 size_dwReserved_0 = 3;
    3179           0 :                 for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (size_dwReserved_0); cntr_dwReserved_0++) {
    3180           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved[cntr_dwReserved_0]));
    3181             :                 }
    3182           0 :                 size_pwszReserved_0 = 3;
    3183           0 :                 for (cntr_pwszReserved_0 = 0; cntr_pwszReserved_0 < (size_pwszReserved_0); cntr_pwszReserved_0++) {
    3184           0 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pwszReserved[cntr_pwszReserved_0]));
    3185             :                 }
    3186           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReplicaCount));
    3187           0 :                 if (r->dwReplicaCount > 10000) {
    3188           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
    3189             :                 }
    3190           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->ReplicaArray, &size_ReplicaArray_0));
    3191           0 :                 NDR_PULL_ALLOC_N(ndr, r->ReplicaArray, size_ReplicaArray_0);
    3192           0 :                 _mem_save_ReplicaArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3193           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->ReplicaArray, 0);
    3194           0 :                 for (cntr_ReplicaArray_0 = 0; cntr_ReplicaArray_0 < (size_ReplicaArray_0); cntr_ReplicaArray_0++) {
    3195           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ReplicaArray));
    3196           0 :                         if (_ptr_ReplicaArray) {
    3197           0 :                                 NDR_PULL_ALLOC(ndr, r->ReplicaArray[cntr_ReplicaArray_0]);
    3198             :                         } else {
    3199           0 :                                 r->ReplicaArray[cntr_ReplicaArray_0] = NULL;
    3200             :                         }
    3201             :                 }
    3202           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ReplicaArray_0, 0);
    3203           0 :                 if (r->ReplicaArray) {
    3204           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->ReplicaArray, r->dwReplicaCount));
    3205             :                 }
    3206           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3207             :         }
    3208           0 :         if (ndr_flags & NDR_BUFFERS) {
    3209           0 :                 if (r->pszDpFqdn) {
    3210           0 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3211           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    3212           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    3213           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    3214           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    3215           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    3216           0 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    3217           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    3218             :                         }
    3219           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    3220           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    3221           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    3222             :                 }
    3223           0 :                 if (r->pszDpDn) {
    3224           0 :                         _mem_save_pszDpDn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3225           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpDn, 0);
    3226           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpDn));
    3227           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpDn));
    3228           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpDn, &size_pszDpDn_1));
    3229           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpDn, &length_pszDpDn_1));
    3230           0 :                         if (length_pszDpDn_1 > size_pszDpDn_1) {
    3231           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpDn_1, length_pszDpDn_1);
    3232             :                         }
    3233           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpDn_1, sizeof(uint16_t)));
    3234           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpDn, length_pszDpDn_1, sizeof(uint16_t), CH_UTF16));
    3235           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpDn_0, 0);
    3236             :                 }
    3237           0 :                 if (r->pszCrDn) {
    3238           0 :                         _mem_save_pszCrDn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3239           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszCrDn, 0);
    3240           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszCrDn));
    3241           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszCrDn));
    3242           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszCrDn, &size_pszCrDn_1));
    3243           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszCrDn, &length_pszCrDn_1));
    3244           0 :                         if (length_pszCrDn_1 > size_pszCrDn_1) {
    3245           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszCrDn_1, length_pszCrDn_1);
    3246             :                         }
    3247           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszCrDn_1, sizeof(uint16_t)));
    3248           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszCrDn, length_pszCrDn_1, sizeof(uint16_t), CH_UTF16));
    3249           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszCrDn_0, 0);
    3250             :                 }
    3251           0 :                 size_pwszReserved_0 = 3;
    3252           0 :                 for (cntr_pwszReserved_0 = 0; cntr_pwszReserved_0 < (size_pwszReserved_0); cntr_pwszReserved_0++) {
    3253           0 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pwszReserved[cntr_pwszReserved_0]));
    3254             :                 }
    3255           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->ReplicaArray, &size_ReplicaArray_0));
    3256           0 :                 _mem_save_ReplicaArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3257           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->ReplicaArray, 0);
    3258           0 :                 for (cntr_ReplicaArray_0 = 0; cntr_ReplicaArray_0 < (size_ReplicaArray_0); cntr_ReplicaArray_0++) {
    3259           0 :                         if (r->ReplicaArray[cntr_ReplicaArray_0]) {
    3260           0 :                                 _mem_save_ReplicaArray_1 = NDR_PULL_GET_MEM_CTX(ndr);
    3261           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->ReplicaArray[cntr_ReplicaArray_0], 0);
    3262           0 :                                 NDR_CHECK(ndr_pull_DNS_RPC_DP_REPLICA(ndr, NDR_SCALARS|NDR_BUFFERS, r->ReplicaArray[cntr_ReplicaArray_0]));
    3263           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ReplicaArray_1, 0);
    3264             :                         }
    3265             :                 }
    3266           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ReplicaArray_0, 0);
    3267           0 :                 for (cntr_pwszReserved_0 = 0; cntr_pwszReserved_0 < (size_pwszReserved_0); cntr_pwszReserved_0++) {
    3268             :                 }
    3269           0 :                 for (cntr_ReplicaArray_0 = 0; cntr_ReplicaArray_0 < (size_ReplicaArray_0); cntr_ReplicaArray_0++) {
    3270             :                 }
    3271             :         }
    3272           0 :         return NDR_ERR_SUCCESS;
    3273             : }
    3274             : 
    3275           0 : _PUBLIC_ void ndr_print_DNS_RPC_DP_INFO(struct ndr_print *ndr, const char *name, const struct DNS_RPC_DP_INFO *r)
    3276             : {
    3277             :         uint32_t cntr_dwReserved_0;
    3278             :         uint32_t cntr_pwszReserved_0;
    3279             :         uint32_t cntr_ReplicaArray_0;
    3280           0 :         ndr_print_struct(ndr, name, "DNS_RPC_DP_INFO");
    3281           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3282           0 :         ndr->depth++;
    3283           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    3284           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    3285           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    3286           0 :         ndr->depth++;
    3287           0 :         if (r->pszDpFqdn) {
    3288           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    3289             :         }
    3290           0 :         ndr->depth--;
    3291           0 :         ndr_print_ptr(ndr, "pszDpDn", r->pszDpDn);
    3292           0 :         ndr->depth++;
    3293           0 :         if (r->pszDpDn) {
    3294           0 :                 ndr_print_string(ndr, "pszDpDn", r->pszDpDn);
    3295             :         }
    3296           0 :         ndr->depth--;
    3297           0 :         ndr_print_ptr(ndr, "pszCrDn", r->pszCrDn);
    3298           0 :         ndr->depth++;
    3299           0 :         if (r->pszCrDn) {
    3300           0 :                 ndr_print_string(ndr, "pszCrDn", r->pszCrDn);
    3301             :         }
    3302           0 :         ndr->depth--;
    3303           0 :         ndr_print_uint32(ndr, "dwFlags", r->dwFlags);
    3304           0 :         ndr_print_uint32(ndr, "dwZoneCount", r->dwZoneCount);
    3305           0 :         ndr_print_DNS_DP_STATE(ndr, "dwState", r->dwState);
    3306           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "dwReserved", (int)3);
    3307           0 :         ndr->depth++;
    3308           0 :         for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (3); cntr_dwReserved_0++) {
    3309           0 :                 ndr_print_uint32(ndr, "dwReserved", r->dwReserved[cntr_dwReserved_0]);
    3310             :         }
    3311           0 :         ndr->depth--;
    3312           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "pwszReserved", (int)3);
    3313           0 :         ndr->depth++;
    3314           0 :         for (cntr_pwszReserved_0 = 0; cntr_pwszReserved_0 < (3); cntr_pwszReserved_0++) {
    3315           0 :                 ndr_print_DNS_EXTENSION(ndr, "pwszReserved", &r->pwszReserved[cntr_pwszReserved_0]);
    3316             :         }
    3317           0 :         ndr->depth--;
    3318           0 :         ndr_print_uint32(ndr, "dwReplicaCount", r->dwReplicaCount);
    3319           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "ReplicaArray", (int)r->dwReplicaCount);
    3320           0 :         ndr->depth++;
    3321           0 :         for (cntr_ReplicaArray_0 = 0; cntr_ReplicaArray_0 < (r->dwReplicaCount); cntr_ReplicaArray_0++) {
    3322           0 :                 ndr_print_ptr(ndr, "ReplicaArray", r->ReplicaArray[cntr_ReplicaArray_0]);
    3323           0 :                 ndr->depth++;
    3324           0 :                 if (r->ReplicaArray[cntr_ReplicaArray_0]) {
    3325           0 :                         ndr_print_DNS_RPC_DP_REPLICA(ndr, "ReplicaArray", r->ReplicaArray[cntr_ReplicaArray_0]);
    3326             :                 }
    3327           0 :                 ndr->depth--;
    3328             :         }
    3329           0 :         ndr->depth--;
    3330           0 :         ndr->depth--;
    3331             : }
    3332             : 
    3333           0 : static enum ndr_err_code ndr_push_DNS_RPC_DP_ENUM(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_DP_ENUM *r)
    3334             : {
    3335           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3336           0 :         if (ndr_flags & NDR_SCALARS) {
    3337           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3338           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    3339           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    3340           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    3341           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwFlags));
    3342           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneCount));
    3343           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3344             :         }
    3345           0 :         if (ndr_flags & NDR_BUFFERS) {
    3346           0 :                 if (r->pszDpFqdn) {
    3347           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3348           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3349           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3350           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    3351             :                 }
    3352             :         }
    3353           0 :         return NDR_ERR_SUCCESS;
    3354             : }
    3355             : 
    3356           0 : static enum ndr_err_code ndr_pull_DNS_RPC_DP_ENUM(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_DP_ENUM *r)
    3357             : {
    3358             :         uint32_t _ptr_pszDpFqdn;
    3359           0 :         uint32_t size_pszDpFqdn_1 = 0;
    3360           0 :         uint32_t length_pszDpFqdn_1 = 0;
    3361           0 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    3362           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3363           0 :         if (ndr_flags & NDR_SCALARS) {
    3364           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3365           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    3366           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    3367           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    3368           0 :                 if (_ptr_pszDpFqdn) {
    3369           0 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    3370             :                 } else {
    3371           0 :                         r->pszDpFqdn = NULL;
    3372             :                 }
    3373           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwFlags));
    3374           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneCount));
    3375           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3376             :         }
    3377           0 :         if (ndr_flags & NDR_BUFFERS) {
    3378           0 :                 if (r->pszDpFqdn) {
    3379           0 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3380           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    3381           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    3382           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    3383           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    3384           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    3385           0 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    3386           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    3387             :                         }
    3388           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    3389           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    3390           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    3391             :                 }
    3392             :         }
    3393           0 :         return NDR_ERR_SUCCESS;
    3394             : }
    3395             : 
    3396           0 : _PUBLIC_ void ndr_print_DNS_RPC_DP_ENUM(struct ndr_print *ndr, const char *name, const struct DNS_RPC_DP_ENUM *r)
    3397             : {
    3398           0 :         ndr_print_struct(ndr, name, "DNS_RPC_DP_ENUM");
    3399           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3400           0 :         ndr->depth++;
    3401           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    3402           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    3403           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    3404           0 :         ndr->depth++;
    3405           0 :         if (r->pszDpFqdn) {
    3406           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    3407             :         }
    3408           0 :         ndr->depth--;
    3409           0 :         ndr_print_uint32(ndr, "dwFlags", r->dwFlags);
    3410           0 :         ndr_print_uint32(ndr, "dwZoneCount", r->dwZoneCount);
    3411           0 :         ndr->depth--;
    3412             : }
    3413             : 
    3414           0 : static enum ndr_err_code ndr_push_DNS_RPC_DP_LIST(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_DP_LIST *r)
    3415             : {
    3416             :         uint32_t cntr_DpArray_0;
    3417           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3418           0 :         if (ndr_flags & NDR_SCALARS) {
    3419           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->dwDpCount));
    3420           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3421           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    3422           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    3423           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDpCount));
    3424           0 :                 for (cntr_DpArray_0 = 0; cntr_DpArray_0 < (r->dwDpCount); cntr_DpArray_0++) {
    3425           0 :                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->DpArray[cntr_DpArray_0]));
    3426             :                 }
    3427           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3428             :         }
    3429           0 :         if (ndr_flags & NDR_BUFFERS) {
    3430           0 :                 for (cntr_DpArray_0 = 0; cntr_DpArray_0 < (r->dwDpCount); cntr_DpArray_0++) {
    3431           0 :                         if (r->DpArray[cntr_DpArray_0]) {
    3432           0 :                                 NDR_CHECK(ndr_push_DNS_RPC_DP_ENUM(ndr, NDR_SCALARS|NDR_BUFFERS, r->DpArray[cntr_DpArray_0]));
    3433             :                         }
    3434             :                 }
    3435             :         }
    3436           0 :         return NDR_ERR_SUCCESS;
    3437             : }
    3438             : 
    3439           0 : static enum ndr_err_code ndr_pull_DNS_RPC_DP_LIST(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_DP_LIST *r)
    3440             : {
    3441             :         uint32_t _ptr_DpArray;
    3442           0 :         uint32_t size_DpArray_0 = 0;
    3443             :         uint32_t cntr_DpArray_0;
    3444           0 :         TALLOC_CTX *_mem_save_DpArray_0 = NULL;
    3445           0 :         TALLOC_CTX *_mem_save_DpArray_1 = NULL;
    3446           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3447           0 :         if (ndr_flags & NDR_SCALARS) {
    3448           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->DpArray));
    3449           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3450           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    3451           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    3452           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDpCount));
    3453           0 :                 if (r->dwDpCount > 5000) {
    3454           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
    3455             :                 }
    3456           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->DpArray, &size_DpArray_0));
    3457           0 :                 NDR_PULL_ALLOC_N(ndr, r->DpArray, size_DpArray_0);
    3458           0 :                 _mem_save_DpArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3459           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->DpArray, 0);
    3460           0 :                 for (cntr_DpArray_0 = 0; cntr_DpArray_0 < (size_DpArray_0); cntr_DpArray_0++) {
    3461           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DpArray));
    3462           0 :                         if (_ptr_DpArray) {
    3463           0 :                                 NDR_PULL_ALLOC(ndr, r->DpArray[cntr_DpArray_0]);
    3464             :                         } else {
    3465           0 :                                 r->DpArray[cntr_DpArray_0] = NULL;
    3466             :                         }
    3467             :                 }
    3468           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DpArray_0, 0);
    3469           0 :                 if (r->DpArray) {
    3470           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->DpArray, r->dwDpCount));
    3471             :                 }
    3472           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3473             :         }
    3474           0 :         if (ndr_flags & NDR_BUFFERS) {
    3475           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->DpArray, &size_DpArray_0));
    3476           0 :                 _mem_save_DpArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3477           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->DpArray, 0);
    3478           0 :                 for (cntr_DpArray_0 = 0; cntr_DpArray_0 < (size_DpArray_0); cntr_DpArray_0++) {
    3479           0 :                         if (r->DpArray[cntr_DpArray_0]) {
    3480           0 :                                 _mem_save_DpArray_1 = NDR_PULL_GET_MEM_CTX(ndr);
    3481           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->DpArray[cntr_DpArray_0], 0);
    3482           0 :                                 NDR_CHECK(ndr_pull_DNS_RPC_DP_ENUM(ndr, NDR_SCALARS|NDR_BUFFERS, r->DpArray[cntr_DpArray_0]));
    3483           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DpArray_1, 0);
    3484             :                         }
    3485             :                 }
    3486           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DpArray_0, 0);
    3487           0 :                 for (cntr_DpArray_0 = 0; cntr_DpArray_0 < (size_DpArray_0); cntr_DpArray_0++) {
    3488             :                 }
    3489             :         }
    3490           0 :         return NDR_ERR_SUCCESS;
    3491             : }
    3492             : 
    3493           0 : _PUBLIC_ void ndr_print_DNS_RPC_DP_LIST(struct ndr_print *ndr, const char *name, const struct DNS_RPC_DP_LIST *r)
    3494             : {
    3495             :         uint32_t cntr_DpArray_0;
    3496           0 :         ndr_print_struct(ndr, name, "DNS_RPC_DP_LIST");
    3497           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3498           0 :         ndr->depth++;
    3499           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    3500           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    3501           0 :         ndr_print_uint32(ndr, "dwDpCount", r->dwDpCount);
    3502           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "DpArray", (int)r->dwDpCount);
    3503           0 :         ndr->depth++;
    3504           0 :         for (cntr_DpArray_0 = 0; cntr_DpArray_0 < (r->dwDpCount); cntr_DpArray_0++) {
    3505           0 :                 ndr_print_ptr(ndr, "DpArray", r->DpArray[cntr_DpArray_0]);
    3506           0 :                 ndr->depth++;
    3507           0 :                 if (r->DpArray[cntr_DpArray_0]) {
    3508           0 :                         ndr_print_DNS_RPC_DP_ENUM(ndr, "DpArray", r->DpArray[cntr_DpArray_0]);
    3509             :                 }
    3510           0 :                 ndr->depth--;
    3511             :         }
    3512           0 :         ndr->depth--;
    3513           0 :         ndr->depth--;
    3514             : }
    3515             : 
    3516           0 : static enum ndr_err_code ndr_push_DNS_RPC_ENLIST_DP(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ENLIST_DP *r)
    3517             : {
    3518           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3519           0 :         if (ndr_flags & NDR_SCALARS) {
    3520           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3521           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    3522           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    3523           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    3524           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwOperation));
    3525           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3526             :         }
    3527           0 :         if (ndr_flags & NDR_BUFFERS) {
    3528           0 :                 if (r->pszDpFqdn) {
    3529           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3530           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3531           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3532           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    3533             :                 }
    3534             :         }
    3535           0 :         return NDR_ERR_SUCCESS;
    3536             : }
    3537             : 
    3538           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ENLIST_DP(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ENLIST_DP *r)
    3539             : {
    3540             :         uint32_t _ptr_pszDpFqdn;
    3541           0 :         uint32_t size_pszDpFqdn_1 = 0;
    3542           0 :         uint32_t length_pszDpFqdn_1 = 0;
    3543           0 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    3544           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3545           0 :         if (ndr_flags & NDR_SCALARS) {
    3546           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3547           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    3548           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    3549           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    3550           0 :                 if (_ptr_pszDpFqdn) {
    3551           0 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    3552             :                 } else {
    3553           0 :                         r->pszDpFqdn = NULL;
    3554             :                 }
    3555           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwOperation));
    3556           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3557             :         }
    3558           0 :         if (ndr_flags & NDR_BUFFERS) {
    3559           0 :                 if (r->pszDpFqdn) {
    3560           0 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3561           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    3562           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    3563           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    3564           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    3565           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    3566           0 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    3567           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    3568             :                         }
    3569           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    3570           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    3571           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    3572             :                 }
    3573             :         }
    3574           0 :         return NDR_ERR_SUCCESS;
    3575             : }
    3576             : 
    3577           0 : _PUBLIC_ void ndr_print_DNS_RPC_ENLIST_DP(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ENLIST_DP *r)
    3578             : {
    3579           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ENLIST_DP");
    3580           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3581           0 :         ndr->depth++;
    3582           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    3583           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    3584           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    3585           0 :         ndr->depth++;
    3586           0 :         if (r->pszDpFqdn) {
    3587           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    3588             :         }
    3589           0 :         ndr->depth--;
    3590           0 :         ndr_print_uint32(ndr, "dwOperation", r->dwOperation);
    3591           0 :         ndr->depth--;
    3592             : }
    3593             : 
    3594           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_CHANGE_DP(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_CHANGE_DP *r)
    3595             : {
    3596           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3597           0 :         if (ndr_flags & NDR_SCALARS) {
    3598           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3599           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    3600           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    3601           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDestPartition));
    3602           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3603             :         }
    3604           0 :         if (ndr_flags & NDR_BUFFERS) {
    3605           0 :                 if (r->pszDestPartition) {
    3606           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDestPartition, CH_UTF8)));
    3607           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3608           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDestPartition, CH_UTF8)));
    3609           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDestPartition, ndr_charset_length(r->pszDestPartition, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    3610             :                 }
    3611             :         }
    3612           0 :         return NDR_ERR_SUCCESS;
    3613             : }
    3614             : 
    3615           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_CHANGE_DP(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_CHANGE_DP *r)
    3616             : {
    3617             :         uint32_t _ptr_pszDestPartition;
    3618           0 :         uint32_t size_pszDestPartition_1 = 0;
    3619           0 :         uint32_t length_pszDestPartition_1 = 0;
    3620           0 :         TALLOC_CTX *_mem_save_pszDestPartition_0 = NULL;
    3621           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3622           0 :         if (ndr_flags & NDR_SCALARS) {
    3623           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3624           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    3625           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    3626           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDestPartition));
    3627           0 :                 if (_ptr_pszDestPartition) {
    3628           0 :                         NDR_PULL_ALLOC(ndr, r->pszDestPartition);
    3629             :                 } else {
    3630           0 :                         r->pszDestPartition = NULL;
    3631             :                 }
    3632           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3633             :         }
    3634           0 :         if (ndr_flags & NDR_BUFFERS) {
    3635           0 :                 if (r->pszDestPartition) {
    3636           0 :                         _mem_save_pszDestPartition_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3637           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDestPartition, 0);
    3638           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDestPartition));
    3639           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDestPartition));
    3640           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDestPartition, &size_pszDestPartition_1));
    3641           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDestPartition, &length_pszDestPartition_1));
    3642           0 :                         if (length_pszDestPartition_1 > size_pszDestPartition_1) {
    3643           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDestPartition_1, length_pszDestPartition_1);
    3644             :                         }
    3645           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDestPartition_1, sizeof(uint8_t)));
    3646           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDestPartition, length_pszDestPartition_1, sizeof(uint8_t), CH_UTF8));
    3647           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDestPartition_0, 0);
    3648             :                 }
    3649             :         }
    3650           0 :         return NDR_ERR_SUCCESS;
    3651             : }
    3652             : 
    3653           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_CHANGE_DP(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_CHANGE_DP *r)
    3654             : {
    3655           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_CHANGE_DP");
    3656           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3657           0 :         ndr->depth++;
    3658           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    3659           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    3660           0 :         ndr_print_ptr(ndr, "pszDestPartition", r->pszDestPartition);
    3661           0 :         ndr->depth++;
    3662           0 :         if (r->pszDestPartition) {
    3663           0 :                 ndr_print_string(ndr, "pszDestPartition", r->pszDestPartition);
    3664             :         }
    3665           0 :         ndr->depth--;
    3666           0 :         ndr->depth--;
    3667             : }
    3668             : 
    3669         438 : static enum ndr_err_code ndr_push_DNS_ZONE_SECONDARY_SECURITY(struct ndr_push *ndr, int ndr_flags, enum DNS_ZONE_SECONDARY_SECURITY r)
    3670             : {
    3671         438 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    3672         438 :         return NDR_ERR_SUCCESS;
    3673             : }
    3674             : 
    3675         438 : static enum ndr_err_code ndr_pull_DNS_ZONE_SECONDARY_SECURITY(struct ndr_pull *ndr, int ndr_flags, enum DNS_ZONE_SECONDARY_SECURITY *r)
    3676             : {
    3677             :         uint32_t v;
    3678         438 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    3679         438 :         *r = v;
    3680         438 :         return NDR_ERR_SUCCESS;
    3681             : }
    3682             : 
    3683           0 : _PUBLIC_ void ndr_print_DNS_ZONE_SECONDARY_SECURITY(struct ndr_print *ndr, const char *name, enum DNS_ZONE_SECONDARY_SECURITY r)
    3684             : {
    3685           0 :         const char *val = NULL;
    3686             : 
    3687           0 :         switch (r) {
    3688           0 :                 case DNS_ZONE_SECSECURE_NO_SECURITY: val = "DNS_ZONE_SECSECURE_NO_SECURITY"; break;
    3689           0 :                 case DNS_ZONE_SECSECURE_NS_ONLY: val = "DNS_ZONE_SECSECURE_NS_ONLY"; break;
    3690           0 :                 case DNS_ZONE_SECSECURE_LIST_ONLY: val = "DNS_ZONE_SECSECURE_LIST_ONLY"; break;
    3691           0 :                 case DNS_ZONE_SECSECURE_NO_XFER: val = "DNS_ZONE_SECSECURE_NO_XFER"; break;
    3692             :         }
    3693           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    3694           0 : }
    3695             : 
    3696         438 : static enum ndr_err_code ndr_push_DNS_ZONE_NOTIFY_LEVEL(struct ndr_push *ndr, int ndr_flags, enum DNS_ZONE_NOTIFY_LEVEL r)
    3697             : {
    3698         438 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    3699         438 :         return NDR_ERR_SUCCESS;
    3700             : }
    3701             : 
    3702         438 : static enum ndr_err_code ndr_pull_DNS_ZONE_NOTIFY_LEVEL(struct ndr_pull *ndr, int ndr_flags, enum DNS_ZONE_NOTIFY_LEVEL *r)
    3703             : {
    3704             :         uint32_t v;
    3705         438 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    3706         438 :         *r = v;
    3707         438 :         return NDR_ERR_SUCCESS;
    3708             : }
    3709             : 
    3710           0 : _PUBLIC_ void ndr_print_DNS_ZONE_NOTIFY_LEVEL(struct ndr_print *ndr, const char *name, enum DNS_ZONE_NOTIFY_LEVEL r)
    3711             : {
    3712           0 :         const char *val = NULL;
    3713             : 
    3714           0 :         switch (r) {
    3715           0 :                 case DNS_ZONE_NOTIFY_OFF: val = "DNS_ZONE_NOTIFY_OFF"; break;
    3716           0 :                 case DNS_ZONE_NOTIFY_ALL_SECONDARIES: val = "DNS_ZONE_NOTIFY_ALL_SECONDARIES"; break;
    3717           0 :                 case DNS_ZONE_NOTIFY_LIST_ONLY: val = "DNS_ZONE_NOTIFY_LIST_ONLY"; break;
    3718             :         }
    3719           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    3720           0 : }
    3721             : 
    3722          33 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
    3723             : {
    3724          33 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
    3725          33 :         return NDR_ERR_SUCCESS;
    3726             : }
    3727             : 
    3728          33 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
    3729             : {
    3730             :         uint32_t v;
    3731          33 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
    3732          33 :         *r = v;
    3733          33 :         return NDR_ERR_SUCCESS;
    3734             : }
    3735             : 
    3736           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
    3737             : {
    3738           0 :         ndr_print_uint32(ndr, name, r);
    3739           0 :         ndr->depth++;
    3740           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_PAUSED", DNS_RPC_ZONE_PAUSED, r);
    3741           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_SHUTDOWN", DNS_RPC_ZONE_SHUTDOWN, r);
    3742           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_REVERSE", DNS_RPC_ZONE_REVERSE, r);
    3743           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_AUTOCREATED", DNS_RPC_ZONE_AUTOCREATED, r);
    3744           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_DSINTEGRATED", DNS_RPC_ZONE_DSINTEGRATED, r);
    3745           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_AGING", DNS_RPC_ZONE_AGING, r);
    3746           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_UPDATE_UNSECURE", DNS_RPC_ZONE_UPDATE_UNSECURE, r);
    3747           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_UPDATE_SECURE", DNS_RPC_ZONE_UPDATE_SECURE, r);
    3748           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_ZONE_READONLY", DNS_RPC_ZONE_READONLY, r);
    3749           0 :         ndr->depth--;
    3750           0 : }
    3751             : 
    3752           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_W2K *r)
    3753             : {
    3754           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3755           0 :         if (ndr_flags & NDR_SCALARS) {
    3756           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3757           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    3758           0 :                 NDR_CHECK(ndr_push_DNS_RPC_ZONE_FLAGS(ndr, NDR_SCALARS, r->Flags));
    3759           0 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ZoneType));
    3760           0 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Version));
    3761           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3762             :         }
    3763           0 :         if (ndr_flags & NDR_BUFFERS) {
    3764           0 :                 if (r->pszZoneName) {
    3765           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF16)));
    3766           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3767           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF16)));
    3768           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    3769             :                 }
    3770             :         }
    3771           0 :         return NDR_ERR_SUCCESS;
    3772             : }
    3773             : 
    3774           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_W2K *r)
    3775             : {
    3776             :         uint32_t _ptr_pszZoneName;
    3777           0 :         uint32_t size_pszZoneName_1 = 0;
    3778           0 :         uint32_t length_pszZoneName_1 = 0;
    3779           0 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    3780           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3781           0 :         if (ndr_flags & NDR_SCALARS) {
    3782           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3783           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    3784           0 :                 if (_ptr_pszZoneName) {
    3785           0 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    3786             :                 } else {
    3787           0 :                         r->pszZoneName = NULL;
    3788             :                 }
    3789           0 :                 NDR_CHECK(ndr_pull_DNS_RPC_ZONE_FLAGS(ndr, NDR_SCALARS, &r->Flags));
    3790           0 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ZoneType));
    3791           0 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Version));
    3792           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3793             :         }
    3794           0 :         if (ndr_flags & NDR_BUFFERS) {
    3795           0 :                 if (r->pszZoneName) {
    3796           0 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3797           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    3798           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    3799           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    3800           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    3801           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    3802           0 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    3803           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    3804             :                         }
    3805           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint16_t)));
    3806           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint16_t), CH_UTF16));
    3807           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    3808             :                 }
    3809             :         }
    3810           0 :         return NDR_ERR_SUCCESS;
    3811             : }
    3812             : 
    3813           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_W2K *r)
    3814             : {
    3815           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_W2K");
    3816           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3817           0 :         ndr->depth++;
    3818           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    3819           0 :         ndr->depth++;
    3820           0 :         if (r->pszZoneName) {
    3821           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    3822             :         }
    3823           0 :         ndr->depth--;
    3824           0 :         ndr_print_DNS_RPC_ZONE_FLAGS(ndr, "Flags", r->Flags);
    3825           0 :         ndr_print_uint8(ndr, "ZoneType", r->ZoneType);
    3826           0 :         ndr_print_uint8(ndr, "Version", r->Version);
    3827           0 :         ndr->depth--;
    3828             : }
    3829             : 
    3830          33 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_DOTNET *r)
    3831             : {
    3832          33 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3833          33 :         if (ndr_flags & NDR_SCALARS) {
    3834          33 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3835          33 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    3836          33 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    3837          33 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    3838          33 :                 NDR_CHECK(ndr_push_DNS_RPC_ZONE_FLAGS(ndr, NDR_SCALARS, r->Flags));
    3839          33 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ZoneType));
    3840          33 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Version));
    3841          33 :                 NDR_CHECK(ndr_push_DNS_RPC_DP_FLAGS(ndr, NDR_SCALARS, r->dwDpFlags));
    3842          33 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    3843          33 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3844             :         }
    3845          33 :         if (ndr_flags & NDR_BUFFERS) {
    3846          33 :                 if (r->pszZoneName) {
    3847          33 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF16)));
    3848          33 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3849          33 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF16)));
    3850          33 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    3851             :                 }
    3852          33 :                 if (r->pszDpFqdn) {
    3853          33 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3854          33 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    3855          33 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    3856          33 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    3857             :                 }
    3858             :         }
    3859          33 :         return NDR_ERR_SUCCESS;
    3860             : }
    3861             : 
    3862          33 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_DOTNET *r)
    3863             : {
    3864             :         uint32_t _ptr_pszZoneName;
    3865          33 :         uint32_t size_pszZoneName_1 = 0;
    3866          33 :         uint32_t length_pszZoneName_1 = 0;
    3867          33 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    3868             :         uint32_t _ptr_pszDpFqdn;
    3869          33 :         uint32_t size_pszDpFqdn_1 = 0;
    3870          33 :         uint32_t length_pszDpFqdn_1 = 0;
    3871          33 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    3872          33 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3873          33 :         if (ndr_flags & NDR_SCALARS) {
    3874          33 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3875          33 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    3876          33 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    3877          33 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    3878          33 :                 if (_ptr_pszZoneName) {
    3879          33 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    3880             :                 } else {
    3881           0 :                         r->pszZoneName = NULL;
    3882             :                 }
    3883          33 :                 NDR_CHECK(ndr_pull_DNS_RPC_ZONE_FLAGS(ndr, NDR_SCALARS, &r->Flags));
    3884          33 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ZoneType));
    3885          33 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Version));
    3886          33 :                 NDR_CHECK(ndr_pull_DNS_RPC_DP_FLAGS(ndr, NDR_SCALARS, &r->dwDpFlags));
    3887          33 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    3888          33 :                 if (_ptr_pszDpFqdn) {
    3889          33 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    3890             :                 } else {
    3891           0 :                         r->pszDpFqdn = NULL;
    3892             :                 }
    3893          33 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    3894             :         }
    3895          33 :         if (ndr_flags & NDR_BUFFERS) {
    3896          33 :                 if (r->pszZoneName) {
    3897          33 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3898          33 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    3899          33 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    3900          33 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    3901          33 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    3902          33 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    3903          33 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    3904           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    3905             :                         }
    3906          33 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint16_t)));
    3907          33 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint16_t), CH_UTF16));
    3908          33 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    3909             :                 }
    3910          33 :                 if (r->pszDpFqdn) {
    3911          33 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3912          33 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    3913          33 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    3914          33 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    3915          33 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    3916          33 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    3917          33 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    3918           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    3919             :                         }
    3920          33 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    3921          33 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    3922          33 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    3923             :                 }
    3924             :         }
    3925          33 :         return NDR_ERR_SUCCESS;
    3926             : }
    3927             : 
    3928           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_DOTNET *r)
    3929             : {
    3930           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_DOTNET");
    3931           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    3932           0 :         ndr->depth++;
    3933           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    3934           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    3935           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    3936           0 :         ndr->depth++;
    3937           0 :         if (r->pszZoneName) {
    3938           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    3939             :         }
    3940           0 :         ndr->depth--;
    3941           0 :         ndr_print_DNS_RPC_ZONE_FLAGS(ndr, "Flags", r->Flags);
    3942           0 :         ndr_print_uint8(ndr, "ZoneType", r->ZoneType);
    3943           0 :         ndr_print_uint8(ndr, "Version", r->Version);
    3944           0 :         ndr_print_DNS_RPC_DP_FLAGS(ndr, "dwDpFlags", r->dwDpFlags);
    3945           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    3946           0 :         ndr->depth++;
    3947           0 :         if (r->pszDpFqdn) {
    3948           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    3949             :         }
    3950           0 :         ndr->depth--;
    3951           0 :         ndr->depth--;
    3952             : }
    3953             : 
    3954           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_LIST_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_LIST_W2K *r)
    3955             : {
    3956             :         uint32_t cntr_ZoneArray_0;
    3957           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    3958           0 :         if (ndr_flags & NDR_SCALARS) {
    3959           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->dwZoneCount));
    3960           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    3961           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneCount));
    3962           0 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (r->dwZoneCount); cntr_ZoneArray_0++) {
    3963           0 :                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneArray[cntr_ZoneArray_0]));
    3964             :                 }
    3965           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    3966             :         }
    3967           0 :         if (ndr_flags & NDR_BUFFERS) {
    3968           0 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (r->dwZoneCount); cntr_ZoneArray_0++) {
    3969           0 :                         if (r->ZoneArray[cntr_ZoneArray_0]) {
    3970           0 :                                 NDR_CHECK(ndr_push_DNS_RPC_ZONE_W2K(ndr, NDR_SCALARS|NDR_BUFFERS, r->ZoneArray[cntr_ZoneArray_0]));
    3971             :                         }
    3972             :                 }
    3973             :         }
    3974           0 :         return NDR_ERR_SUCCESS;
    3975             : }
    3976             : 
    3977           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_LIST_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_LIST_W2K *r)
    3978             : {
    3979             :         uint32_t _ptr_ZoneArray;
    3980           0 :         uint32_t size_ZoneArray_0 = 0;
    3981             :         uint32_t cntr_ZoneArray_0;
    3982           0 :         TALLOC_CTX *_mem_save_ZoneArray_0 = NULL;
    3983           0 :         TALLOC_CTX *_mem_save_ZoneArray_1 = NULL;
    3984           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    3985           0 :         if (ndr_flags & NDR_SCALARS) {
    3986           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->ZoneArray));
    3987           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    3988           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneCount));
    3989           0 :                 if (r->dwZoneCount > 500000) {
    3990           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
    3991             :                 }
    3992           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->ZoneArray, &size_ZoneArray_0));
    3993           0 :                 NDR_PULL_ALLOC_N(ndr, r->ZoneArray, size_ZoneArray_0);
    3994           0 :                 _mem_save_ZoneArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    3995           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->ZoneArray, 0);
    3996           0 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (size_ZoneArray_0); cntr_ZoneArray_0++) {
    3997           0 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ZoneArray));
    3998           0 :                         if (_ptr_ZoneArray) {
    3999           0 :                                 NDR_PULL_ALLOC(ndr, r->ZoneArray[cntr_ZoneArray_0]);
    4000             :                         } else {
    4001           0 :                                 r->ZoneArray[cntr_ZoneArray_0] = NULL;
    4002             :                         }
    4003             :                 }
    4004           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ZoneArray_0, 0);
    4005           0 :                 if (r->ZoneArray) {
    4006           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->ZoneArray, r->dwZoneCount));
    4007             :                 }
    4008           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    4009             :         }
    4010           0 :         if (ndr_flags & NDR_BUFFERS) {
    4011           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->ZoneArray, &size_ZoneArray_0));
    4012           0 :                 _mem_save_ZoneArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4013           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->ZoneArray, 0);
    4014           0 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (size_ZoneArray_0); cntr_ZoneArray_0++) {
    4015           0 :                         if (r->ZoneArray[cntr_ZoneArray_0]) {
    4016           0 :                                 _mem_save_ZoneArray_1 = NDR_PULL_GET_MEM_CTX(ndr);
    4017           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->ZoneArray[cntr_ZoneArray_0], 0);
    4018           0 :                                 NDR_CHECK(ndr_pull_DNS_RPC_ZONE_W2K(ndr, NDR_SCALARS|NDR_BUFFERS, r->ZoneArray[cntr_ZoneArray_0]));
    4019           0 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ZoneArray_1, 0);
    4020             :                         }
    4021             :                 }
    4022           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ZoneArray_0, 0);
    4023           0 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (size_ZoneArray_0); cntr_ZoneArray_0++) {
    4024             :                 }
    4025             :         }
    4026           0 :         return NDR_ERR_SUCCESS;
    4027             : }
    4028             : 
    4029           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_LIST_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_LIST_W2K *r)
    4030             : {
    4031             :         uint32_t cntr_ZoneArray_0;
    4032           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_LIST_W2K");
    4033           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    4034           0 :         ndr->depth++;
    4035           0 :         ndr_print_uint32(ndr, "dwZoneCount", r->dwZoneCount);
    4036           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "ZoneArray", (int)r->dwZoneCount);
    4037           0 :         ndr->depth++;
    4038           0 :         for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (r->dwZoneCount); cntr_ZoneArray_0++) {
    4039           0 :                 ndr_print_ptr(ndr, "ZoneArray", r->ZoneArray[cntr_ZoneArray_0]);
    4040           0 :                 ndr->depth++;
    4041           0 :                 if (r->ZoneArray[cntr_ZoneArray_0]) {
    4042           0 :                         ndr_print_DNS_RPC_ZONE_W2K(ndr, "ZoneArray", r->ZoneArray[cntr_ZoneArray_0]);
    4043             :                 }
    4044           0 :                 ndr->depth--;
    4045             :         }
    4046           0 :         ndr->depth--;
    4047           0 :         ndr->depth--;
    4048             : }
    4049             : 
    4050          18 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_LIST_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_LIST_DOTNET *r)
    4051             : {
    4052             :         uint32_t cntr_ZoneArray_0;
    4053          18 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    4054          18 :         if (ndr_flags & NDR_SCALARS) {
    4055          18 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->dwZoneCount));
    4056          18 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    4057          18 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    4058          18 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    4059          18 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneCount));
    4060          51 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (r->dwZoneCount); cntr_ZoneArray_0++) {
    4061          33 :                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneArray[cntr_ZoneArray_0]));
    4062             :                 }
    4063          18 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    4064             :         }
    4065          18 :         if (ndr_flags & NDR_BUFFERS) {
    4066          51 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (r->dwZoneCount); cntr_ZoneArray_0++) {
    4067          33 :                         if (r->ZoneArray[cntr_ZoneArray_0]) {
    4068          33 :                                 NDR_CHECK(ndr_push_DNS_RPC_ZONE_DOTNET(ndr, NDR_SCALARS|NDR_BUFFERS, r->ZoneArray[cntr_ZoneArray_0]));
    4069             :                         }
    4070             :                 }
    4071             :         }
    4072          18 :         return NDR_ERR_SUCCESS;
    4073             : }
    4074             : 
    4075          18 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_LIST_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_LIST_DOTNET *r)
    4076             : {
    4077             :         uint32_t _ptr_ZoneArray;
    4078          18 :         uint32_t size_ZoneArray_0 = 0;
    4079             :         uint32_t cntr_ZoneArray_0;
    4080          18 :         TALLOC_CTX *_mem_save_ZoneArray_0 = NULL;
    4081          18 :         TALLOC_CTX *_mem_save_ZoneArray_1 = NULL;
    4082          18 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    4083          18 :         if (ndr_flags & NDR_SCALARS) {
    4084          18 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->ZoneArray));
    4085          18 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    4086          18 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    4087          18 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    4088          18 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneCount));
    4089          18 :                 if (r->dwZoneCount > 500000) {
    4090           0 :                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
    4091             :                 }
    4092          18 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->ZoneArray, &size_ZoneArray_0));
    4093          18 :                 NDR_PULL_ALLOC_N(ndr, r->ZoneArray, size_ZoneArray_0);
    4094          18 :                 _mem_save_ZoneArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4095          18 :                 NDR_PULL_SET_MEM_CTX(ndr, r->ZoneArray, 0);
    4096          51 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (size_ZoneArray_0); cntr_ZoneArray_0++) {
    4097          33 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ZoneArray));
    4098          33 :                         if (_ptr_ZoneArray) {
    4099          33 :                                 NDR_PULL_ALLOC(ndr, r->ZoneArray[cntr_ZoneArray_0]);
    4100             :                         } else {
    4101           0 :                                 r->ZoneArray[cntr_ZoneArray_0] = NULL;
    4102             :                         }
    4103             :                 }
    4104          18 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ZoneArray_0, 0);
    4105          18 :                 if (r->ZoneArray) {
    4106          18 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->ZoneArray, r->dwZoneCount));
    4107             :                 }
    4108          18 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    4109             :         }
    4110          18 :         if (ndr_flags & NDR_BUFFERS) {
    4111          18 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->ZoneArray, &size_ZoneArray_0));
    4112          18 :                 _mem_save_ZoneArray_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4113          18 :                 NDR_PULL_SET_MEM_CTX(ndr, r->ZoneArray, 0);
    4114          51 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (size_ZoneArray_0); cntr_ZoneArray_0++) {
    4115          33 :                         if (r->ZoneArray[cntr_ZoneArray_0]) {
    4116          33 :                                 _mem_save_ZoneArray_1 = NDR_PULL_GET_MEM_CTX(ndr);
    4117          33 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->ZoneArray[cntr_ZoneArray_0], 0);
    4118          33 :                                 NDR_CHECK(ndr_pull_DNS_RPC_ZONE_DOTNET(ndr, NDR_SCALARS|NDR_BUFFERS, r->ZoneArray[cntr_ZoneArray_0]));
    4119          33 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ZoneArray_1, 0);
    4120             :                         }
    4121             :                 }
    4122          18 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ZoneArray_0, 0);
    4123          29 :                 for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (size_ZoneArray_0); cntr_ZoneArray_0++) {
    4124             :                 }
    4125             :         }
    4126          18 :         return NDR_ERR_SUCCESS;
    4127             : }
    4128             : 
    4129           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_LIST_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_LIST_DOTNET *r)
    4130             : {
    4131             :         uint32_t cntr_ZoneArray_0;
    4132           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_LIST_DOTNET");
    4133           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    4134           0 :         ndr->depth++;
    4135           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    4136           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    4137           0 :         ndr_print_uint32(ndr, "dwZoneCount", r->dwZoneCount);
    4138           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "ZoneArray", (int)r->dwZoneCount);
    4139           0 :         ndr->depth++;
    4140           0 :         for (cntr_ZoneArray_0 = 0; cntr_ZoneArray_0 < (r->dwZoneCount); cntr_ZoneArray_0++) {
    4141           0 :                 ndr_print_ptr(ndr, "ZoneArray", r->ZoneArray[cntr_ZoneArray_0]);
    4142           0 :                 ndr->depth++;
    4143           0 :                 if (r->ZoneArray[cntr_ZoneArray_0]) {
    4144           0 :                         ndr_print_DNS_RPC_ZONE_DOTNET(ndr, "ZoneArray", r->ZoneArray[cntr_ZoneArray_0]);
    4145             :                 }
    4146           0 :                 ndr->depth--;
    4147             :         }
    4148           0 :         ndr->depth--;
    4149           0 :         ndr->depth--;
    4150             : }
    4151             : 
    4152           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_INFO_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_INFO_W2K *r)
    4153             : {
    4154           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    4155           0 :         if (ndr_flags & NDR_SCALARS) {
    4156           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    4157           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    4158           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneType));
    4159           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fReverse));
    4160           0 :                 NDR_CHECK(ndr_push_dns_zone_update(ndr, NDR_SCALARS, r->fAllowUpdate));
    4161           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fPaused));
    4162           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fShutdown));
    4163           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAutoCreated));
    4164           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseDatabase));
    4165           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDataFile));
    4166           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipMasters));
    4167           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    4168           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    4169           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    4170           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipNotify));
    4171           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseWins));
    4172           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseNbstat));
    4173           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAging));
    4174           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwNoRefreshInterval));
    4175           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRefreshInterval));
    4176           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwAvailForScavengeTime));
    4177           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipScavengeServers));
    4178           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pvReserved1));
    4179           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pvReserved2));
    4180           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pvReserved3));
    4181           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pvReserved4));
    4182           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    4183             :         }
    4184           0 :         if (ndr_flags & NDR_BUFFERS) {
    4185           0 :                 if (r->pszZoneName) {
    4186           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    4187           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4188           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    4189           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4190             :                 }
    4191           0 :                 if (r->pszDataFile) {
    4192           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    4193           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4194           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    4195           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDataFile, ndr_charset_length(r->pszDataFile, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4196             :                 }
    4197           0 :                 if (r->aipMasters) {
    4198           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    4199             :                 }
    4200           0 :                 if (r->aipSecondaries) {
    4201           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    4202             :                 }
    4203           0 :                 if (r->aipNotify) {
    4204           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    4205             :                 }
    4206           0 :                 if (r->aipScavengeServers) {
    4207           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipScavengeServers));
    4208             :                 }
    4209             :         }
    4210           0 :         return NDR_ERR_SUCCESS;
    4211             : }
    4212             : 
    4213           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_INFO_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_INFO_W2K *r)
    4214             : {
    4215             :         uint32_t _ptr_pszZoneName;
    4216           0 :         uint32_t size_pszZoneName_1 = 0;
    4217           0 :         uint32_t length_pszZoneName_1 = 0;
    4218           0 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    4219             :         uint32_t _ptr_pszDataFile;
    4220           0 :         uint32_t size_pszDataFile_1 = 0;
    4221           0 :         uint32_t length_pszDataFile_1 = 0;
    4222           0 :         TALLOC_CTX *_mem_save_pszDataFile_0 = NULL;
    4223             :         uint32_t _ptr_aipMasters;
    4224           0 :         TALLOC_CTX *_mem_save_aipMasters_0 = NULL;
    4225             :         uint32_t _ptr_aipSecondaries;
    4226           0 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    4227             :         uint32_t _ptr_aipNotify;
    4228           0 :         TALLOC_CTX *_mem_save_aipNotify_0 = NULL;
    4229             :         uint32_t _ptr_aipScavengeServers;
    4230           0 :         TALLOC_CTX *_mem_save_aipScavengeServers_0 = NULL;
    4231           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    4232           0 :         if (ndr_flags & NDR_SCALARS) {
    4233           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    4234           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    4235           0 :                 if (_ptr_pszZoneName) {
    4236           0 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    4237             :                 } else {
    4238           0 :                         r->pszZoneName = NULL;
    4239             :                 }
    4240           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneType));
    4241           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fReverse));
    4242           0 :                 NDR_CHECK(ndr_pull_dns_zone_update(ndr, NDR_SCALARS, &r->fAllowUpdate));
    4243           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fPaused));
    4244           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fShutdown));
    4245           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAutoCreated));
    4246           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseDatabase));
    4247           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDataFile));
    4248           0 :                 if (_ptr_pszDataFile) {
    4249           0 :                         NDR_PULL_ALLOC(ndr, r->pszDataFile);
    4250             :                 } else {
    4251           0 :                         r->pszDataFile = NULL;
    4252             :                 }
    4253           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipMasters));
    4254           0 :                 if (_ptr_aipMasters) {
    4255           0 :                         NDR_PULL_ALLOC(ndr, r->aipMasters);
    4256             :                 } else {
    4257           0 :                         r->aipMasters = NULL;
    4258             :                 }
    4259           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    4260           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    4261           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    4262           0 :                 if (_ptr_aipSecondaries) {
    4263           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    4264             :                 } else {
    4265           0 :                         r->aipSecondaries = NULL;
    4266             :                 }
    4267           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipNotify));
    4268           0 :                 if (_ptr_aipNotify) {
    4269           0 :                         NDR_PULL_ALLOC(ndr, r->aipNotify);
    4270             :                 } else {
    4271           0 :                         r->aipNotify = NULL;
    4272             :                 }
    4273           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseWins));
    4274           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseNbstat));
    4275           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAging));
    4276           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwNoRefreshInterval));
    4277           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRefreshInterval));
    4278           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwAvailForScavengeTime));
    4279           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipScavengeServers));
    4280           0 :                 if (_ptr_aipScavengeServers) {
    4281           0 :                         NDR_PULL_ALLOC(ndr, r->aipScavengeServers);
    4282             :                 } else {
    4283           0 :                         r->aipScavengeServers = NULL;
    4284             :                 }
    4285           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pvReserved1));
    4286           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pvReserved2));
    4287           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pvReserved3));
    4288           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pvReserved4));
    4289           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    4290             :         }
    4291           0 :         if (ndr_flags & NDR_BUFFERS) {
    4292           0 :                 if (r->pszZoneName) {
    4293           0 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4294           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    4295           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    4296           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    4297           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    4298           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    4299           0 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    4300           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    4301             :                         }
    4302           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint8_t)));
    4303           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint8_t), CH_UTF8));
    4304           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    4305             :                 }
    4306           0 :                 if (r->pszDataFile) {
    4307           0 :                         _mem_save_pszDataFile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4308           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDataFile, 0);
    4309           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDataFile));
    4310           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDataFile));
    4311           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDataFile, &size_pszDataFile_1));
    4312           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDataFile, &length_pszDataFile_1));
    4313           0 :                         if (length_pszDataFile_1 > size_pszDataFile_1) {
    4314           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDataFile_1, length_pszDataFile_1);
    4315             :                         }
    4316           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDataFile_1, sizeof(uint8_t)));
    4317           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDataFile, length_pszDataFile_1, sizeof(uint8_t), CH_UTF8));
    4318           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDataFile_0, 0);
    4319             :                 }
    4320           0 :                 if (r->aipMasters) {
    4321           0 :                         _mem_save_aipMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4322           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipMasters, 0);
    4323           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    4324           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipMasters_0, 0);
    4325             :                 }
    4326           0 :                 if (r->aipSecondaries) {
    4327           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4328           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    4329           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    4330           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    4331             :                 }
    4332           0 :                 if (r->aipNotify) {
    4333           0 :                         _mem_save_aipNotify_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4334           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipNotify, 0);
    4335           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    4336           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipNotify_0, 0);
    4337             :                 }
    4338           0 :                 if (r->aipScavengeServers) {
    4339           0 :                         _mem_save_aipScavengeServers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4340           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipScavengeServers, 0);
    4341           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipScavengeServers));
    4342           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipScavengeServers_0, 0);
    4343             :                 }
    4344             :         }
    4345           0 :         return NDR_ERR_SUCCESS;
    4346             : }
    4347             : 
    4348           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_INFO_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_INFO_W2K *r)
    4349             : {
    4350           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_INFO_W2K");
    4351           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    4352           0 :         ndr->depth++;
    4353           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    4354           0 :         ndr->depth++;
    4355           0 :         if (r->pszZoneName) {
    4356           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    4357             :         }
    4358           0 :         ndr->depth--;
    4359           0 :         ndr_print_uint32(ndr, "dwZoneType", r->dwZoneType);
    4360           0 :         ndr_print_uint32(ndr, "fReverse", r->fReverse);
    4361           0 :         ndr_print_dns_zone_update(ndr, "fAllowUpdate", r->fAllowUpdate);
    4362           0 :         ndr_print_uint32(ndr, "fPaused", r->fPaused);
    4363           0 :         ndr_print_uint32(ndr, "fShutdown", r->fShutdown);
    4364           0 :         ndr_print_uint32(ndr, "fAutoCreated", r->fAutoCreated);
    4365           0 :         ndr_print_uint32(ndr, "fUseDatabase", r->fUseDatabase);
    4366           0 :         ndr_print_ptr(ndr, "pszDataFile", r->pszDataFile);
    4367           0 :         ndr->depth++;
    4368           0 :         if (r->pszDataFile) {
    4369           0 :                 ndr_print_string(ndr, "pszDataFile", r->pszDataFile);
    4370             :         }
    4371           0 :         ndr->depth--;
    4372           0 :         ndr_print_ptr(ndr, "aipMasters", r->aipMasters);
    4373           0 :         ndr->depth++;
    4374           0 :         if (r->aipMasters) {
    4375           0 :                 ndr_print_IP4_ARRAY(ndr, "aipMasters", r->aipMasters);
    4376             :         }
    4377           0 :         ndr->depth--;
    4378           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    4379           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    4380           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    4381           0 :         ndr->depth++;
    4382           0 :         if (r->aipSecondaries) {
    4383           0 :                 ndr_print_IP4_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    4384             :         }
    4385           0 :         ndr->depth--;
    4386           0 :         ndr_print_ptr(ndr, "aipNotify", r->aipNotify);
    4387           0 :         ndr->depth++;
    4388           0 :         if (r->aipNotify) {
    4389           0 :                 ndr_print_IP4_ARRAY(ndr, "aipNotify", r->aipNotify);
    4390             :         }
    4391           0 :         ndr->depth--;
    4392           0 :         ndr_print_uint32(ndr, "fUseWins", r->fUseWins);
    4393           0 :         ndr_print_uint32(ndr, "fUseNbstat", r->fUseNbstat);
    4394           0 :         ndr_print_uint32(ndr, "fAging", r->fAging);
    4395           0 :         ndr_print_uint32(ndr, "dwNoRefreshInterval", r->dwNoRefreshInterval);
    4396           0 :         ndr_print_uint32(ndr, "dwRefreshInterval", r->dwRefreshInterval);
    4397           0 :         ndr_print_uint32(ndr, "dwAvailForScavengeTime", r->dwAvailForScavengeTime);
    4398           0 :         ndr_print_ptr(ndr, "aipScavengeServers", r->aipScavengeServers);
    4399           0 :         ndr->depth++;
    4400           0 :         if (r->aipScavengeServers) {
    4401           0 :                 ndr_print_IP4_ARRAY(ndr, "aipScavengeServers", r->aipScavengeServers);
    4402             :         }
    4403           0 :         ndr->depth--;
    4404           0 :         ndr_print_uint32(ndr, "pvReserved1", r->pvReserved1);
    4405           0 :         ndr_print_uint32(ndr, "pvReserved2", r->pvReserved2);
    4406           0 :         ndr_print_uint32(ndr, "pvReserved3", r->pvReserved3);
    4407           0 :         ndr_print_uint32(ndr, "pvReserved4", r->pvReserved4);
    4408           0 :         ndr->depth--;
    4409             : }
    4410             : 
    4411           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_INFO_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_INFO_DOTNET *r)
    4412             : {
    4413           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    4414           0 :         if (ndr_flags & NDR_SCALARS) {
    4415           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    4416           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    4417           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    4418           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    4419           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneType));
    4420           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fReverse));
    4421           0 :                 NDR_CHECK(ndr_push_dns_zone_update(ndr, NDR_SCALARS, r->fAllowUpdate));
    4422           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fPaused));
    4423           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fShutdown));
    4424           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAutoCreated));
    4425           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseDatabase));
    4426           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDataFile));
    4427           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipMasters));
    4428           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    4429           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    4430           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    4431           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipNotify));
    4432           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseWins));
    4433           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseNbstat));
    4434           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAging));
    4435           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwNoRefreshInterval));
    4436           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRefreshInterval));
    4437           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwAvailForScavengeTime));
    4438           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipScavengeServers));
    4439           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwarderTimeout));
    4440           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fForwarderSlave));
    4441           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipLocalMasters));
    4442           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDpFlags));
    4443           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    4444           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pwszZoneDn));
    4445           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastSuccessfulSoaCheck));
    4446           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastSuccessfulXfr));
    4447           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved1));
    4448           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved2));
    4449           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved3));
    4450           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved4));
    4451           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved5));
    4452           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pReserved1));
    4453           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pReserved2));
    4454           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pReserved3));
    4455           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pReserved4));
    4456           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    4457             :         }
    4458           0 :         if (ndr_flags & NDR_BUFFERS) {
    4459           0 :                 if (r->pszZoneName) {
    4460           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    4461           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4462           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    4463           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4464             :                 }
    4465           0 :                 if (r->pszDataFile) {
    4466           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    4467           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4468           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    4469           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDataFile, ndr_charset_length(r->pszDataFile, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4470             :                 }
    4471           0 :                 if (r->aipMasters) {
    4472           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    4473             :                 }
    4474           0 :                 if (r->aipSecondaries) {
    4475           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    4476             :                 }
    4477           0 :                 if (r->aipNotify) {
    4478           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    4479             :                 }
    4480           0 :                 if (r->aipScavengeServers) {
    4481           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipScavengeServers));
    4482             :                 }
    4483           0 :                 if (r->aipLocalMasters) {
    4484           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipLocalMasters));
    4485             :                 }
    4486           0 :                 if (r->pszDpFqdn) {
    4487           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    4488           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4489           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    4490           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4491             :                 }
    4492           0 :                 if (r->pwszZoneDn) {
    4493           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszZoneDn, CH_UTF16)));
    4494           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4495           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszZoneDn, CH_UTF16)));
    4496           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pwszZoneDn, ndr_charset_length(r->pwszZoneDn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    4497             :                 }
    4498           0 :                 if (r->pReserved1) {
    4499           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved1, CH_UTF8)));
    4500           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4501           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved1, CH_UTF8)));
    4502           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pReserved1, ndr_charset_length(r->pReserved1, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4503             :                 }
    4504           0 :                 if (r->pReserved2) {
    4505           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved2, CH_UTF8)));
    4506           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4507           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved2, CH_UTF8)));
    4508           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pReserved2, ndr_charset_length(r->pReserved2, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4509             :                 }
    4510           0 :                 if (r->pReserved3) {
    4511           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved3, CH_UTF8)));
    4512           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4513           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved3, CH_UTF8)));
    4514           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pReserved3, ndr_charset_length(r->pReserved3, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4515             :                 }
    4516           0 :                 if (r->pReserved4) {
    4517           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved4, CH_UTF8)));
    4518           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4519           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pReserved4, CH_UTF8)));
    4520           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pReserved4, ndr_charset_length(r->pReserved4, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4521             :                 }
    4522             :         }
    4523           0 :         return NDR_ERR_SUCCESS;
    4524             : }
    4525             : 
    4526           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_INFO_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_INFO_DOTNET *r)
    4527             : {
    4528             :         uint32_t _ptr_pszZoneName;
    4529           0 :         uint32_t size_pszZoneName_1 = 0;
    4530           0 :         uint32_t length_pszZoneName_1 = 0;
    4531           0 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    4532             :         uint32_t _ptr_pszDataFile;
    4533           0 :         uint32_t size_pszDataFile_1 = 0;
    4534           0 :         uint32_t length_pszDataFile_1 = 0;
    4535           0 :         TALLOC_CTX *_mem_save_pszDataFile_0 = NULL;
    4536             :         uint32_t _ptr_aipMasters;
    4537           0 :         TALLOC_CTX *_mem_save_aipMasters_0 = NULL;
    4538             :         uint32_t _ptr_aipSecondaries;
    4539           0 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    4540             :         uint32_t _ptr_aipNotify;
    4541           0 :         TALLOC_CTX *_mem_save_aipNotify_0 = NULL;
    4542             :         uint32_t _ptr_aipScavengeServers;
    4543           0 :         TALLOC_CTX *_mem_save_aipScavengeServers_0 = NULL;
    4544             :         uint32_t _ptr_aipLocalMasters;
    4545           0 :         TALLOC_CTX *_mem_save_aipLocalMasters_0 = NULL;
    4546             :         uint32_t _ptr_pszDpFqdn;
    4547           0 :         uint32_t size_pszDpFqdn_1 = 0;
    4548           0 :         uint32_t length_pszDpFqdn_1 = 0;
    4549           0 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    4550             :         uint32_t _ptr_pwszZoneDn;
    4551           0 :         uint32_t size_pwszZoneDn_1 = 0;
    4552           0 :         uint32_t length_pwszZoneDn_1 = 0;
    4553           0 :         TALLOC_CTX *_mem_save_pwszZoneDn_0 = NULL;
    4554             :         uint32_t _ptr_pReserved1;
    4555           0 :         uint32_t size_pReserved1_1 = 0;
    4556           0 :         uint32_t length_pReserved1_1 = 0;
    4557           0 :         TALLOC_CTX *_mem_save_pReserved1_0 = NULL;
    4558             :         uint32_t _ptr_pReserved2;
    4559           0 :         uint32_t size_pReserved2_1 = 0;
    4560           0 :         uint32_t length_pReserved2_1 = 0;
    4561           0 :         TALLOC_CTX *_mem_save_pReserved2_0 = NULL;
    4562             :         uint32_t _ptr_pReserved3;
    4563           0 :         uint32_t size_pReserved3_1 = 0;
    4564           0 :         uint32_t length_pReserved3_1 = 0;
    4565           0 :         TALLOC_CTX *_mem_save_pReserved3_0 = NULL;
    4566             :         uint32_t _ptr_pReserved4;
    4567           0 :         uint32_t size_pReserved4_1 = 0;
    4568           0 :         uint32_t length_pReserved4_1 = 0;
    4569           0 :         TALLOC_CTX *_mem_save_pReserved4_0 = NULL;
    4570           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    4571           0 :         if (ndr_flags & NDR_SCALARS) {
    4572           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    4573           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    4574           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    4575           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    4576           0 :                 if (_ptr_pszZoneName) {
    4577           0 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    4578             :                 } else {
    4579           0 :                         r->pszZoneName = NULL;
    4580             :                 }
    4581           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneType));
    4582           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fReverse));
    4583           0 :                 NDR_CHECK(ndr_pull_dns_zone_update(ndr, NDR_SCALARS, &r->fAllowUpdate));
    4584           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fPaused));
    4585           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fShutdown));
    4586           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAutoCreated));
    4587           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseDatabase));
    4588           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDataFile));
    4589           0 :                 if (_ptr_pszDataFile) {
    4590           0 :                         NDR_PULL_ALLOC(ndr, r->pszDataFile);
    4591             :                 } else {
    4592           0 :                         r->pszDataFile = NULL;
    4593             :                 }
    4594           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipMasters));
    4595           0 :                 if (_ptr_aipMasters) {
    4596           0 :                         NDR_PULL_ALLOC(ndr, r->aipMasters);
    4597             :                 } else {
    4598           0 :                         r->aipMasters = NULL;
    4599             :                 }
    4600           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    4601           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    4602           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    4603           0 :                 if (_ptr_aipSecondaries) {
    4604           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    4605             :                 } else {
    4606           0 :                         r->aipSecondaries = NULL;
    4607             :                 }
    4608           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipNotify));
    4609           0 :                 if (_ptr_aipNotify) {
    4610           0 :                         NDR_PULL_ALLOC(ndr, r->aipNotify);
    4611             :                 } else {
    4612           0 :                         r->aipNotify = NULL;
    4613             :                 }
    4614           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseWins));
    4615           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseNbstat));
    4616           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAging));
    4617           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwNoRefreshInterval));
    4618           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRefreshInterval));
    4619           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwAvailForScavengeTime));
    4620           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipScavengeServers));
    4621           0 :                 if (_ptr_aipScavengeServers) {
    4622           0 :                         NDR_PULL_ALLOC(ndr, r->aipScavengeServers);
    4623             :                 } else {
    4624           0 :                         r->aipScavengeServers = NULL;
    4625             :                 }
    4626           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwarderTimeout));
    4627           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fForwarderSlave));
    4628           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipLocalMasters));
    4629           0 :                 if (_ptr_aipLocalMasters) {
    4630           0 :                         NDR_PULL_ALLOC(ndr, r->aipLocalMasters);
    4631             :                 } else {
    4632           0 :                         r->aipLocalMasters = NULL;
    4633             :                 }
    4634           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDpFlags));
    4635           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    4636           0 :                 if (_ptr_pszDpFqdn) {
    4637           0 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    4638             :                 } else {
    4639           0 :                         r->pszDpFqdn = NULL;
    4640             :                 }
    4641           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pwszZoneDn));
    4642           0 :                 if (_ptr_pwszZoneDn) {
    4643           0 :                         NDR_PULL_ALLOC(ndr, r->pwszZoneDn);
    4644             :                 } else {
    4645           0 :                         r->pwszZoneDn = NULL;
    4646             :                 }
    4647           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastSuccessfulSoaCheck));
    4648           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastSuccessfulXfr));
    4649           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved1));
    4650           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved2));
    4651           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved3));
    4652           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved4));
    4653           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved5));
    4654           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pReserved1));
    4655           0 :                 if (_ptr_pReserved1) {
    4656           0 :                         NDR_PULL_ALLOC(ndr, r->pReserved1);
    4657             :                 } else {
    4658           0 :                         r->pReserved1 = NULL;
    4659             :                 }
    4660           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pReserved2));
    4661           0 :                 if (_ptr_pReserved2) {
    4662           0 :                         NDR_PULL_ALLOC(ndr, r->pReserved2);
    4663             :                 } else {
    4664           0 :                         r->pReserved2 = NULL;
    4665             :                 }
    4666           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pReserved3));
    4667           0 :                 if (_ptr_pReserved3) {
    4668           0 :                         NDR_PULL_ALLOC(ndr, r->pReserved3);
    4669             :                 } else {
    4670           0 :                         r->pReserved3 = NULL;
    4671             :                 }
    4672           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pReserved4));
    4673           0 :                 if (_ptr_pReserved4) {
    4674           0 :                         NDR_PULL_ALLOC(ndr, r->pReserved4);
    4675             :                 } else {
    4676           0 :                         r->pReserved4 = NULL;
    4677             :                 }
    4678           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    4679             :         }
    4680           0 :         if (ndr_flags & NDR_BUFFERS) {
    4681           0 :                 if (r->pszZoneName) {
    4682           0 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4683           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    4684           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    4685           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    4686           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    4687           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    4688           0 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    4689           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    4690             :                         }
    4691           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint8_t)));
    4692           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint8_t), CH_UTF8));
    4693           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    4694             :                 }
    4695           0 :                 if (r->pszDataFile) {
    4696           0 :                         _mem_save_pszDataFile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4697           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDataFile, 0);
    4698           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDataFile));
    4699           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDataFile));
    4700           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDataFile, &size_pszDataFile_1));
    4701           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDataFile, &length_pszDataFile_1));
    4702           0 :                         if (length_pszDataFile_1 > size_pszDataFile_1) {
    4703           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDataFile_1, length_pszDataFile_1);
    4704             :                         }
    4705           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDataFile_1, sizeof(uint8_t)));
    4706           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDataFile, length_pszDataFile_1, sizeof(uint8_t), CH_UTF8));
    4707           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDataFile_0, 0);
    4708             :                 }
    4709           0 :                 if (r->aipMasters) {
    4710           0 :                         _mem_save_aipMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4711           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipMasters, 0);
    4712           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    4713           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipMasters_0, 0);
    4714             :                 }
    4715           0 :                 if (r->aipSecondaries) {
    4716           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4717           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    4718           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    4719           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    4720             :                 }
    4721           0 :                 if (r->aipNotify) {
    4722           0 :                         _mem_save_aipNotify_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4723           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipNotify, 0);
    4724           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    4725           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipNotify_0, 0);
    4726             :                 }
    4727           0 :                 if (r->aipScavengeServers) {
    4728           0 :                         _mem_save_aipScavengeServers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4729           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipScavengeServers, 0);
    4730           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipScavengeServers));
    4731           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipScavengeServers_0, 0);
    4732             :                 }
    4733           0 :                 if (r->aipLocalMasters) {
    4734           0 :                         _mem_save_aipLocalMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4735           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipLocalMasters, 0);
    4736           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipLocalMasters));
    4737           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipLocalMasters_0, 0);
    4738             :                 }
    4739           0 :                 if (r->pszDpFqdn) {
    4740           0 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4741           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    4742           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    4743           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    4744           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    4745           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    4746           0 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    4747           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    4748             :                         }
    4749           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    4750           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    4751           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    4752             :                 }
    4753           0 :                 if (r->pwszZoneDn) {
    4754           0 :                         _mem_save_pwszZoneDn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4755           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pwszZoneDn, 0);
    4756           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pwszZoneDn));
    4757           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pwszZoneDn));
    4758           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pwszZoneDn, &size_pwszZoneDn_1));
    4759           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pwszZoneDn, &length_pwszZoneDn_1));
    4760           0 :                         if (length_pwszZoneDn_1 > size_pwszZoneDn_1) {
    4761           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pwszZoneDn_1, length_pwszZoneDn_1);
    4762             :                         }
    4763           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pwszZoneDn_1, sizeof(uint16_t)));
    4764           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pwszZoneDn, length_pwszZoneDn_1, sizeof(uint16_t), CH_UTF16));
    4765           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwszZoneDn_0, 0);
    4766             :                 }
    4767           0 :                 if (r->pReserved1) {
    4768           0 :                         _mem_save_pReserved1_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4769           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pReserved1, 0);
    4770           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pReserved1));
    4771           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pReserved1));
    4772           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pReserved1, &size_pReserved1_1));
    4773           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pReserved1, &length_pReserved1_1));
    4774           0 :                         if (length_pReserved1_1 > size_pReserved1_1) {
    4775           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pReserved1_1, length_pReserved1_1);
    4776             :                         }
    4777           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pReserved1_1, sizeof(uint8_t)));
    4778           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pReserved1, length_pReserved1_1, sizeof(uint8_t), CH_UTF8));
    4779           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pReserved1_0, 0);
    4780             :                 }
    4781           0 :                 if (r->pReserved2) {
    4782           0 :                         _mem_save_pReserved2_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4783           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pReserved2, 0);
    4784           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pReserved2));
    4785           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pReserved2));
    4786           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pReserved2, &size_pReserved2_1));
    4787           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pReserved2, &length_pReserved2_1));
    4788           0 :                         if (length_pReserved2_1 > size_pReserved2_1) {
    4789           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pReserved2_1, length_pReserved2_1);
    4790             :                         }
    4791           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pReserved2_1, sizeof(uint8_t)));
    4792           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pReserved2, length_pReserved2_1, sizeof(uint8_t), CH_UTF8));
    4793           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pReserved2_0, 0);
    4794             :                 }
    4795           0 :                 if (r->pReserved3) {
    4796           0 :                         _mem_save_pReserved3_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4797           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pReserved3, 0);
    4798           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pReserved3));
    4799           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pReserved3));
    4800           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pReserved3, &size_pReserved3_1));
    4801           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pReserved3, &length_pReserved3_1));
    4802           0 :                         if (length_pReserved3_1 > size_pReserved3_1) {
    4803           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pReserved3_1, length_pReserved3_1);
    4804             :                         }
    4805           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pReserved3_1, sizeof(uint8_t)));
    4806           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pReserved3, length_pReserved3_1, sizeof(uint8_t), CH_UTF8));
    4807           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pReserved3_0, 0);
    4808             :                 }
    4809           0 :                 if (r->pReserved4) {
    4810           0 :                         _mem_save_pReserved4_0 = NDR_PULL_GET_MEM_CTX(ndr);
    4811           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pReserved4, 0);
    4812           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pReserved4));
    4813           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pReserved4));
    4814           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pReserved4, &size_pReserved4_1));
    4815           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pReserved4, &length_pReserved4_1));
    4816           0 :                         if (length_pReserved4_1 > size_pReserved4_1) {
    4817           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pReserved4_1, length_pReserved4_1);
    4818             :                         }
    4819           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pReserved4_1, sizeof(uint8_t)));
    4820           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pReserved4, length_pReserved4_1, sizeof(uint8_t), CH_UTF8));
    4821           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pReserved4_0, 0);
    4822             :                 }
    4823             :         }
    4824           0 :         return NDR_ERR_SUCCESS;
    4825             : }
    4826             : 
    4827           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_INFO_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_INFO_DOTNET *r)
    4828             : {
    4829           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_INFO_DOTNET");
    4830           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    4831           0 :         ndr->depth++;
    4832           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    4833           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    4834           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    4835           0 :         ndr->depth++;
    4836           0 :         if (r->pszZoneName) {
    4837           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    4838             :         }
    4839           0 :         ndr->depth--;
    4840           0 :         ndr_print_uint32(ndr, "dwZoneType", r->dwZoneType);
    4841           0 :         ndr_print_uint32(ndr, "fReverse", r->fReverse);
    4842           0 :         ndr_print_dns_zone_update(ndr, "fAllowUpdate", r->fAllowUpdate);
    4843           0 :         ndr_print_uint32(ndr, "fPaused", r->fPaused);
    4844           0 :         ndr_print_uint32(ndr, "fShutdown", r->fShutdown);
    4845           0 :         ndr_print_uint32(ndr, "fAutoCreated", r->fAutoCreated);
    4846           0 :         ndr_print_uint32(ndr, "fUseDatabase", r->fUseDatabase);
    4847           0 :         ndr_print_ptr(ndr, "pszDataFile", r->pszDataFile);
    4848           0 :         ndr->depth++;
    4849           0 :         if (r->pszDataFile) {
    4850           0 :                 ndr_print_string(ndr, "pszDataFile", r->pszDataFile);
    4851             :         }
    4852           0 :         ndr->depth--;
    4853           0 :         ndr_print_ptr(ndr, "aipMasters", r->aipMasters);
    4854           0 :         ndr->depth++;
    4855           0 :         if (r->aipMasters) {
    4856           0 :                 ndr_print_IP4_ARRAY(ndr, "aipMasters", r->aipMasters);
    4857             :         }
    4858           0 :         ndr->depth--;
    4859           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    4860           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    4861           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    4862           0 :         ndr->depth++;
    4863           0 :         if (r->aipSecondaries) {
    4864           0 :                 ndr_print_IP4_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    4865             :         }
    4866           0 :         ndr->depth--;
    4867           0 :         ndr_print_ptr(ndr, "aipNotify", r->aipNotify);
    4868           0 :         ndr->depth++;
    4869           0 :         if (r->aipNotify) {
    4870           0 :                 ndr_print_IP4_ARRAY(ndr, "aipNotify", r->aipNotify);
    4871             :         }
    4872           0 :         ndr->depth--;
    4873           0 :         ndr_print_uint32(ndr, "fUseWins", r->fUseWins);
    4874           0 :         ndr_print_uint32(ndr, "fUseNbstat", r->fUseNbstat);
    4875           0 :         ndr_print_uint32(ndr, "fAging", r->fAging);
    4876           0 :         ndr_print_uint32(ndr, "dwNoRefreshInterval", r->dwNoRefreshInterval);
    4877           0 :         ndr_print_uint32(ndr, "dwRefreshInterval", r->dwRefreshInterval);
    4878           0 :         ndr_print_uint32(ndr, "dwAvailForScavengeTime", r->dwAvailForScavengeTime);
    4879           0 :         ndr_print_ptr(ndr, "aipScavengeServers", r->aipScavengeServers);
    4880           0 :         ndr->depth++;
    4881           0 :         if (r->aipScavengeServers) {
    4882           0 :                 ndr_print_IP4_ARRAY(ndr, "aipScavengeServers", r->aipScavengeServers);
    4883             :         }
    4884           0 :         ndr->depth--;
    4885           0 :         ndr_print_uint32(ndr, "dwForwarderTimeout", r->dwForwarderTimeout);
    4886           0 :         ndr_print_uint32(ndr, "fForwarderSlave", r->fForwarderSlave);
    4887           0 :         ndr_print_ptr(ndr, "aipLocalMasters", r->aipLocalMasters);
    4888           0 :         ndr->depth++;
    4889           0 :         if (r->aipLocalMasters) {
    4890           0 :                 ndr_print_IP4_ARRAY(ndr, "aipLocalMasters", r->aipLocalMasters);
    4891             :         }
    4892           0 :         ndr->depth--;
    4893           0 :         ndr_print_uint32(ndr, "dwDpFlags", r->dwDpFlags);
    4894           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    4895           0 :         ndr->depth++;
    4896           0 :         if (r->pszDpFqdn) {
    4897           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    4898             :         }
    4899           0 :         ndr->depth--;
    4900           0 :         ndr_print_ptr(ndr, "pwszZoneDn", r->pwszZoneDn);
    4901           0 :         ndr->depth++;
    4902           0 :         if (r->pwszZoneDn) {
    4903           0 :                 ndr_print_string(ndr, "pwszZoneDn", r->pwszZoneDn);
    4904             :         }
    4905           0 :         ndr->depth--;
    4906           0 :         ndr_print_uint32(ndr, "dwLastSuccessfulSoaCheck", r->dwLastSuccessfulSoaCheck);
    4907           0 :         ndr_print_uint32(ndr, "dwLastSuccessfulXfr", r->dwLastSuccessfulXfr);
    4908           0 :         ndr_print_uint32(ndr, "dwReserved1", r->dwReserved1);
    4909           0 :         ndr_print_uint32(ndr, "dwReserved2", r->dwReserved2);
    4910           0 :         ndr_print_uint32(ndr, "dwReserved3", r->dwReserved3);
    4911           0 :         ndr_print_uint32(ndr, "dwReserved4", r->dwReserved4);
    4912           0 :         ndr_print_uint32(ndr, "dwReserved5", r->dwReserved5);
    4913           0 :         ndr_print_ptr(ndr, "pReserved1", r->pReserved1);
    4914           0 :         ndr->depth++;
    4915           0 :         if (r->pReserved1) {
    4916           0 :                 ndr_print_string(ndr, "pReserved1", r->pReserved1);
    4917             :         }
    4918           0 :         ndr->depth--;
    4919           0 :         ndr_print_ptr(ndr, "pReserved2", r->pReserved2);
    4920           0 :         ndr->depth++;
    4921           0 :         if (r->pReserved2) {
    4922           0 :                 ndr_print_string(ndr, "pReserved2", r->pReserved2);
    4923             :         }
    4924           0 :         ndr->depth--;
    4925           0 :         ndr_print_ptr(ndr, "pReserved3", r->pReserved3);
    4926           0 :         ndr->depth++;
    4927           0 :         if (r->pReserved3) {
    4928           0 :                 ndr_print_string(ndr, "pReserved3", r->pReserved3);
    4929             :         }
    4930           0 :         ndr->depth--;
    4931           0 :         ndr_print_ptr(ndr, "pReserved4", r->pReserved4);
    4932           0 :         ndr->depth++;
    4933           0 :         if (r->pReserved4) {
    4934           0 :                 ndr_print_string(ndr, "pReserved4", r->pReserved4);
    4935             :         }
    4936           0 :         ndr->depth--;
    4937           0 :         ndr->depth--;
    4938             : }
    4939             : 
    4940          15 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_INFO_LONGHORN(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_INFO_LONGHORN *r)
    4941             : {
    4942          15 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    4943          15 :         if (ndr_flags & NDR_SCALARS) {
    4944          15 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    4945          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    4946          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    4947          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    4948          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneType));
    4949          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fReverse));
    4950          15 :                 NDR_CHECK(ndr_push_dns_zone_update(ndr, NDR_SCALARS, r->fAllowUpdate));
    4951          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fPaused));
    4952          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fShutdown));
    4953          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAutoCreated));
    4954          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseDatabase));
    4955          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDataFile));
    4956          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipMasters));
    4957          15 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    4958          15 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    4959          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    4960          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipNotify));
    4961          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseWins));
    4962          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fUseNbstat));
    4963          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAging));
    4964          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwNoRefreshInterval));
    4965          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRefreshInterval));
    4966          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwAvailForScavengeTime));
    4967          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipScavengeServers));
    4968          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwarderTimeout));
    4969          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fForwarderSlave));
    4970          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipLocalMasters));
    4971          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDpFlags));
    4972          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    4973          15 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pwszZoneDn));
    4974          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastSuccessfulSoaCheck));
    4975          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastSuccessfulXfr));
    4976          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fQueuedForBackgroundLoad));
    4977          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fBackgroundLoadInProgress));
    4978          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fReadOnlyZone));
    4979          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastXfrAttempt));
    4980          15 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwLastXfrResult));
    4981          15 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    4982             :         }
    4983          15 :         if (ndr_flags & NDR_BUFFERS) {
    4984          15 :                 if (r->pszZoneName) {
    4985          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    4986          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4987          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    4988          15 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4989             :                 }
    4990          15 :                 if (r->pszDataFile) {
    4991           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    4992           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    4993           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    4994           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDataFile, ndr_charset_length(r->pszDataFile, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    4995             :                 }
    4996          15 :                 if (r->aipMasters) {
    4997           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    4998             :                 }
    4999          15 :                 if (r->aipSecondaries) {
    5000           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5001             :                 }
    5002          15 :                 if (r->aipNotify) {
    5003           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5004             :                 }
    5005          15 :                 if (r->aipScavengeServers) {
    5006           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipScavengeServers));
    5007             :                 }
    5008          15 :                 if (r->aipLocalMasters) {
    5009           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipLocalMasters));
    5010             :                 }
    5011          15 :                 if (r->pszDpFqdn) {
    5012          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    5013          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5014          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    5015          15 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5016             :                 }
    5017          15 :                 if (r->pwszZoneDn) {
    5018          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszZoneDn, CH_UTF16)));
    5019          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5020          15 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pwszZoneDn, CH_UTF16)));
    5021          15 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pwszZoneDn, ndr_charset_length(r->pwszZoneDn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    5022             :                 }
    5023             :         }
    5024          15 :         return NDR_ERR_SUCCESS;
    5025             : }
    5026             : 
    5027          15 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_INFO_LONGHORN(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_INFO_LONGHORN *r)
    5028             : {
    5029             :         uint32_t _ptr_pszZoneName;
    5030          15 :         uint32_t size_pszZoneName_1 = 0;
    5031          15 :         uint32_t length_pszZoneName_1 = 0;
    5032          15 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    5033             :         uint32_t _ptr_pszDataFile;
    5034          15 :         uint32_t size_pszDataFile_1 = 0;
    5035          15 :         uint32_t length_pszDataFile_1 = 0;
    5036          15 :         TALLOC_CTX *_mem_save_pszDataFile_0 = NULL;
    5037             :         uint32_t _ptr_aipMasters;
    5038          15 :         TALLOC_CTX *_mem_save_aipMasters_0 = NULL;
    5039             :         uint32_t _ptr_aipSecondaries;
    5040          15 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    5041             :         uint32_t _ptr_aipNotify;
    5042          15 :         TALLOC_CTX *_mem_save_aipNotify_0 = NULL;
    5043             :         uint32_t _ptr_aipScavengeServers;
    5044          15 :         TALLOC_CTX *_mem_save_aipScavengeServers_0 = NULL;
    5045             :         uint32_t _ptr_aipLocalMasters;
    5046          15 :         TALLOC_CTX *_mem_save_aipLocalMasters_0 = NULL;
    5047             :         uint32_t _ptr_pszDpFqdn;
    5048          15 :         uint32_t size_pszDpFqdn_1 = 0;
    5049          15 :         uint32_t length_pszDpFqdn_1 = 0;
    5050          15 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    5051             :         uint32_t _ptr_pwszZoneDn;
    5052          15 :         uint32_t size_pwszZoneDn_1 = 0;
    5053          15 :         uint32_t length_pwszZoneDn_1 = 0;
    5054          15 :         TALLOC_CTX *_mem_save_pwszZoneDn_0 = NULL;
    5055          15 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5056          15 :         if (ndr_flags & NDR_SCALARS) {
    5057          15 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5058          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    5059          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    5060          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    5061          15 :                 if (_ptr_pszZoneName) {
    5062          15 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    5063             :                 } else {
    5064           0 :                         r->pszZoneName = NULL;
    5065             :                 }
    5066          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneType));
    5067          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fReverse));
    5068          15 :                 NDR_CHECK(ndr_pull_dns_zone_update(ndr, NDR_SCALARS, &r->fAllowUpdate));
    5069          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fPaused));
    5070          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fShutdown));
    5071          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAutoCreated));
    5072          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseDatabase));
    5073          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDataFile));
    5074          15 :                 if (_ptr_pszDataFile) {
    5075           0 :                         NDR_PULL_ALLOC(ndr, r->pszDataFile);
    5076             :                 } else {
    5077          15 :                         r->pszDataFile = NULL;
    5078             :                 }
    5079          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipMasters));
    5080          15 :                 if (_ptr_aipMasters) {
    5081           0 :                         NDR_PULL_ALLOC(ndr, r->aipMasters);
    5082             :                 } else {
    5083          15 :                         r->aipMasters = NULL;
    5084             :                 }
    5085          15 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    5086          15 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    5087          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    5088          15 :                 if (_ptr_aipSecondaries) {
    5089           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    5090             :                 } else {
    5091          15 :                         r->aipSecondaries = NULL;
    5092             :                 }
    5093          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipNotify));
    5094          15 :                 if (_ptr_aipNotify) {
    5095           0 :                         NDR_PULL_ALLOC(ndr, r->aipNotify);
    5096             :                 } else {
    5097          15 :                         r->aipNotify = NULL;
    5098             :                 }
    5099          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseWins));
    5100          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fUseNbstat));
    5101          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAging));
    5102          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwNoRefreshInterval));
    5103          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRefreshInterval));
    5104          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwAvailForScavengeTime));
    5105          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipScavengeServers));
    5106          15 :                 if (_ptr_aipScavengeServers) {
    5107           0 :                         NDR_PULL_ALLOC(ndr, r->aipScavengeServers);
    5108             :                 } else {
    5109          15 :                         r->aipScavengeServers = NULL;
    5110             :                 }
    5111          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwarderTimeout));
    5112          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fForwarderSlave));
    5113          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipLocalMasters));
    5114          15 :                 if (_ptr_aipLocalMasters) {
    5115           0 :                         NDR_PULL_ALLOC(ndr, r->aipLocalMasters);
    5116             :                 } else {
    5117          15 :                         r->aipLocalMasters = NULL;
    5118             :                 }
    5119          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDpFlags));
    5120          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    5121          15 :                 if (_ptr_pszDpFqdn) {
    5122          15 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    5123             :                 } else {
    5124           0 :                         r->pszDpFqdn = NULL;
    5125             :                 }
    5126          15 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pwszZoneDn));
    5127          15 :                 if (_ptr_pwszZoneDn) {
    5128          15 :                         NDR_PULL_ALLOC(ndr, r->pwszZoneDn);
    5129             :                 } else {
    5130           0 :                         r->pwszZoneDn = NULL;
    5131             :                 }
    5132          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastSuccessfulSoaCheck));
    5133          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastSuccessfulXfr));
    5134          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fQueuedForBackgroundLoad));
    5135          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fBackgroundLoadInProgress));
    5136          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fReadOnlyZone));
    5137          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastXfrAttempt));
    5138          15 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwLastXfrResult));
    5139          15 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    5140             :         }
    5141          15 :         if (ndr_flags & NDR_BUFFERS) {
    5142          15 :                 if (r->pszZoneName) {
    5143          15 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5144          15 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    5145          15 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    5146          15 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    5147          15 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    5148          15 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    5149          15 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    5150           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    5151             :                         }
    5152          15 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint8_t)));
    5153          15 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint8_t), CH_UTF8));
    5154          15 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    5155             :                 }
    5156          15 :                 if (r->pszDataFile) {
    5157           0 :                         _mem_save_pszDataFile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5158           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDataFile, 0);
    5159           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDataFile));
    5160           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDataFile));
    5161           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDataFile, &size_pszDataFile_1));
    5162           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDataFile, &length_pszDataFile_1));
    5163           0 :                         if (length_pszDataFile_1 > size_pszDataFile_1) {
    5164           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDataFile_1, length_pszDataFile_1);
    5165             :                         }
    5166           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDataFile_1, sizeof(uint8_t)));
    5167           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDataFile, length_pszDataFile_1, sizeof(uint8_t), CH_UTF8));
    5168           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDataFile_0, 0);
    5169             :                 }
    5170          15 :                 if (r->aipMasters) {
    5171           0 :                         _mem_save_aipMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5172           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipMasters, 0);
    5173           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    5174           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipMasters_0, 0);
    5175             :                 }
    5176          15 :                 if (r->aipSecondaries) {
    5177           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5178           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    5179           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5180           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    5181             :                 }
    5182          15 :                 if (r->aipNotify) {
    5183           0 :                         _mem_save_aipNotify_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5184           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipNotify, 0);
    5185           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5186           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipNotify_0, 0);
    5187             :                 }
    5188          15 :                 if (r->aipScavengeServers) {
    5189           0 :                         _mem_save_aipScavengeServers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5190           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipScavengeServers, 0);
    5191           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipScavengeServers));
    5192           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipScavengeServers_0, 0);
    5193             :                 }
    5194          15 :                 if (r->aipLocalMasters) {
    5195           0 :                         _mem_save_aipLocalMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5196           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipLocalMasters, 0);
    5197           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipLocalMasters));
    5198           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipLocalMasters_0, 0);
    5199             :                 }
    5200          15 :                 if (r->pszDpFqdn) {
    5201          15 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5202          15 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    5203          15 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    5204          15 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    5205          15 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    5206          15 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    5207          15 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    5208           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    5209             :                         }
    5210          15 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    5211          15 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    5212          15 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    5213             :                 }
    5214          15 :                 if (r->pwszZoneDn) {
    5215          15 :                         _mem_save_pwszZoneDn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5216          15 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pwszZoneDn, 0);
    5217          15 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pwszZoneDn));
    5218          15 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pwszZoneDn));
    5219          15 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pwszZoneDn, &size_pwszZoneDn_1));
    5220          15 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pwszZoneDn, &length_pwszZoneDn_1));
    5221          15 :                         if (length_pwszZoneDn_1 > size_pwszZoneDn_1) {
    5222           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pwszZoneDn_1, length_pwszZoneDn_1);
    5223             :                         }
    5224          15 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pwszZoneDn_1, sizeof(uint16_t)));
    5225          15 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pwszZoneDn, length_pwszZoneDn_1, sizeof(uint16_t), CH_UTF16));
    5226          15 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwszZoneDn_0, 0);
    5227             :                 }
    5228             :         }
    5229          15 :         return NDR_ERR_SUCCESS;
    5230             : }
    5231             : 
    5232           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_INFO_LONGHORN(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_INFO_LONGHORN *r)
    5233             : {
    5234           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_INFO_LONGHORN");
    5235           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    5236           0 :         ndr->depth++;
    5237           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    5238           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    5239           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    5240           0 :         ndr->depth++;
    5241           0 :         if (r->pszZoneName) {
    5242           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    5243             :         }
    5244           0 :         ndr->depth--;
    5245           0 :         ndr_print_uint32(ndr, "dwZoneType", r->dwZoneType);
    5246           0 :         ndr_print_uint32(ndr, "fReverse", r->fReverse);
    5247           0 :         ndr_print_dns_zone_update(ndr, "fAllowUpdate", r->fAllowUpdate);
    5248           0 :         ndr_print_uint32(ndr, "fPaused", r->fPaused);
    5249           0 :         ndr_print_uint32(ndr, "fShutdown", r->fShutdown);
    5250           0 :         ndr_print_uint32(ndr, "fAutoCreated", r->fAutoCreated);
    5251           0 :         ndr_print_uint32(ndr, "fUseDatabase", r->fUseDatabase);
    5252           0 :         ndr_print_ptr(ndr, "pszDataFile", r->pszDataFile);
    5253           0 :         ndr->depth++;
    5254           0 :         if (r->pszDataFile) {
    5255           0 :                 ndr_print_string(ndr, "pszDataFile", r->pszDataFile);
    5256             :         }
    5257           0 :         ndr->depth--;
    5258           0 :         ndr_print_ptr(ndr, "aipMasters", r->aipMasters);
    5259           0 :         ndr->depth++;
    5260           0 :         if (r->aipMasters) {
    5261           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipMasters", r->aipMasters);
    5262             :         }
    5263           0 :         ndr->depth--;
    5264           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    5265           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    5266           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    5267           0 :         ndr->depth++;
    5268           0 :         if (r->aipSecondaries) {
    5269           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    5270             :         }
    5271           0 :         ndr->depth--;
    5272           0 :         ndr_print_ptr(ndr, "aipNotify", r->aipNotify);
    5273           0 :         ndr->depth++;
    5274           0 :         if (r->aipNotify) {
    5275           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipNotify", r->aipNotify);
    5276             :         }
    5277           0 :         ndr->depth--;
    5278           0 :         ndr_print_uint32(ndr, "fUseWins", r->fUseWins);
    5279           0 :         ndr_print_uint32(ndr, "fUseNbstat", r->fUseNbstat);
    5280           0 :         ndr_print_uint32(ndr, "fAging", r->fAging);
    5281           0 :         ndr_print_uint32(ndr, "dwNoRefreshInterval", r->dwNoRefreshInterval);
    5282           0 :         ndr_print_uint32(ndr, "dwRefreshInterval", r->dwRefreshInterval);
    5283           0 :         ndr_print_uint32(ndr, "dwAvailForScavengeTime", r->dwAvailForScavengeTime);
    5284           0 :         ndr_print_ptr(ndr, "aipScavengeServers", r->aipScavengeServers);
    5285           0 :         ndr->depth++;
    5286           0 :         if (r->aipScavengeServers) {
    5287           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipScavengeServers", r->aipScavengeServers);
    5288             :         }
    5289           0 :         ndr->depth--;
    5290           0 :         ndr_print_uint32(ndr, "dwForwarderTimeout", r->dwForwarderTimeout);
    5291           0 :         ndr_print_uint32(ndr, "fForwarderSlave", r->fForwarderSlave);
    5292           0 :         ndr_print_ptr(ndr, "aipLocalMasters", r->aipLocalMasters);
    5293           0 :         ndr->depth++;
    5294           0 :         if (r->aipLocalMasters) {
    5295           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipLocalMasters", r->aipLocalMasters);
    5296             :         }
    5297           0 :         ndr->depth--;
    5298           0 :         ndr_print_uint32(ndr, "dwDpFlags", r->dwDpFlags);
    5299           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    5300           0 :         ndr->depth++;
    5301           0 :         if (r->pszDpFqdn) {
    5302           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    5303             :         }
    5304           0 :         ndr->depth--;
    5305           0 :         ndr_print_ptr(ndr, "pwszZoneDn", r->pwszZoneDn);
    5306           0 :         ndr->depth++;
    5307           0 :         if (r->pwszZoneDn) {
    5308           0 :                 ndr_print_string(ndr, "pwszZoneDn", r->pwszZoneDn);
    5309             :         }
    5310           0 :         ndr->depth--;
    5311           0 :         ndr_print_uint32(ndr, "dwLastSuccessfulSoaCheck", r->dwLastSuccessfulSoaCheck);
    5312           0 :         ndr_print_uint32(ndr, "dwLastSuccessfulXfr", r->dwLastSuccessfulXfr);
    5313           0 :         ndr_print_uint32(ndr, "fQueuedForBackgroundLoad", r->fQueuedForBackgroundLoad);
    5314           0 :         ndr_print_uint32(ndr, "fBackgroundLoadInProgress", r->fBackgroundLoadInProgress);
    5315           0 :         ndr_print_uint32(ndr, "fReadOnlyZone", r->fReadOnlyZone);
    5316           0 :         ndr_print_uint32(ndr, "dwLastXfrAttempt", r->dwLastXfrAttempt);
    5317           0 :         ndr_print_uint32(ndr, "dwLastXfrResult", r->dwLastXfrResult);
    5318           0 :         ndr->depth--;
    5319             : }
    5320             : 
    5321           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_SECONDARIES_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_SECONDARIES_W2K *r)
    5322             : {
    5323           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5324           0 :         if (ndr_flags & NDR_SCALARS) {
    5325           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    5326           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    5327           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    5328           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    5329           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipNotify));
    5330           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5331             :         }
    5332           0 :         if (ndr_flags & NDR_BUFFERS) {
    5333           0 :                 if (r->aipSecondaries) {
    5334           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5335             :                 }
    5336           0 :                 if (r->aipNotify) {
    5337           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5338             :                 }
    5339             :         }
    5340           0 :         return NDR_ERR_SUCCESS;
    5341             : }
    5342             : 
    5343           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_SECONDARIES_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_SECONDARIES_W2K *r)
    5344             : {
    5345             :         uint32_t _ptr_aipSecondaries;
    5346           0 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    5347             :         uint32_t _ptr_aipNotify;
    5348           0 :         TALLOC_CTX *_mem_save_aipNotify_0 = NULL;
    5349           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5350           0 :         if (ndr_flags & NDR_SCALARS) {
    5351           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5352           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    5353           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    5354           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    5355           0 :                 if (_ptr_aipSecondaries) {
    5356           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    5357             :                 } else {
    5358           0 :                         r->aipSecondaries = NULL;
    5359             :                 }
    5360           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipNotify));
    5361           0 :                 if (_ptr_aipNotify) {
    5362           0 :                         NDR_PULL_ALLOC(ndr, r->aipNotify);
    5363             :                 } else {
    5364           0 :                         r->aipNotify = NULL;
    5365             :                 }
    5366           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    5367             :         }
    5368           0 :         if (ndr_flags & NDR_BUFFERS) {
    5369           0 :                 if (r->aipSecondaries) {
    5370           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5371           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    5372           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5373           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    5374             :                 }
    5375           0 :                 if (r->aipNotify) {
    5376           0 :                         _mem_save_aipNotify_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5377           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipNotify, 0);
    5378           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5379           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipNotify_0, 0);
    5380             :                 }
    5381             :         }
    5382           0 :         return NDR_ERR_SUCCESS;
    5383             : }
    5384             : 
    5385           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_SECONDARIES_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_SECONDARIES_W2K *r)
    5386             : {
    5387           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_SECONDARIES_W2K");
    5388           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    5389           0 :         ndr->depth++;
    5390           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    5391           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    5392           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    5393           0 :         ndr->depth++;
    5394           0 :         if (r->aipSecondaries) {
    5395           0 :                 ndr_print_IP4_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    5396             :         }
    5397           0 :         ndr->depth--;
    5398           0 :         ndr_print_ptr(ndr, "aipNotify", r->aipNotify);
    5399           0 :         ndr->depth++;
    5400           0 :         if (r->aipNotify) {
    5401           0 :                 ndr_print_IP4_ARRAY(ndr, "aipNotify", r->aipNotify);
    5402             :         }
    5403           0 :         ndr->depth--;
    5404           0 :         ndr->depth--;
    5405             : }
    5406             : 
    5407           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_SECONDARIES_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_SECONDARIES_DOTNET *r)
    5408             : {
    5409           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5410           0 :         if (ndr_flags & NDR_SCALARS) {
    5411           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    5412           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    5413           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    5414           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    5415           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    5416           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    5417           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipNotify));
    5418           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5419             :         }
    5420           0 :         if (ndr_flags & NDR_BUFFERS) {
    5421           0 :                 if (r->aipSecondaries) {
    5422           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5423             :                 }
    5424           0 :                 if (r->aipNotify) {
    5425           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5426             :                 }
    5427             :         }
    5428           0 :         return NDR_ERR_SUCCESS;
    5429             : }
    5430             : 
    5431           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_SECONDARIES_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_SECONDARIES_DOTNET *r)
    5432             : {
    5433             :         uint32_t _ptr_aipSecondaries;
    5434           0 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    5435             :         uint32_t _ptr_aipNotify;
    5436           0 :         TALLOC_CTX *_mem_save_aipNotify_0 = NULL;
    5437           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5438           0 :         if (ndr_flags & NDR_SCALARS) {
    5439           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5440           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    5441           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    5442           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    5443           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    5444           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    5445           0 :                 if (_ptr_aipSecondaries) {
    5446           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    5447             :                 } else {
    5448           0 :                         r->aipSecondaries = NULL;
    5449             :                 }
    5450           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipNotify));
    5451           0 :                 if (_ptr_aipNotify) {
    5452           0 :                         NDR_PULL_ALLOC(ndr, r->aipNotify);
    5453             :                 } else {
    5454           0 :                         r->aipNotify = NULL;
    5455             :                 }
    5456           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    5457             :         }
    5458           0 :         if (ndr_flags & NDR_BUFFERS) {
    5459           0 :                 if (r->aipSecondaries) {
    5460           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5461           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    5462           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5463           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    5464             :                 }
    5465           0 :                 if (r->aipNotify) {
    5466           0 :                         _mem_save_aipNotify_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5467           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipNotify, 0);
    5468           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5469           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipNotify_0, 0);
    5470             :                 }
    5471             :         }
    5472           0 :         return NDR_ERR_SUCCESS;
    5473             : }
    5474             : 
    5475           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_SECONDARIES_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_SECONDARIES_DOTNET *r)
    5476             : {
    5477           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_SECONDARIES_DOTNET");
    5478           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    5479           0 :         ndr->depth++;
    5480           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    5481           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    5482           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    5483           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    5484           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    5485           0 :         ndr->depth++;
    5486           0 :         if (r->aipSecondaries) {
    5487           0 :                 ndr_print_IP4_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    5488             :         }
    5489           0 :         ndr->depth--;
    5490           0 :         ndr_print_ptr(ndr, "aipNotify", r->aipNotify);
    5491           0 :         ndr->depth++;
    5492           0 :         if (r->aipNotify) {
    5493           0 :                 ndr_print_IP4_ARRAY(ndr, "aipNotify", r->aipNotify);
    5494             :         }
    5495           0 :         ndr->depth--;
    5496           0 :         ndr->depth--;
    5497             : }
    5498             : 
    5499           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_SECONDARIES_LONGHORN(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_SECONDARIES_LONGHORN *r)
    5500             : {
    5501           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5502           0 :         if (ndr_flags & NDR_SCALARS) {
    5503           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    5504           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    5505           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    5506           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    5507           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    5508           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    5509           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipNotify));
    5510           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5511             :         }
    5512           0 :         if (ndr_flags & NDR_BUFFERS) {
    5513           0 :                 if (r->aipSecondaries) {
    5514           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5515             :                 }
    5516           0 :                 if (r->aipNotify) {
    5517           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5518             :                 }
    5519             :         }
    5520           0 :         return NDR_ERR_SUCCESS;
    5521             : }
    5522             : 
    5523           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_SECONDARIES_LONGHORN(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_SECONDARIES_LONGHORN *r)
    5524             : {
    5525             :         uint32_t _ptr_aipSecondaries;
    5526           0 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    5527             :         uint32_t _ptr_aipNotify;
    5528           0 :         TALLOC_CTX *_mem_save_aipNotify_0 = NULL;
    5529           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5530           0 :         if (ndr_flags & NDR_SCALARS) {
    5531           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5532           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    5533           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    5534           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    5535           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    5536           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    5537           0 :                 if (_ptr_aipSecondaries) {
    5538           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    5539             :                 } else {
    5540           0 :                         r->aipSecondaries = NULL;
    5541             :                 }
    5542           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipNotify));
    5543           0 :                 if (_ptr_aipNotify) {
    5544           0 :                         NDR_PULL_ALLOC(ndr, r->aipNotify);
    5545             :                 } else {
    5546           0 :                         r->aipNotify = NULL;
    5547             :                 }
    5548           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    5549             :         }
    5550           0 :         if (ndr_flags & NDR_BUFFERS) {
    5551           0 :                 if (r->aipSecondaries) {
    5552           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5553           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    5554           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5555           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    5556             :                 }
    5557           0 :                 if (r->aipNotify) {
    5558           0 :                         _mem_save_aipNotify_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5559           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipNotify, 0);
    5560           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipNotify));
    5561           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipNotify_0, 0);
    5562             :                 }
    5563             :         }
    5564           0 :         return NDR_ERR_SUCCESS;
    5565             : }
    5566             : 
    5567           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_SECONDARIES_LONGHORN(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_SECONDARIES_LONGHORN *r)
    5568             : {
    5569           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_SECONDARIES_LONGHORN");
    5570           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    5571           0 :         ndr->depth++;
    5572           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    5573           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    5574           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    5575           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    5576           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    5577           0 :         ndr->depth++;
    5578           0 :         if (r->aipSecondaries) {
    5579           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    5580             :         }
    5581           0 :         ndr->depth--;
    5582           0 :         ndr_print_ptr(ndr, "aipNotify", r->aipNotify);
    5583           0 :         ndr->depth++;
    5584           0 :         if (r->aipNotify) {
    5585           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipNotify", r->aipNotify);
    5586             :         }
    5587           0 :         ndr->depth--;
    5588           0 :         ndr->depth--;
    5589             : }
    5590             : 
    5591           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_DATABASE_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_DATABASE_W2K *r)
    5592             : {
    5593           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5594           0 :         if (ndr_flags & NDR_SCALARS) {
    5595           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    5596           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fDsIntegrated));
    5597           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszFileName));
    5598           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5599             :         }
    5600           0 :         if (ndr_flags & NDR_BUFFERS) {
    5601           0 :                 if (r->pszFileName) {
    5602           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszFileName, CH_UTF8)));
    5603           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5604           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszFileName, CH_UTF8)));
    5605           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszFileName, ndr_charset_length(r->pszFileName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5606             :                 }
    5607             :         }
    5608           0 :         return NDR_ERR_SUCCESS;
    5609             : }
    5610             : 
    5611           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_DATABASE_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_DATABASE_W2K *r)
    5612             : {
    5613             :         uint32_t _ptr_pszFileName;
    5614           0 :         uint32_t size_pszFileName_1 = 0;
    5615           0 :         uint32_t length_pszFileName_1 = 0;
    5616           0 :         TALLOC_CTX *_mem_save_pszFileName_0 = NULL;
    5617           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5618           0 :         if (ndr_flags & NDR_SCALARS) {
    5619           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5620           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fDsIntegrated));
    5621           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszFileName));
    5622           0 :                 if (_ptr_pszFileName) {
    5623           0 :                         NDR_PULL_ALLOC(ndr, r->pszFileName);
    5624             :                 } else {
    5625           0 :                         r->pszFileName = NULL;
    5626             :                 }
    5627           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    5628             :         }
    5629           0 :         if (ndr_flags & NDR_BUFFERS) {
    5630           0 :                 if (r->pszFileName) {
    5631           0 :                         _mem_save_pszFileName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5632           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszFileName, 0);
    5633           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszFileName));
    5634           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszFileName));
    5635           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszFileName, &size_pszFileName_1));
    5636           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszFileName, &length_pszFileName_1));
    5637           0 :                         if (length_pszFileName_1 > size_pszFileName_1) {
    5638           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszFileName_1, length_pszFileName_1);
    5639             :                         }
    5640           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszFileName_1, sizeof(uint8_t)));
    5641           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszFileName, length_pszFileName_1, sizeof(uint8_t), CH_UTF8));
    5642           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszFileName_0, 0);
    5643             :                 }
    5644             :         }
    5645           0 :         return NDR_ERR_SUCCESS;
    5646             : }
    5647             : 
    5648           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_DATABASE_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_DATABASE_W2K *r)
    5649             : {
    5650           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_DATABASE_W2K");
    5651           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    5652           0 :         ndr->depth++;
    5653           0 :         ndr_print_uint32(ndr, "fDsIntegrated", r->fDsIntegrated);
    5654           0 :         ndr_print_ptr(ndr, "pszFileName", r->pszFileName);
    5655           0 :         ndr->depth++;
    5656           0 :         if (r->pszFileName) {
    5657           0 :                 ndr_print_string(ndr, "pszFileName", r->pszFileName);
    5658             :         }
    5659           0 :         ndr->depth--;
    5660           0 :         ndr->depth--;
    5661             : }
    5662             : 
    5663           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_DATABASE_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_DATABASE_DOTNET *r)
    5664             : {
    5665           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5666           0 :         if (ndr_flags & NDR_SCALARS) {
    5667           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    5668           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    5669           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    5670           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fDsIntegrated));
    5671           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszFileName));
    5672           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5673             :         }
    5674           0 :         if (ndr_flags & NDR_BUFFERS) {
    5675           0 :                 if (r->pszFileName) {
    5676           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszFileName, CH_UTF8)));
    5677           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5678           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszFileName, CH_UTF8)));
    5679           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszFileName, ndr_charset_length(r->pszFileName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5680             :                 }
    5681             :         }
    5682           0 :         return NDR_ERR_SUCCESS;
    5683             : }
    5684             : 
    5685           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_DATABASE_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_DATABASE_DOTNET *r)
    5686             : {
    5687             :         uint32_t _ptr_pszFileName;
    5688           0 :         uint32_t size_pszFileName_1 = 0;
    5689           0 :         uint32_t length_pszFileName_1 = 0;
    5690           0 :         TALLOC_CTX *_mem_save_pszFileName_0 = NULL;
    5691           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5692           0 :         if (ndr_flags & NDR_SCALARS) {
    5693           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5694           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    5695           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    5696           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fDsIntegrated));
    5697           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszFileName));
    5698           0 :                 if (_ptr_pszFileName) {
    5699           0 :                         NDR_PULL_ALLOC(ndr, r->pszFileName);
    5700             :                 } else {
    5701           0 :                         r->pszFileName = NULL;
    5702             :                 }
    5703           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    5704             :         }
    5705           0 :         if (ndr_flags & NDR_BUFFERS) {
    5706           0 :                 if (r->pszFileName) {
    5707           0 :                         _mem_save_pszFileName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    5708           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszFileName, 0);
    5709           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszFileName));
    5710           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszFileName));
    5711           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszFileName, &size_pszFileName_1));
    5712           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszFileName, &length_pszFileName_1));
    5713           0 :                         if (length_pszFileName_1 > size_pszFileName_1) {
    5714           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszFileName_1, length_pszFileName_1);
    5715             :                         }
    5716           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszFileName_1, sizeof(uint8_t)));
    5717           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszFileName, length_pszFileName_1, sizeof(uint8_t), CH_UTF8));
    5718           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszFileName_0, 0);
    5719             :                 }
    5720             :         }
    5721           0 :         return NDR_ERR_SUCCESS;
    5722             : }
    5723             : 
    5724           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_DATABASE_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_DATABASE_DOTNET *r)
    5725             : {
    5726           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_DATABASE_DOTNET");
    5727           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    5728           0 :         ndr->depth++;
    5729           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    5730           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    5731           0 :         ndr_print_uint32(ndr, "fDsIntegrated", r->fDsIntegrated);
    5732           0 :         ndr_print_ptr(ndr, "pszFileName", r->pszFileName);
    5733           0 :         ndr->depth++;
    5734           0 :         if (r->pszFileName) {
    5735           0 :                 ndr_print_string(ndr, "pszFileName", r->pszFileName);
    5736             :         }
    5737           0 :         ndr->depth--;
    5738           0 :         ndr->depth--;
    5739             : }
    5740             : 
    5741           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_CREATE_INFO_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_CREATE_INFO_W2K *r)
    5742             : {
    5743           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    5744           0 :         if (ndr_flags & NDR_SCALARS) {
    5745           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    5746           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    5747           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneType));
    5748           0 :                 NDR_CHECK(ndr_push_dns_zone_update(ndr, NDR_SCALARS, r->fAllowUpdate));
    5749           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAging));
    5750           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwFlags));
    5751           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDataFile));
    5752           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fDsIntegrated));
    5753           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fLoadExisting));
    5754           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszAdmin));
    5755           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipMasters));
    5756           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    5757           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    5758           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    5759           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved1));
    5760           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved2));
    5761           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved3));
    5762           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved4));
    5763           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved5));
    5764           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved6));
    5765           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved7));
    5766           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pvReserved8));
    5767           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved1));
    5768           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved2));
    5769           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved3));
    5770           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved4));
    5771           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved5));
    5772           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved6));
    5773           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved7));
    5774           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved8));
    5775           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    5776             :         }
    5777           0 :         if (ndr_flags & NDR_BUFFERS) {
    5778           0 :                 if (r->pszZoneName) {
    5779           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    5780           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5781           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    5782           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5783             :                 }
    5784           0 :                 if (r->pszDataFile) {
    5785           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    5786           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5787           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    5788           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDataFile, ndr_charset_length(r->pszDataFile, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5789             :                 }
    5790           0 :                 if (r->pszAdmin) {
    5791           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszAdmin, CH_UTF8)));
    5792           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5793           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszAdmin, CH_UTF8)));
    5794           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszAdmin, ndr_charset_length(r->pszAdmin, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5795             :                 }
    5796           0 :                 if (r->aipMasters) {
    5797           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    5798             :                 }
    5799           0 :                 if (r->aipSecondaries) {
    5800           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    5801             :                 }
    5802           0 :                 if (r->pvReserved1) {
    5803           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved1, CH_UTF8)));
    5804           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5805           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved1, CH_UTF8)));
    5806           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved1, ndr_charset_length(r->pvReserved1, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5807             :                 }
    5808           0 :                 if (r->pvReserved2) {
    5809           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved2, CH_UTF8)));
    5810           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5811           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved2, CH_UTF8)));
    5812           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved2, ndr_charset_length(r->pvReserved2, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5813             :                 }
    5814           0 :                 if (r->pvReserved3) {
    5815           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved3, CH_UTF8)));
    5816           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5817           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved3, CH_UTF8)));
    5818           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved3, ndr_charset_length(r->pvReserved3, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5819             :                 }
    5820           0 :                 if (r->pvReserved4) {
    5821           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved4, CH_UTF8)));
    5822           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5823           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved4, CH_UTF8)));
    5824           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved4, ndr_charset_length(r->pvReserved4, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5825             :                 }
    5826           0 :                 if (r->pvReserved5) {
    5827           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved5, CH_UTF8)));
    5828           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5829           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved5, CH_UTF8)));
    5830           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved5, ndr_charset_length(r->pvReserved5, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5831             :                 }
    5832           0 :                 if (r->pvReserved6) {
    5833           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved6, CH_UTF8)));
    5834           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5835           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved6, CH_UTF8)));
    5836           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved6, ndr_charset_length(r->pvReserved6, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5837             :                 }
    5838           0 :                 if (r->pvReserved7) {
    5839           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved7, CH_UTF8)));
    5840           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5841           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved7, CH_UTF8)));
    5842           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved7, ndr_charset_length(r->pvReserved7, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5843             :                 }
    5844           0 :                 if (r->pvReserved8) {
    5845           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved8, CH_UTF8)));
    5846           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    5847           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pvReserved8, CH_UTF8)));
    5848           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pvReserved8, ndr_charset_length(r->pvReserved8, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    5849             :                 }
    5850             :         }
    5851           0 :         return NDR_ERR_SUCCESS;
    5852             : }
    5853             : 
    5854           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_CREATE_INFO_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_CREATE_INFO_W2K *r)
    5855             : {
    5856             :         uint32_t _ptr_pszZoneName;
    5857           0 :         uint32_t size_pszZoneName_1 = 0;
    5858           0 :         uint32_t length_pszZoneName_1 = 0;
    5859           0 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    5860             :         uint32_t _ptr_pszDataFile;
    5861           0 :         uint32_t size_pszDataFile_1 = 0;
    5862           0 :         uint32_t length_pszDataFile_1 = 0;
    5863           0 :         TALLOC_CTX *_mem_save_pszDataFile_0 = NULL;
    5864             :         uint32_t _ptr_pszAdmin;
    5865           0 :         uint32_t size_pszAdmin_1 = 0;
    5866           0 :         uint32_t length_pszAdmin_1 = 0;
    5867           0 :         TALLOC_CTX *_mem_save_pszAdmin_0 = NULL;
    5868             :         uint32_t _ptr_aipMasters;
    5869           0 :         TALLOC_CTX *_mem_save_aipMasters_0 = NULL;
    5870             :         uint32_t _ptr_aipSecondaries;
    5871           0 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    5872             :         uint32_t _ptr_pvReserved1;
    5873           0 :         uint32_t size_pvReserved1_1 = 0;
    5874           0 :         uint32_t length_pvReserved1_1 = 0;
    5875           0 :         TALLOC_CTX *_mem_save_pvReserved1_0 = NULL;
    5876             :         uint32_t _ptr_pvReserved2;
    5877           0 :         uint32_t size_pvReserved2_1 = 0;
    5878           0 :         uint32_t length_pvReserved2_1 = 0;
    5879           0 :         TALLOC_CTX *_mem_save_pvReserved2_0 = NULL;
    5880             :         uint32_t _ptr_pvReserved3;
    5881           0 :         uint32_t size_pvReserved3_1 = 0;
    5882           0 :         uint32_t length_pvReserved3_1 = 0;
    5883           0 :         TALLOC_CTX *_mem_save_pvReserved3_0 = NULL;
    5884             :         uint32_t _ptr_pvReserved4;
    5885           0 :         uint32_t size_pvReserved4_1 = 0;
    5886           0 :         uint32_t length_pvReserved4_1 = 0;
    5887           0 :         TALLOC_CTX *_mem_save_pvReserved4_0 = NULL;
    5888             :         uint32_t _ptr_pvReserved5;
    5889           0 :         uint32_t size_pvReserved5_1 = 0;
    5890           0 :         uint32_t length_pvReserved5_1 = 0;
    5891           0 :         TALLOC_CTX *_mem_save_pvReserved5_0 = NULL;
    5892             :         uint32_t _ptr_pvReserved6;
    5893           0 :         uint32_t size_pvReserved6_1 = 0;
    5894           0 :         uint32_t length_pvReserved6_1 = 0;
    5895           0 :         TALLOC_CTX *_mem_save_pvReserved6_0 = NULL;
    5896             :         uint32_t _ptr_pvReserved7;
    5897           0 :         uint32_t size_pvReserved7_1 = 0;
    5898           0 :         uint32_t length_pvReserved7_1 = 0;
    5899           0 :         TALLOC_CTX *_mem_save_pvReserved7_0 = NULL;
    5900             :         uint32_t _ptr_pvReserved8;
    5901           0 :         uint32_t size_pvReserved8_1 = 0;
    5902           0 :         uint32_t length_pvReserved8_1 = 0;
    5903           0 :         TALLOC_CTX *_mem_save_pvReserved8_0 = NULL;
    5904           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    5905           0 :         if (ndr_flags & NDR_SCALARS) {
    5906           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    5907           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    5908           0 :                 if (_ptr_pszZoneName) {
    5909           0 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    5910             :                 } else {
    5911           0 :                         r->pszZoneName = NULL;
    5912             :                 }
    5913           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneType));
    5914           0 :                 NDR_CHECK(ndr_pull_dns_zone_update(ndr, NDR_SCALARS, &r->fAllowUpdate));
    5915           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAging));
    5916           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwFlags));
    5917           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDataFile));
    5918           0 :                 if (_ptr_pszDataFile) {
    5919           0 :                         NDR_PULL_ALLOC(ndr, r->pszDataFile);
    5920             :                 } else {
    5921           0 :                         r->pszDataFile = NULL;
    5922             :                 }
    5923           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fDsIntegrated));
    5924           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fLoadExisting));
    5925           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszAdmin));
    5926           0 :                 if (_ptr_pszAdmin) {
    5927           0 :                         NDR_PULL_ALLOC(ndr, r->pszAdmin);
    5928             :                 } else {
    5929           0 :                         r->pszAdmin = NULL;
    5930             :                 }
    5931           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipMasters));
    5932           0 :                 if (_ptr_aipMasters) {
    5933           0 :                         NDR_PULL_ALLOC(ndr, r->aipMasters);
    5934             :                 } else {
    5935           0 :                         r->aipMasters = NULL;
    5936             :                 }
    5937           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    5938           0 :                 if (_ptr_aipSecondaries) {
    5939           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    5940             :                 } else {
    5941           0 :                         r->aipSecondaries = NULL;
    5942             :                 }
    5943           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    5944           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    5945           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved1));
    5946           0 :                 if (_ptr_pvReserved1) {
    5947           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved1);
    5948             :                 } else {
    5949           0 :                         r->pvReserved1 = NULL;
    5950             :                 }
    5951           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved2));
    5952           0 :                 if (_ptr_pvReserved2) {
    5953           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved2);
    5954             :                 } else {
    5955           0 :                         r->pvReserved2 = NULL;
    5956             :                 }
    5957           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved3));
    5958           0 :                 if (_ptr_pvReserved3) {
    5959           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved3);
    5960             :                 } else {
    5961           0 :                         r->pvReserved3 = NULL;
    5962             :                 }
    5963           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved4));
    5964           0 :                 if (_ptr_pvReserved4) {
    5965           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved4);
    5966             :                 } else {
    5967           0 :                         r->pvReserved4 = NULL;
    5968             :                 }
    5969           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved5));
    5970           0 :                 if (_ptr_pvReserved5) {
    5971           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved5);
    5972             :                 } else {
    5973           0 :                         r->pvReserved5 = NULL;
    5974             :                 }
    5975           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved6));
    5976           0 :                 if (_ptr_pvReserved6) {
    5977           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved6);
    5978             :                 } else {
    5979           0 :                         r->pvReserved6 = NULL;
    5980             :                 }
    5981           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved7));
    5982           0 :                 if (_ptr_pvReserved7) {
    5983           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved7);
    5984             :                 } else {
    5985           0 :                         r->pvReserved7 = NULL;
    5986             :                 }
    5987           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pvReserved8));
    5988           0 :                 if (_ptr_pvReserved8) {
    5989           0 :                         NDR_PULL_ALLOC(ndr, r->pvReserved8);
    5990             :                 } else {
    5991           0 :                         r->pvReserved8 = NULL;
    5992             :                 }
    5993           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved1));
    5994           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved2));
    5995           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved3));
    5996           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved4));
    5997           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved5));
    5998           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved6));
    5999           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved7));
    6000           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved8));
    6001           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6002             :         }
    6003           0 :         if (ndr_flags & NDR_BUFFERS) {
    6004           0 :                 if (r->pszZoneName) {
    6005           0 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6006           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    6007           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    6008           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    6009           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    6010           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    6011           0 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    6012           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    6013             :                         }
    6014           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint8_t)));
    6015           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint8_t), CH_UTF8));
    6016           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    6017             :                 }
    6018           0 :                 if (r->pszDataFile) {
    6019           0 :                         _mem_save_pszDataFile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6020           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDataFile, 0);
    6021           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDataFile));
    6022           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDataFile));
    6023           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDataFile, &size_pszDataFile_1));
    6024           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDataFile, &length_pszDataFile_1));
    6025           0 :                         if (length_pszDataFile_1 > size_pszDataFile_1) {
    6026           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDataFile_1, length_pszDataFile_1);
    6027             :                         }
    6028           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDataFile_1, sizeof(uint8_t)));
    6029           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDataFile, length_pszDataFile_1, sizeof(uint8_t), CH_UTF8));
    6030           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDataFile_0, 0);
    6031             :                 }
    6032           0 :                 if (r->pszAdmin) {
    6033           0 :                         _mem_save_pszAdmin_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6034           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszAdmin, 0);
    6035           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszAdmin));
    6036           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszAdmin));
    6037           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszAdmin, &size_pszAdmin_1));
    6038           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszAdmin, &length_pszAdmin_1));
    6039           0 :                         if (length_pszAdmin_1 > size_pszAdmin_1) {
    6040           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszAdmin_1, length_pszAdmin_1);
    6041             :                         }
    6042           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszAdmin_1, sizeof(uint8_t)));
    6043           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszAdmin, length_pszAdmin_1, sizeof(uint8_t), CH_UTF8));
    6044           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszAdmin_0, 0);
    6045             :                 }
    6046           0 :                 if (r->aipMasters) {
    6047           0 :                         _mem_save_aipMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6048           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipMasters, 0);
    6049           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    6050           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipMasters_0, 0);
    6051             :                 }
    6052           0 :                 if (r->aipSecondaries) {
    6053           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6054           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    6055           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    6056           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    6057             :                 }
    6058           0 :                 if (r->pvReserved1) {
    6059           0 :                         _mem_save_pvReserved1_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6060           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved1, 0);
    6061           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved1));
    6062           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved1));
    6063           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved1, &size_pvReserved1_1));
    6064           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved1, &length_pvReserved1_1));
    6065           0 :                         if (length_pvReserved1_1 > size_pvReserved1_1) {
    6066           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved1_1, length_pvReserved1_1);
    6067             :                         }
    6068           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved1_1, sizeof(uint8_t)));
    6069           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved1, length_pvReserved1_1, sizeof(uint8_t), CH_UTF8));
    6070           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved1_0, 0);
    6071             :                 }
    6072           0 :                 if (r->pvReserved2) {
    6073           0 :                         _mem_save_pvReserved2_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6074           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved2, 0);
    6075           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved2));
    6076           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved2));
    6077           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved2, &size_pvReserved2_1));
    6078           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved2, &length_pvReserved2_1));
    6079           0 :                         if (length_pvReserved2_1 > size_pvReserved2_1) {
    6080           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved2_1, length_pvReserved2_1);
    6081             :                         }
    6082           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved2_1, sizeof(uint8_t)));
    6083           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved2, length_pvReserved2_1, sizeof(uint8_t), CH_UTF8));
    6084           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved2_0, 0);
    6085             :                 }
    6086           0 :                 if (r->pvReserved3) {
    6087           0 :                         _mem_save_pvReserved3_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6088           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved3, 0);
    6089           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved3));
    6090           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved3));
    6091           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved3, &size_pvReserved3_1));
    6092           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved3, &length_pvReserved3_1));
    6093           0 :                         if (length_pvReserved3_1 > size_pvReserved3_1) {
    6094           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved3_1, length_pvReserved3_1);
    6095             :                         }
    6096           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved3_1, sizeof(uint8_t)));
    6097           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved3, length_pvReserved3_1, sizeof(uint8_t), CH_UTF8));
    6098           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved3_0, 0);
    6099             :                 }
    6100           0 :                 if (r->pvReserved4) {
    6101           0 :                         _mem_save_pvReserved4_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6102           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved4, 0);
    6103           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved4));
    6104           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved4));
    6105           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved4, &size_pvReserved4_1));
    6106           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved4, &length_pvReserved4_1));
    6107           0 :                         if (length_pvReserved4_1 > size_pvReserved4_1) {
    6108           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved4_1, length_pvReserved4_1);
    6109             :                         }
    6110           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved4_1, sizeof(uint8_t)));
    6111           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved4, length_pvReserved4_1, sizeof(uint8_t), CH_UTF8));
    6112           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved4_0, 0);
    6113             :                 }
    6114           0 :                 if (r->pvReserved5) {
    6115           0 :                         _mem_save_pvReserved5_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6116           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved5, 0);
    6117           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved5));
    6118           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved5));
    6119           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved5, &size_pvReserved5_1));
    6120           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved5, &length_pvReserved5_1));
    6121           0 :                         if (length_pvReserved5_1 > size_pvReserved5_1) {
    6122           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved5_1, length_pvReserved5_1);
    6123             :                         }
    6124           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved5_1, sizeof(uint8_t)));
    6125           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved5, length_pvReserved5_1, sizeof(uint8_t), CH_UTF8));
    6126           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved5_0, 0);
    6127             :                 }
    6128           0 :                 if (r->pvReserved6) {
    6129           0 :                         _mem_save_pvReserved6_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6130           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved6, 0);
    6131           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved6));
    6132           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved6));
    6133           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved6, &size_pvReserved6_1));
    6134           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved6, &length_pvReserved6_1));
    6135           0 :                         if (length_pvReserved6_1 > size_pvReserved6_1) {
    6136           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved6_1, length_pvReserved6_1);
    6137             :                         }
    6138           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved6_1, sizeof(uint8_t)));
    6139           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved6, length_pvReserved6_1, sizeof(uint8_t), CH_UTF8));
    6140           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved6_0, 0);
    6141             :                 }
    6142           0 :                 if (r->pvReserved7) {
    6143           0 :                         _mem_save_pvReserved7_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6144           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved7, 0);
    6145           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved7));
    6146           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved7));
    6147           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved7, &size_pvReserved7_1));
    6148           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved7, &length_pvReserved7_1));
    6149           0 :                         if (length_pvReserved7_1 > size_pvReserved7_1) {
    6150           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved7_1, length_pvReserved7_1);
    6151             :                         }
    6152           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved7_1, sizeof(uint8_t)));
    6153           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved7, length_pvReserved7_1, sizeof(uint8_t), CH_UTF8));
    6154           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved7_0, 0);
    6155             :                 }
    6156           0 :                 if (r->pvReserved8) {
    6157           0 :                         _mem_save_pvReserved8_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6158           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pvReserved8, 0);
    6159           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pvReserved8));
    6160           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pvReserved8));
    6161           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pvReserved8, &size_pvReserved8_1));
    6162           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pvReserved8, &length_pvReserved8_1));
    6163           0 :                         if (length_pvReserved8_1 > size_pvReserved8_1) {
    6164           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pvReserved8_1, length_pvReserved8_1);
    6165             :                         }
    6166           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pvReserved8_1, sizeof(uint8_t)));
    6167           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pvReserved8, length_pvReserved8_1, sizeof(uint8_t), CH_UTF8));
    6168           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pvReserved8_0, 0);
    6169             :                 }
    6170             :         }
    6171           0 :         return NDR_ERR_SUCCESS;
    6172             : }
    6173             : 
    6174           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_CREATE_INFO_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_CREATE_INFO_W2K *r)
    6175             : {
    6176           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_CREATE_INFO_W2K");
    6177           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    6178           0 :         ndr->depth++;
    6179           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    6180           0 :         ndr->depth++;
    6181           0 :         if (r->pszZoneName) {
    6182           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    6183             :         }
    6184           0 :         ndr->depth--;
    6185           0 :         ndr_print_uint32(ndr, "dwZoneType", r->dwZoneType);
    6186           0 :         ndr_print_dns_zone_update(ndr, "fAllowUpdate", r->fAllowUpdate);
    6187           0 :         ndr_print_uint32(ndr, "fAging", r->fAging);
    6188           0 :         ndr_print_uint32(ndr, "dwFlags", r->dwFlags);
    6189           0 :         ndr_print_ptr(ndr, "pszDataFile", r->pszDataFile);
    6190           0 :         ndr->depth++;
    6191           0 :         if (r->pszDataFile) {
    6192           0 :                 ndr_print_string(ndr, "pszDataFile", r->pszDataFile);
    6193             :         }
    6194           0 :         ndr->depth--;
    6195           0 :         ndr_print_uint32(ndr, "fDsIntegrated", r->fDsIntegrated);
    6196           0 :         ndr_print_uint32(ndr, "fLoadExisting", r->fLoadExisting);
    6197           0 :         ndr_print_ptr(ndr, "pszAdmin", r->pszAdmin);
    6198           0 :         ndr->depth++;
    6199           0 :         if (r->pszAdmin) {
    6200           0 :                 ndr_print_string(ndr, "pszAdmin", r->pszAdmin);
    6201             :         }
    6202           0 :         ndr->depth--;
    6203           0 :         ndr_print_ptr(ndr, "aipMasters", r->aipMasters);
    6204           0 :         ndr->depth++;
    6205           0 :         if (r->aipMasters) {
    6206           0 :                 ndr_print_IP4_ARRAY(ndr, "aipMasters", r->aipMasters);
    6207             :         }
    6208           0 :         ndr->depth--;
    6209           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    6210           0 :         ndr->depth++;
    6211           0 :         if (r->aipSecondaries) {
    6212           0 :                 ndr_print_IP4_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    6213             :         }
    6214           0 :         ndr->depth--;
    6215           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    6216           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    6217           0 :         ndr_print_ptr(ndr, "pvReserved1", r->pvReserved1);
    6218           0 :         ndr->depth++;
    6219           0 :         if (r->pvReserved1) {
    6220           0 :                 ndr_print_string(ndr, "pvReserved1", r->pvReserved1);
    6221             :         }
    6222           0 :         ndr->depth--;
    6223           0 :         ndr_print_ptr(ndr, "pvReserved2", r->pvReserved2);
    6224           0 :         ndr->depth++;
    6225           0 :         if (r->pvReserved2) {
    6226           0 :                 ndr_print_string(ndr, "pvReserved2", r->pvReserved2);
    6227             :         }
    6228           0 :         ndr->depth--;
    6229           0 :         ndr_print_ptr(ndr, "pvReserved3", r->pvReserved3);
    6230           0 :         ndr->depth++;
    6231           0 :         if (r->pvReserved3) {
    6232           0 :                 ndr_print_string(ndr, "pvReserved3", r->pvReserved3);
    6233             :         }
    6234           0 :         ndr->depth--;
    6235           0 :         ndr_print_ptr(ndr, "pvReserved4", r->pvReserved4);
    6236           0 :         ndr->depth++;
    6237           0 :         if (r->pvReserved4) {
    6238           0 :                 ndr_print_string(ndr, "pvReserved4", r->pvReserved4);
    6239             :         }
    6240           0 :         ndr->depth--;
    6241           0 :         ndr_print_ptr(ndr, "pvReserved5", r->pvReserved5);
    6242           0 :         ndr->depth++;
    6243           0 :         if (r->pvReserved5) {
    6244           0 :                 ndr_print_string(ndr, "pvReserved5", r->pvReserved5);
    6245             :         }
    6246           0 :         ndr->depth--;
    6247           0 :         ndr_print_ptr(ndr, "pvReserved6", r->pvReserved6);
    6248           0 :         ndr->depth++;
    6249           0 :         if (r->pvReserved6) {
    6250           0 :                 ndr_print_string(ndr, "pvReserved6", r->pvReserved6);
    6251             :         }
    6252           0 :         ndr->depth--;
    6253           0 :         ndr_print_ptr(ndr, "pvReserved7", r->pvReserved7);
    6254           0 :         ndr->depth++;
    6255           0 :         if (r->pvReserved7) {
    6256           0 :                 ndr_print_string(ndr, "pvReserved7", r->pvReserved7);
    6257             :         }
    6258           0 :         ndr->depth--;
    6259           0 :         ndr_print_ptr(ndr, "pvReserved8", r->pvReserved8);
    6260           0 :         ndr->depth++;
    6261           0 :         if (r->pvReserved8) {
    6262           0 :                 ndr_print_string(ndr, "pvReserved8", r->pvReserved8);
    6263             :         }
    6264           0 :         ndr->depth--;
    6265           0 :         ndr_print_uint32(ndr, "dwReserved1", r->dwReserved1);
    6266           0 :         ndr_print_uint32(ndr, "dwReserved2", r->dwReserved2);
    6267           0 :         ndr_print_uint32(ndr, "dwReserved3", r->dwReserved3);
    6268           0 :         ndr_print_uint32(ndr, "dwReserved4", r->dwReserved4);
    6269           0 :         ndr_print_uint32(ndr, "dwReserved5", r->dwReserved5);
    6270           0 :         ndr_print_uint32(ndr, "dwReserved6", r->dwReserved6);
    6271           0 :         ndr_print_uint32(ndr, "dwReserved7", r->dwReserved7);
    6272           0 :         ndr_print_uint32(ndr, "dwReserved8", r->dwReserved8);
    6273           0 :         ndr->depth--;
    6274             : }
    6275             : 
    6276           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_CREATE_INFO_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_CREATE_INFO_DOTNET *r)
    6277             : {
    6278             :         uint32_t cntr_dwReserved_0;
    6279           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    6280           0 :         if (ndr_flags & NDR_SCALARS) {
    6281           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    6282           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    6283           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    6284           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    6285           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneType));
    6286           0 :                 NDR_CHECK(ndr_push_dns_zone_update(ndr, NDR_SCALARS, r->fAllowUpdate));
    6287           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAging));
    6288           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwFlags));
    6289           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDataFile));
    6290           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fDsIntegrated));
    6291           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fLoadExisting));
    6292           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszAdmin));
    6293           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipMasters));
    6294           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    6295           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    6296           0 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    6297           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwTimeout));
    6298           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    6299           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDpFlags));
    6300           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    6301           0 :                 for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (32); cntr_dwReserved_0++) {
    6302           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved[cntr_dwReserved_0]));
    6303             :                 }
    6304           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    6305             :         }
    6306           0 :         if (ndr_flags & NDR_BUFFERS) {
    6307           0 :                 if (r->pszZoneName) {
    6308           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    6309           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6310           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    6311           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6312             :                 }
    6313           0 :                 if (r->pszDataFile) {
    6314           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    6315           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6316           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    6317           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDataFile, ndr_charset_length(r->pszDataFile, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6318             :                 }
    6319           0 :                 if (r->pszAdmin) {
    6320           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszAdmin, CH_UTF8)));
    6321           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6322           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszAdmin, CH_UTF8)));
    6323           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszAdmin, ndr_charset_length(r->pszAdmin, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6324             :                 }
    6325           0 :                 if (r->aipMasters) {
    6326           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    6327             :                 }
    6328           0 :                 if (r->aipSecondaries) {
    6329           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    6330             :                 }
    6331           0 :                 if (r->pszDpFqdn) {
    6332           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    6333           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6334           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    6335           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6336             :                 }
    6337             :         }
    6338           0 :         return NDR_ERR_SUCCESS;
    6339             : }
    6340             : 
    6341           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_CREATE_INFO_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_CREATE_INFO_DOTNET *r)
    6342             : {
    6343             :         uint32_t _ptr_pszZoneName;
    6344           0 :         uint32_t size_pszZoneName_1 = 0;
    6345           0 :         uint32_t length_pszZoneName_1 = 0;
    6346           0 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    6347             :         uint32_t _ptr_pszDataFile;
    6348           0 :         uint32_t size_pszDataFile_1 = 0;
    6349           0 :         uint32_t length_pszDataFile_1 = 0;
    6350           0 :         TALLOC_CTX *_mem_save_pszDataFile_0 = NULL;
    6351             :         uint32_t _ptr_pszAdmin;
    6352           0 :         uint32_t size_pszAdmin_1 = 0;
    6353           0 :         uint32_t length_pszAdmin_1 = 0;
    6354           0 :         TALLOC_CTX *_mem_save_pszAdmin_0 = NULL;
    6355             :         uint32_t _ptr_aipMasters;
    6356           0 :         TALLOC_CTX *_mem_save_aipMasters_0 = NULL;
    6357             :         uint32_t _ptr_aipSecondaries;
    6358           0 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    6359             :         uint32_t _ptr_pszDpFqdn;
    6360           0 :         uint32_t size_pszDpFqdn_1 = 0;
    6361           0 :         uint32_t length_pszDpFqdn_1 = 0;
    6362           0 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    6363           0 :         uint32_t size_dwReserved_0 = 0;
    6364             :         uint32_t cntr_dwReserved_0;
    6365           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    6366           0 :         if (ndr_flags & NDR_SCALARS) {
    6367           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    6368           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    6369           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    6370           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    6371           0 :                 if (_ptr_pszZoneName) {
    6372           0 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    6373             :                 } else {
    6374           0 :                         r->pszZoneName = NULL;
    6375             :                 }
    6376           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneType));
    6377           0 :                 NDR_CHECK(ndr_pull_dns_zone_update(ndr, NDR_SCALARS, &r->fAllowUpdate));
    6378           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAging));
    6379           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwFlags));
    6380           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDataFile));
    6381           0 :                 if (_ptr_pszDataFile) {
    6382           0 :                         NDR_PULL_ALLOC(ndr, r->pszDataFile);
    6383             :                 } else {
    6384           0 :                         r->pszDataFile = NULL;
    6385             :                 }
    6386           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fDsIntegrated));
    6387           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fLoadExisting));
    6388           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszAdmin));
    6389           0 :                 if (_ptr_pszAdmin) {
    6390           0 :                         NDR_PULL_ALLOC(ndr, r->pszAdmin);
    6391             :                 } else {
    6392           0 :                         r->pszAdmin = NULL;
    6393             :                 }
    6394           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipMasters));
    6395           0 :                 if (_ptr_aipMasters) {
    6396           0 :                         NDR_PULL_ALLOC(ndr, r->aipMasters);
    6397             :                 } else {
    6398           0 :                         r->aipMasters = NULL;
    6399             :                 }
    6400           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    6401           0 :                 if (_ptr_aipSecondaries) {
    6402           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    6403             :                 } else {
    6404           0 :                         r->aipSecondaries = NULL;
    6405             :                 }
    6406           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    6407           0 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    6408           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwTimeout));
    6409           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    6410           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDpFlags));
    6411           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    6412           0 :                 if (_ptr_pszDpFqdn) {
    6413           0 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    6414             :                 } else {
    6415           0 :                         r->pszDpFqdn = NULL;
    6416             :                 }
    6417           0 :                 size_dwReserved_0 = 32;
    6418           0 :                 for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (size_dwReserved_0); cntr_dwReserved_0++) {
    6419           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved[cntr_dwReserved_0]));
    6420             :                 }
    6421           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6422             :         }
    6423           0 :         if (ndr_flags & NDR_BUFFERS) {
    6424           0 :                 if (r->pszZoneName) {
    6425           0 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6426           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    6427           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    6428           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    6429           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    6430           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    6431           0 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    6432           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    6433             :                         }
    6434           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint8_t)));
    6435           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint8_t), CH_UTF8));
    6436           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    6437             :                 }
    6438           0 :                 if (r->pszDataFile) {
    6439           0 :                         _mem_save_pszDataFile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6440           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDataFile, 0);
    6441           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDataFile));
    6442           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDataFile));
    6443           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDataFile, &size_pszDataFile_1));
    6444           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDataFile, &length_pszDataFile_1));
    6445           0 :                         if (length_pszDataFile_1 > size_pszDataFile_1) {
    6446           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDataFile_1, length_pszDataFile_1);
    6447             :                         }
    6448           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDataFile_1, sizeof(uint8_t)));
    6449           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDataFile, length_pszDataFile_1, sizeof(uint8_t), CH_UTF8));
    6450           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDataFile_0, 0);
    6451             :                 }
    6452           0 :                 if (r->pszAdmin) {
    6453           0 :                         _mem_save_pszAdmin_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6454           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszAdmin, 0);
    6455           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszAdmin));
    6456           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszAdmin));
    6457           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszAdmin, &size_pszAdmin_1));
    6458           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszAdmin, &length_pszAdmin_1));
    6459           0 :                         if (length_pszAdmin_1 > size_pszAdmin_1) {
    6460           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszAdmin_1, length_pszAdmin_1);
    6461             :                         }
    6462           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszAdmin_1, sizeof(uint8_t)));
    6463           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszAdmin, length_pszAdmin_1, sizeof(uint8_t), CH_UTF8));
    6464           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszAdmin_0, 0);
    6465             :                 }
    6466           0 :                 if (r->aipMasters) {
    6467           0 :                         _mem_save_aipMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6468           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipMasters, 0);
    6469           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    6470           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipMasters_0, 0);
    6471             :                 }
    6472           0 :                 if (r->aipSecondaries) {
    6473           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6474           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    6475           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    6476           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    6477             :                 }
    6478           0 :                 if (r->pszDpFqdn) {
    6479           0 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6480           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    6481           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    6482           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    6483           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    6484           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    6485           0 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    6486           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    6487             :                         }
    6488           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    6489           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    6490           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    6491             :                 }
    6492             :         }
    6493           0 :         return NDR_ERR_SUCCESS;
    6494             : }
    6495             : 
    6496           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_CREATE_INFO_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_CREATE_INFO_DOTNET *r)
    6497             : {
    6498             :         uint32_t cntr_dwReserved_0;
    6499           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_CREATE_INFO_DOTNET");
    6500           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    6501           0 :         ndr->depth++;
    6502           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    6503           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    6504           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    6505           0 :         ndr->depth++;
    6506           0 :         if (r->pszZoneName) {
    6507           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    6508             :         }
    6509           0 :         ndr->depth--;
    6510           0 :         ndr_print_uint32(ndr, "dwZoneType", r->dwZoneType);
    6511           0 :         ndr_print_dns_zone_update(ndr, "fAllowUpdate", r->fAllowUpdate);
    6512           0 :         ndr_print_uint32(ndr, "fAging", r->fAging);
    6513           0 :         ndr_print_uint32(ndr, "dwFlags", r->dwFlags);
    6514           0 :         ndr_print_ptr(ndr, "pszDataFile", r->pszDataFile);
    6515           0 :         ndr->depth++;
    6516           0 :         if (r->pszDataFile) {
    6517           0 :                 ndr_print_string(ndr, "pszDataFile", r->pszDataFile);
    6518             :         }
    6519           0 :         ndr->depth--;
    6520           0 :         ndr_print_uint32(ndr, "fDsIntegrated", r->fDsIntegrated);
    6521           0 :         ndr_print_uint32(ndr, "fLoadExisting", r->fLoadExisting);
    6522           0 :         ndr_print_ptr(ndr, "pszAdmin", r->pszAdmin);
    6523           0 :         ndr->depth++;
    6524           0 :         if (r->pszAdmin) {
    6525           0 :                 ndr_print_string(ndr, "pszAdmin", r->pszAdmin);
    6526             :         }
    6527           0 :         ndr->depth--;
    6528           0 :         ndr_print_ptr(ndr, "aipMasters", r->aipMasters);
    6529           0 :         ndr->depth++;
    6530           0 :         if (r->aipMasters) {
    6531           0 :                 ndr_print_IP4_ARRAY(ndr, "aipMasters", r->aipMasters);
    6532             :         }
    6533           0 :         ndr->depth--;
    6534           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    6535           0 :         ndr->depth++;
    6536           0 :         if (r->aipSecondaries) {
    6537           0 :                 ndr_print_IP4_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    6538             :         }
    6539           0 :         ndr->depth--;
    6540           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    6541           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    6542           0 :         ndr_print_uint32(ndr, "dwTimeout", r->dwTimeout);
    6543           0 :         ndr_print_uint32(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    6544           0 :         ndr_print_uint32(ndr, "dwDpFlags", r->dwDpFlags);
    6545           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    6546           0 :         ndr->depth++;
    6547           0 :         if (r->pszDpFqdn) {
    6548           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    6549             :         }
    6550           0 :         ndr->depth--;
    6551           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "dwReserved", (int)32);
    6552           0 :         ndr->depth++;
    6553           0 :         for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (32); cntr_dwReserved_0++) {
    6554           0 :                 ndr_print_uint32(ndr, "dwReserved", r->dwReserved[cntr_dwReserved_0]);
    6555             :         }
    6556           0 :         ndr->depth--;
    6557           0 :         ndr->depth--;
    6558             : }
    6559             : 
    6560         423 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_CREATE_INFO_LONGHORN(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_CREATE_INFO_LONGHORN *r)
    6561             : {
    6562             :         uint32_t cntr_dwReserved_0;
    6563         423 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    6564         423 :         if (ndr_flags & NDR_SCALARS) {
    6565         423 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    6566         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    6567         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    6568         423 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneName));
    6569         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwZoneType));
    6570         423 :                 NDR_CHECK(ndr_push_dns_zone_update(ndr, NDR_SCALARS, r->fAllowUpdate));
    6571         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fAging));
    6572         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwFlags));
    6573         423 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDataFile));
    6574         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fDsIntegrated));
    6575         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fLoadExisting));
    6576         423 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszAdmin));
    6577         423 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipMasters));
    6578         423 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipSecondaries));
    6579         423 :                 NDR_CHECK(ndr_push_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, r->fSecureSecondaries));
    6580         423 :                 NDR_CHECK(ndr_push_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, r->fNotifyLevel));
    6581         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwTimeout));
    6582         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    6583         423 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwDpFlags));
    6584         423 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszDpFqdn));
    6585       13959 :                 for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (32); cntr_dwReserved_0++) {
    6586       13536 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved[cntr_dwReserved_0]));
    6587             :                 }
    6588         423 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    6589             :         }
    6590         423 :         if (ndr_flags & NDR_BUFFERS) {
    6591         423 :                 if (r->pszZoneName) {
    6592         423 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    6593         423 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6594         423 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneName, CH_UTF8)));
    6595         423 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneName, ndr_charset_length(r->pszZoneName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6596             :                 }
    6597         423 :                 if (r->pszDataFile) {
    6598           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    6599           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6600           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDataFile, CH_UTF8)));
    6601           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDataFile, ndr_charset_length(r->pszDataFile, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6602             :                 }
    6603         423 :                 if (r->pszAdmin) {
    6604           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszAdmin, CH_UTF8)));
    6605           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6606           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszAdmin, CH_UTF8)));
    6607           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszAdmin, ndr_charset_length(r->pszAdmin, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6608             :                 }
    6609         423 :                 if (r->aipMasters) {
    6610           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    6611             :                 }
    6612         423 :                 if (r->aipSecondaries) {
    6613           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    6614             :                 }
    6615         423 :                 if (r->pszDpFqdn) {
    6616           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    6617           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6618           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszDpFqdn, CH_UTF8)));
    6619           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszDpFqdn, ndr_charset_length(r->pszDpFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6620             :                 }
    6621             :         }
    6622         423 :         return NDR_ERR_SUCCESS;
    6623             : }
    6624             : 
    6625         423 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_CREATE_INFO_LONGHORN(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_CREATE_INFO_LONGHORN *r)
    6626             : {
    6627             :         uint32_t _ptr_pszZoneName;
    6628         423 :         uint32_t size_pszZoneName_1 = 0;
    6629         423 :         uint32_t length_pszZoneName_1 = 0;
    6630         423 :         TALLOC_CTX *_mem_save_pszZoneName_0 = NULL;
    6631             :         uint32_t _ptr_pszDataFile;
    6632         423 :         uint32_t size_pszDataFile_1 = 0;
    6633         423 :         uint32_t length_pszDataFile_1 = 0;
    6634         423 :         TALLOC_CTX *_mem_save_pszDataFile_0 = NULL;
    6635             :         uint32_t _ptr_pszAdmin;
    6636         423 :         uint32_t size_pszAdmin_1 = 0;
    6637         423 :         uint32_t length_pszAdmin_1 = 0;
    6638         423 :         TALLOC_CTX *_mem_save_pszAdmin_0 = NULL;
    6639             :         uint32_t _ptr_aipMasters;
    6640         423 :         TALLOC_CTX *_mem_save_aipMasters_0 = NULL;
    6641             :         uint32_t _ptr_aipSecondaries;
    6642         423 :         TALLOC_CTX *_mem_save_aipSecondaries_0 = NULL;
    6643             :         uint32_t _ptr_pszDpFqdn;
    6644         423 :         uint32_t size_pszDpFqdn_1 = 0;
    6645         423 :         uint32_t length_pszDpFqdn_1 = 0;
    6646         423 :         TALLOC_CTX *_mem_save_pszDpFqdn_0 = NULL;
    6647         423 :         uint32_t size_dwReserved_0 = 0;
    6648             :         uint32_t cntr_dwReserved_0;
    6649         423 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    6650         423 :         if (ndr_flags & NDR_SCALARS) {
    6651         423 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    6652         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    6653         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    6654         423 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneName));
    6655         423 :                 if (_ptr_pszZoneName) {
    6656         423 :                         NDR_PULL_ALLOC(ndr, r->pszZoneName);
    6657             :                 } else {
    6658           0 :                         r->pszZoneName = NULL;
    6659             :                 }
    6660         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwZoneType));
    6661         423 :                 NDR_CHECK(ndr_pull_dns_zone_update(ndr, NDR_SCALARS, &r->fAllowUpdate));
    6662         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fAging));
    6663         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwFlags));
    6664         423 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDataFile));
    6665         423 :                 if (_ptr_pszDataFile) {
    6666           0 :                         NDR_PULL_ALLOC(ndr, r->pszDataFile);
    6667             :                 } else {
    6668         423 :                         r->pszDataFile = NULL;
    6669             :                 }
    6670         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fDsIntegrated));
    6671         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fLoadExisting));
    6672         423 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszAdmin));
    6673         423 :                 if (_ptr_pszAdmin) {
    6674           0 :                         NDR_PULL_ALLOC(ndr, r->pszAdmin);
    6675             :                 } else {
    6676         423 :                         r->pszAdmin = NULL;
    6677             :                 }
    6678         423 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipMasters));
    6679         423 :                 if (_ptr_aipMasters) {
    6680           0 :                         NDR_PULL_ALLOC(ndr, r->aipMasters);
    6681             :                 } else {
    6682         423 :                         r->aipMasters = NULL;
    6683             :                 }
    6684         423 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipSecondaries));
    6685         423 :                 if (_ptr_aipSecondaries) {
    6686           0 :                         NDR_PULL_ALLOC(ndr, r->aipSecondaries);
    6687             :                 } else {
    6688         423 :                         r->aipSecondaries = NULL;
    6689             :                 }
    6690         423 :                 NDR_CHECK(ndr_pull_DNS_ZONE_SECONDARY_SECURITY(ndr, NDR_SCALARS, &r->fSecureSecondaries));
    6691         423 :                 NDR_CHECK(ndr_pull_DNS_ZONE_NOTIFY_LEVEL(ndr, NDR_SCALARS, &r->fNotifyLevel));
    6692         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwTimeout));
    6693         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    6694         423 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwDpFlags));
    6695         423 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszDpFqdn));
    6696         423 :                 if (_ptr_pszDpFqdn) {
    6697           0 :                         NDR_PULL_ALLOC(ndr, r->pszDpFqdn);
    6698             :                 } else {
    6699         423 :                         r->pszDpFqdn = NULL;
    6700             :                 }
    6701         423 :                 size_dwReserved_0 = 32;
    6702       13959 :                 for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (size_dwReserved_0); cntr_dwReserved_0++) {
    6703       13536 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved[cntr_dwReserved_0]));
    6704             :                 }
    6705         423 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6706             :         }
    6707         423 :         if (ndr_flags & NDR_BUFFERS) {
    6708         423 :                 if (r->pszZoneName) {
    6709         423 :                         _mem_save_pszZoneName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6710         423 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneName, 0);
    6711         423 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneName));
    6712         423 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneName));
    6713         423 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneName, &size_pszZoneName_1));
    6714         423 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneName, &length_pszZoneName_1));
    6715         423 :                         if (length_pszZoneName_1 > size_pszZoneName_1) {
    6716           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneName_1, length_pszZoneName_1);
    6717             :                         }
    6718         423 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneName_1, sizeof(uint8_t)));
    6719         423 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneName, length_pszZoneName_1, sizeof(uint8_t), CH_UTF8));
    6720         423 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneName_0, 0);
    6721             :                 }
    6722         423 :                 if (r->pszDataFile) {
    6723           0 :                         _mem_save_pszDataFile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6724           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDataFile, 0);
    6725           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDataFile));
    6726           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDataFile));
    6727           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDataFile, &size_pszDataFile_1));
    6728           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDataFile, &length_pszDataFile_1));
    6729           0 :                         if (length_pszDataFile_1 > size_pszDataFile_1) {
    6730           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDataFile_1, length_pszDataFile_1);
    6731             :                         }
    6732           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDataFile_1, sizeof(uint8_t)));
    6733           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDataFile, length_pszDataFile_1, sizeof(uint8_t), CH_UTF8));
    6734           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDataFile_0, 0);
    6735             :                 }
    6736         423 :                 if (r->pszAdmin) {
    6737           0 :                         _mem_save_pszAdmin_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6738           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszAdmin, 0);
    6739           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszAdmin));
    6740           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszAdmin));
    6741           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszAdmin, &size_pszAdmin_1));
    6742           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszAdmin, &length_pszAdmin_1));
    6743           0 :                         if (length_pszAdmin_1 > size_pszAdmin_1) {
    6744           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszAdmin_1, length_pszAdmin_1);
    6745             :                         }
    6746           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszAdmin_1, sizeof(uint8_t)));
    6747           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszAdmin, length_pszAdmin_1, sizeof(uint8_t), CH_UTF8));
    6748           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszAdmin_0, 0);
    6749             :                 }
    6750         423 :                 if (r->aipMasters) {
    6751           0 :                         _mem_save_aipMasters_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6752           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipMasters, 0);
    6753           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipMasters));
    6754           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipMasters_0, 0);
    6755             :                 }
    6756         423 :                 if (r->aipSecondaries) {
    6757           0 :                         _mem_save_aipSecondaries_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6758           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipSecondaries, 0);
    6759           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipSecondaries));
    6760           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipSecondaries_0, 0);
    6761             :                 }
    6762         423 :                 if (r->pszDpFqdn) {
    6763           0 :                         _mem_save_pszDpFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6764           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszDpFqdn, 0);
    6765           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszDpFqdn));
    6766           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszDpFqdn));
    6767           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszDpFqdn, &size_pszDpFqdn_1));
    6768           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszDpFqdn, &length_pszDpFqdn_1));
    6769           0 :                         if (length_pszDpFqdn_1 > size_pszDpFqdn_1) {
    6770           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszDpFqdn_1, length_pszDpFqdn_1);
    6771             :                         }
    6772           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszDpFqdn_1, sizeof(uint8_t)));
    6773           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszDpFqdn, length_pszDpFqdn_1, sizeof(uint8_t), CH_UTF8));
    6774           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszDpFqdn_0, 0);
    6775             :                 }
    6776             :         }
    6777         423 :         return NDR_ERR_SUCCESS;
    6778             : }
    6779             : 
    6780           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_CREATE_INFO_LONGHORN(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_CREATE_INFO_LONGHORN *r)
    6781             : {
    6782             :         uint32_t cntr_dwReserved_0;
    6783           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_CREATE_INFO_LONGHORN");
    6784           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    6785           0 :         ndr->depth++;
    6786           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    6787           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    6788           0 :         ndr_print_ptr(ndr, "pszZoneName", r->pszZoneName);
    6789           0 :         ndr->depth++;
    6790           0 :         if (r->pszZoneName) {
    6791           0 :                 ndr_print_string(ndr, "pszZoneName", r->pszZoneName);
    6792             :         }
    6793           0 :         ndr->depth--;
    6794           0 :         ndr_print_uint32(ndr, "dwZoneType", r->dwZoneType);
    6795           0 :         ndr_print_dns_zone_update(ndr, "fAllowUpdate", r->fAllowUpdate);
    6796           0 :         ndr_print_uint32(ndr, "fAging", r->fAging);
    6797           0 :         ndr_print_uint32(ndr, "dwFlags", r->dwFlags);
    6798           0 :         ndr_print_ptr(ndr, "pszDataFile", r->pszDataFile);
    6799           0 :         ndr->depth++;
    6800           0 :         if (r->pszDataFile) {
    6801           0 :                 ndr_print_string(ndr, "pszDataFile", r->pszDataFile);
    6802             :         }
    6803           0 :         ndr->depth--;
    6804           0 :         ndr_print_uint32(ndr, "fDsIntegrated", r->fDsIntegrated);
    6805           0 :         ndr_print_uint32(ndr, "fLoadExisting", r->fLoadExisting);
    6806           0 :         ndr_print_ptr(ndr, "pszAdmin", r->pszAdmin);
    6807           0 :         ndr->depth++;
    6808           0 :         if (r->pszAdmin) {
    6809           0 :                 ndr_print_string(ndr, "pszAdmin", r->pszAdmin);
    6810             :         }
    6811           0 :         ndr->depth--;
    6812           0 :         ndr_print_ptr(ndr, "aipMasters", r->aipMasters);
    6813           0 :         ndr->depth++;
    6814           0 :         if (r->aipMasters) {
    6815           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipMasters", r->aipMasters);
    6816             :         }
    6817           0 :         ndr->depth--;
    6818           0 :         ndr_print_ptr(ndr, "aipSecondaries", r->aipSecondaries);
    6819           0 :         ndr->depth++;
    6820           0 :         if (r->aipSecondaries) {
    6821           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipSecondaries", r->aipSecondaries);
    6822             :         }
    6823           0 :         ndr->depth--;
    6824           0 :         ndr_print_DNS_ZONE_SECONDARY_SECURITY(ndr, "fSecureSecondaries", r->fSecureSecondaries);
    6825           0 :         ndr_print_DNS_ZONE_NOTIFY_LEVEL(ndr, "fNotifyLevel", r->fNotifyLevel);
    6826           0 :         ndr_print_uint32(ndr, "dwTimeout", r->dwTimeout);
    6827           0 :         ndr_print_uint32(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    6828           0 :         ndr_print_uint32(ndr, "dwDpFlags", r->dwDpFlags);
    6829           0 :         ndr_print_ptr(ndr, "pszDpFqdn", r->pszDpFqdn);
    6830           0 :         ndr->depth++;
    6831           0 :         if (r->pszDpFqdn) {
    6832           0 :                 ndr_print_string(ndr, "pszDpFqdn", r->pszDpFqdn);
    6833             :         }
    6834           0 :         ndr->depth--;
    6835           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "dwReserved", (int)32);
    6836           0 :         ndr->depth++;
    6837           0 :         for (cntr_dwReserved_0 = 0; cntr_dwReserved_0 < (32); cntr_dwReserved_0++) {
    6838           0 :                 ndr_print_uint32(ndr, "dwReserved", r->dwReserved[cntr_dwReserved_0]);
    6839             :         }
    6840           0 :         ndr->depth--;
    6841           0 :         ndr->depth--;
    6842             : }
    6843             : 
    6844           0 : static enum ndr_err_code ndr_push_DNS_RPC_ZONE_EXPORT_INFO(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ZONE_EXPORT_INFO *r)
    6845             : {
    6846           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    6847           0 :         if (ndr_flags & NDR_SCALARS) {
    6848           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    6849           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    6850           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    6851           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszZoneExportFile));
    6852           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    6853             :         }
    6854           0 :         if (ndr_flags & NDR_BUFFERS) {
    6855           0 :                 if (r->pszZoneExportFile) {
    6856           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneExportFile, CH_UTF8)));
    6857           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6858           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszZoneExportFile, CH_UTF8)));
    6859           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszZoneExportFile, ndr_charset_length(r->pszZoneExportFile, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6860             :                 }
    6861             :         }
    6862           0 :         return NDR_ERR_SUCCESS;
    6863             : }
    6864             : 
    6865           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ZONE_EXPORT_INFO(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ZONE_EXPORT_INFO *r)
    6866             : {
    6867             :         uint32_t _ptr_pszZoneExportFile;
    6868           0 :         uint32_t size_pszZoneExportFile_1 = 0;
    6869           0 :         uint32_t length_pszZoneExportFile_1 = 0;
    6870           0 :         TALLOC_CTX *_mem_save_pszZoneExportFile_0 = NULL;
    6871           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    6872           0 :         if (ndr_flags & NDR_SCALARS) {
    6873           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    6874           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    6875           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    6876           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszZoneExportFile));
    6877           0 :                 if (_ptr_pszZoneExportFile) {
    6878           0 :                         NDR_PULL_ALLOC(ndr, r->pszZoneExportFile);
    6879             :                 } else {
    6880           0 :                         r->pszZoneExportFile = NULL;
    6881             :                 }
    6882           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6883             :         }
    6884           0 :         if (ndr_flags & NDR_BUFFERS) {
    6885           0 :                 if (r->pszZoneExportFile) {
    6886           0 :                         _mem_save_pszZoneExportFile_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6887           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszZoneExportFile, 0);
    6888           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszZoneExportFile));
    6889           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszZoneExportFile));
    6890           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszZoneExportFile, &size_pszZoneExportFile_1));
    6891           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszZoneExportFile, &length_pszZoneExportFile_1));
    6892           0 :                         if (length_pszZoneExportFile_1 > size_pszZoneExportFile_1) {
    6893           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszZoneExportFile_1, length_pszZoneExportFile_1);
    6894             :                         }
    6895           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszZoneExportFile_1, sizeof(uint8_t)));
    6896           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszZoneExportFile, length_pszZoneExportFile_1, sizeof(uint8_t), CH_UTF8));
    6897           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszZoneExportFile_0, 0);
    6898             :                 }
    6899             :         }
    6900           0 :         return NDR_ERR_SUCCESS;
    6901             : }
    6902             : 
    6903           0 : _PUBLIC_ void ndr_print_DNS_RPC_ZONE_EXPORT_INFO(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ZONE_EXPORT_INFO *r)
    6904             : {
    6905           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ZONE_EXPORT_INFO");
    6906           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    6907           0 :         ndr->depth++;
    6908           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    6909           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    6910           0 :         ndr_print_ptr(ndr, "pszZoneExportFile", r->pszZoneExportFile);
    6911           0 :         ndr->depth++;
    6912           0 :         if (r->pszZoneExportFile) {
    6913           0 :                 ndr_print_string(ndr, "pszZoneExportFile", r->pszZoneExportFile);
    6914             :         }
    6915           0 :         ndr->depth--;
    6916           0 :         ndr->depth--;
    6917             : }
    6918             : 
    6919           0 : static enum ndr_err_code ndr_push_DNS_RPC_ENUM_ZONES_FILTER(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_ENUM_ZONES_FILTER *r)
    6920             : {
    6921             :         uint32_t cntr_pszReserved_0;
    6922           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    6923           0 :         if (ndr_flags & NDR_SCALARS) {
    6924           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    6925           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    6926           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    6927           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwFilter));
    6928           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszPartitionFqdn));
    6929           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszQueryString));
    6930           0 :                 for (cntr_pszReserved_0 = 0; cntr_pszReserved_0 < (6); cntr_pszReserved_0++) {
    6931           0 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pszReserved[cntr_pszReserved_0]));
    6932             :                 }
    6933           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    6934             :         }
    6935           0 :         if (ndr_flags & NDR_BUFFERS) {
    6936           0 :                 if (r->pszPartitionFqdn) {
    6937           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszPartitionFqdn, CH_UTF8)));
    6938           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6939           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszPartitionFqdn, CH_UTF8)));
    6940           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszPartitionFqdn, ndr_charset_length(r->pszPartitionFqdn, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6941             :                 }
    6942           0 :                 if (r->pszQueryString) {
    6943           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszQueryString, CH_UTF8)));
    6944           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    6945           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszQueryString, CH_UTF8)));
    6946           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszQueryString, ndr_charset_length(r->pszQueryString, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    6947             :                 }
    6948           0 :                 for (cntr_pszReserved_0 = 0; cntr_pszReserved_0 < (6); cntr_pszReserved_0++) {
    6949           0 :                         NDR_CHECK(ndr_push_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pszReserved[cntr_pszReserved_0]));
    6950             :                 }
    6951             :         }
    6952           0 :         return NDR_ERR_SUCCESS;
    6953             : }
    6954             : 
    6955           0 : static enum ndr_err_code ndr_pull_DNS_RPC_ENUM_ZONES_FILTER(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_ENUM_ZONES_FILTER *r)
    6956             : {
    6957             :         uint32_t _ptr_pszPartitionFqdn;
    6958           0 :         uint32_t size_pszPartitionFqdn_1 = 0;
    6959           0 :         uint32_t length_pszPartitionFqdn_1 = 0;
    6960           0 :         TALLOC_CTX *_mem_save_pszPartitionFqdn_0 = NULL;
    6961             :         uint32_t _ptr_pszQueryString;
    6962           0 :         uint32_t size_pszQueryString_1 = 0;
    6963           0 :         uint32_t length_pszQueryString_1 = 0;
    6964           0 :         TALLOC_CTX *_mem_save_pszQueryString_0 = NULL;
    6965           0 :         uint32_t size_pszReserved_0 = 0;
    6966             :         uint32_t cntr_pszReserved_0;
    6967           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    6968           0 :         if (ndr_flags & NDR_SCALARS) {
    6969           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    6970           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    6971           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    6972           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwFilter));
    6973           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszPartitionFqdn));
    6974           0 :                 if (_ptr_pszPartitionFqdn) {
    6975           0 :                         NDR_PULL_ALLOC(ndr, r->pszPartitionFqdn);
    6976             :                 } else {
    6977           0 :                         r->pszPartitionFqdn = NULL;
    6978             :                 }
    6979           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszQueryString));
    6980           0 :                 if (_ptr_pszQueryString) {
    6981           0 :                         NDR_PULL_ALLOC(ndr, r->pszQueryString);
    6982             :                 } else {
    6983           0 :                         r->pszQueryString = NULL;
    6984             :                 }
    6985           0 :                 size_pszReserved_0 = 6;
    6986           0 :                 for (cntr_pszReserved_0 = 0; cntr_pszReserved_0 < (size_pszReserved_0); cntr_pszReserved_0++) {
    6987           0 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_SCALARS, &r->pszReserved[cntr_pszReserved_0]));
    6988             :                 }
    6989           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    6990             :         }
    6991           0 :         if (ndr_flags & NDR_BUFFERS) {
    6992           0 :                 if (r->pszPartitionFqdn) {
    6993           0 :                         _mem_save_pszPartitionFqdn_0 = NDR_PULL_GET_MEM_CTX(ndr);
    6994           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszPartitionFqdn, 0);
    6995           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszPartitionFqdn));
    6996           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszPartitionFqdn));
    6997           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszPartitionFqdn, &size_pszPartitionFqdn_1));
    6998           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszPartitionFqdn, &length_pszPartitionFqdn_1));
    6999           0 :                         if (length_pszPartitionFqdn_1 > size_pszPartitionFqdn_1) {
    7000           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszPartitionFqdn_1, length_pszPartitionFqdn_1);
    7001             :                         }
    7002           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszPartitionFqdn_1, sizeof(uint8_t)));
    7003           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszPartitionFqdn, length_pszPartitionFqdn_1, sizeof(uint8_t), CH_UTF8));
    7004           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszPartitionFqdn_0, 0);
    7005             :                 }
    7006           0 :                 if (r->pszQueryString) {
    7007           0 :                         _mem_save_pszQueryString_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7008           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszQueryString, 0);
    7009           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszQueryString));
    7010           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszQueryString));
    7011           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszQueryString, &size_pszQueryString_1));
    7012           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszQueryString, &length_pszQueryString_1));
    7013           0 :                         if (length_pszQueryString_1 > size_pszQueryString_1) {
    7014           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszQueryString_1, length_pszQueryString_1);
    7015             :                         }
    7016           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszQueryString_1, sizeof(uint8_t)));
    7017           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszQueryString, length_pszQueryString_1, sizeof(uint8_t), CH_UTF8));
    7018           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszQueryString_0, 0);
    7019             :                 }
    7020           0 :                 size_pszReserved_0 = 6;
    7021           0 :                 for (cntr_pszReserved_0 = 0; cntr_pszReserved_0 < (size_pszReserved_0); cntr_pszReserved_0++) {
    7022           0 :                         NDR_CHECK(ndr_pull_DNS_EXTENSION(ndr, NDR_BUFFERS, &r->pszReserved[cntr_pszReserved_0]));
    7023             :                 }
    7024           0 :                 for (cntr_pszReserved_0 = 0; cntr_pszReserved_0 < (size_pszReserved_0); cntr_pszReserved_0++) {
    7025             :                 }
    7026             :         }
    7027           0 :         return NDR_ERR_SUCCESS;
    7028             : }
    7029             : 
    7030           0 : _PUBLIC_ void ndr_print_DNS_RPC_ENUM_ZONES_FILTER(struct ndr_print *ndr, const char *name, const struct DNS_RPC_ENUM_ZONES_FILTER *r)
    7031             : {
    7032             :         uint32_t cntr_pszReserved_0;
    7033           0 :         ndr_print_struct(ndr, name, "DNS_RPC_ENUM_ZONES_FILTER");
    7034           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7035           0 :         ndr->depth++;
    7036           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    7037           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    7038           0 :         ndr_print_uint32(ndr, "dwFilter", r->dwFilter);
    7039           0 :         ndr_print_ptr(ndr, "pszPartitionFqdn", r->pszPartitionFqdn);
    7040           0 :         ndr->depth++;
    7041           0 :         if (r->pszPartitionFqdn) {
    7042           0 :                 ndr_print_string(ndr, "pszPartitionFqdn", r->pszPartitionFqdn);
    7043             :         }
    7044           0 :         ndr->depth--;
    7045           0 :         ndr_print_ptr(ndr, "pszQueryString", r->pszQueryString);
    7046           0 :         ndr->depth++;
    7047           0 :         if (r->pszQueryString) {
    7048           0 :                 ndr_print_string(ndr, "pszQueryString", r->pszQueryString);
    7049             :         }
    7050           0 :         ndr->depth--;
    7051           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "pszReserved", (int)6);
    7052           0 :         ndr->depth++;
    7053           0 :         for (cntr_pszReserved_0 = 0; cntr_pszReserved_0 < (6); cntr_pszReserved_0++) {
    7054           0 :                 ndr_print_DNS_EXTENSION(ndr, "pszReserved", &r->pszReserved[cntr_pszReserved_0]);
    7055             :         }
    7056           0 :         ndr->depth--;
    7057           0 :         ndr->depth--;
    7058             : }
    7059             : 
    7060           0 : static enum ndr_err_code ndr_push_DNS_RPC_FORWARDERS_W2K(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_FORWARDERS_W2K *r)
    7061             : {
    7062           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7063           0 :         if (ndr_flags & NDR_SCALARS) {
    7064           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7065           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    7066           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwardTimeout));
    7067           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipForwarders));
    7068           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7069             :         }
    7070           0 :         if (ndr_flags & NDR_BUFFERS) {
    7071           0 :                 if (r->aipForwarders) {
    7072           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    7073             :                 }
    7074             :         }
    7075           0 :         return NDR_ERR_SUCCESS;
    7076             : }
    7077             : 
    7078           0 : static enum ndr_err_code ndr_pull_DNS_RPC_FORWARDERS_W2K(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_FORWARDERS_W2K *r)
    7079             : {
    7080             :         uint32_t _ptr_aipForwarders;
    7081           0 :         TALLOC_CTX *_mem_save_aipForwarders_0 = NULL;
    7082           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7083           0 :         if (ndr_flags & NDR_SCALARS) {
    7084           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7085           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    7086           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwardTimeout));
    7087           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipForwarders));
    7088           0 :                 if (_ptr_aipForwarders) {
    7089           0 :                         NDR_PULL_ALLOC(ndr, r->aipForwarders);
    7090             :                 } else {
    7091           0 :                         r->aipForwarders = NULL;
    7092             :                 }
    7093           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    7094             :         }
    7095           0 :         if (ndr_flags & NDR_BUFFERS) {
    7096           0 :                 if (r->aipForwarders) {
    7097           0 :                         _mem_save_aipForwarders_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7098           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipForwarders, 0);
    7099           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    7100           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipForwarders_0, 0);
    7101             :                 }
    7102             :         }
    7103           0 :         return NDR_ERR_SUCCESS;
    7104             : }
    7105             : 
    7106           0 : _PUBLIC_ void ndr_print_DNS_RPC_FORWARDERS_W2K(struct ndr_print *ndr, const char *name, const struct DNS_RPC_FORWARDERS_W2K *r)
    7107             : {
    7108           0 :         ndr_print_struct(ndr, name, "DNS_RPC_FORWARDERS_W2K");
    7109           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7110           0 :         ndr->depth++;
    7111           0 :         ndr_print_uint32(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    7112           0 :         ndr_print_uint32(ndr, "dwForwardTimeout", r->dwForwardTimeout);
    7113           0 :         ndr_print_ptr(ndr, "aipForwarders", r->aipForwarders);
    7114           0 :         ndr->depth++;
    7115           0 :         if (r->aipForwarders) {
    7116           0 :                 ndr_print_IP4_ARRAY(ndr, "aipForwarders", r->aipForwarders);
    7117             :         }
    7118           0 :         ndr->depth--;
    7119           0 :         ndr->depth--;
    7120             : }
    7121             : 
    7122           0 : static enum ndr_err_code ndr_push_DNS_RPC_FORWARDERS_DOTNET(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_FORWARDERS_DOTNET *r)
    7123             : {
    7124           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7125           0 :         if (ndr_flags & NDR_SCALARS) {
    7126           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7127           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    7128           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    7129           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    7130           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwardTimeout));
    7131           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipForwarders));
    7132           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7133             :         }
    7134           0 :         if (ndr_flags & NDR_BUFFERS) {
    7135           0 :                 if (r->aipForwarders) {
    7136           0 :                         NDR_CHECK(ndr_push_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    7137             :                 }
    7138             :         }
    7139           0 :         return NDR_ERR_SUCCESS;
    7140             : }
    7141             : 
    7142           0 : static enum ndr_err_code ndr_pull_DNS_RPC_FORWARDERS_DOTNET(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_FORWARDERS_DOTNET *r)
    7143             : {
    7144             :         uint32_t _ptr_aipForwarders;
    7145           0 :         TALLOC_CTX *_mem_save_aipForwarders_0 = NULL;
    7146           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7147           0 :         if (ndr_flags & NDR_SCALARS) {
    7148           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7149           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    7150           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    7151           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    7152           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwardTimeout));
    7153           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipForwarders));
    7154           0 :                 if (_ptr_aipForwarders) {
    7155           0 :                         NDR_PULL_ALLOC(ndr, r->aipForwarders);
    7156             :                 } else {
    7157           0 :                         r->aipForwarders = NULL;
    7158             :                 }
    7159           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    7160             :         }
    7161           0 :         if (ndr_flags & NDR_BUFFERS) {
    7162           0 :                 if (r->aipForwarders) {
    7163           0 :                         _mem_save_aipForwarders_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7164           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipForwarders, 0);
    7165           0 :                         NDR_CHECK(ndr_pull_IP4_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    7166           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipForwarders_0, 0);
    7167             :                 }
    7168             :         }
    7169           0 :         return NDR_ERR_SUCCESS;
    7170             : }
    7171             : 
    7172           0 : _PUBLIC_ void ndr_print_DNS_RPC_FORWARDERS_DOTNET(struct ndr_print *ndr, const char *name, const struct DNS_RPC_FORWARDERS_DOTNET *r)
    7173             : {
    7174           0 :         ndr_print_struct(ndr, name, "DNS_RPC_FORWARDERS_DOTNET");
    7175           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7176           0 :         ndr->depth++;
    7177           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    7178           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    7179           0 :         ndr_print_uint32(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    7180           0 :         ndr_print_uint32(ndr, "dwForwardTimeout", r->dwForwardTimeout);
    7181           0 :         ndr_print_ptr(ndr, "aipForwarders", r->aipForwarders);
    7182           0 :         ndr->depth++;
    7183           0 :         if (r->aipForwarders) {
    7184           0 :                 ndr_print_IP4_ARRAY(ndr, "aipForwarders", r->aipForwarders);
    7185             :         }
    7186           0 :         ndr->depth--;
    7187           0 :         ndr->depth--;
    7188             : }
    7189             : 
    7190           0 : static enum ndr_err_code ndr_push_DNS_RPC_FORWARDERS_LONGHORN(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_FORWARDERS_LONGHORN *r)
    7191             : {
    7192           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7193           0 :         if (ndr_flags & NDR_SCALARS) {
    7194           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7195           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    7196           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    7197           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fRecurseAfterForwarding));
    7198           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwForwardTimeout));
    7199           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aipForwarders));
    7200           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7201             :         }
    7202           0 :         if (ndr_flags & NDR_BUFFERS) {
    7203           0 :                 if (r->aipForwarders) {
    7204           0 :                         NDR_CHECK(ndr_push_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    7205             :                 }
    7206             :         }
    7207           0 :         return NDR_ERR_SUCCESS;
    7208             : }
    7209             : 
    7210           0 : static enum ndr_err_code ndr_pull_DNS_RPC_FORWARDERS_LONGHORN(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_FORWARDERS_LONGHORN *r)
    7211             : {
    7212             :         uint32_t _ptr_aipForwarders;
    7213           0 :         TALLOC_CTX *_mem_save_aipForwarders_0 = NULL;
    7214           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7215           0 :         if (ndr_flags & NDR_SCALARS) {
    7216           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7217           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    7218           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    7219           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fRecurseAfterForwarding));
    7220           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwForwardTimeout));
    7221           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aipForwarders));
    7222           0 :                 if (_ptr_aipForwarders) {
    7223           0 :                         NDR_PULL_ALLOC(ndr, r->aipForwarders);
    7224             :                 } else {
    7225           0 :                         r->aipForwarders = NULL;
    7226             :                 }
    7227           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    7228             :         }
    7229           0 :         if (ndr_flags & NDR_BUFFERS) {
    7230           0 :                 if (r->aipForwarders) {
    7231           0 :                         _mem_save_aipForwarders_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7232           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->aipForwarders, 0);
    7233           0 :                         NDR_CHECK(ndr_pull_DNS_ADDR_ARRAY(ndr, NDR_SCALARS, r->aipForwarders));
    7234           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aipForwarders_0, 0);
    7235             :                 }
    7236             :         }
    7237           0 :         return NDR_ERR_SUCCESS;
    7238             : }
    7239             : 
    7240           0 : _PUBLIC_ void ndr_print_DNS_RPC_FORWARDERS_LONGHORN(struct ndr_print *ndr, const char *name, const struct DNS_RPC_FORWARDERS_LONGHORN *r)
    7241             : {
    7242           0 :         ndr_print_struct(ndr, name, "DNS_RPC_FORWARDERS_LONGHORN");
    7243           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7244           0 :         ndr->depth++;
    7245           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    7246           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    7247           0 :         ndr_print_uint32(ndr, "fRecurseAfterForwarding", r->fRecurseAfterForwarding);
    7248           0 :         ndr_print_uint32(ndr, "dwForwardTimeout", r->dwForwardTimeout);
    7249           0 :         ndr_print_ptr(ndr, "aipForwarders", r->aipForwarders);
    7250           0 :         ndr->depth++;
    7251           0 :         if (r->aipForwarders) {
    7252           0 :                 ndr_print_DNS_ADDR_ARRAY(ndr, "aipForwarders", r->aipForwarders);
    7253             :         }
    7254           0 :         ndr->depth--;
    7255           0 :         ndr->depth--;
    7256             : }
    7257             : 
    7258           0 : static enum ndr_err_code ndr_push_DNS_RPC_AUTOCONFIG(struct ndr_push *ndr, int ndr_flags, enum DNS_RPC_AUTOCONFIG r)
    7259             : {
    7260           0 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    7261           0 :         return NDR_ERR_SUCCESS;
    7262             : }
    7263             : 
    7264           0 : static enum ndr_err_code ndr_pull_DNS_RPC_AUTOCONFIG(struct ndr_pull *ndr, int ndr_flags, enum DNS_RPC_AUTOCONFIG *r)
    7265             : {
    7266             :         uint32_t v;
    7267           0 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    7268           0 :         *r = v;
    7269           0 :         return NDR_ERR_SUCCESS;
    7270             : }
    7271             : 
    7272           0 : _PUBLIC_ void ndr_print_DNS_RPC_AUTOCONFIG(struct ndr_print *ndr, const char *name, enum DNS_RPC_AUTOCONFIG r)
    7273             : {
    7274           0 :         const char *val = NULL;
    7275             : 
    7276           0 :         switch (r) {
    7277           0 :                 case DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS: val = "DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS"; break;
    7278           0 :                 case DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS: val = "DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS"; break;
    7279           0 :                 case DNS_RPC_AUTOCONFIG_INTERNAL_ZONES: val = "DNS_RPC_AUTOCONFIG_INTERNAL_ZONES"; break;
    7280           0 :                 case DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT: val = "DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT"; break;
    7281           0 :                 case DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND: val = "DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND"; break;
    7282           0 :                 case DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND: val = "DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND"; break;
    7283           0 :                 case DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR: val = "DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR"; break;
    7284           0 :                 case DNS_RPC_AUTOCONFIG_ALL: val = "DNS_RPC_AUTOCONFIG_ALL"; break;
    7285             :         }
    7286           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    7287           0 : }
    7288             : 
    7289           0 : static enum ndr_err_code ndr_push_DNS_RPC_AUTOCONFIGURE(struct ndr_push *ndr, int ndr_flags, const struct DNS_RPC_AUTOCONFIGURE *r)
    7290             : {
    7291           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7292           0 :         if (ndr_flags & NDR_SCALARS) {
    7293           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    7294           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwRpcStructureVersion));
    7295           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved0));
    7296           0 :                 NDR_CHECK(ndr_push_DNS_RPC_AUTOCONFIG(ndr, NDR_SCALARS, r->dwAutoConfigFlags));
    7297           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReserved1));
    7298           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszNewDomainName));
    7299           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    7300             :         }
    7301           0 :         if (ndr_flags & NDR_BUFFERS) {
    7302           0 :                 if (r->pszNewDomainName) {
    7303           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszNewDomainName, CH_UTF8)));
    7304           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    7305           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pszNewDomainName, CH_UTF8)));
    7306           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pszNewDomainName, ndr_charset_length(r->pszNewDomainName, CH_UTF8), sizeof(uint8_t), CH_UTF8));
    7307             :                 }
    7308             :         }
    7309           0 :         return NDR_ERR_SUCCESS;
    7310             : }
    7311             : 
    7312           0 : static enum ndr_err_code ndr_pull_DNS_RPC_AUTOCONFIGURE(struct ndr_pull *ndr, int ndr_flags, struct DNS_RPC_AUTOCONFIGURE *r)
    7313             : {
    7314             :         uint32_t _ptr_pszNewDomainName;
    7315           0 :         uint32_t size_pszNewDomainName_1 = 0;
    7316           0 :         uint32_t length_pszNewDomainName_1 = 0;
    7317           0 :         TALLOC_CTX *_mem_save_pszNewDomainName_0 = NULL;
    7318           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7319           0 :         if (ndr_flags & NDR_SCALARS) {
    7320           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    7321           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwRpcStructureVersion));
    7322           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved0));
    7323           0 :                 NDR_CHECK(ndr_pull_DNS_RPC_AUTOCONFIG(ndr, NDR_SCALARS, &r->dwAutoConfigFlags));
    7324           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReserved1));
    7325           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszNewDomainName));
    7326           0 :                 if (_ptr_pszNewDomainName) {
    7327           0 :                         NDR_PULL_ALLOC(ndr, r->pszNewDomainName);
    7328             :                 } else {
    7329           0 :                         r->pszNewDomainName = NULL;
    7330             :                 }
    7331           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    7332             :         }
    7333           0 :         if (ndr_flags & NDR_BUFFERS) {
    7334           0 :                 if (r->pszNewDomainName) {
    7335           0 :                         _mem_save_pszNewDomainName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    7336           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->pszNewDomainName, 0);
    7337           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pszNewDomainName));
    7338           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->pszNewDomainName));
    7339           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pszNewDomainName, &size_pszNewDomainName_1));
    7340           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pszNewDomainName, &length_pszNewDomainName_1));
    7341           0 :                         if (length_pszNewDomainName_1 > size_pszNewDomainName_1) {
    7342           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszNewDomainName_1, length_pszNewDomainName_1);
    7343             :                         }
    7344           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_pszNewDomainName_1, sizeof(uint8_t)));
    7345           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pszNewDomainName, length_pszNewDomainName_1, sizeof(uint8_t), CH_UTF8));
    7346           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszNewDomainName_0, 0);
    7347             :                 }
    7348             :         }
    7349           0 :         return NDR_ERR_SUCCESS;
    7350             : }
    7351             : 
    7352           0 : _PUBLIC_ void ndr_print_DNS_RPC_AUTOCONFIGURE(struct ndr_print *ndr, const char *name, const struct DNS_RPC_AUTOCONFIGURE *r)
    7353             : {
    7354           0 :         ndr_print_struct(ndr, name, "DNS_RPC_AUTOCONFIGURE");
    7355           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7356           0 :         ndr->depth++;
    7357           0 :         ndr_print_uint32(ndr, "dwRpcStructureVersion", r->dwRpcStructureVersion);
    7358           0 :         ndr_print_uint32(ndr, "dwReserved0", r->dwReserved0);
    7359           0 :         ndr_print_DNS_RPC_AUTOCONFIG(ndr, "dwAutoConfigFlags", r->dwAutoConfigFlags);
    7360           0 :         ndr_print_uint32(ndr, "dwReserved1", r->dwReserved1);
    7361           0 :         ndr_print_ptr(ndr, "pszNewDomainName", r->pszNewDomainName);
    7362           0 :         ndr->depth++;
    7363           0 :         if (r->pszNewDomainName) {
    7364           0 :                 ndr_print_string(ndr, "pszNewDomainName", r->pszNewDomainName);
    7365             :         }
    7366           0 :         ndr->depth--;
    7367           0 :         ndr->depth--;
    7368             : }
    7369             : 
    7370        1254 : static enum ndr_err_code ndr_push_DNS_SELECT_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
    7371             : {
    7372        1254 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
    7373        1254 :         return NDR_ERR_SUCCESS;
    7374             : }
    7375             : 
    7376        1254 : static enum ndr_err_code ndr_pull_DNS_SELECT_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
    7377             : {
    7378             :         uint32_t v;
    7379        1254 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
    7380        1254 :         *r = v;
    7381        1254 :         return NDR_ERR_SUCCESS;
    7382             : }
    7383             : 
    7384           0 : _PUBLIC_ void ndr_print_DNS_SELECT_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
    7385             : {
    7386           0 :         ndr_print_uint32(ndr, name, r);
    7387           0 :         ndr->depth++;
    7388           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_VIEW_AUTHORITY_DATA", DNS_RPC_VIEW_AUTHORITY_DATA, r);
    7389           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_VIEW_CACHE_DATA", DNS_RPC_VIEW_CACHE_DATA, r);
    7390           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_VIEW_GLUE_DATA", DNS_RPC_VIEW_GLUE_DATA, r);
    7391           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_VIEW_ROOT_HINT_DATA", DNS_RPC_VIEW_ROOT_HINT_DATA, r);
    7392           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_VIEW_ADDITIONAL_DATA", DNS_RPC_VIEW_ADDITIONAL_DATA, r);
    7393           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_VIEW_NO_CHILDREN", DNS_RPC_VIEW_NO_CHILDREN, r);
    7394           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DNS_RPC_VIEW_ONLY_CHILDREN", DNS_RPC_VIEW_ONLY_CHILDREN, r);
    7395           0 :         ndr->depth--;
    7396           0 : }
    7397             : 
    7398           0 : static enum ndr_err_code ndr_push_DNSSRV_STAT_HEADER(struct ndr_push *ndr, int ndr_flags, const struct DNSSRV_STAT_HEADER *r)
    7399             : {
    7400           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7401           0 :         if (ndr_flags & NDR_SCALARS) {
    7402           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    7403           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->StatId));
    7404           0 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wLength));
    7405           0 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fClear));
    7406           0 :                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->fReserved));
    7407           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    7408             :         }
    7409           0 :         if (ndr_flags & NDR_BUFFERS) {
    7410             :         }
    7411           0 :         return NDR_ERR_SUCCESS;
    7412             : }
    7413             : 
    7414           0 : static enum ndr_err_code ndr_pull_DNSSRV_STAT_HEADER(struct ndr_pull *ndr, int ndr_flags, struct DNSSRV_STAT_HEADER *r)
    7415             : {
    7416           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7417           0 :         if (ndr_flags & NDR_SCALARS) {
    7418           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    7419           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->StatId));
    7420           0 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wLength));
    7421           0 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fClear));
    7422           0 :                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->fReserved));
    7423           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    7424             :         }
    7425           0 :         if (ndr_flags & NDR_BUFFERS) {
    7426             :         }
    7427           0 :         return NDR_ERR_SUCCESS;
    7428             : }
    7429             : 
    7430           0 : _PUBLIC_ void ndr_print_DNSSRV_STAT_HEADER(struct ndr_print *ndr, const char *name, const struct DNSSRV_STAT_HEADER *r)
    7431             : {
    7432           0 :         ndr_print_struct(ndr, name, "DNSSRV_STAT_HEADER");
    7433           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7434           0 :         ndr->depth++;
    7435           0 :         ndr_print_uint32(ndr, "StatId", r->StatId);
    7436           0 :         ndr_print_uint16(ndr, "wLength", r->wLength);
    7437           0 :         ndr_print_uint8(ndr, "fClear", r->fClear);
    7438           0 :         ndr_print_uint8(ndr, "fReserved", r->fReserved);
    7439           0 :         ndr->depth--;
    7440             : }
    7441             : 
    7442           0 : static enum ndr_err_code ndr_push_DNSSRV_STAT(struct ndr_push *ndr, int ndr_flags, const struct DNSSRV_STAT *r)
    7443             : {
    7444           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7445           0 :         if (ndr_flags & NDR_SCALARS) {
    7446           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    7447           0 :                 NDR_CHECK(ndr_push_DNSSRV_STAT_HEADER(ndr, NDR_SCALARS, &r->Header));
    7448           0 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Buffer, 1));
    7449           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    7450             :         }
    7451           0 :         if (ndr_flags & NDR_BUFFERS) {
    7452             :         }
    7453           0 :         return NDR_ERR_SUCCESS;
    7454             : }
    7455             : 
    7456           0 : static enum ndr_err_code ndr_pull_DNSSRV_STAT(struct ndr_pull *ndr, int ndr_flags, struct DNSSRV_STAT *r)
    7457             : {
    7458           0 :         uint32_t size_Buffer_0 = 0;
    7459           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    7460           0 :         if (ndr_flags & NDR_SCALARS) {
    7461           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    7462           0 :                 NDR_CHECK(ndr_pull_DNSSRV_STAT_HEADER(ndr, NDR_SCALARS, &r->Header));
    7463           0 :                 size_Buffer_0 = 1;
    7464           0 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Buffer, size_Buffer_0));
    7465           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    7466             :         }
    7467           0 :         if (ndr_flags & NDR_BUFFERS) {
    7468             :         }
    7469           0 :         return NDR_ERR_SUCCESS;
    7470             : }
    7471             : 
    7472           0 : _PUBLIC_ void ndr_print_DNSSRV_STAT(struct ndr_print *ndr, const char *name, const struct DNSSRV_STAT *r)
    7473             : {
    7474           0 :         ndr_print_struct(ndr, name, "DNSSRV_STAT");
    7475           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    7476           0 :         ndr->depth++;
    7477           0 :         ndr_print_DNSSRV_STAT_HEADER(ndr, "Header", &r->Header);
    7478           0 :         ndr_print_array_uint8(ndr, "Buffer", r->Buffer, 1);
    7479           0 :         ndr->depth--;
    7480             : }
    7481             : 
    7482        1704 : static enum ndr_err_code ndr_push_DNS_RPC_TYPEID(struct ndr_push *ndr, int ndr_flags, enum DNS_RPC_TYPEID r)
    7483             : {
    7484        1704 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    7485        1704 :         return NDR_ERR_SUCCESS;
    7486             : }
    7487             : 
    7488        1704 : static enum ndr_err_code ndr_pull_DNS_RPC_TYPEID(struct ndr_pull *ndr, int ndr_flags, enum DNS_RPC_TYPEID *r)
    7489             : {
    7490             :         uint32_t v;
    7491        1704 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    7492        1704 :         *r = v;
    7493        1704 :         return NDR_ERR_SUCCESS;
    7494             : }
    7495             : 
    7496           2 : _PUBLIC_ void ndr_print_DNS_RPC_TYPEID(struct ndr_print *ndr, const char *name, enum DNS_RPC_TYPEID r)
    7497             : {
    7498           2 :         const char *val = NULL;
    7499             : 
    7500           2 :         switch (r) {
    7501           2 :                 case DNSSRV_TYPEID_NULL: val = "DNSSRV_TYPEID_NULL"; break;
    7502           0 :                 case DNSSRV_TYPEID_DWORD: val = "DNSSRV_TYPEID_DWORD"; break;
    7503           0 :                 case DNSSRV_TYPEID_LPSTR: val = "DNSSRV_TYPEID_LPSTR"; break;
    7504           0 :                 case DNSSRV_TYPEID_LPWSTR: val = "DNSSRV_TYPEID_LPWSTR"; break;
    7505           0 :                 case DNSSRV_TYPEID_IPARRAY: val = "DNSSRV_TYPEID_IPARRAY"; break;
    7506           0 :                 case DNSSRV_TYPEID_BUFFER: val = "DNSSRV_TYPEID_BUFFER"; break;
    7507           0 :                 case DNSSRV_TYPEID_SERVER_INFO_W2K: val = "DNSSRV_TYPEID_SERVER_INFO_W2K"; break;
    7508           0 :                 case DNSSRV_TYPEID_STATS: val = "DNSSRV_TYPEID_STATS"; break;
    7509           0 :                 case DNSSRV_TYPEID_FORWARDERS_W2K: val = "DNSSRV_TYPEID_FORWARDERS_W2K"; break;
    7510           0 :                 case DNSSRV_TYPEID_ZONE_W2K: val = "DNSSRV_TYPEID_ZONE_W2K"; break;
    7511           0 :                 case DNSSRV_TYPEID_ZONE_INFO_W2K: val = "DNSSRV_TYPEID_ZONE_INFO_W2K"; break;
    7512           0 :                 case DNSSRV_TYPEID_ZONE_SECONDARIES_W2K: val = "DNSSRV_TYPEID_ZONE_SECONDARIES_W2K"; break;
    7513           0 :                 case DNSSRV_TYPEID_ZONE_DATABASE_W2K: val = "DNSSRV_TYPEID_ZONE_DATABASE_W2K"; break;
    7514           0 :                 case DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K: val = "DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K"; break;
    7515           0 :                 case DNSSRV_TYPEID_ZONE_CREATE_W2K: val = "DNSSRV_TYPEID_ZONE_CREATE_W2K"; break;
    7516           0 :                 case DNSSRV_TYPEID_NAME_AND_PARAM: val = "DNSSRV_TYPEID_NAME_AND_PARAM"; break;
    7517           0 :                 case DNSSRV_TYPEID_ZONE_LIST_W2K: val = "DNSSRV_TYPEID_ZONE_LIST_W2K"; break;
    7518           0 :                 case DNSSRV_TYPEID_ZONE_RENAME: val = "DNSSRV_TYPEID_ZONE_RENAME"; break;
    7519           0 :                 case DNSSRV_TYPEID_ZONE_EXPORT: val = "DNSSRV_TYPEID_ZONE_EXPORT"; break;
    7520           0 :                 case DNSSRV_TYPEID_SERVER_INFO_DOTNET: val = "DNSSRV_TYPEID_SERVER_INFO_DOTNET"; break;
    7521           0 :                 case DNSSRV_TYPEID_FORWARDERS_DOTNET: val = "DNSSRV_TYPEID_FORWARDERS_DOTNET"; break;
    7522           0 :                 case DNSSRV_TYPEID_ZONE: val = "DNSSRV_TYPEID_ZONE"; break;
    7523           0 :                 case DNSSRV_TYPEID_ZONE_INFO_DOTNET: val = "DNSSRV_TYPEID_ZONE_INFO_DOTNET"; break;
    7524           0 :                 case DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET: val = "DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET"; break;
    7525           0 :                 case DNSSRV_TYPEID_ZONE_DATABASE: val = "DNSSRV_TYPEID_ZONE_DATABASE"; break;
    7526           0 :                 case DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET: val = "DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET"; break;
    7527           0 :                 case DNSSRV_TYPEID_ZONE_CREATE_DOTNET: val = "DNSSRV_TYPEID_ZONE_CREATE_DOTNET"; break;
    7528           0 :                 case DNSSRV_TYPEID_ZONE_LIST: val = "DNSSRV_TYPEID_ZONE_LIST"; break;
    7529           0 :                 case DNSSRV_TYPEID_DP_ENUM: val = "DNSSRV_TYPEID_DP_ENUM"; break;
    7530           0 :                 case DNSSRV_TYPEID_DP_INFO: val = "DNSSRV_TYPEID_DP_INFO"; break;
    7531           0 :                 case DNSSRV_TYPEID_DP_LIST: val = "DNSSRV_TYPEID_DP_LIST"; break;
    7532           0 :                 case DNSSRV_TYPEID_ENLIST_DP: val = "DNSSRV_TYPEID_ENLIST_DP"; break;
    7533           0 :                 case DNSSRV_TYPEID_ZONE_CHANGE_DP: val = "DNSSRV_TYPEID_ZONE_CHANGE_DP"; break;
    7534           0 :                 case DNSSRV_TYPEID_ENUM_ZONES_FILTER: val = "DNSSRV_TYPEID_ENUM_ZONES_FILTER"; break;
    7535           0 :                 case DNSSRV_TYPEID_ADDRARRAY: val = "DNSSRV_TYPEID_ADDRARRAY"; break;
    7536           0 :                 case DNSSRV_TYPEID_SERVER_INFO: val = "DNSSRV_TYPEID_SERVER_INFO"; break;
    7537           0 :                 case DNSSRV_TYPEID_ZONE_INFO: val = "DNSSRV_TYPEID_ZONE_INFO"; break;
    7538           0 :                 case DNSSRV_TYPEID_FORWARDERS: val = "DNSSRV_TYPEID_FORWARDERS"; break;
    7539           0 :                 case DNSSRV_TYPEID_ZONE_SECONDARIES: val = "DNSSRV_TYPEID_ZONE_SECONDARIES"; break;
    7540           0 :                 case DNSSRV_TYPEID_ZONE_TYPE_RESET: val = "DNSSRV_TYPEID_ZONE_TYPE_RESET"; break;
    7541           0 :                 case DNSSRV_TYPEID_ZONE_CREATE: val = "DNSSRV_TYPEID_ZONE_CREATE"; break;
    7542           0 :                 case DNSSRV_TYPEID_IP_VALIDATE: val = "DNSSRV_TYPEID_IP_VALIDATE"; break;
    7543           0 :                 case DNSSRV_TYPEID_AUTOCONFIGURE: val = "DNSSRV_TYPEID_AUTOCONFIGURE"; break;
    7544           0 :                 case DNSSRV_TYPEID_UTF8_STRING_LIST: val = "DNSSRV_TYPEID_UTF8_STRING_LIST"; break;
    7545           0 :                 case DNSSRV_TYPEID_UNICODE_STRING_LIST: val = "DNSSRV_TYPEID_UNICODE_STRING_LIST"; break;
    7546             :         }
    7547           2 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    7548           2 : }
    7549             : 
    7550        1704 : static enum ndr_err_code ndr_push_DNSSRV_RPC_UNION(struct ndr_push *ndr, int ndr_flags, const union DNSSRV_RPC_UNION *r)
    7551             : {
    7552             :         uint32_t level;
    7553        1704 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    7554        1704 :         if (ndr_flags & NDR_SCALARS) {
    7555             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    7556        1704 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    7557        1704 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
    7558        1704 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, level));
    7559        1704 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
    7560        1704 :                 switch (level) {
    7561         425 :                         case DNSSRV_TYPEID_NULL: {
    7562         425 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Null));
    7563         425 :                         break; }
    7564             : 
    7565          18 :                         case DNSSRV_TYPEID_DWORD: {
    7566          18 :                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Dword));
    7567          18 :                         break; }
    7568             : 
    7569           0 :                         case DNSSRV_TYPEID_LPSTR: {
    7570           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->String));
    7571           0 :                         break; }
    7572             : 
    7573           0 :                         case DNSSRV_TYPEID_LPWSTR: {
    7574           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->WideString));
    7575           0 :                         break; }
    7576             : 
    7577           0 :                         case DNSSRV_TYPEID_IPARRAY: {
    7578           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->IpArray));
    7579           0 :                         break; }
    7580             : 
    7581           0 :                         case DNSSRV_TYPEID_BUFFER: {
    7582           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Buffer));
    7583           0 :                         break; }
    7584             : 
    7585           4 :                         case DNSSRV_TYPEID_SERVER_INFO_W2K: {
    7586           4 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ServerInfoW2K));
    7587           4 :                         break; }
    7588             : 
    7589           0 :                         case DNSSRV_TYPEID_STATS: {
    7590           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Stats));
    7591           0 :                         break; }
    7592             : 
    7593           0 :                         case DNSSRV_TYPEID_FORWARDERS_W2K: {
    7594           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ForwardersW2K));
    7595           0 :                         break; }
    7596             : 
    7597           0 :                         case DNSSRV_TYPEID_ZONE_W2K: {
    7598           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneW2K));
    7599           0 :                         break; }
    7600             : 
    7601           0 :                         case DNSSRV_TYPEID_ZONE_INFO_W2K: {
    7602           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneInfoW2K));
    7603           0 :                         break; }
    7604             : 
    7605           0 :                         case DNSSRV_TYPEID_ZONE_SECONDARIES_W2K: {
    7606           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->SecondariesW2K));
    7607           0 :                         break; }
    7608             : 
    7609           0 :                         case DNSSRV_TYPEID_ZONE_DATABASE_W2K: {
    7610           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->DatabaseW2K));
    7611           0 :                         break; }
    7612             : 
    7613           0 :                         case DNSSRV_TYPEID_ZONE_CREATE_W2K: {
    7614           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneCreateW2K));
    7615           0 :                         break; }
    7616             : 
    7617         793 :                         case DNSSRV_TYPEID_NAME_AND_PARAM: {
    7618         793 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->NameAndParam));
    7619         793 :                         break; }
    7620             : 
    7621           0 :                         case DNSSRV_TYPEID_ZONE_LIST_W2K: {
    7622           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneListW2K));
    7623           0 :                         break; }
    7624             : 
    7625           4 :                         case DNSSRV_TYPEID_SERVER_INFO_DOTNET: {
    7626           4 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ServerInfoDotNet));
    7627           4 :                         break; }
    7628             : 
    7629           0 :                         case DNSSRV_TYPEID_FORWARDERS_DOTNET: {
    7630           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ForwardersDotNet));
    7631           0 :                         break; }
    7632             : 
    7633           0 :                         case DNSSRV_TYPEID_ZONE: {
    7634           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Zone));
    7635           0 :                         break; }
    7636             : 
    7637           0 :                         case DNSSRV_TYPEID_ZONE_INFO_DOTNET: {
    7638           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneInfoDotNet));
    7639           0 :                         break; }
    7640             : 
    7641           0 :                         case DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET: {
    7642           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->SecondariesDotNet));
    7643           0 :                         break; }
    7644             : 
    7645           0 :                         case DNSSRV_TYPEID_ZONE_DATABASE: {
    7646           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Database));
    7647           0 :                         break; }
    7648             : 
    7649           0 :                         case DNSSRV_TYPEID_ZONE_CREATE_DOTNET: {
    7650           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneCreateDotNet));
    7651           0 :                         break; }
    7652             : 
    7653          18 :                         case DNSSRV_TYPEID_ZONE_LIST: {
    7654          18 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneList));
    7655          18 :                         break; }
    7656             : 
    7657           0 :                         case DNSSRV_TYPEID_ZONE_EXPORT: {
    7658           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneExport));
    7659           0 :                         break; }
    7660             : 
    7661           0 :                         case DNSSRV_TYPEID_DP_INFO: {
    7662           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->DirectoryPartition));
    7663           0 :                         break; }
    7664             : 
    7665           0 :                         case DNSSRV_TYPEID_DP_ENUM: {
    7666           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->DirectoryPartitionEnum));
    7667           0 :                         break; }
    7668             : 
    7669           0 :                         case DNSSRV_TYPEID_DP_LIST: {
    7670           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->DirectoryPartitionList));
    7671           0 :                         break; }
    7672             : 
    7673           0 :                         case DNSSRV_TYPEID_ENLIST_DP: {
    7674           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->EnlistDirectoryPartition));
    7675           0 :                         break; }
    7676             : 
    7677           0 :                         case DNSSRV_TYPEID_ZONE_CHANGE_DP: {
    7678           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneChangeDirectoryPartition));
    7679           0 :                         break; }
    7680             : 
    7681           0 :                         case DNSSRV_TYPEID_ENUM_ZONES_FILTER: {
    7682           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->EnumZonesFilter));
    7683           0 :                         break; }
    7684             : 
    7685           0 :                         case DNSSRV_TYPEID_ADDRARRAY: {
    7686           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->AddrArray));
    7687           0 :                         break; }
    7688             : 
    7689           4 :                         case DNSSRV_TYPEID_SERVER_INFO: {
    7690           4 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ServerInfo));
    7691           4 :                         break; }
    7692             : 
    7693         423 :                         case DNSSRV_TYPEID_ZONE_CREATE: {
    7694         423 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneCreate));
    7695         423 :                         break; }
    7696             : 
    7697           0 :                         case DNSSRV_TYPEID_FORWARDERS: {
    7698           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Forwarders));
    7699           0 :                         break; }
    7700             : 
    7701           0 :                         case DNSSRV_TYPEID_ZONE_SECONDARIES: {
    7702           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Secondaries));
    7703           0 :                         break; }
    7704             : 
    7705           0 :                         case DNSSRV_TYPEID_IP_VALIDATE: {
    7706           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->IpValidate));
    7707           0 :                         break; }
    7708             : 
    7709          15 :                         case DNSSRV_TYPEID_ZONE_INFO: {
    7710          15 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ZoneInfo));
    7711          15 :                         break; }
    7712             : 
    7713           0 :                         case DNSSRV_TYPEID_AUTOCONFIGURE: {
    7714           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->AutoConfigure));
    7715           0 :                         break; }
    7716             : 
    7717           0 :                         case DNSSRV_TYPEID_UTF8_STRING_LIST: {
    7718           0 :                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->Utf8StringList));
    7719