LCOV - code coverage report
Current view: top level - bin/default/librpc/gen_ndr - ndr_witness.c (source / functions) Hit Total Coverage
Test: coverage report for master 70ed9daf Lines: 653 1027 63.6 %
Date: 2024-01-11 09:59:51 Functions: 41 61 67.2 %

          Line data    Source code
       1             : /* parser auto-generated by pidl */
       2             : 
       3             : #include "includes.h"
       4             : #include "bin/default/librpc/gen_ndr/ndr_witness.h"
       5             : 
       6             : #include "librpc/gen_ndr/ndr_misc.h"
       7           0 : _PUBLIC_ enum ndr_err_code ndr_push_witness_version(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum witness_version r)
       8             : {
       9             :         {
      10           0 :                 libndr_flags _flags_save_ENUM = ndr->flags;
      11           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      12           0 :                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
      13           0 :                 ndr->flags = _flags_save_ENUM;
      14             :         }
      15           0 :         return NDR_ERR_SUCCESS;
      16             : }
      17             : 
      18           6 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_version(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum witness_version *r)
      19             : {
      20           6 :         uint32_t v;
      21             :         {
      22           6 :                 libndr_flags _flags_save_ENUM = ndr->flags;
      23           6 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      24           6 :                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
      25           6 :                 *r = v;
      26           6 :                 ndr->flags = _flags_save_ENUM;
      27             :         }
      28           6 :         return NDR_ERR_SUCCESS;
      29             : }
      30             : 
      31           6 : _PUBLIC_ void ndr_print_witness_version(struct ndr_print *ndr, const char *name, enum witness_version r)
      32             : {
      33           6 :         const char *val = NULL;
      34             : 
      35             :         {
      36           6 :                 libndr_flags _flags_save_ENUM = ndr->flags;
      37           6 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      38           6 :                 switch (r) {
      39           2 :                         case WITNESS_V1: val = "WITNESS_V1"; break;
      40           0 :                         case WITNESS_V2: val = "WITNESS_V2"; break;
      41           4 :                         case WITNESS_UNSPECIFIED_VERSION: val = "WITNESS_UNSPECIFIED_VERSION"; break;
      42             :                 }
      43           6 :                 ndr_print_enum(ndr, name, "ENUM", val, r);
      44           6 :                 ndr->flags = _flags_save_ENUM;
      45             :         }
      46           6 : }
      47             : 
      48           0 : static enum ndr_err_code ndr_push_witness_interfaceInfo_state(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum witness_interfaceInfo_state r)
      49             : {
      50             :         {
      51           0 :                 libndr_flags _flags_save_ENUM = ndr->flags;
      52           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      53           0 :                 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
      54           0 :                 ndr->flags = _flags_save_ENUM;
      55             :         }
      56           0 :         return NDR_ERR_SUCCESS;
      57             : }
      58             : 
      59           4 : static enum ndr_err_code ndr_pull_witness_interfaceInfo_state(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum witness_interfaceInfo_state *r)
      60             : {
      61           4 :         uint16_t v;
      62             :         {
      63           4 :                 libndr_flags _flags_save_ENUM = ndr->flags;
      64           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      65           4 :                 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
      66           4 :                 *r = v;
      67           4 :                 ndr->flags = _flags_save_ENUM;
      68             :         }
      69           4 :         return NDR_ERR_SUCCESS;
      70             : }
      71             : 
      72           4 : _PUBLIC_ void ndr_print_witness_interfaceInfo_state(struct ndr_print *ndr, const char *name, enum witness_interfaceInfo_state r)
      73             : {
      74           4 :         const char *val = NULL;
      75             : 
      76             :         {
      77           4 :                 libndr_flags _flags_save_ENUM = ndr->flags;
      78           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      79           4 :                 switch (r) {
      80           0 :                         case WITNESS_STATE_UNKNOWN: val = "WITNESS_STATE_UNKNOWN"; break;
      81           4 :                         case WITNESS_STATE_AVAILABLE: val = "WITNESS_STATE_AVAILABLE"; break;
      82           0 :                         case WITNESS_STATE_UNAVAILABLE: val = "WITNESS_STATE_UNAVAILABLE"; break;
      83             :                 }
      84           4 :                 ndr_print_enum(ndr, name, "ENUM", val, r);
      85           4 :                 ndr->flags = _flags_save_ENUM;
      86             :         }
      87           4 : }
      88             : 
      89           0 : static enum ndr_err_code ndr_push_witness_interfaceInfo_flags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
      90             : {
      91           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
      92           0 :         return NDR_ERR_SUCCESS;
      93             : }
      94             : 
      95           4 : static enum ndr_err_code ndr_pull_witness_interfaceInfo_flags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
      96             : {
      97           4 :         uint32_t v;
      98           4 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
      99           4 :         *r = v;
     100           4 :         return NDR_ERR_SUCCESS;
     101             : }
     102             : 
     103           4 : _PUBLIC_ void ndr_print_witness_interfaceInfo_flags(struct ndr_print *ndr, const char *name, uint32_t r)
     104             : {
     105           4 :         ndr_print_uint32(ndr, name, r);
     106           4 :         ndr->depth++;
     107           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_INFO_IPv4_VALID", WITNESS_INFO_IPv4_VALID, r);
     108           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_INFO_IPv6_VALID", WITNESS_INFO_IPv6_VALID, r);
     109           4 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_INFO_WITNESS_IF", WITNESS_INFO_WITNESS_IF, r);
     110           4 :         ndr->depth--;
     111           4 : }
     112             : 
     113           0 : static enum ndr_err_code ndr_push_witness_interfaceInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct witness_interfaceInfo *r)
     114             : {
     115           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     116           0 :         if (ndr_flags & NDR_SCALARS) {
     117           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     118           0 :                 NDR_CHECK(ndr_push_charset_to_null(ndr, NDR_SCALARS, r->group_name, 260, sizeof(uint16_t), CH_UTF16));
     119           0 :                 NDR_CHECK(ndr_push_witness_version(ndr, NDR_SCALARS, r->version));
     120           0 :                 NDR_CHECK(ndr_push_witness_interfaceInfo_state(ndr, NDR_SCALARS, r->state));
     121             :                 {
     122           0 :                         libndr_flags _flags_save_ipv4address = ndr->flags;
     123           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     124           0 :                         NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->ipv4));
     125           0 :                         ndr->flags = _flags_save_ipv4address;
     126             :                 }
     127             :                 {
     128           0 :                         libndr_flags _flags_save_ipv6address = ndr->flags;
     129           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     130           0 :                         NDR_CHECK(ndr_push_ipv6address(ndr, NDR_SCALARS, r->ipv6));
     131           0 :                         ndr->flags = _flags_save_ipv6address;
     132             :                 }
     133           0 :                 NDR_CHECK(ndr_push_witness_interfaceInfo_flags(ndr, NDR_SCALARS, r->flags));
     134           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     135             :         }
     136           0 :         if (ndr_flags & NDR_BUFFERS) {
     137           0 :         }
     138           0 :         return NDR_ERR_SUCCESS;
     139             : }
     140             : 
     141           4 : static enum ndr_err_code ndr_pull_witness_interfaceInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct witness_interfaceInfo *r)
     142             : {
     143           4 :         uint32_t size_group_name_0 = 0;
     144           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     145           4 :         if (ndr_flags & NDR_SCALARS) {
     146           4 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     147           4 :                 size_group_name_0 = 260;
     148           4 :                 NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->group_name, size_group_name_0, sizeof(uint16_t), CH_UTF16));
     149           4 :                 NDR_CHECK(ndr_pull_witness_version(ndr, NDR_SCALARS, &r->version));
     150           4 :                 NDR_CHECK(ndr_pull_witness_interfaceInfo_state(ndr, NDR_SCALARS, &r->state));
     151             :                 {
     152           4 :                         libndr_flags _flags_save_ipv4address = ndr->flags;
     153           4 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     154           4 :                         NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->ipv4));
     155           4 :                         ndr->flags = _flags_save_ipv4address;
     156             :                 }
     157             :                 {
     158           4 :                         libndr_flags _flags_save_ipv6address = ndr->flags;
     159           4 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     160           4 :                         NDR_CHECK(ndr_pull_ipv6address(ndr, NDR_SCALARS, &r->ipv6));
     161           4 :                         ndr->flags = _flags_save_ipv6address;
     162             :                 }
     163           8 :                 NDR_CHECK(ndr_pull_witness_interfaceInfo_flags(ndr, NDR_SCALARS, &r->flags));
     164           4 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     165             :         }
     166           4 :         if (ndr_flags & NDR_BUFFERS) {
     167           4 :         }
     168           4 :         return NDR_ERR_SUCCESS;
     169             : }
     170             : 
     171           4 : _PUBLIC_ void ndr_print_witness_interfaceInfo(struct ndr_print *ndr, const char *name, const struct witness_interfaceInfo *r)
     172             : {
     173           4 :         ndr_print_struct(ndr, name, "witness_interfaceInfo");
     174           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
     175           4 :         ndr->depth++;
     176           4 :         ndr_print_string(ndr, "group_name", r->group_name);
     177           4 :         ndr_print_witness_version(ndr, "version", r->version);
     178           4 :         ndr_print_witness_interfaceInfo_state(ndr, "state", r->state);
     179             :         {
     180           4 :                 libndr_flags _flags_save_ipv4address = ndr->flags;
     181           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     182           4 :                 ndr_print_ipv4address(ndr, "ipv4", r->ipv4);
     183           4 :                 ndr->flags = _flags_save_ipv4address;
     184             :         }
     185             :         {
     186           4 :                 libndr_flags _flags_save_ipv6address = ndr->flags;
     187           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     188           4 :                 ndr_print_ipv6address(ndr, "ipv6", r->ipv6);
     189           4 :                 ndr->flags = _flags_save_ipv6address;
     190             :         }
     191           4 :         ndr_print_witness_interfaceInfo_flags(ndr, "flags", r->flags);
     192           4 :         ndr->depth--;
     193             : }
     194             : 
     195           0 : static enum ndr_err_code ndr_push_witness_interfaceList(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct witness_interfaceList *r)
     196             : {
     197           0 :         uint32_t cntr_interfaces_1;
     198           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     199           0 :         if (ndr_flags & NDR_SCALARS) {
     200           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     201           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_interfaces));
     202           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->interfaces));
     203           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     204             :         }
     205           0 :         if (ndr_flags & NDR_BUFFERS) {
     206           0 :                 if (r->interfaces) {
     207           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_interfaces));
     208           0 :                         for (cntr_interfaces_1 = 0; cntr_interfaces_1 < (r->num_interfaces); cntr_interfaces_1++) {
     209           0 :                                 NDR_CHECK(ndr_push_witness_interfaceInfo(ndr, NDR_SCALARS, &r->interfaces[cntr_interfaces_1]));
     210             :                         }
     211             :                 }
     212             :         }
     213           0 :         return NDR_ERR_SUCCESS;
     214             : }
     215             : 
     216           2 : static enum ndr_err_code ndr_pull_witness_interfaceList(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct witness_interfaceList *r)
     217             : {
     218           2 :         uint32_t _ptr_interfaces;
     219           2 :         uint32_t size_interfaces_1 = 0;
     220           2 :         uint32_t cntr_interfaces_1;
     221           2 :         TALLOC_CTX *_mem_save_interfaces_0 = NULL;
     222           2 :         TALLOC_CTX *_mem_save_interfaces_1 = NULL;
     223           2 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     224           2 :         if (ndr_flags & NDR_SCALARS) {
     225           2 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     226           2 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_interfaces));
     227           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_interfaces));
     228           2 :                 if (_ptr_interfaces) {
     229           2 :                         NDR_PULL_ALLOC(ndr, r->interfaces);
     230             :                 } else {
     231           0 :                         r->interfaces = NULL;
     232             :                 }
     233           2 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     234             :         }
     235           2 :         if (ndr_flags & NDR_BUFFERS) {
     236           2 :                 if (r->interfaces) {
     237           2 :                         _mem_save_interfaces_0 = NDR_PULL_GET_MEM_CTX(ndr);
     238           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->interfaces, 0);
     239           2 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->interfaces));
     240           2 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->interfaces, &size_interfaces_1));
     241           2 :                         NDR_PULL_ALLOC_N(ndr, r->interfaces, size_interfaces_1);
     242           2 :                         _mem_save_interfaces_1 = NDR_PULL_GET_MEM_CTX(ndr);
     243           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->interfaces, 0);
     244           6 :                         for (cntr_interfaces_1 = 0; cntr_interfaces_1 < (size_interfaces_1); cntr_interfaces_1++) {
     245           4 :                                 NDR_CHECK(ndr_pull_witness_interfaceInfo(ndr, NDR_SCALARS, &r->interfaces[cntr_interfaces_1]));
     246             :                         }
     247           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_interfaces_1, 0);
     248           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_interfaces_0, 0);
     249             :                 }
     250           2 :                 if (r->interfaces) {
     251           2 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->interfaces, r->num_interfaces));
     252             :                 }
     253             :         }
     254           0 :         return NDR_ERR_SUCCESS;
     255             : }
     256             : 
     257           2 : _PUBLIC_ void ndr_print_witness_interfaceList(struct ndr_print *ndr, const char *name, const struct witness_interfaceList *r)
     258             : {
     259           2 :         uint32_t cntr_interfaces_1;
     260           2 :         ndr_print_struct(ndr, name, "witness_interfaceList");
     261           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     262           2 :         ndr->depth++;
     263           2 :         ndr_print_uint32(ndr, "num_interfaces", r->num_interfaces);
     264           2 :         ndr_print_ptr(ndr, "interfaces", r->interfaces);
     265           2 :         ndr->depth++;
     266           2 :         if (r->interfaces) {
     267           2 :                 ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "interfaces", (uint32_t)(r->num_interfaces));
     268           2 :                 ndr->depth++;
     269           6 :                 for (cntr_interfaces_1 = 0; cntr_interfaces_1 < (r->num_interfaces); cntr_interfaces_1++) {
     270           4 :                         ndr_print_witness_interfaceInfo(ndr, "interfaces", &r->interfaces[cntr_interfaces_1]);
     271             :                 }
     272           2 :                 ndr->depth--;
     273             :         }
     274           2 :         ndr->depth--;
     275           2 :         ndr->depth--;
     276             : }
     277             : 
     278          24 : _PUBLIC_ enum ndr_err_code ndr_push_witness_notifyResponse_type(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum witness_notifyResponse_type r)
     279             : {
     280          24 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     281           0 :         return NDR_ERR_SUCCESS;
     282             : }
     283             : 
     284          10 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_notifyResponse_type(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum witness_notifyResponse_type *r)
     285             : {
     286          10 :         uint32_t v;
     287          10 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     288          10 :         *r = v;
     289          10 :         return NDR_ERR_SUCCESS;
     290             : }
     291             : 
     292          10 : _PUBLIC_ void ndr_print_witness_notifyResponse_type(struct ndr_print *ndr, const char *name, enum witness_notifyResponse_type r)
     293             : {
     294          10 :         const char *val = NULL;
     295             : 
     296          10 :         switch (r) {
     297           4 :                 case WITNESS_NOTIFY_RESOURCE_CHANGE: val = "WITNESS_NOTIFY_RESOURCE_CHANGE"; break;
     298           6 :                 case WITNESS_NOTIFY_CLIENT_MOVE: val = "WITNESS_NOTIFY_CLIENT_MOVE"; break;
     299           0 :                 case WITNESS_NOTIFY_SHARE_MOVE: val = "WITNESS_NOTIFY_SHARE_MOVE"; break;
     300           0 :                 case WITNESS_NOTIFY_IP_CHANGE: val = "WITNESS_NOTIFY_IP_CHANGE"; break;
     301             :         }
     302          10 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     303          10 : }
     304             : 
     305          10 : static enum ndr_err_code ndr_push_witness_ResourceChange_type(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum witness_ResourceChange_type r)
     306             : {
     307             :         {
     308          10 :                 libndr_flags _flags_save_ENUM = ndr->flags;
     309          10 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     310          10 :                 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
     311          10 :                 ndr->flags = _flags_save_ENUM;
     312             :         }
     313          10 :         return NDR_ERR_SUCCESS;
     314             : }
     315             : 
     316           4 : static enum ndr_err_code ndr_pull_witness_ResourceChange_type(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum witness_ResourceChange_type *r)
     317             : {
     318           4 :         uint32_t v;
     319             :         {
     320           4 :                 libndr_flags _flags_save_ENUM = ndr->flags;
     321           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     322           4 :                 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
     323           4 :                 *r = v;
     324           4 :                 ndr->flags = _flags_save_ENUM;
     325             :         }
     326           4 :         return NDR_ERR_SUCCESS;
     327             : }
     328             : 
     329           4 : _PUBLIC_ void ndr_print_witness_ResourceChange_type(struct ndr_print *ndr, const char *name, enum witness_ResourceChange_type r)
     330             : {
     331           4 :         const char *val = NULL;
     332             : 
     333             :         {
     334           4 :                 libndr_flags _flags_save_ENUM = ndr->flags;
     335           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     336           4 :                 switch (r) {
     337           0 :                         case WITNESS_RESOURCE_STATE_UNKNOWN: val = "WITNESS_RESOURCE_STATE_UNKNOWN"; break;
     338           0 :                         case WITNESS_RESOURCE_STATE_AVAILABLE: val = "WITNESS_RESOURCE_STATE_AVAILABLE"; break;
     339           4 :                         case WITNESS_RESOURCE_STATE_UNAVAILABLE: val = "WITNESS_RESOURCE_STATE_UNAVAILABLE"; break;
     340             :                 }
     341           4 :                 ndr_print_enum(ndr, name, "ENUM", val, r);
     342           4 :                 ndr->flags = _flags_save_ENUM;
     343             :         }
     344           4 : }
     345             : 
     346          10 : _PUBLIC_ enum ndr_err_code ndr_push_witness_ResourceChange(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct witness_ResourceChange *r)
     347             : {
     348             :         {
     349          10 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     350          10 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     351          10 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     352          10 :                 if (ndr_flags & NDR_SCALARS) {
     353          10 :                         NDR_CHECK(ndr_push_align(ndr, 4));
     354          10 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_witness_ResourceChange(r, ndr->flags)));
     355          10 :                         NDR_CHECK(ndr_push_witness_ResourceChange_type(ndr, NDR_SCALARS, r->type));
     356             :                         {
     357          10 :                                 libndr_flags _flags_save_string = ndr->flags;
     358          10 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     359          10 :                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
     360          10 :                                 ndr->flags = _flags_save_string;
     361             :                         }
     362          10 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     363             :                 }
     364          10 :                 if (ndr_flags & NDR_BUFFERS) {
     365          10 :                 }
     366          10 :                 ndr->flags = _flags_save_STRUCT;
     367             :         }
     368          10 :         return NDR_ERR_SUCCESS;
     369             : }
     370             : 
     371           4 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_ResourceChange(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct witness_ResourceChange *r)
     372             : {
     373             :         {
     374           4 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     375           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     376           4 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     377           4 :                 if (ndr_flags & NDR_SCALARS) {
     378           4 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
     379           4 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
     380           4 :                         NDR_CHECK(ndr_pull_witness_ResourceChange_type(ndr, NDR_SCALARS, &r->type));
     381             :                         {
     382           4 :                                 libndr_flags _flags_save_string = ndr->flags;
     383           4 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     384           4 :                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
     385           4 :                                 ndr->flags = _flags_save_string;
     386             :                         }
     387           4 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     388             :                 }
     389           4 :                 if (ndr_flags & NDR_BUFFERS) {
     390           4 :                 }
     391           4 :                 ndr->flags = _flags_save_STRUCT;
     392             :         }
     393           4 :         return NDR_ERR_SUCCESS;
     394             : }
     395             : 
     396           0 : static void ndr_print_flags_witness_ResourceChange(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct witness_ResourceChange *r)
     397             : {
     398           0 :         ndr_print_witness_ResourceChange(ndr, name, r);
     399           0 : }
     400             : 
     401           4 : _PUBLIC_ void ndr_print_witness_ResourceChange(struct ndr_print *ndr, const char *name, const struct witness_ResourceChange *r)
     402             : {
     403           4 :         ndr_print_struct(ndr, name, "witness_ResourceChange");
     404           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
     405             :         {
     406           4 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     407           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     408           4 :                 ndr->depth++;
     409           4 :                 ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_witness_ResourceChange(r, ndr->flags):r->length);
     410           4 :                 ndr_print_witness_ResourceChange_type(ndr, "type", r->type);
     411             :                 {
     412           4 :                         libndr_flags _flags_save_string = ndr->flags;
     413           4 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
     414           4 :                         ndr_print_string(ndr, "name", r->name);
     415           4 :                         ndr->flags = _flags_save_string;
     416             :                 }
     417           4 :                 ndr->depth--;
     418           4 :                 ndr->flags = _flags_save_STRUCT;
     419             :         }
     420             : }
     421             : 
     422          10 : _PUBLIC_ size_t ndr_size_witness_ResourceChange(const struct witness_ResourceChange *r, libndr_flags flags)
     423             : {
     424          10 :         flags |= LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN;
     425          10 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_witness_ResourceChange);
     426             : }
     427             : 
     428          10 : static enum ndr_err_code ndr_push_witness_IPaddrInfo_flags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
     429             : {
     430          10 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     431           0 :         return NDR_ERR_SUCCESS;
     432             : }
     433             : 
     434           2 : static enum ndr_err_code ndr_pull_witness_IPaddrInfo_flags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
     435             : {
     436           2 :         uint32_t v;
     437           2 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     438           2 :         *r = v;
     439           2 :         return NDR_ERR_SUCCESS;
     440             : }
     441             : 
     442           2 : _PUBLIC_ void ndr_print_witness_IPaddrInfo_flags(struct ndr_print *ndr, const char *name, uint32_t r)
     443             : {
     444           2 :         ndr_print_uint32(ndr, name, r);
     445           2 :         ndr->depth++;
     446           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_IPADDR_V4", WITNESS_IPADDR_V4, r);
     447           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_IPADDR_V6", WITNESS_IPADDR_V6, r);
     448           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_IPADDR_ONLINE", WITNESS_IPADDR_ONLINE, r);
     449           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_IPADDR_OFFLINE", WITNESS_IPADDR_OFFLINE, r);
     450           2 :         ndr->depth--;
     451           2 : }
     452             : 
     453          10 : static enum ndr_err_code ndr_push_witness_IPaddrInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct witness_IPaddrInfo *r)
     454             : {
     455             :         {
     456          10 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     457          10 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     458          10 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     459          10 :                 if (ndr_flags & NDR_SCALARS) {
     460          10 :                         NDR_CHECK(ndr_push_align(ndr, 4));
     461          20 :                         NDR_CHECK(ndr_push_witness_IPaddrInfo_flags(ndr, NDR_SCALARS, r->flags));
     462             :                         {
     463          10 :                                 libndr_flags _flags_save_ipv4address = ndr->flags;
     464          10 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     465          10 :                                 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->ipv4));
     466          10 :                                 ndr->flags = _flags_save_ipv4address;
     467             :                         }
     468             :                         {
     469          10 :                                 libndr_flags _flags_save_ipv6address = ndr->flags;
     470          10 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     471          10 :                                 NDR_CHECK(ndr_push_ipv6address(ndr, NDR_SCALARS, r->ipv6));
     472          10 :                                 ndr->flags = _flags_save_ipv6address;
     473             :                         }
     474          10 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     475             :                 }
     476          10 :                 if (ndr_flags & NDR_BUFFERS) {
     477          10 :                 }
     478          10 :                 ndr->flags = _flags_save_STRUCT;
     479             :         }
     480          10 :         return NDR_ERR_SUCCESS;
     481             : }
     482             : 
     483           2 : static enum ndr_err_code ndr_pull_witness_IPaddrInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct witness_IPaddrInfo *r)
     484             : {
     485             :         {
     486           2 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     487           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     488           2 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     489           2 :                 if (ndr_flags & NDR_SCALARS) {
     490           2 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
     491           4 :                         NDR_CHECK(ndr_pull_witness_IPaddrInfo_flags(ndr, NDR_SCALARS, &r->flags));
     492             :                         {
     493           2 :                                 libndr_flags _flags_save_ipv4address = ndr->flags;
     494           2 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     495           2 :                                 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->ipv4));
     496           2 :                                 ndr->flags = _flags_save_ipv4address;
     497             :                         }
     498             :                         {
     499           2 :                                 libndr_flags _flags_save_ipv6address = ndr->flags;
     500           2 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     501           2 :                                 NDR_CHECK(ndr_pull_ipv6address(ndr, NDR_SCALARS, &r->ipv6));
     502           2 :                                 ndr->flags = _flags_save_ipv6address;
     503             :                         }
     504           2 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     505             :                 }
     506           2 :                 if (ndr_flags & NDR_BUFFERS) {
     507           2 :                 }
     508           2 :                 ndr->flags = _flags_save_STRUCT;
     509             :         }
     510           2 :         return NDR_ERR_SUCCESS;
     511             : }
     512             : 
     513           2 : _PUBLIC_ void ndr_print_witness_IPaddrInfo(struct ndr_print *ndr, const char *name, const struct witness_IPaddrInfo *r)
     514             : {
     515           2 :         ndr_print_struct(ndr, name, "witness_IPaddrInfo");
     516           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     517             :         {
     518           2 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     519           2 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     520           2 :                 ndr->depth++;
     521           2 :                 ndr_print_witness_IPaddrInfo_flags(ndr, "flags", r->flags);
     522             :                 {
     523           2 :                         libndr_flags _flags_save_ipv4address = ndr->flags;
     524           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     525           2 :                         ndr_print_ipv4address(ndr, "ipv4", r->ipv4);
     526           2 :                         ndr->flags = _flags_save_ipv4address;
     527             :                 }
     528             :                 {
     529           2 :                         libndr_flags _flags_save_ipv6address = ndr->flags;
     530           2 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
     531           2 :                         ndr_print_ipv6address(ndr, "ipv6", r->ipv6);
     532           2 :                         ndr->flags = _flags_save_ipv6address;
     533             :                 }
     534           2 :                 ndr->depth--;
     535           2 :                 ndr->flags = _flags_save_STRUCT;
     536             :         }
     537             : }
     538             : 
     539          20 : _PUBLIC_ enum ndr_err_code ndr_push_witness_IPaddrInfoList(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct witness_IPaddrInfoList *r)
     540             : {
     541          20 :         uint32_t cntr_addr_0;
     542             :         {
     543          20 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     544          20 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     545          20 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     546          20 :                 if (ndr_flags & NDR_SCALARS) {
     547          20 :                         NDR_CHECK(ndr_push_align(ndr, 4));
     548          20 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_witness_IPaddrInfoList(r, ndr->flags)));
     549          20 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
     550          20 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num));
     551          30 :                         for (cntr_addr_0 = 0; cntr_addr_0 < (r->num); cntr_addr_0++) {
     552          10 :                                 NDR_CHECK(ndr_push_witness_IPaddrInfo(ndr, NDR_SCALARS, &r->addr[cntr_addr_0]));
     553             :                         }
     554          20 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     555             :                 }
     556          20 :                 if (ndr_flags & NDR_BUFFERS) {
     557          20 :                 }
     558          20 :                 ndr->flags = _flags_save_STRUCT;
     559             :         }
     560          20 :         return NDR_ERR_SUCCESS;
     561             : }
     562             : 
     563           6 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_IPaddrInfoList(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct witness_IPaddrInfoList *r)
     564             : {
     565           6 :         uint32_t size_addr_0 = 0;
     566           6 :         uint32_t cntr_addr_0;
     567           6 :         TALLOC_CTX *_mem_save_addr_0 = NULL;
     568             :         {
     569           6 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     570           6 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     571           6 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     572           6 :                 if (ndr_flags & NDR_SCALARS) {
     573           6 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
     574           6 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
     575           6 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
     576           6 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num));
     577           6 :                         size_addr_0 = r->num;
     578           6 :                         NDR_PULL_ALLOC_N(ndr, r->addr, size_addr_0);
     579           6 :                         _mem_save_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
     580           6 :                         NDR_PULL_SET_MEM_CTX(ndr, r->addr, 0);
     581           8 :                         for (cntr_addr_0 = 0; cntr_addr_0 < (size_addr_0); cntr_addr_0++) {
     582           2 :                                 NDR_CHECK(ndr_pull_witness_IPaddrInfo(ndr, NDR_SCALARS, &r->addr[cntr_addr_0]));
     583             :                         }
     584           6 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_0, 0);
     585           6 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     586             :                 }
     587           6 :                 if (ndr_flags & NDR_BUFFERS) {
     588           6 :                 }
     589           6 :                 ndr->flags = _flags_save_STRUCT;
     590             :         }
     591           6 :         return NDR_ERR_SUCCESS;
     592             : }
     593             : 
     594           0 : static void ndr_print_flags_witness_IPaddrInfoList(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct witness_IPaddrInfoList *r)
     595             : {
     596           0 :         ndr_print_witness_IPaddrInfoList(ndr, name, r);
     597           0 : }
     598             : 
     599           6 : _PUBLIC_ void ndr_print_witness_IPaddrInfoList(struct ndr_print *ndr, const char *name, const struct witness_IPaddrInfoList *r)
     600             : {
     601           6 :         uint32_t cntr_addr_0;
     602           6 :         ndr_print_struct(ndr, name, "witness_IPaddrInfoList");
     603           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
     604             :         {
     605           6 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     606           6 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     607           6 :                 ndr->depth++;
     608           6 :                 ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_witness_IPaddrInfoList(r, ndr->flags):r->length);
     609           6 :                 ndr_print_uint32(ndr, "reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved);
     610           6 :                 ndr_print_uint32(ndr, "num", r->num);
     611           6 :                 ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "addr", (uint32_t)(r->num));
     612           6 :                 ndr->depth++;
     613           8 :                 for (cntr_addr_0 = 0; cntr_addr_0 < (r->num); cntr_addr_0++) {
     614           2 :                         ndr_print_witness_IPaddrInfo(ndr, "addr", &r->addr[cntr_addr_0]);
     615             :                 }
     616           6 :                 ndr->depth--;
     617           6 :                 ndr->depth--;
     618           6 :                 ndr->flags = _flags_save_STRUCT;
     619             :         }
     620             : }
     621             : 
     622          20 : _PUBLIC_ size_t ndr_size_witness_IPaddrInfoList(const struct witness_IPaddrInfoList *r, libndr_flags flags)
     623             : {
     624          20 :         flags |= LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN;
     625          20 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_witness_IPaddrInfoList);
     626             : }
     627             : 
     628          24 : _PUBLIC_ enum ndr_err_code ndr_push_witness_notifyResponse_message(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union witness_notifyResponse_message *r)
     629             : {
     630          24 :         uint32_t level;
     631             :         {
     632          24 :                 libndr_flags _flags_save_UNION = ndr->flags;
     633          24 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     634          24 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     635          24 :                 if (ndr_flags & NDR_SCALARS) {
     636             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     637          24 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
     638          24 :                         NDR_CHECK(ndr_push_union_align(ndr, 4));
     639          24 :                         switch (level) {
     640           8 :                                 case WITNESS_NOTIFY_RESOURCE_CHANGE: {
     641           8 :                                         NDR_CHECK(ndr_push_witness_ResourceChange(ndr, NDR_SCALARS, &r->resource_change));
     642           0 :                                 break; }
     643             : 
     644          16 :                                 case WITNESS_NOTIFY_CLIENT_MOVE: {
     645          16 :                                         NDR_CHECK(ndr_push_witness_IPaddrInfoList(ndr, NDR_SCALARS, &r->client_move));
     646           0 :                                 break; }
     647             : 
     648           0 :                                 case WITNESS_NOTIFY_SHARE_MOVE: {
     649           0 :                                         NDR_CHECK(ndr_push_witness_IPaddrInfoList(ndr, NDR_SCALARS, &r->share_move));
     650           0 :                                 break; }
     651             : 
     652           0 :                                 case WITNESS_NOTIFY_IP_CHANGE: {
     653           0 :                                         NDR_CHECK(ndr_push_witness_IPaddrInfoList(ndr, NDR_SCALARS, &r->ip_change));
     654           0 :                                 break; }
     655             : 
     656           0 :                                 default: {
     657             :                                         {
     658           0 :                                                 libndr_flags _flags_save_DATA_BLOB = ndr->flags;
     659           0 :                                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     660           0 :                                                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
     661           0 :                                                 ndr->flags = _flags_save_DATA_BLOB;
     662             :                                         }
     663           0 :                                 break; }
     664             : 
     665             :                         }
     666             :                 }
     667          24 :                 ndr->flags = _flags_save_UNION;
     668             :         }
     669          24 :         return NDR_ERR_SUCCESS;
     670             : }
     671             : 
     672          10 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_notifyResponse_message(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union witness_notifyResponse_message *r)
     673             : {
     674          10 :         uint32_t level;
     675             :         {
     676          10 :                 libndr_flags _flags_save_UNION = ndr->flags;
     677          10 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     678          10 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     679          10 :                 if (ndr_flags & NDR_SCALARS) {
     680             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     681          10 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
     682          10 :                         NDR_CHECK(ndr_pull_union_align(ndr, 4));
     683          10 :                         switch (level) {
     684           4 :                                 case WITNESS_NOTIFY_RESOURCE_CHANGE: {
     685           4 :                                         NDR_CHECK(ndr_pull_witness_ResourceChange(ndr, NDR_SCALARS, &r->resource_change));
     686           0 :                                 break; }
     687             : 
     688           6 :                                 case WITNESS_NOTIFY_CLIENT_MOVE: {
     689           6 :                                         NDR_CHECK(ndr_pull_witness_IPaddrInfoList(ndr, NDR_SCALARS, &r->client_move));
     690           0 :                                 break; }
     691             : 
     692           0 :                                 case WITNESS_NOTIFY_SHARE_MOVE: {
     693           0 :                                         NDR_CHECK(ndr_pull_witness_IPaddrInfoList(ndr, NDR_SCALARS, &r->share_move));
     694           0 :                                 break; }
     695             : 
     696           0 :                                 case WITNESS_NOTIFY_IP_CHANGE: {
     697           0 :                                         NDR_CHECK(ndr_pull_witness_IPaddrInfoList(ndr, NDR_SCALARS, &r->ip_change));
     698           0 :                                 break; }
     699             : 
     700           0 :                                 default: {
     701             :                                         {
     702           0 :                                                 libndr_flags _flags_save_DATA_BLOB = ndr->flags;
     703           0 :                                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     704           0 :                                                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
     705           0 :                                                 ndr->flags = _flags_save_DATA_BLOB;
     706             :                                         }
     707           0 :                                 break; }
     708             : 
     709             :                         }
     710             :                 }
     711          10 :                 ndr->flags = _flags_save_UNION;
     712             :         }
     713          10 :         return NDR_ERR_SUCCESS;
     714             : }
     715             : 
     716          10 : _PUBLIC_ void ndr_print_witness_notifyResponse_message(struct ndr_print *ndr, const char *name, const union witness_notifyResponse_message *r)
     717             : {
     718          10 :         uint32_t level;
     719             :         {
     720          10 :                 libndr_flags _flags_save_UNION = ndr->flags;
     721          10 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN);
     722          10 :                 level = ndr_print_steal_switch_value(ndr, r);
     723          10 :                 ndr_print_union(ndr, name, level, "witness_notifyResponse_message");
     724          10 :                 switch (level) {
     725           4 :                         case WITNESS_NOTIFY_RESOURCE_CHANGE:
     726           4 :                                 ndr_print_witness_ResourceChange(ndr, "resource_change", &r->resource_change);
     727           4 :                         break;
     728             : 
     729           6 :                         case WITNESS_NOTIFY_CLIENT_MOVE:
     730           6 :                                 ndr_print_witness_IPaddrInfoList(ndr, "client_move", &r->client_move);
     731           6 :                         break;
     732             : 
     733           0 :                         case WITNESS_NOTIFY_SHARE_MOVE:
     734           0 :                                 ndr_print_witness_IPaddrInfoList(ndr, "share_move", &r->share_move);
     735           0 :                         break;
     736             : 
     737           0 :                         case WITNESS_NOTIFY_IP_CHANGE:
     738           0 :                                 ndr_print_witness_IPaddrInfoList(ndr, "ip_change", &r->ip_change);
     739           0 :                         break;
     740             : 
     741           0 :                         default:
     742             :                                 {
     743           0 :                                         libndr_flags _flags_save_DATA_BLOB = ndr->flags;
     744           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     745           0 :                                         ndr_print_DATA_BLOB(ndr, "data", r->data);
     746           0 :                                         ndr->flags = _flags_save_DATA_BLOB;
     747             :                                 }
     748           0 :                         break;
     749             : 
     750             :                 }
     751          10 :                 ndr->flags = _flags_save_UNION;
     752             :         }
     753          10 : }
     754             : 
     755           0 : static void ndr_print_flags_witness_notifyResponse(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct witness_notifyResponse *r)
     756             : {
     757           0 :         ndr_print_witness_notifyResponse(ndr, name, r);
     758           0 : }
     759             : 
     760          10 : _PUBLIC_ void ndr_print_witness_notifyResponse(struct ndr_print *ndr, const char *name, const struct witness_notifyResponse *r)
     761             : {
     762          10 :         uint32_t cntr_messages_1;
     763          10 :         ndr_print_struct(ndr, name, "witness_notifyResponse");
     764          10 :         if (r == NULL) { ndr_print_null(ndr); return; }
     765             :         {
     766          10 :                 libndr_flags _flags_save_STRUCT = ndr->flags;
     767          10 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     768          10 :                 ndr->depth++;
     769          10 :                 ndr_print_witness_notifyResponse_type(ndr, "type", r->type);
     770          10 :                 ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_witness_notifyResponse(r, ndr->flags) - 20:r->length);
     771          10 :                 ndr_print_uint32(ndr, "num", r->num);
     772             :                 {
     773          10 :                         libndr_flags _flags_save_witness_notifyResponse_message = ndr->flags;
     774          10 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     775          10 :                         ndr_print_ptr(ndr, "messages", r->messages);
     776          10 :                         ndr->depth++;
     777          10 :                         if (r->messages) {
     778          10 :                                 ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "messages", (uint32_t)(r->num));
     779          10 :                                 ndr->depth++;
     780          20 :                                 for (cntr_messages_1 = 0; cntr_messages_1 < (r->num); cntr_messages_1++) {
     781          10 :                                         ndr_print_set_switch_value(ndr, &r->messages[cntr_messages_1], r->type);
     782          10 :                                         ndr_print_witness_notifyResponse_message(ndr, "messages", &r->messages[cntr_messages_1]);
     783             :                                 }
     784          10 :                                 ndr->depth--;
     785             :                         }
     786          10 :                         ndr->depth--;
     787          10 :                         ndr->flags = _flags_save_witness_notifyResponse_message;
     788             :                 }
     789          10 :                 ndr->depth--;
     790          10 :                 ndr->flags = _flags_save_STRUCT;
     791             :         }
     792             : }
     793             : 
     794          72 : _PUBLIC_ size_t ndr_size_witness_notifyResponse(const struct witness_notifyResponse *r, libndr_flags flags)
     795             : {
     796          72 :         flags |= LIBNDR_PRINT_ARRAY_HEX;
     797          72 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_witness_notifyResponse);
     798             : }
     799             : 
     800           0 : _PUBLIC_ enum ndr_err_code ndr_push_witness_RegisterEx_flags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
     801             : {
     802           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     803           0 :         return NDR_ERR_SUCCESS;
     804             : }
     805             : 
     806           0 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_RegisterEx_flags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
     807             : {
     808           0 :         uint32_t v;
     809           0 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     810           0 :         *r = v;
     811           0 :         return NDR_ERR_SUCCESS;
     812             : }
     813             : 
     814           0 : _PUBLIC_ void ndr_print_witness_RegisterEx_flags(struct ndr_print *ndr, const char *name, uint32_t r)
     815             : {
     816           0 :         ndr_print_uint32(ndr, name, r);
     817           0 :         ndr->depth++;
     818           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_REGISTER_NONE", WITNESS_REGISTER_NONE, r);
     819           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WITNESS_REGISTER_IP_NOTIFICATION", WITNESS_REGISTER_IP_NOTIFICATION, r);
     820           0 :         ndr->depth--;
     821           0 : }
     822             : 
     823           0 : _PUBLIC_ enum ndr_err_code ndr_push_witness_GetInterfaceList(struct ndr_push *ndr, ndr_flags_type flags, const struct witness_GetInterfaceList *r)
     824             : {
     825           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
     826           0 :         if (flags & NDR_IN) {
     827           0 :         }
     828           0 :         if (flags & NDR_OUT) {
     829           0 :                 if (r->out.interface_list == NULL) {
     830           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
     831             :                 }
     832           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.interface_list));
     833           0 :                 if (*r->out.interface_list) {
     834           0 :                         NDR_CHECK(ndr_push_witness_interfaceList(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.interface_list));
     835             :                 }
     836           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
     837             :         }
     838           0 :         return NDR_ERR_SUCCESS;
     839             : }
     840             : 
     841           2 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_GetInterfaceList(struct ndr_pull *ndr, ndr_flags_type flags, struct witness_GetInterfaceList *r)
     842             : {
     843           2 :         uint32_t _ptr_interface_list;
     844           2 :         TALLOC_CTX *_mem_save_interface_list_0 = NULL;
     845           2 :         TALLOC_CTX *_mem_save_interface_list_1 = NULL;
     846           2 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
     847           2 :         if (flags & NDR_IN) {
     848           0 :                 NDR_ZERO_STRUCT(r->out);
     849             : 
     850           0 :                 NDR_PULL_ALLOC(ndr, r->out.interface_list);
     851           0 :                 NDR_ZERO_STRUCTP(r->out.interface_list);
     852             :         }
     853           2 :         if (flags & NDR_OUT) {
     854             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
     855             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
     856           2 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
     857           2 :                         NDR_PULL_ALLOC(ndr, r->out.interface_list);
     858             :                 }
     859           2 :                 _mem_save_interface_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
     860           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.interface_list, LIBNDR_FLAG_REF_ALLOC);
     861           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_interface_list));
     862           2 :                 if (_ptr_interface_list) {
     863           2 :                         NDR_PULL_ALLOC(ndr, *r->out.interface_list);
     864             :                 } else {
     865           0 :                         *r->out.interface_list = NULL;
     866             :                 }
     867           2 :                 if (*r->out.interface_list) {
     868           2 :                         _mem_save_interface_list_1 = NDR_PULL_GET_MEM_CTX(ndr);
     869           2 :                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.interface_list, 0);
     870           2 :                         NDR_CHECK(ndr_pull_witness_interfaceList(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.interface_list));
     871           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_interface_list_1, 0);
     872             :                 }
     873           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_interface_list_0, LIBNDR_FLAG_REF_ALLOC);
     874           2 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
     875             :         }
     876           0 :         return NDR_ERR_SUCCESS;
     877             : }
     878             : 
     879           2 : _PUBLIC_ void ndr_print_witness_GetInterfaceList(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct witness_GetInterfaceList *r)
     880             : {
     881           2 :         ndr_print_struct(ndr, name, "witness_GetInterfaceList");
     882           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     883           2 :         ndr->depth++;
     884           2 :         if (flags & NDR_SET_VALUES) {
     885           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
     886             :         }
     887           2 :         if (flags & NDR_IN) {
     888           0 :                 ndr_print_struct(ndr, "in", "witness_GetInterfaceList");
     889           0 :                 ndr->depth++;
     890           0 :                 ndr->depth--;
     891             :         }
     892           2 :         if (flags & NDR_OUT) {
     893           2 :                 ndr_print_struct(ndr, "out", "witness_GetInterfaceList");
     894           2 :                 ndr->depth++;
     895           2 :                 ndr_print_ptr(ndr, "interface_list", r->out.interface_list);
     896           2 :                 ndr->depth++;
     897           2 :                 ndr_print_ptr(ndr, "interface_list", *r->out.interface_list);
     898           2 :                 ndr->depth++;
     899           2 :                 if (*r->out.interface_list) {
     900           2 :                         ndr_print_witness_interfaceList(ndr, "interface_list", *r->out.interface_list);
     901             :                 }
     902           2 :                 ndr->depth--;
     903           2 :                 ndr->depth--;
     904           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
     905           2 :                 ndr->depth--;
     906             :         }
     907           2 :         ndr->depth--;
     908             : }
     909             : 
     910           0 : _PUBLIC_ enum ndr_err_code ndr_push_witness_Register(struct ndr_push *ndr, ndr_flags_type flags, const struct witness_Register *r)
     911             : {
     912           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
     913           0 :         if (flags & NDR_IN) {
     914           0 :                 NDR_CHECK(ndr_push_witness_version(ndr, NDR_SCALARS, r->in.version));
     915           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.net_name));
     916           0 :                 if (r->in.net_name) {
     917           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.net_name, CH_UTF16)));
     918           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
     919           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.net_name, CH_UTF16)));
     920           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.net_name, ndr_charset_length(r->in.net_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
     921             :                 }
     922           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ip_address));
     923           0 :                 if (r->in.ip_address) {
     924           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ip_address, CH_UTF16)));
     925           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
     926           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ip_address, CH_UTF16)));
     927           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.ip_address, ndr_charset_length(r->in.ip_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
     928             :                 }
     929           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_computer_name));
     930           0 :                 if (r->in.client_computer_name) {
     931           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_computer_name, CH_UTF16)));
     932           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
     933           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_computer_name, CH_UTF16)));
     934           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.client_computer_name, ndr_charset_length(r->in.client_computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
     935             :                 }
     936             :         }
     937           0 :         if (flags & NDR_OUT) {
     938           0 :                 if (r->out.context_handle == NULL) {
     939           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
     940             :                 }
     941           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.context_handle));
     942           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
     943             :         }
     944           0 :         return NDR_ERR_SUCCESS;
     945             : }
     946             : 
     947           4 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_Register(struct ndr_pull *ndr, ndr_flags_type flags, struct witness_Register *r)
     948             : {
     949           4 :         uint32_t _ptr_net_name;
     950           4 :         uint32_t size_net_name_1 = 0;
     951           4 :         uint32_t length_net_name_1 = 0;
     952           4 :         uint32_t _ptr_ip_address;
     953           4 :         uint32_t size_ip_address_1 = 0;
     954           4 :         uint32_t length_ip_address_1 = 0;
     955           4 :         uint32_t _ptr_client_computer_name;
     956           4 :         uint32_t size_client_computer_name_1 = 0;
     957           4 :         uint32_t length_client_computer_name_1 = 0;
     958           4 :         TALLOC_CTX *_mem_save_context_handle_0 = NULL;
     959           4 :         TALLOC_CTX *_mem_save_net_name_0 = NULL;
     960           4 :         TALLOC_CTX *_mem_save_ip_address_0 = NULL;
     961           4 :         TALLOC_CTX *_mem_save_client_computer_name_0 = NULL;
     962           4 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
     963           4 :         if (flags & NDR_IN) {
     964           2 :                 NDR_ZERO_STRUCT(r->out);
     965             : 
     966           2 :                 NDR_CHECK(ndr_pull_witness_version(ndr, NDR_SCALARS, &r->in.version));
     967           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_net_name));
     968           2 :                 if (_ptr_net_name) {
     969           2 :                         NDR_PULL_ALLOC(ndr, r->in.net_name);
     970             :                 } else {
     971           0 :                         r->in.net_name = NULL;
     972             :                 }
     973           2 :                 if (r->in.net_name) {
     974           2 :                         _mem_save_net_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
     975           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.net_name, 0);
     976           2 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.net_name));
     977           2 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.net_name));
     978           2 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.net_name, &size_net_name_1));
     979           2 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.net_name, &length_net_name_1));
     980           2 :                         if (length_net_name_1 > size_net_name_1) {
     981           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_net_name_1, length_net_name_1);
     982             :                         }
     983           2 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_net_name_1, sizeof(uint16_t)));
     984           2 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.net_name, length_net_name_1, sizeof(uint16_t), CH_UTF16));
     985           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_net_name_0, 0);
     986             :                 }
     987           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ip_address));
     988           2 :                 if (_ptr_ip_address) {
     989           2 :                         NDR_PULL_ALLOC(ndr, r->in.ip_address);
     990             :                 } else {
     991           0 :                         r->in.ip_address = NULL;
     992             :                 }
     993           2 :                 if (r->in.ip_address) {
     994           2 :                         _mem_save_ip_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
     995           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.ip_address, 0);
     996           2 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ip_address));
     997           2 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ip_address));
     998           2 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.ip_address, &size_ip_address_1));
     999           2 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.ip_address, &length_ip_address_1));
    1000           2 :                         if (length_ip_address_1 > size_ip_address_1) {
    1001           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_ip_address_1, length_ip_address_1);
    1002             :                         }
    1003           2 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_ip_address_1, sizeof(uint16_t)));
    1004           2 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ip_address, length_ip_address_1, sizeof(uint16_t), CH_UTF16));
    1005           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ip_address_0, 0);
    1006             :                 }
    1007           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_computer_name));
    1008           2 :                 if (_ptr_client_computer_name) {
    1009           2 :                         NDR_PULL_ALLOC(ndr, r->in.client_computer_name);
    1010             :                 } else {
    1011           0 :                         r->in.client_computer_name = NULL;
    1012             :                 }
    1013           2 :                 if (r->in.client_computer_name) {
    1014           2 :                         _mem_save_client_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1015           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_computer_name, 0);
    1016           2 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_computer_name));
    1017           2 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_computer_name));
    1018           2 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.client_computer_name, &size_client_computer_name_1));
    1019           2 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.client_computer_name, &length_client_computer_name_1));
    1020           2 :                         if (length_client_computer_name_1 > size_client_computer_name_1) {
    1021           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_client_computer_name_1, length_client_computer_name_1);
    1022             :                         }
    1023           2 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_client_computer_name_1, sizeof(uint16_t)));
    1024           2 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_computer_name, length_client_computer_name_1, sizeof(uint16_t), CH_UTF16));
    1025           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_computer_name_0, 0);
    1026             :                 }
    1027           2 :                 NDR_PULL_ALLOC(ndr, r->out.context_handle);
    1028           2 :                 NDR_ZERO_STRUCTP(r->out.context_handle);
    1029             :         }
    1030           4 :         if (flags & NDR_OUT) {
    1031             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
    1032             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
    1033           2 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    1034           2 :                         NDR_PULL_ALLOC(ndr, r->out.context_handle);
    1035             :                 }
    1036           2 :                 _mem_save_context_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1037           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.context_handle, LIBNDR_FLAG_REF_ALLOC);
    1038           2 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.context_handle));
    1039           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_context_handle_0, LIBNDR_FLAG_REF_ALLOC);
    1040           2 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
    1041             :         }
    1042           0 :         return NDR_ERR_SUCCESS;
    1043             : }
    1044             : 
    1045           4 : _PUBLIC_ void ndr_print_witness_Register(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct witness_Register *r)
    1046             : {
    1047           4 :         ndr_print_struct(ndr, name, "witness_Register");
    1048           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1049           4 :         ndr->depth++;
    1050           4 :         if (flags & NDR_SET_VALUES) {
    1051           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
    1052             :         }
    1053           4 :         if (flags & NDR_IN) {
    1054           2 :                 ndr_print_struct(ndr, "in", "witness_Register");
    1055           2 :                 ndr->depth++;
    1056           2 :                 ndr_print_witness_version(ndr, "version", r->in.version);
    1057           2 :                 ndr_print_ptr(ndr, "net_name", r->in.net_name);
    1058           2 :                 ndr->depth++;
    1059           2 :                 if (r->in.net_name) {
    1060           2 :                         ndr_print_string(ndr, "net_name", r->in.net_name);
    1061             :                 }
    1062           2 :                 ndr->depth--;
    1063           2 :                 ndr_print_ptr(ndr, "ip_address", r->in.ip_address);
    1064           2 :                 ndr->depth++;
    1065           2 :                 if (r->in.ip_address) {
    1066           2 :                         ndr_print_string(ndr, "ip_address", r->in.ip_address);
    1067             :                 }
    1068           2 :                 ndr->depth--;
    1069           2 :                 ndr_print_ptr(ndr, "client_computer_name", r->in.client_computer_name);
    1070           2 :                 ndr->depth++;
    1071           2 :                 if (r->in.client_computer_name) {
    1072           2 :                         ndr_print_string(ndr, "client_computer_name", r->in.client_computer_name);
    1073             :                 }
    1074           2 :                 ndr->depth--;
    1075           2 :                 ndr->depth--;
    1076             :         }
    1077           4 :         if (flags & NDR_OUT) {
    1078           2 :                 ndr_print_struct(ndr, "out", "witness_Register");
    1079           2 :                 ndr->depth++;
    1080           2 :                 ndr_print_ptr(ndr, "context_handle", r->out.context_handle);
    1081           2 :                 ndr->depth++;
    1082           2 :                 ndr_print_policy_handle(ndr, "context_handle", r->out.context_handle);
    1083           2 :                 ndr->depth--;
    1084           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
    1085           2 :                 ndr->depth--;
    1086             :         }
    1087           4 :         ndr->depth--;
    1088             : }
    1089             : 
    1090           0 : _PUBLIC_ enum ndr_err_code ndr_push_witness_UnRegister(struct ndr_push *ndr, ndr_flags_type flags, const struct witness_UnRegister *r)
    1091             : {
    1092           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
    1093           0 :         if (flags & NDR_IN) {
    1094           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, &r->in.context_handle));
    1095             :         }
    1096           0 :         if (flags & NDR_OUT) {
    1097           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
    1098             :         }
    1099           0 :         return NDR_ERR_SUCCESS;
    1100             : }
    1101             : 
    1102           4 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_UnRegister(struct ndr_pull *ndr, ndr_flags_type flags, struct witness_UnRegister *r)
    1103             : {
    1104           4 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
    1105           4 :         if (flags & NDR_IN) {
    1106           2 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, &r->in.context_handle));
    1107             :         }
    1108           4 :         if (flags & NDR_OUT) {
    1109             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
    1110             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
    1111           2 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
    1112             :         }
    1113           0 :         return NDR_ERR_SUCCESS;
    1114             : }
    1115             : 
    1116           4 : _PUBLIC_ void ndr_print_witness_UnRegister(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct witness_UnRegister *r)
    1117             : {
    1118           4 :         ndr_print_struct(ndr, name, "witness_UnRegister");
    1119           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1120           4 :         ndr->depth++;
    1121           4 :         if (flags & NDR_SET_VALUES) {
    1122           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
    1123             :         }
    1124           4 :         if (flags & NDR_IN) {
    1125           2 :                 ndr_print_struct(ndr, "in", "witness_UnRegister");
    1126           2 :                 ndr->depth++;
    1127           2 :                 ndr_print_policy_handle(ndr, "context_handle", &r->in.context_handle);
    1128           2 :                 ndr->depth--;
    1129             :         }
    1130           4 :         if (flags & NDR_OUT) {
    1131           2 :                 ndr_print_struct(ndr, "out", "witness_UnRegister");
    1132           2 :                 ndr->depth++;
    1133           2 :                 ndr_print_WERROR(ndr, "result", r->out.result);
    1134           2 :                 ndr->depth--;
    1135             :         }
    1136           4 :         ndr->depth--;
    1137             : }
    1138             : 
    1139           6 : _PUBLIC_ enum ndr_err_code ndr_push_witness_AsyncNotify(struct ndr_push *ndr, ndr_flags_type flags, const struct witness_AsyncNotify *r)
    1140             : {
    1141           6 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
    1142           6 :         if (flags & NDR_IN) {
    1143           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, &r->in.context_handle));
    1144             :         }
    1145           6 :         if (flags & NDR_OUT) {
    1146           6 :                 if (r->out.response == NULL) {
    1147           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    1148             :                 }
    1149           6 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.response));
    1150           6 :                 if (*r->out.response) {
    1151           6 :                         NDR_CHECK(ndr_push_witness_notifyResponse(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.response));
    1152             :                 }
    1153           6 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
    1154             :         }
    1155           0 :         return NDR_ERR_SUCCESS;
    1156             : }
    1157             : 
    1158          12 : _PUBLIC_ enum ndr_err_code ndr_pull_witness_AsyncNotify(struct ndr_pull *ndr, ndr_flags_type flags, struct witness_AsyncNotify *r)
    1159             : {
    1160          12 :         uint32_t _ptr_response;
    1161          12 :         TALLOC_CTX *_mem_save_response_0 = NULL;
    1162          12 :         TALLOC_CTX *_mem_save_response_1 = NULL;
    1163          12 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
    1164          12 :         if (flags & NDR_IN) {
    1165           2 :                 NDR_ZERO_STRUCT(r->out);
    1166             : 
    1167           2 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, &r->in.context_handle));
    1168           2 :                 NDR_PULL_ALLOC(ndr, r->out.response);
    1169           2 :                 NDR_ZERO_STRUCTP(r->out.response);
    1170             :         }
    1171          12 :         if (flags & NDR_OUT) {
    1172             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
    1173             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
    1174          10 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    1175          10 :                         NDR_PULL_ALLOC(ndr, r->out.response);
    1176             :                 }
    1177          10 :                 _mem_save_response_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1178          10 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.response, LIBNDR_FLAG_REF_ALLOC);
    1179          10 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_response));
    1180          10 :                 if (_ptr_response) {
    1181          10 :                         NDR_PULL_ALLOC(ndr, *r->out.response);
    1182             :                 } else {
    1183           0 :                         *r->out.response = NULL;
    1184             :                 }
    1185          10 :                 if (*r->out.response) {
    1186          10 :                         _mem_save_response_1 = NDR_PULL_GET_MEM_CTX(ndr);
    1187          10 :                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.response, 0);
    1188          10 :                         NDR_CHECK(ndr_pull_witness_notifyResponse(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.response));
    1189          10 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_response_1, 0);
    1190             :                 }
    1191          10 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_response_0, LIBNDR_FLAG_REF_ALLOC);
    1192          10 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
    1193             :         }
    1194           0 :         return NDR_ERR_SUCCESS;
    1195             : }
    1196             : 
    1197          12 : _PUBLIC_ void ndr_print_witness_AsyncNotify(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct witness_AsyncNotify *r)
    1198             : {
    1199          12 :         ndr_print_struct(ndr, name, "witness_AsyncNotify");
    1200          12 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1201          12 :         ndr->depth++;
    1202          12 :         if (flags & NDR_SET_VALUES) {
    1203           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
    1204             :         }
    1205          12 :         if (flags & NDR_IN) {
    1206           2 :                 ndr_print_struct(ndr, "in", "witness_AsyncNotify");
    1207           2 :                 ndr->depth++;
    1208           2 :                 ndr_print_policy_handle(ndr, "context_handle", &r->in.context_handle);
    1209           2 :                 ndr->depth--;
    1210             :         }
    1211          12 :         if (flags & NDR_OUT) {
    1212          10 :                 ndr_print_struct(ndr, "out", "witness_AsyncNotify");
    1213          10 :                 ndr->depth++;
    1214          10 :                 ndr_print_ptr(ndr, "response", r->out.response);
    1215          10 :                 ndr->depth++;
    1216          10 :                 ndr_print_ptr(ndr, "response", *r->out.response);
    1217          10 :                 ndr->depth++;
    1218          10 :                 if (*r->out.response) {
    1219          10 :                         ndr_print_witness_notifyResponse(ndr, "response", *r->out.response);
    1220             :                 }
    1221          10 :                 ndr->depth--;
    1222          10 :                 ndr->depth--;
    1223          10 :                 ndr_print_WERROR(ndr, "result", r->out.result);
    1224          10 :                 ndr->depth--;
    1225             :         }
    1226          12 :         ndr->depth--;
    1227             : }
    1228             : 
    1229           0 : static enum ndr_err_code ndr_push_witness_RegisterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct witness_RegisterEx *r)
    1230             : {
    1231           0 :         NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
    1232           0 :         if (flags & NDR_IN) {
    1233           0 :                 NDR_CHECK(ndr_push_witness_version(ndr, NDR_SCALARS, r->in.version));
    1234           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.net_name));
    1235           0 :                 if (r->in.net_name) {
    1236           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.net_name, CH_UTF16)));
    1237           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1238           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.net_name, CH_UTF16)));
    1239           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.net_name, ndr_charset_length(r->in.net_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    1240             :                 }
    1241           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.share_name));
    1242           0 :                 if (r->in.share_name) {
    1243           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.share_name, CH_UTF16)));
    1244           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1245           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.share_name, CH_UTF16)));
    1246           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.share_name, ndr_charset_length(r->in.share_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    1247             :                 }
    1248           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ip_address));
    1249           0 :                 if (r->in.ip_address) {
    1250           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ip_address, CH_UTF16)));
    1251           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1252           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ip_address, CH_UTF16)));
    1253           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.ip_address, ndr_charset_length(r->in.ip_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    1254             :                 }
    1255           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_computer_name));
    1256           0 :                 if (r->in.client_computer_name) {
    1257           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_computer_name, CH_UTF16)));
    1258           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
    1259           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_computer_name, CH_UTF16)));
    1260           0 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.client_computer_name, ndr_charset_length(r->in.client_computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
    1261             :                 }
    1262           0 :                 NDR_CHECK(ndr_push_witness_RegisterEx_flags(ndr, NDR_SCALARS, r->in.flags));
    1263           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.timeout));
    1264             :         }
    1265           0 :         if (flags & NDR_OUT) {
    1266           0 :                 if (r->out.context_handle == NULL) {
    1267           0 :                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
    1268             :                 }
    1269           0 :                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.context_handle));
    1270           0 :                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
    1271             :         }
    1272           0 :         return NDR_ERR_SUCCESS;
    1273             : }
    1274             : 
    1275           0 : static enum ndr_err_code ndr_pull_witness_RegisterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct witness_RegisterEx *r)
    1276             : {
    1277           0 :         uint32_t _ptr_net_name;
    1278           0 :         uint32_t size_net_name_1 = 0;
    1279           0 :         uint32_t length_net_name_1 = 0;
    1280           0 :         uint32_t _ptr_share_name;
    1281           0 :         uint32_t size_share_name_1 = 0;
    1282           0 :         uint32_t length_share_name_1 = 0;
    1283           0 :         uint32_t _ptr_ip_address;
    1284           0 :         uint32_t size_ip_address_1 = 0;
    1285           0 :         uint32_t length_ip_address_1 = 0;
    1286           0 :         uint32_t _ptr_client_computer_name;
    1287           0 :         uint32_t size_client_computer_name_1 = 0;
    1288           0 :         uint32_t length_client_computer_name_1 = 0;
    1289           0 :         TALLOC_CTX *_mem_save_context_handle_0 = NULL;
    1290           0 :         TALLOC_CTX *_mem_save_net_name_0 = NULL;
    1291           0 :         TALLOC_CTX *_mem_save_share_name_0 = NULL;
    1292           0 :         TALLOC_CTX *_mem_save_ip_address_0 = NULL;
    1293           0 :         TALLOC_CTX *_mem_save_client_computer_name_0 = NULL;
    1294           0 :         NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
    1295           0 :         if (flags & NDR_IN) {
    1296           0 :                 NDR_ZERO_STRUCT(r->out);
    1297             : 
    1298           0 :                 NDR_CHECK(ndr_pull_witness_version(ndr, NDR_SCALARS, &r->in.version));
    1299           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_net_name));
    1300           0 :                 if (_ptr_net_name) {
    1301           0 :                         NDR_PULL_ALLOC(ndr, r->in.net_name);
    1302             :                 } else {
    1303           0 :                         r->in.net_name = NULL;
    1304             :                 }
    1305           0 :                 if (r->in.net_name) {
    1306           0 :                         _mem_save_net_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1307           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.net_name, 0);
    1308           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.net_name));
    1309           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.net_name));
    1310           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.net_name, &size_net_name_1));
    1311           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.net_name, &length_net_name_1));
    1312           0 :                         if (length_net_name_1 > size_net_name_1) {
    1313           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_net_name_1, length_net_name_1);
    1314             :                         }
    1315           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_net_name_1, sizeof(uint16_t)));
    1316           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.net_name, length_net_name_1, sizeof(uint16_t), CH_UTF16));
    1317           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_net_name_0, 0);
    1318             :                 }
    1319           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_share_name));
    1320           0 :                 if (_ptr_share_name) {
    1321           0 :                         NDR_PULL_ALLOC(ndr, r->in.share_name);
    1322             :                 } else {
    1323           0 :                         r->in.share_name = NULL;
    1324             :                 }
    1325           0 :                 if (r->in.share_name) {
    1326           0 :                         _mem_save_share_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1327           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.share_name, 0);
    1328           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share_name));
    1329           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share_name));
    1330           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.share_name, &size_share_name_1));
    1331           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.share_name, &length_share_name_1));
    1332           0 :                         if (length_share_name_1 > size_share_name_1) {
    1333           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_share_name_1, length_share_name_1);
    1334             :                         }
    1335           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_share_name_1, sizeof(uint16_t)));
    1336           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, length_share_name_1, sizeof(uint16_t), CH_UTF16));
    1337           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_name_0, 0);
    1338             :                 }
    1339           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ip_address));
    1340           0 :                 if (_ptr_ip_address) {
    1341           0 :                         NDR_PULL_ALLOC(ndr, r->in.ip_address);
    1342             :                 } else {
    1343           0 :                         r->in.ip_address = NULL;
    1344             :                 }
    1345           0 :                 if (r->in.ip_address) {
    1346           0 :                         _mem_save_ip_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1347           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.ip_address, 0);
    1348           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ip_address));
    1349           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ip_address));
    1350           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.ip_address, &size_ip_address_1));
    1351           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.ip_address, &length_ip_address_1));
    1352           0 :                         if (length_ip_address_1 > size_ip_address_1) {
    1353           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_ip_address_1, length_ip_address_1);
    1354             :                         }
    1355           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_ip_address_1, sizeof(uint16_t)));
    1356           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ip_address, length_ip_address_1, sizeof(uint16_t), CH_UTF16));
    1357           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ip_address_0, 0);
    1358             :                 }
    1359           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_computer_name));
    1360           0 :                 if (_ptr_client_computer_name) {
    1361           0 :                         NDR_PULL_ALLOC(ndr, r->in.client_computer_name);
    1362             :                 } else {
    1363           0 :                         r->in.client_computer_name = NULL;
    1364             :                 }
    1365           0 :                 if (r->in.client_computer_name) {
    1366           0 :                         _mem_save_client_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1367           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_computer_name, 0);
    1368           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_computer_name));
    1369           0 :                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_computer_name));
    1370           0 :                         NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.client_computer_name, &size_client_computer_name_1));
    1371           0 :                         NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.client_computer_name, &length_client_computer_name_1));
    1372           0 :                         if (length_client_computer_name_1 > size_client_computer_name_1) {
    1373           0 :                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_client_computer_name_1, length_client_computer_name_1);
    1374             :                         }
    1375           0 :                         NDR_CHECK(ndr_check_string_terminator(ndr, length_client_computer_name_1, sizeof(uint16_t)));
    1376           0 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_computer_name, length_client_computer_name_1, sizeof(uint16_t), CH_UTF16));
    1377           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_computer_name_0, 0);
    1378             :                 }
    1379           0 :                 NDR_CHECK(ndr_pull_witness_RegisterEx_flags(ndr, NDR_SCALARS, &r->in.flags));
    1380           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.timeout));
    1381           0 :                 NDR_PULL_ALLOC(ndr, r->out.context_handle);
    1382           0 :                 NDR_ZERO_STRUCTP(r->out.context_handle);
    1383             :         }
    1384           0 :         if (flags & NDR_OUT) {
    1385             : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
    1386             : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
    1387           0 :                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
    1388           0 :                         NDR_PULL_ALLOC(ndr, r->out.context_handle);
    1389             :                 }
    1390           0 :                 _mem_save_context_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1391           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->out.context_handle, LIBNDR_FLAG_REF_ALLOC);
    1392           0 :                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.context_handle));
    1393           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_context_handle_0, LIBNDR_FLAG_REF_ALLOC);
    1394           0 :                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
    1395             :         }
    1396           0 :         return NDR_ERR_SUCCESS;
    1397             : }
    1398             : 
    1399           0 : _PUBLIC_ void ndr_print_witness_RegisterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct witness_RegisterEx *r)
    1400             : {
    1401           0 :         ndr_print_struct(ndr, name, "witness_RegisterEx");
    1402           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1403           0 :         ndr->depth++;
    1404           0 :         if (flags & NDR_SET_VALUES) {
    1405           0 :                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
    1406             :         }
    1407           0 :         if (flags & NDR_IN) {
    1408           0 :                 ndr_print_struct(ndr, "in", "witness_RegisterEx");
    1409           0 :                 ndr->depth++;
    1410           0 :                 ndr_print_witness_version(ndr, "version", r->in.version);
    1411           0 :                 ndr_print_ptr(ndr, "net_name", r->in.net_name);
    1412           0 :                 ndr->depth++;
    1413           0 :                 if (r->in.net_name) {
    1414           0 :                         ndr_print_string(ndr, "net_name", r->in.net_name);
    1415             :                 }
    1416           0 :                 ndr->depth--;
    1417           0 :                 ndr_print_ptr(ndr, "share_name", r->in.share_name);
    1418           0 :                 ndr->depth++;
    1419           0 :                 if (r->in.share_name) {
    1420           0 :                         ndr_print_string(ndr, "share_name", r->in.share_name);
    1421             :                 }
    1422           0 :                 ndr->depth--;
    1423           0 :                 ndr_print_ptr(ndr, "ip_address", r->in.ip_address);
    1424           0 :                 ndr->depth++;
    1425           0 :                 if (r->in.ip_address) {
    1426           0 :                         ndr_print_string(ndr, "ip_address", r->in.ip_address);
    1427             :                 }
    1428           0 :                 ndr->depth--;
    1429           0 :                 ndr_print_ptr(ndr, "client_computer_name", r->in.client_computer_name);
    1430           0 :                 ndr->depth++;
    1431           0 :                 if (r->in.client_computer_name) {
    1432           0 :                         ndr_print_string(ndr, "client_computer_name", r->in.client_computer_name);
    1433             :                 }
    1434           0 :                 ndr->depth--;
    1435           0 :                 ndr_print_witness_RegisterEx_flags(ndr, "flags", r->in.flags);
    1436           0 :                 ndr_print_uint32(ndr, "timeout", r->in.timeout);
    1437           0 :                 ndr->depth--;
    1438             :         }
    1439           0 :         if (flags & NDR_OUT) {
    1440           0 :                 ndr_print_struct(ndr, "out", "witness_RegisterEx");
    1441           0 :                 ndr->depth++;
    1442           0 :                 ndr_print_ptr(ndr, "context_handle", r->out.context_handle);
    1443           0 :                 ndr->depth++;
    1444           0 :                 ndr_print_policy_handle(ndr, "context_handle", r->out.context_handle);
    1445           0 :                 ndr->depth--;
    1446           0 :                 ndr_print_WERROR(ndr, "result", r->out.result);
    1447           0 :                 ndr->depth--;
    1448             :         }
    1449           0 :         ndr->depth--;
    1450             : }
    1451             : 
    1452             : #ifndef SKIP_NDR_TABLE_witness
    1453             : static const struct ndr_interface_public_struct witness_public_structs[] = {
    1454             :         {
    1455             :                 .name = "witness_ResourceChange",
    1456             :                 .struct_size = sizeof(struct witness_ResourceChange ),
    1457             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_witness_ResourceChange,
    1458             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_witness_ResourceChange,
    1459             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_witness_ResourceChange,
    1460             :         },
    1461             :         {
    1462             :                 .name = "witness_IPaddrInfoList",
    1463             :                 .struct_size = sizeof(struct witness_IPaddrInfoList ),
    1464             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_witness_IPaddrInfoList,
    1465             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_witness_IPaddrInfoList,
    1466             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_witness_IPaddrInfoList,
    1467             :         },
    1468             :         {
    1469             :                 .name = "witness_notifyResponse",
    1470             :                 .struct_size = sizeof(struct witness_notifyResponse ),
    1471             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_witness_notifyResponse,
    1472             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_witness_notifyResponse,
    1473             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_witness_notifyResponse,
    1474             :         },
    1475             :         { .name = NULL }
    1476             : };
    1477             : 
    1478             : static const struct ndr_interface_call witness_calls[] = {
    1479             :         {
    1480             :                 "witness_GetInterfaceList",
    1481             :                 sizeof(struct witness_GetInterfaceList),
    1482             :                 (ndr_push_flags_fn_t) ndr_push_witness_GetInterfaceList,
    1483             :                 (ndr_pull_flags_fn_t) ndr_pull_witness_GetInterfaceList,
    1484             :                 (ndr_print_function_t) ndr_print_witness_GetInterfaceList,
    1485             :                 { 0, NULL },
    1486             :                 { 0, NULL },
    1487             :         },
    1488             :         {
    1489             :                 "witness_Register",
    1490             :                 sizeof(struct witness_Register),
    1491             :                 (ndr_push_flags_fn_t) ndr_push_witness_Register,
    1492             :                 (ndr_pull_flags_fn_t) ndr_pull_witness_Register,
    1493             :                 (ndr_print_function_t) ndr_print_witness_Register,
    1494             :                 { 0, NULL },
    1495             :                 { 0, NULL },
    1496             :         },
    1497             :         {
    1498             :                 "witness_UnRegister",
    1499             :                 sizeof(struct witness_UnRegister),
    1500             :                 (ndr_push_flags_fn_t) ndr_push_witness_UnRegister,
    1501             :                 (ndr_pull_flags_fn_t) ndr_pull_witness_UnRegister,
    1502             :                 (ndr_print_function_t) ndr_print_witness_UnRegister,
    1503             :                 { 0, NULL },
    1504             :                 { 0, NULL },
    1505             :         },
    1506             :         {
    1507             :                 "witness_AsyncNotify",
    1508             :                 sizeof(struct witness_AsyncNotify),
    1509             :                 (ndr_push_flags_fn_t) ndr_push_witness_AsyncNotify,
    1510             :                 (ndr_pull_flags_fn_t) ndr_pull_witness_AsyncNotify,
    1511             :                 (ndr_print_function_t) ndr_print_witness_AsyncNotify,
    1512             :                 { 0, NULL },
    1513             :                 { 0, NULL },
    1514             :         },
    1515             :         {
    1516             :                 "witness_RegisterEx",
    1517             :                 sizeof(struct witness_RegisterEx),
    1518             :                 (ndr_push_flags_fn_t) ndr_push_witness_RegisterEx,
    1519             :                 (ndr_pull_flags_fn_t) ndr_pull_witness_RegisterEx,
    1520             :                 (ndr_print_function_t) ndr_print_witness_RegisterEx,
    1521             :                 { 0, NULL },
    1522             :                 { 0, NULL },
    1523             :         },
    1524             :         { .name = NULL }
    1525             : };
    1526             : 
    1527             : static const char * const witness_endpoint_strings[] = {
    1528             :         "ncacn_ip_tcp:", 
    1529             : };
    1530             : 
    1531             : static const struct ndr_interface_string_array witness_endpoints = {
    1532             :         .count  = 1,
    1533             :         .names  = witness_endpoint_strings
    1534             : };
    1535             : 
    1536             : static const char * const witness_authservice_strings[] = {
    1537             :         "cifs", 
    1538             : };
    1539             : 
    1540             : static const struct ndr_interface_string_array witness_authservices = {
    1541             :         .count  = 1,
    1542             :         .names  = witness_authservice_strings
    1543             : };
    1544             : 
    1545             : 
    1546             : const struct ndr_interface_table ndr_table_witness = {
    1547             :         .name           = "witness",
    1548             :         .syntax_id      = {
    1549             :                 {0xccd8c074,0xd0e5,0x4a40,{0x92,0xb4},{0xd0,0x74,0xfa,0xa6,0xba,0x28}},
    1550             :                 NDR_WITNESS_VERSION
    1551             :         },
    1552             :         .helpstring     = NDR_WITNESS_HELPSTRING,
    1553             :         .num_calls      = 5,
    1554             :         .calls          = witness_calls,
    1555             :         .num_public_structs     = 3,
    1556             :         .public_structs         = witness_public_structs,
    1557             :         .endpoints      = &witness_endpoints,
    1558             :         .authservices   = &witness_authservices
    1559             : };
    1560             : 
    1561             : #endif /* SKIP_NDR_TABLE_witness */

Generated by: LCOV version 1.14