| 1 | /* parser auto-generated by pidl */
|
|---|
| 2 |
|
|---|
| 3 | #include "includes.h"
|
|---|
| 4 | #include "librpc/gen_ndr/ndr_dfsblobs.h"
|
|---|
| 5 |
|
|---|
| 6 | #include "librpc/gen_ndr/ndr_misc.h"
|
|---|
| 7 | static enum ndr_err_code ndr_push_DFS_HEADER_FLAG(struct ndr_push *ndr, int ndr_flags, uint32_t r)
|
|---|
| 8 | {
|
|---|
| 9 | NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
|
|---|
| 10 | return NDR_ERR_SUCCESS;
|
|---|
| 11 | }
|
|---|
| 12 |
|
|---|
| 13 | static enum ndr_err_code ndr_pull_DFS_HEADER_FLAG(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
|
|---|
| 14 | {
|
|---|
| 15 | uint32_t v;
|
|---|
| 16 | NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
|
|---|
| 17 | *r = v;
|
|---|
| 18 | return NDR_ERR_SUCCESS;
|
|---|
| 19 | }
|
|---|
| 20 |
|
|---|
| 21 | _PUBLIC_ void ndr_print_DFS_HEADER_FLAG(struct ndr_print *ndr, const char *name, uint32_t r)
|
|---|
| 22 | {
|
|---|
| 23 | ndr_print_uint32(ndr, name, r);
|
|---|
| 24 | ndr->depth++;
|
|---|
| 25 | ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DFS_HEADER_FLAG_REFERAL_SVR", DFS_HEADER_FLAG_REFERAL_SVR, r);
|
|---|
| 26 | ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DFS_HEADER_FLAG_STORAGE_SVR", DFS_HEADER_FLAG_STORAGE_SVR, r);
|
|---|
| 27 | ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DFS_HEADER_FLAG_TARGET_BCK", DFS_HEADER_FLAG_TARGET_BCK, r);
|
|---|
| 28 | ndr->depth--;
|
|---|
| 29 | }
|
|---|
| 30 |
|
|---|
| 31 | static enum ndr_err_code ndr_push_DFS_SERVER_TYPE(struct ndr_push *ndr, int ndr_flags, enum DFS_SERVER_TYPE r)
|
|---|
| 32 | {
|
|---|
| 33 | NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
|
|---|
| 34 | return NDR_ERR_SUCCESS;
|
|---|
| 35 | }
|
|---|
| 36 |
|
|---|
| 37 | static enum ndr_err_code ndr_pull_DFS_SERVER_TYPE(struct ndr_pull *ndr, int ndr_flags, enum DFS_SERVER_TYPE *r)
|
|---|
| 38 | {
|
|---|
| 39 | uint16_t v;
|
|---|
| 40 | NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
|
|---|
| 41 | *r = v;
|
|---|
| 42 | return NDR_ERR_SUCCESS;
|
|---|
| 43 | }
|
|---|
| 44 |
|
|---|
| 45 | _PUBLIC_ void ndr_print_DFS_SERVER_TYPE(struct ndr_print *ndr, const char *name, enum DFS_SERVER_TYPE r)
|
|---|
| 46 | {
|
|---|
| 47 | const char *val = NULL;
|
|---|
| 48 |
|
|---|
| 49 | switch (r) {
|
|---|
| 50 | case DFS_SERVER_NON_ROOT: val = "DFS_SERVER_NON_ROOT"; break;
|
|---|
| 51 | case DFS_SERVER_ROOT: val = "DFS_SERVER_ROOT"; break;
|
|---|
| 52 | }
|
|---|
| 53 | ndr_print_enum(ndr, name, "ENUM", val, r);
|
|---|
| 54 | }
|
|---|
| 55 |
|
|---|
| 56 | static enum ndr_err_code ndr_push_DFS_FLAGS_REFERRAL(struct ndr_push *ndr, int ndr_flags, enum DFS_FLAGS_REFERRAL r)
|
|---|
| 57 | {
|
|---|
| 58 | NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
|
|---|
| 59 | return NDR_ERR_SUCCESS;
|
|---|
| 60 | }
|
|---|
| 61 |
|
|---|
| 62 | static enum ndr_err_code ndr_pull_DFS_FLAGS_REFERRAL(struct ndr_pull *ndr, int ndr_flags, enum DFS_FLAGS_REFERRAL *r)
|
|---|
| 63 | {
|
|---|
| 64 | uint16_t v;
|
|---|
| 65 | NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
|
|---|
| 66 | *r = v;
|
|---|
| 67 | return NDR_ERR_SUCCESS;
|
|---|
| 68 | }
|
|---|
| 69 |
|
|---|
| 70 | _PUBLIC_ void ndr_print_DFS_FLAGS_REFERRAL(struct ndr_print *ndr, const char *name, enum DFS_FLAGS_REFERRAL r)
|
|---|
| 71 | {
|
|---|
| 72 | const char *val = NULL;
|
|---|
| 73 |
|
|---|
| 74 | switch (r) {
|
|---|
| 75 | case DFS_FLAG_REFERRAL_DOMAIN_RESP: val = "DFS_FLAG_REFERRAL_DOMAIN_RESP"; break;
|
|---|
| 76 | case DFS_FLAG_REFERRAL_FIRST_TARGET_SET: val = "DFS_FLAG_REFERRAL_FIRST_TARGET_SET"; break;
|
|---|
| 77 | }
|
|---|
| 78 | ndr_print_enum(ndr, name, "ENUM", val, r);
|
|---|
| 79 | }
|
|---|
| 80 |
|
|---|
| 81 | static enum ndr_err_code ndr_push_dfs_referral_v1(struct ndr_push *ndr, int ndr_flags, const struct dfs_referral_v1 *r)
|
|---|
| 82 | {
|
|---|
| 83 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 84 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 85 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
|
|---|
| 86 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->server_type));
|
|---|
| 87 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->entry_flags));
|
|---|
| 88 | {
|
|---|
| 89 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 90 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 91 | NDR_CHECK(ndr_push_unique_ptr(ndr, r->share_name));
|
|---|
| 92 | ndr->flags = _flags_save_string;
|
|---|
| 93 | }
|
|---|
| 94 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 95 | }
|
|---|
| 96 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 97 | {
|
|---|
| 98 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 99 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 100 | if (r->share_name) {
|
|---|
| 101 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->share_name));
|
|---|
| 102 | }
|
|---|
| 103 | ndr->flags = _flags_save_string;
|
|---|
| 104 | }
|
|---|
| 105 | }
|
|---|
| 106 | return NDR_ERR_SUCCESS;
|
|---|
| 107 | }
|
|---|
| 108 |
|
|---|
| 109 | static enum ndr_err_code ndr_pull_dfs_referral_v1(struct ndr_pull *ndr, int ndr_flags, struct dfs_referral_v1 *r)
|
|---|
| 110 | {
|
|---|
| 111 | uint32_t _ptr_share_name;
|
|---|
| 112 | TALLOC_CTX *_mem_save_share_name_0;
|
|---|
| 113 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 114 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 115 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
|
|---|
| 116 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->server_type));
|
|---|
| 117 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->entry_flags));
|
|---|
| 118 | {
|
|---|
| 119 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 120 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 121 | NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_share_name));
|
|---|
| 122 | if (_ptr_share_name) {
|
|---|
| 123 | NDR_PULL_ALLOC(ndr, r->share_name);
|
|---|
| 124 | } else {
|
|---|
| 125 | r->share_name = NULL;
|
|---|
| 126 | }
|
|---|
| 127 | ndr->flags = _flags_save_string;
|
|---|
| 128 | }
|
|---|
| 129 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 130 | }
|
|---|
| 131 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 132 | {
|
|---|
| 133 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 134 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 135 | if (r->share_name) {
|
|---|
| 136 | _mem_save_share_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 137 | NDR_PULL_SET_MEM_CTX(ndr, r->share_name, 0);
|
|---|
| 138 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->share_name));
|
|---|
| 139 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_name_0, 0);
|
|---|
| 140 | }
|
|---|
| 141 | ndr->flags = _flags_save_string;
|
|---|
| 142 | }
|
|---|
| 143 | }
|
|---|
| 144 | return NDR_ERR_SUCCESS;
|
|---|
| 145 | }
|
|---|
| 146 |
|
|---|
| 147 | _PUBLIC_ void ndr_print_dfs_referral_v1(struct ndr_print *ndr, const char *name, const struct dfs_referral_v1 *r)
|
|---|
| 148 | {
|
|---|
| 149 | ndr_print_struct(ndr, name, "dfs_referral_v1");
|
|---|
| 150 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 151 | ndr->depth++;
|
|---|
| 152 | ndr_print_uint16(ndr, "size", r->size);
|
|---|
| 153 | ndr_print_uint16(ndr, "server_type", r->server_type);
|
|---|
| 154 | ndr_print_uint16(ndr, "entry_flags", r->entry_flags);
|
|---|
| 155 | ndr_print_ptr(ndr, "share_name", r->share_name);
|
|---|
| 156 | ndr->depth++;
|
|---|
| 157 | if (r->share_name) {
|
|---|
| 158 | ndr_print_string(ndr, "share_name", r->share_name);
|
|---|
| 159 | }
|
|---|
| 160 | ndr->depth--;
|
|---|
| 161 | ndr->depth--;
|
|---|
| 162 | }
|
|---|
| 163 |
|
|---|
| 164 | static enum ndr_err_code ndr_push_dfs_referral_v2(struct ndr_push *ndr, int ndr_flags, const struct dfs_referral_v2 *r)
|
|---|
| 165 | {
|
|---|
| 166 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 167 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 168 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
|
|---|
| 169 | NDR_CHECK(ndr_push_DFS_SERVER_TYPE(ndr, NDR_SCALARS, r->server_type));
|
|---|
| 170 | NDR_CHECK(ndr_push_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, r->entry_flags));
|
|---|
| 171 | NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->proximity));
|
|---|
| 172 | NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ttl));
|
|---|
| 173 | {
|
|---|
| 174 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 175 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 176 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_path));
|
|---|
| 177 | ndr->flags = _flags_save_string;
|
|---|
| 178 | }
|
|---|
| 179 | {
|
|---|
| 180 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 181 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 182 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_alt_path));
|
|---|
| 183 | ndr->flags = _flags_save_string;
|
|---|
| 184 | }
|
|---|
| 185 | {
|
|---|
| 186 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 187 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 188 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->netw_address));
|
|---|
| 189 | ndr->flags = _flags_save_string;
|
|---|
| 190 | }
|
|---|
| 191 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 192 | }
|
|---|
| 193 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 194 | {
|
|---|
| 195 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 196 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 197 | if (r->DFS_path) {
|
|---|
| 198 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_path));
|
|---|
| 199 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_path));
|
|---|
| 200 | }
|
|---|
| 201 | ndr->flags = _flags_save_string;
|
|---|
| 202 | }
|
|---|
| 203 | {
|
|---|
| 204 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 205 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 206 | if (r->DFS_alt_path) {
|
|---|
| 207 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_alt_path));
|
|---|
| 208 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_alt_path));
|
|---|
| 209 | }
|
|---|
| 210 | ndr->flags = _flags_save_string;
|
|---|
| 211 | }
|
|---|
| 212 | {
|
|---|
| 213 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 214 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 215 | if (r->netw_address) {
|
|---|
| 216 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->netw_address));
|
|---|
| 217 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->netw_address));
|
|---|
| 218 | }
|
|---|
| 219 | ndr->flags = _flags_save_string;
|
|---|
| 220 | }
|
|---|
| 221 | }
|
|---|
| 222 | return NDR_ERR_SUCCESS;
|
|---|
| 223 | }
|
|---|
| 224 |
|
|---|
| 225 | static enum ndr_err_code ndr_pull_dfs_referral_v2(struct ndr_pull *ndr, int ndr_flags, struct dfs_referral_v2 *r)
|
|---|
| 226 | {
|
|---|
| 227 | uint16_t _ptr_DFS_path;
|
|---|
| 228 | TALLOC_CTX *_mem_save_DFS_path_0;
|
|---|
| 229 | uint16_t _ptr_DFS_alt_path;
|
|---|
| 230 | TALLOC_CTX *_mem_save_DFS_alt_path_0;
|
|---|
| 231 | uint16_t _ptr_netw_address;
|
|---|
| 232 | TALLOC_CTX *_mem_save_netw_address_0;
|
|---|
| 233 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 234 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 235 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
|
|---|
| 236 | NDR_CHECK(ndr_pull_DFS_SERVER_TYPE(ndr, NDR_SCALARS, &r->server_type));
|
|---|
| 237 | NDR_CHECK(ndr_pull_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, &r->entry_flags));
|
|---|
| 238 | NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->proximity));
|
|---|
| 239 | NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
|
|---|
| 240 | {
|
|---|
| 241 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 242 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 243 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_path));
|
|---|
| 244 | if (_ptr_DFS_path) {
|
|---|
| 245 | NDR_PULL_ALLOC(ndr, r->DFS_path);
|
|---|
| 246 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_path, _ptr_DFS_path));
|
|---|
| 247 | } else {
|
|---|
| 248 | r->DFS_path = NULL;
|
|---|
| 249 | }
|
|---|
| 250 | ndr->flags = _flags_save_string;
|
|---|
| 251 | }
|
|---|
| 252 | {
|
|---|
| 253 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 254 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 255 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_alt_path));
|
|---|
| 256 | if (_ptr_DFS_alt_path) {
|
|---|
| 257 | NDR_PULL_ALLOC(ndr, r->DFS_alt_path);
|
|---|
| 258 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_alt_path, _ptr_DFS_alt_path));
|
|---|
| 259 | } else {
|
|---|
| 260 | r->DFS_alt_path = NULL;
|
|---|
| 261 | }
|
|---|
| 262 | ndr->flags = _flags_save_string;
|
|---|
| 263 | }
|
|---|
| 264 | {
|
|---|
| 265 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 266 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 267 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_netw_address));
|
|---|
| 268 | if (_ptr_netw_address) {
|
|---|
| 269 | NDR_PULL_ALLOC(ndr, r->netw_address);
|
|---|
| 270 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->netw_address, _ptr_netw_address));
|
|---|
| 271 | } else {
|
|---|
| 272 | r->netw_address = NULL;
|
|---|
| 273 | }
|
|---|
| 274 | ndr->flags = _flags_save_string;
|
|---|
| 275 | }
|
|---|
| 276 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 277 | }
|
|---|
| 278 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 279 | {
|
|---|
| 280 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 281 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 282 | if (r->DFS_path) {
|
|---|
| 283 | uint32_t _relative_save_offset;
|
|---|
| 284 | _relative_save_offset = ndr->offset;
|
|---|
| 285 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_path));
|
|---|
| 286 | _mem_save_DFS_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 287 | NDR_PULL_SET_MEM_CTX(ndr, r->DFS_path, 0);
|
|---|
| 288 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_path));
|
|---|
| 289 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_path_0, 0);
|
|---|
| 290 | }
|
|---|
| 291 | ndr->flags = _flags_save_string;
|
|---|
| 292 | }
|
|---|
| 293 | {
|
|---|
| 294 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 295 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 296 | if (r->DFS_alt_path) {
|
|---|
| 297 | uint32_t _relative_save_offset;
|
|---|
| 298 | _relative_save_offset = ndr->offset;
|
|---|
| 299 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_alt_path));
|
|---|
| 300 | _mem_save_DFS_alt_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 301 | NDR_PULL_SET_MEM_CTX(ndr, r->DFS_alt_path, 0);
|
|---|
| 302 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_alt_path));
|
|---|
| 303 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_alt_path_0, 0);
|
|---|
| 304 | }
|
|---|
| 305 | ndr->flags = _flags_save_string;
|
|---|
| 306 | }
|
|---|
| 307 | {
|
|---|
| 308 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 309 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 310 | if (r->netw_address) {
|
|---|
| 311 | uint32_t _relative_save_offset;
|
|---|
| 312 | _relative_save_offset = ndr->offset;
|
|---|
| 313 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->netw_address));
|
|---|
| 314 | _mem_save_netw_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 315 | NDR_PULL_SET_MEM_CTX(ndr, r->netw_address, 0);
|
|---|
| 316 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->netw_address));
|
|---|
| 317 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netw_address_0, 0);
|
|---|
| 318 | }
|
|---|
| 319 | ndr->flags = _flags_save_string;
|
|---|
| 320 | }
|
|---|
| 321 | }
|
|---|
| 322 | return NDR_ERR_SUCCESS;
|
|---|
| 323 | }
|
|---|
| 324 |
|
|---|
| 325 | _PUBLIC_ void ndr_print_dfs_referral_v2(struct ndr_print *ndr, const char *name, const struct dfs_referral_v2 *r)
|
|---|
| 326 | {
|
|---|
| 327 | ndr_print_struct(ndr, name, "dfs_referral_v2");
|
|---|
| 328 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 329 | ndr->depth++;
|
|---|
| 330 | ndr_print_uint16(ndr, "size", r->size);
|
|---|
| 331 | ndr_print_DFS_SERVER_TYPE(ndr, "server_type", r->server_type);
|
|---|
| 332 | ndr_print_DFS_FLAGS_REFERRAL(ndr, "entry_flags", r->entry_flags);
|
|---|
| 333 | ndr_print_uint32(ndr, "proximity", r->proximity);
|
|---|
| 334 | ndr_print_uint32(ndr, "ttl", r->ttl);
|
|---|
| 335 | ndr_print_ptr(ndr, "DFS_path", r->DFS_path);
|
|---|
| 336 | ndr->depth++;
|
|---|
| 337 | if (r->DFS_path) {
|
|---|
| 338 | ndr_print_string(ndr, "DFS_path", r->DFS_path);
|
|---|
| 339 | }
|
|---|
| 340 | ndr->depth--;
|
|---|
| 341 | ndr_print_ptr(ndr, "DFS_alt_path", r->DFS_alt_path);
|
|---|
| 342 | ndr->depth++;
|
|---|
| 343 | if (r->DFS_alt_path) {
|
|---|
| 344 | ndr_print_string(ndr, "DFS_alt_path", r->DFS_alt_path);
|
|---|
| 345 | }
|
|---|
| 346 | ndr->depth--;
|
|---|
| 347 | ndr_print_ptr(ndr, "netw_address", r->netw_address);
|
|---|
| 348 | ndr->depth++;
|
|---|
| 349 | if (r->netw_address) {
|
|---|
| 350 | ndr_print_string(ndr, "netw_address", r->netw_address);
|
|---|
| 351 | }
|
|---|
| 352 | ndr->depth--;
|
|---|
| 353 | ndr->depth--;
|
|---|
| 354 | }
|
|---|
| 355 |
|
|---|
| 356 | static enum ndr_err_code ndr_push_dfs_normal_referral(struct ndr_push *ndr, int ndr_flags, const struct dfs_normal_referral *r)
|
|---|
| 357 | {
|
|---|
| 358 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 359 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 360 | {
|
|---|
| 361 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 362 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 363 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_path));
|
|---|
| 364 | ndr->flags = _flags_save_string;
|
|---|
| 365 | }
|
|---|
| 366 | {
|
|---|
| 367 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 368 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 369 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_alt_path));
|
|---|
| 370 | ndr->flags = _flags_save_string;
|
|---|
| 371 | }
|
|---|
| 372 | {
|
|---|
| 373 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 374 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 375 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->netw_address));
|
|---|
| 376 | ndr->flags = _flags_save_string;
|
|---|
| 377 | }
|
|---|
| 378 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 379 | }
|
|---|
| 380 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 381 | {
|
|---|
| 382 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 383 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 384 | if (r->DFS_path) {
|
|---|
| 385 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_path));
|
|---|
| 386 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_path));
|
|---|
| 387 | }
|
|---|
| 388 | ndr->flags = _flags_save_string;
|
|---|
| 389 | }
|
|---|
| 390 | {
|
|---|
| 391 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 392 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 393 | if (r->DFS_alt_path) {
|
|---|
| 394 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_alt_path));
|
|---|
| 395 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_alt_path));
|
|---|
| 396 | }
|
|---|
| 397 | ndr->flags = _flags_save_string;
|
|---|
| 398 | }
|
|---|
| 399 | {
|
|---|
| 400 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 401 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 402 | if (r->netw_address) {
|
|---|
| 403 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->netw_address));
|
|---|
| 404 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->netw_address));
|
|---|
| 405 | }
|
|---|
| 406 | ndr->flags = _flags_save_string;
|
|---|
| 407 | }
|
|---|
| 408 | }
|
|---|
| 409 | return NDR_ERR_SUCCESS;
|
|---|
| 410 | }
|
|---|
| 411 |
|
|---|
| 412 | static enum ndr_err_code ndr_pull_dfs_normal_referral(struct ndr_pull *ndr, int ndr_flags, struct dfs_normal_referral *r)
|
|---|
| 413 | {
|
|---|
| 414 | uint16_t _ptr_DFS_path;
|
|---|
| 415 | TALLOC_CTX *_mem_save_DFS_path_0;
|
|---|
| 416 | uint16_t _ptr_DFS_alt_path;
|
|---|
| 417 | TALLOC_CTX *_mem_save_DFS_alt_path_0;
|
|---|
| 418 | uint16_t _ptr_netw_address;
|
|---|
| 419 | TALLOC_CTX *_mem_save_netw_address_0;
|
|---|
| 420 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 421 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 422 | {
|
|---|
| 423 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 424 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 425 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_path));
|
|---|
| 426 | if (_ptr_DFS_path) {
|
|---|
| 427 | NDR_PULL_ALLOC(ndr, r->DFS_path);
|
|---|
| 428 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_path, _ptr_DFS_path));
|
|---|
| 429 | } else {
|
|---|
| 430 | r->DFS_path = NULL;
|
|---|
| 431 | }
|
|---|
| 432 | ndr->flags = _flags_save_string;
|
|---|
| 433 | }
|
|---|
| 434 | {
|
|---|
| 435 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 436 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 437 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_alt_path));
|
|---|
| 438 | if (_ptr_DFS_alt_path) {
|
|---|
| 439 | NDR_PULL_ALLOC(ndr, r->DFS_alt_path);
|
|---|
| 440 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_alt_path, _ptr_DFS_alt_path));
|
|---|
| 441 | } else {
|
|---|
| 442 | r->DFS_alt_path = NULL;
|
|---|
| 443 | }
|
|---|
| 444 | ndr->flags = _flags_save_string;
|
|---|
| 445 | }
|
|---|
| 446 | {
|
|---|
| 447 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 448 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 449 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_netw_address));
|
|---|
| 450 | if (_ptr_netw_address) {
|
|---|
| 451 | NDR_PULL_ALLOC(ndr, r->netw_address);
|
|---|
| 452 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->netw_address, _ptr_netw_address));
|
|---|
| 453 | } else {
|
|---|
| 454 | r->netw_address = NULL;
|
|---|
| 455 | }
|
|---|
| 456 | ndr->flags = _flags_save_string;
|
|---|
| 457 | }
|
|---|
| 458 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 459 | }
|
|---|
| 460 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 461 | {
|
|---|
| 462 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 463 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 464 | if (r->DFS_path) {
|
|---|
| 465 | uint32_t _relative_save_offset;
|
|---|
| 466 | _relative_save_offset = ndr->offset;
|
|---|
| 467 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_path));
|
|---|
| 468 | _mem_save_DFS_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 469 | NDR_PULL_SET_MEM_CTX(ndr, r->DFS_path, 0);
|
|---|
| 470 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_path));
|
|---|
| 471 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_path_0, 0);
|
|---|
| 472 | }
|
|---|
| 473 | ndr->flags = _flags_save_string;
|
|---|
| 474 | }
|
|---|
| 475 | {
|
|---|
| 476 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 477 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 478 | if (r->DFS_alt_path) {
|
|---|
| 479 | uint32_t _relative_save_offset;
|
|---|
| 480 | _relative_save_offset = ndr->offset;
|
|---|
| 481 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_alt_path));
|
|---|
| 482 | _mem_save_DFS_alt_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 483 | NDR_PULL_SET_MEM_CTX(ndr, r->DFS_alt_path, 0);
|
|---|
| 484 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_alt_path));
|
|---|
| 485 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_alt_path_0, 0);
|
|---|
| 486 | }
|
|---|
| 487 | ndr->flags = _flags_save_string;
|
|---|
| 488 | }
|
|---|
| 489 | {
|
|---|
| 490 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 491 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 492 | if (r->netw_address) {
|
|---|
| 493 | uint32_t _relative_save_offset;
|
|---|
| 494 | _relative_save_offset = ndr->offset;
|
|---|
| 495 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->netw_address));
|
|---|
| 496 | _mem_save_netw_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 497 | NDR_PULL_SET_MEM_CTX(ndr, r->netw_address, 0);
|
|---|
| 498 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->netw_address));
|
|---|
| 499 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netw_address_0, 0);
|
|---|
| 500 | }
|
|---|
| 501 | ndr->flags = _flags_save_string;
|
|---|
| 502 | }
|
|---|
| 503 | }
|
|---|
| 504 | return NDR_ERR_SUCCESS;
|
|---|
| 505 | }
|
|---|
| 506 |
|
|---|
| 507 | _PUBLIC_ void ndr_print_dfs_normal_referral(struct ndr_print *ndr, const char *name, const struct dfs_normal_referral *r)
|
|---|
| 508 | {
|
|---|
| 509 | ndr_print_struct(ndr, name, "dfs_normal_referral");
|
|---|
| 510 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 511 | ndr->depth++;
|
|---|
| 512 | ndr_print_ptr(ndr, "DFS_path", r->DFS_path);
|
|---|
| 513 | ndr->depth++;
|
|---|
| 514 | if (r->DFS_path) {
|
|---|
| 515 | ndr_print_string(ndr, "DFS_path", r->DFS_path);
|
|---|
| 516 | }
|
|---|
| 517 | ndr->depth--;
|
|---|
| 518 | ndr_print_ptr(ndr, "DFS_alt_path", r->DFS_alt_path);
|
|---|
| 519 | ndr->depth++;
|
|---|
| 520 | if (r->DFS_alt_path) {
|
|---|
| 521 | ndr_print_string(ndr, "DFS_alt_path", r->DFS_alt_path);
|
|---|
| 522 | }
|
|---|
| 523 | ndr->depth--;
|
|---|
| 524 | ndr_print_ptr(ndr, "netw_address", r->netw_address);
|
|---|
| 525 | ndr->depth++;
|
|---|
| 526 | if (r->netw_address) {
|
|---|
| 527 | ndr_print_string(ndr, "netw_address", r->netw_address);
|
|---|
| 528 | }
|
|---|
| 529 | ndr->depth--;
|
|---|
| 530 | ndr->depth--;
|
|---|
| 531 | }
|
|---|
| 532 |
|
|---|
| 533 | static enum ndr_err_code ndr_push_dfs_domain_referral(struct ndr_push *ndr, int ndr_flags, const struct dfs_domain_referral *r)
|
|---|
| 534 | {
|
|---|
| 535 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 536 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 537 | {
|
|---|
| 538 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 539 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 540 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->special_name));
|
|---|
| 541 | ndr->flags = _flags_save_string;
|
|---|
| 542 | }
|
|---|
| 543 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nb_expanded_names));
|
|---|
| 544 | {
|
|---|
| 545 | uint32_t _flags_save_string_array = ndr->flags;
|
|---|
| 546 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
|
|---|
| 547 | NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->expanded_names));
|
|---|
| 548 | ndr->flags = _flags_save_string_array;
|
|---|
| 549 | }
|
|---|
| 550 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 551 | }
|
|---|
| 552 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 553 | {
|
|---|
| 554 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 555 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 556 | if (r->special_name) {
|
|---|
| 557 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->special_name));
|
|---|
| 558 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->special_name));
|
|---|
| 559 | }
|
|---|
| 560 | ndr->flags = _flags_save_string;
|
|---|
| 561 | }
|
|---|
| 562 | {
|
|---|
| 563 | uint32_t _flags_save_string_array = ndr->flags;
|
|---|
| 564 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
|
|---|
| 565 | if (r->expanded_names) {
|
|---|
| 566 | NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->expanded_names));
|
|---|
| 567 | {
|
|---|
| 568 | struct ndr_push *_ndr_expanded_names;
|
|---|
| 569 | NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_expanded_names, 0, -1));
|
|---|
| 570 | NDR_CHECK(ndr_push_string_array(_ndr_expanded_names, NDR_SCALARS, r->expanded_names));
|
|---|
| 571 | NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_expanded_names, 0, -1));
|
|---|
| 572 | }
|
|---|
| 573 | }
|
|---|
| 574 | ndr->flags = _flags_save_string_array;
|
|---|
| 575 | }
|
|---|
| 576 | }
|
|---|
| 577 | return NDR_ERR_SUCCESS;
|
|---|
| 578 | }
|
|---|
| 579 |
|
|---|
| 580 | static enum ndr_err_code ndr_pull_dfs_domain_referral(struct ndr_pull *ndr, int ndr_flags, struct dfs_domain_referral *r)
|
|---|
| 581 | {
|
|---|
| 582 | uint16_t _ptr_special_name;
|
|---|
| 583 | TALLOC_CTX *_mem_save_special_name_0;
|
|---|
| 584 | uint16_t _ptr_expanded_names;
|
|---|
| 585 | TALLOC_CTX *_mem_save_expanded_names_0;
|
|---|
| 586 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 587 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 588 | {
|
|---|
| 589 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 590 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 591 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_special_name));
|
|---|
| 592 | if (_ptr_special_name) {
|
|---|
| 593 | NDR_PULL_ALLOC(ndr, r->special_name);
|
|---|
| 594 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->special_name, _ptr_special_name));
|
|---|
| 595 | } else {
|
|---|
| 596 | r->special_name = NULL;
|
|---|
| 597 | }
|
|---|
| 598 | ndr->flags = _flags_save_string;
|
|---|
| 599 | }
|
|---|
| 600 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nb_expanded_names));
|
|---|
| 601 | {
|
|---|
| 602 | uint32_t _flags_save_string_array = ndr->flags;
|
|---|
| 603 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
|
|---|
| 604 | NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_expanded_names));
|
|---|
| 605 | if (_ptr_expanded_names) {
|
|---|
| 606 | NDR_PULL_ALLOC(ndr, r->expanded_names);
|
|---|
| 607 | NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->expanded_names, _ptr_expanded_names));
|
|---|
| 608 | } else {
|
|---|
| 609 | r->expanded_names = NULL;
|
|---|
| 610 | }
|
|---|
| 611 | ndr->flags = _flags_save_string_array;
|
|---|
| 612 | }
|
|---|
| 613 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 614 | }
|
|---|
| 615 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 616 | {
|
|---|
| 617 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 618 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 619 | if (r->special_name) {
|
|---|
| 620 | uint32_t _relative_save_offset;
|
|---|
| 621 | _relative_save_offset = ndr->offset;
|
|---|
| 622 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->special_name));
|
|---|
| 623 | _mem_save_special_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 624 | NDR_PULL_SET_MEM_CTX(ndr, r->special_name, 0);
|
|---|
| 625 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->special_name));
|
|---|
| 626 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_special_name_0, 0);
|
|---|
| 627 | }
|
|---|
| 628 | ndr->flags = _flags_save_string;
|
|---|
| 629 | }
|
|---|
| 630 | {
|
|---|
| 631 | uint32_t _flags_save_string_array = ndr->flags;
|
|---|
| 632 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
|
|---|
| 633 | if (r->expanded_names) {
|
|---|
| 634 | uint32_t _relative_save_offset;
|
|---|
| 635 | _relative_save_offset = ndr->offset;
|
|---|
| 636 | NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->expanded_names));
|
|---|
| 637 | _mem_save_expanded_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 638 | NDR_PULL_SET_MEM_CTX(ndr, r->expanded_names, 0);
|
|---|
| 639 | {
|
|---|
| 640 | struct ndr_pull *_ndr_expanded_names;
|
|---|
| 641 | NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_expanded_names, 0, -1));
|
|---|
| 642 | NDR_CHECK(ndr_pull_string_array(_ndr_expanded_names, NDR_SCALARS, &r->expanded_names));
|
|---|
| 643 | NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_expanded_names, 0, -1));
|
|---|
| 644 | }
|
|---|
| 645 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_expanded_names_0, 0);
|
|---|
| 646 | }
|
|---|
| 647 | ndr->flags = _flags_save_string_array;
|
|---|
| 648 | }
|
|---|
| 649 | }
|
|---|
| 650 | return NDR_ERR_SUCCESS;
|
|---|
| 651 | }
|
|---|
| 652 |
|
|---|
| 653 | _PUBLIC_ void ndr_print_dfs_domain_referral(struct ndr_print *ndr, const char *name, const struct dfs_domain_referral *r)
|
|---|
| 654 | {
|
|---|
| 655 | ndr_print_struct(ndr, name, "dfs_domain_referral");
|
|---|
| 656 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 657 | ndr->depth++;
|
|---|
| 658 | ndr_print_ptr(ndr, "special_name", r->special_name);
|
|---|
| 659 | ndr->depth++;
|
|---|
| 660 | if (r->special_name) {
|
|---|
| 661 | ndr_print_string(ndr, "special_name", r->special_name);
|
|---|
| 662 | }
|
|---|
| 663 | ndr->depth--;
|
|---|
| 664 | ndr_print_uint16(ndr, "nb_expanded_names", r->nb_expanded_names);
|
|---|
| 665 | ndr_print_ptr(ndr, "expanded_names", r->expanded_names);
|
|---|
| 666 | ndr->depth++;
|
|---|
| 667 | if (r->expanded_names) {
|
|---|
| 668 | ndr_print_string_array(ndr, "expanded_names", r->expanded_names);
|
|---|
| 669 | }
|
|---|
| 670 | ndr->depth--;
|
|---|
| 671 | ndr->depth--;
|
|---|
| 672 | }
|
|---|
| 673 |
|
|---|
| 674 | static enum ndr_err_code ndr_push_dfs_referral(struct ndr_push *ndr, int ndr_flags, const union dfs_referral *r)
|
|---|
| 675 | {
|
|---|
| 676 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 677 | uint32_t level = ndr_push_get_switch_value(ndr, r);
|
|---|
| 678 | NDR_CHECK(ndr_push_union_align(ndr, 5));
|
|---|
| 679 | switch (level) {
|
|---|
| 680 | case 0: {
|
|---|
| 681 | NDR_CHECK(ndr_push_dfs_normal_referral(ndr, NDR_SCALARS, &r->r1));
|
|---|
| 682 | break; }
|
|---|
| 683 |
|
|---|
| 684 | case 2: {
|
|---|
| 685 | NDR_CHECK(ndr_push_dfs_domain_referral(ndr, NDR_SCALARS, &r->r2));
|
|---|
| 686 | break; }
|
|---|
| 687 |
|
|---|
| 688 | default: {
|
|---|
| 689 | break; }
|
|---|
| 690 |
|
|---|
| 691 | }
|
|---|
| 692 | }
|
|---|
| 693 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 694 | uint32_t level = ndr_push_get_switch_value(ndr, r);
|
|---|
| 695 | switch (level) {
|
|---|
| 696 | case 0:
|
|---|
| 697 | NDR_CHECK(ndr_push_dfs_normal_referral(ndr, NDR_BUFFERS, &r->r1));
|
|---|
| 698 | break;
|
|---|
| 699 |
|
|---|
| 700 | case 2:
|
|---|
| 701 | NDR_CHECK(ndr_push_dfs_domain_referral(ndr, NDR_BUFFERS, &r->r2));
|
|---|
| 702 | break;
|
|---|
| 703 |
|
|---|
| 704 | default:
|
|---|
| 705 | break;
|
|---|
| 706 |
|
|---|
| 707 | }
|
|---|
| 708 | }
|
|---|
| 709 | return NDR_ERR_SUCCESS;
|
|---|
| 710 | }
|
|---|
| 711 |
|
|---|
| 712 | static enum ndr_err_code ndr_pull_dfs_referral(struct ndr_pull *ndr, int ndr_flags, union dfs_referral *r)
|
|---|
| 713 | {
|
|---|
| 714 | uint32_t level;
|
|---|
| 715 | level = ndr_pull_get_switch_value(ndr, r);
|
|---|
| 716 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 717 | NDR_CHECK(ndr_pull_union_align(ndr, 5));
|
|---|
| 718 | switch (level) {
|
|---|
| 719 | case 0: {
|
|---|
| 720 | NDR_CHECK(ndr_pull_dfs_normal_referral(ndr, NDR_SCALARS, &r->r1));
|
|---|
| 721 | break; }
|
|---|
| 722 |
|
|---|
| 723 | case 2: {
|
|---|
| 724 | NDR_CHECK(ndr_pull_dfs_domain_referral(ndr, NDR_SCALARS, &r->r2));
|
|---|
| 725 | break; }
|
|---|
| 726 |
|
|---|
| 727 | default: {
|
|---|
| 728 | break; }
|
|---|
| 729 |
|
|---|
| 730 | }
|
|---|
| 731 | }
|
|---|
| 732 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 733 | switch (level) {
|
|---|
| 734 | case 0:
|
|---|
| 735 | NDR_CHECK(ndr_pull_dfs_normal_referral(ndr, NDR_BUFFERS, &r->r1));
|
|---|
| 736 | break;
|
|---|
| 737 |
|
|---|
| 738 | case 2:
|
|---|
| 739 | NDR_CHECK(ndr_pull_dfs_domain_referral(ndr, NDR_BUFFERS, &r->r2));
|
|---|
| 740 | break;
|
|---|
| 741 |
|
|---|
| 742 | default:
|
|---|
| 743 | break;
|
|---|
| 744 |
|
|---|
| 745 | }
|
|---|
| 746 | }
|
|---|
| 747 | return NDR_ERR_SUCCESS;
|
|---|
| 748 | }
|
|---|
| 749 |
|
|---|
| 750 | _PUBLIC_ void ndr_print_dfs_referral(struct ndr_print *ndr, const char *name, const union dfs_referral *r)
|
|---|
| 751 | {
|
|---|
| 752 | uint32_t level;
|
|---|
| 753 | level = ndr_print_get_switch_value(ndr, r);
|
|---|
| 754 | ndr_print_union(ndr, name, level, "dfs_referral");
|
|---|
| 755 | switch (level) {
|
|---|
| 756 | case 0:
|
|---|
| 757 | ndr_print_dfs_normal_referral(ndr, "r1", &r->r1);
|
|---|
| 758 | break;
|
|---|
| 759 |
|
|---|
| 760 | case 2:
|
|---|
| 761 | ndr_print_dfs_domain_referral(ndr, "r2", &r->r2);
|
|---|
| 762 | break;
|
|---|
| 763 |
|
|---|
| 764 | default:
|
|---|
| 765 | break;
|
|---|
| 766 |
|
|---|
| 767 | }
|
|---|
| 768 | }
|
|---|
| 769 |
|
|---|
| 770 | static enum ndr_err_code ndr_push_dfs_padding(struct ndr_push *ndr, int ndr_flags, const union dfs_padding *r)
|
|---|
| 771 | {
|
|---|
| 772 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 773 | uint32_t level = ndr_push_get_switch_value(ndr, r);
|
|---|
| 774 | NDR_CHECK(ndr_push_union_align(ndr, 1));
|
|---|
| 775 | switch (level) {
|
|---|
| 776 | case 16: {
|
|---|
| 777 | NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->value, 16));
|
|---|
| 778 | break; }
|
|---|
| 779 |
|
|---|
| 780 | default: {
|
|---|
| 781 | break; }
|
|---|
| 782 |
|
|---|
| 783 | }
|
|---|
| 784 | }
|
|---|
| 785 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 786 | uint32_t level = ndr_push_get_switch_value(ndr, r);
|
|---|
| 787 | switch (level) {
|
|---|
| 788 | case 16:
|
|---|
| 789 | break;
|
|---|
| 790 |
|
|---|
| 791 | default:
|
|---|
| 792 | break;
|
|---|
| 793 |
|
|---|
| 794 | }
|
|---|
| 795 | }
|
|---|
| 796 | return NDR_ERR_SUCCESS;
|
|---|
| 797 | }
|
|---|
| 798 |
|
|---|
| 799 | static enum ndr_err_code ndr_pull_dfs_padding(struct ndr_pull *ndr, int ndr_flags, union dfs_padding *r)
|
|---|
| 800 | {
|
|---|
| 801 | uint32_t level;
|
|---|
| 802 | uint32_t size_value_0 = 0;
|
|---|
| 803 | level = ndr_pull_get_switch_value(ndr, r);
|
|---|
| 804 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 805 | NDR_CHECK(ndr_pull_union_align(ndr, 1));
|
|---|
| 806 | switch (level) {
|
|---|
| 807 | case 16: {
|
|---|
| 808 | size_value_0 = 16;
|
|---|
| 809 | NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->value, size_value_0));
|
|---|
| 810 | break; }
|
|---|
| 811 |
|
|---|
| 812 | default: {
|
|---|
| 813 | break; }
|
|---|
| 814 |
|
|---|
| 815 | }
|
|---|
| 816 | }
|
|---|
| 817 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 818 | switch (level) {
|
|---|
| 819 | case 16:
|
|---|
| 820 | break;
|
|---|
| 821 |
|
|---|
| 822 | default:
|
|---|
| 823 | break;
|
|---|
| 824 |
|
|---|
| 825 | }
|
|---|
| 826 | }
|
|---|
| 827 | return NDR_ERR_SUCCESS;
|
|---|
| 828 | }
|
|---|
| 829 |
|
|---|
| 830 | _PUBLIC_ void ndr_print_dfs_padding(struct ndr_print *ndr, const char *name, const union dfs_padding *r)
|
|---|
| 831 | {
|
|---|
| 832 | uint32_t level;
|
|---|
| 833 | level = ndr_print_get_switch_value(ndr, r);
|
|---|
| 834 | ndr_print_union(ndr, name, level, "dfs_padding");
|
|---|
| 835 | switch (level) {
|
|---|
| 836 | case 16:
|
|---|
| 837 | ndr_print_array_uint8(ndr, "value", r->value, 16);
|
|---|
| 838 | break;
|
|---|
| 839 |
|
|---|
| 840 | default:
|
|---|
| 841 | break;
|
|---|
| 842 |
|
|---|
| 843 | }
|
|---|
| 844 | }
|
|---|
| 845 |
|
|---|
| 846 | static enum ndr_err_code ndr_push_dfs_referral_v3_remaining(struct ndr_push *ndr, int ndr_flags, const struct dfs_referral_v3_remaining *r)
|
|---|
| 847 | {
|
|---|
| 848 | {
|
|---|
| 849 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 850 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 851 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 852 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 853 | NDR_CHECK(ndr_push_DFS_SERVER_TYPE(ndr, NDR_SCALARS, r->server_type));
|
|---|
| 854 | NDR_CHECK(ndr_push_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, r->entry_flags));
|
|---|
| 855 | NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ttl));
|
|---|
| 856 | NDR_CHECK(ndr_push_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP));
|
|---|
| 857 | NDR_CHECK(ndr_push_dfs_referral(ndr, NDR_SCALARS, &r->referrals));
|
|---|
| 858 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 859 | }
|
|---|
| 860 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 861 | NDR_CHECK(ndr_push_dfs_referral(ndr, NDR_BUFFERS, &r->referrals));
|
|---|
| 862 | }
|
|---|
| 863 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 864 | }
|
|---|
| 865 | return NDR_ERR_SUCCESS;
|
|---|
| 866 | }
|
|---|
| 867 |
|
|---|
| 868 | static enum ndr_err_code ndr_pull_dfs_referral_v3_remaining(struct ndr_pull *ndr, int ndr_flags, struct dfs_referral_v3_remaining *r)
|
|---|
| 869 | {
|
|---|
| 870 | {
|
|---|
| 871 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 872 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 873 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 874 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 875 | NDR_CHECK(ndr_pull_DFS_SERVER_TYPE(ndr, NDR_SCALARS, &r->server_type));
|
|---|
| 876 | NDR_CHECK(ndr_pull_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, &r->entry_flags));
|
|---|
| 877 | NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
|
|---|
| 878 | NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP));
|
|---|
| 879 | NDR_CHECK(ndr_pull_dfs_referral(ndr, NDR_SCALARS, &r->referrals));
|
|---|
| 880 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 881 | }
|
|---|
| 882 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 883 | NDR_CHECK(ndr_pull_dfs_referral(ndr, NDR_BUFFERS, &r->referrals));
|
|---|
| 884 | }
|
|---|
| 885 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 886 | }
|
|---|
| 887 | return NDR_ERR_SUCCESS;
|
|---|
| 888 | }
|
|---|
| 889 |
|
|---|
| 890 | _PUBLIC_ void ndr_print_dfs_referral_v3_remaining(struct ndr_print *ndr, const char *name, const struct dfs_referral_v3_remaining *r)
|
|---|
| 891 | {
|
|---|
| 892 | ndr_print_struct(ndr, name, "dfs_referral_v3_remaining");
|
|---|
| 893 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 894 | {
|
|---|
| 895 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 896 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 897 | ndr->depth++;
|
|---|
| 898 | ndr_print_DFS_SERVER_TYPE(ndr, "server_type", r->server_type);
|
|---|
| 899 | ndr_print_DFS_FLAGS_REFERRAL(ndr, "entry_flags", r->entry_flags);
|
|---|
| 900 | ndr_print_uint32(ndr, "ttl", r->ttl);
|
|---|
| 901 | ndr_print_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP);
|
|---|
| 902 | ndr_print_dfs_referral(ndr, "referrals", &r->referrals);
|
|---|
| 903 | ndr->depth--;
|
|---|
| 904 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 905 | }
|
|---|
| 906 | }
|
|---|
| 907 |
|
|---|
| 908 | static enum ndr_err_code ndr_push_dfs_referral_v3(struct ndr_push *ndr, int ndr_flags, const struct dfs_referral_v3 *r)
|
|---|
| 909 | {
|
|---|
| 910 | {
|
|---|
| 911 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 912 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 913 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 914 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 915 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
|
|---|
| 916 | NDR_CHECK(ndr_push_dfs_referral_v3_remaining(ndr, NDR_SCALARS, &r->data));
|
|---|
| 917 | NDR_CHECK(ndr_push_set_switch_value(ndr, &r->service_site_guid, r->size - 18));
|
|---|
| 918 | NDR_CHECK(ndr_push_dfs_padding(ndr, NDR_SCALARS, &r->service_site_guid));
|
|---|
| 919 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 920 | }
|
|---|
| 921 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 922 | NDR_CHECK(ndr_push_dfs_referral_v3_remaining(ndr, NDR_BUFFERS, &r->data));
|
|---|
| 923 | NDR_CHECK(ndr_push_dfs_padding(ndr, NDR_BUFFERS, &r->service_site_guid));
|
|---|
| 924 | }
|
|---|
| 925 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 926 | }
|
|---|
| 927 | return NDR_ERR_SUCCESS;
|
|---|
| 928 | }
|
|---|
| 929 |
|
|---|
| 930 | static enum ndr_err_code ndr_pull_dfs_referral_v3(struct ndr_pull *ndr, int ndr_flags, struct dfs_referral_v3 *r)
|
|---|
| 931 | {
|
|---|
| 932 | {
|
|---|
| 933 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 934 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 935 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 936 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 937 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
|
|---|
| 938 | NDR_CHECK(ndr_pull_dfs_referral_v3_remaining(ndr, NDR_SCALARS, &r->data));
|
|---|
| 939 | NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->service_site_guid, r->size - 18));
|
|---|
| 940 | NDR_CHECK(ndr_pull_dfs_padding(ndr, NDR_SCALARS, &r->service_site_guid));
|
|---|
| 941 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 942 | }
|
|---|
| 943 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 944 | NDR_CHECK(ndr_pull_dfs_referral_v3_remaining(ndr, NDR_BUFFERS, &r->data));
|
|---|
| 945 | NDR_CHECK(ndr_pull_dfs_padding(ndr, NDR_BUFFERS, &r->service_site_guid));
|
|---|
| 946 | }
|
|---|
| 947 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 948 | }
|
|---|
| 949 | return NDR_ERR_SUCCESS;
|
|---|
| 950 | }
|
|---|
| 951 |
|
|---|
| 952 | _PUBLIC_ void ndr_print_dfs_referral_v3(struct ndr_print *ndr, const char *name, const struct dfs_referral_v3 *r)
|
|---|
| 953 | {
|
|---|
| 954 | ndr_print_struct(ndr, name, "dfs_referral_v3");
|
|---|
| 955 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 956 | {
|
|---|
| 957 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 958 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 959 | ndr->depth++;
|
|---|
| 960 | ndr_print_uint16(ndr, "size", r->size);
|
|---|
| 961 | ndr_print_dfs_referral_v3_remaining(ndr, "data", &r->data);
|
|---|
| 962 | ndr_print_set_switch_value(ndr, &r->service_site_guid, r->size - 18);
|
|---|
| 963 | ndr_print_dfs_padding(ndr, "service_site_guid", &r->service_site_guid);
|
|---|
| 964 | ndr->depth--;
|
|---|
| 965 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 966 | }
|
|---|
| 967 | }
|
|---|
| 968 |
|
|---|
| 969 | static enum ndr_err_code ndr_push_dfs_referral_v4(struct ndr_push *ndr, int ndr_flags, const struct dfs_referral_v4 *r)
|
|---|
| 970 | {
|
|---|
| 971 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 972 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 973 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
|
|---|
| 974 | NDR_CHECK(ndr_push_DFS_SERVER_TYPE(ndr, NDR_SCALARS, r->server_type));
|
|---|
| 975 | NDR_CHECK(ndr_push_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, r->entry_flags));
|
|---|
| 976 | NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ttl));
|
|---|
| 977 | NDR_CHECK(ndr_push_dfs_normal_referral(ndr, NDR_SCALARS, &r->r1));
|
|---|
| 978 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 979 | }
|
|---|
| 980 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 981 | NDR_CHECK(ndr_push_dfs_normal_referral(ndr, NDR_BUFFERS, &r->r1));
|
|---|
| 982 | }
|
|---|
| 983 | return NDR_ERR_SUCCESS;
|
|---|
| 984 | }
|
|---|
| 985 |
|
|---|
| 986 | static enum ndr_err_code ndr_pull_dfs_referral_v4(struct ndr_pull *ndr, int ndr_flags, struct dfs_referral_v4 *r)
|
|---|
| 987 | {
|
|---|
| 988 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 989 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 990 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
|
|---|
| 991 | NDR_CHECK(ndr_pull_DFS_SERVER_TYPE(ndr, NDR_SCALARS, &r->server_type));
|
|---|
| 992 | NDR_CHECK(ndr_pull_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, &r->entry_flags));
|
|---|
| 993 | NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
|
|---|
| 994 | NDR_CHECK(ndr_pull_dfs_normal_referral(ndr, NDR_SCALARS, &r->r1));
|
|---|
| 995 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 996 | }
|
|---|
| 997 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 998 | NDR_CHECK(ndr_pull_dfs_normal_referral(ndr, NDR_BUFFERS, &r->r1));
|
|---|
| 999 | }
|
|---|
| 1000 | return NDR_ERR_SUCCESS;
|
|---|
| 1001 | }
|
|---|
| 1002 |
|
|---|
| 1003 | _PUBLIC_ void ndr_print_dfs_referral_v4(struct ndr_print *ndr, const char *name, const struct dfs_referral_v4 *r)
|
|---|
| 1004 | {
|
|---|
| 1005 | ndr_print_struct(ndr, name, "dfs_referral_v4");
|
|---|
| 1006 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 1007 | ndr->depth++;
|
|---|
| 1008 | ndr_print_uint16(ndr, "size", r->size);
|
|---|
| 1009 | ndr_print_DFS_SERVER_TYPE(ndr, "server_type", r->server_type);
|
|---|
| 1010 | ndr_print_DFS_FLAGS_REFERRAL(ndr, "entry_flags", r->entry_flags);
|
|---|
| 1011 | ndr_print_uint32(ndr, "ttl", r->ttl);
|
|---|
| 1012 | ndr_print_dfs_normal_referral(ndr, "r1", &r->r1);
|
|---|
| 1013 | ndr->depth--;
|
|---|
| 1014 | }
|
|---|
| 1015 |
|
|---|
| 1016 | static enum ndr_err_code ndr_push_dfs_referral_version(struct ndr_push *ndr, int ndr_flags, const union dfs_referral_version *r)
|
|---|
| 1017 | {
|
|---|
| 1018 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1019 | uint32_t level = ndr_push_get_switch_value(ndr, r);
|
|---|
| 1020 | NDR_CHECK(ndr_push_union_align(ndr, 5));
|
|---|
| 1021 | switch (level) {
|
|---|
| 1022 | case 1: {
|
|---|
| 1023 | NDR_CHECK(ndr_push_dfs_referral_v1(ndr, NDR_SCALARS, &r->v1));
|
|---|
| 1024 | break; }
|
|---|
| 1025 |
|
|---|
| 1026 | case 2: {
|
|---|
| 1027 | NDR_CHECK(ndr_push_dfs_referral_v2(ndr, NDR_SCALARS, &r->v2));
|
|---|
| 1028 | break; }
|
|---|
| 1029 |
|
|---|
| 1030 | case 3: {
|
|---|
| 1031 | NDR_CHECK(ndr_push_dfs_referral_v3(ndr, NDR_SCALARS, &r->v3));
|
|---|
| 1032 | break; }
|
|---|
| 1033 |
|
|---|
| 1034 | case 4: {
|
|---|
| 1035 | NDR_CHECK(ndr_push_dfs_referral_v4(ndr, NDR_SCALARS, &r->v4));
|
|---|
| 1036 | break; }
|
|---|
| 1037 |
|
|---|
| 1038 | default: {
|
|---|
| 1039 | break; }
|
|---|
| 1040 |
|
|---|
| 1041 | }
|
|---|
| 1042 | }
|
|---|
| 1043 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1044 | uint32_t level = ndr_push_get_switch_value(ndr, r);
|
|---|
| 1045 | switch (level) {
|
|---|
| 1046 | case 1:
|
|---|
| 1047 | NDR_CHECK(ndr_push_dfs_referral_v1(ndr, NDR_BUFFERS, &r->v1));
|
|---|
| 1048 | break;
|
|---|
| 1049 |
|
|---|
| 1050 | case 2:
|
|---|
| 1051 | NDR_CHECK(ndr_push_dfs_referral_v2(ndr, NDR_BUFFERS, &r->v2));
|
|---|
| 1052 | break;
|
|---|
| 1053 |
|
|---|
| 1054 | case 3:
|
|---|
| 1055 | NDR_CHECK(ndr_push_dfs_referral_v3(ndr, NDR_BUFFERS, &r->v3));
|
|---|
| 1056 | break;
|
|---|
| 1057 |
|
|---|
| 1058 | case 4:
|
|---|
| 1059 | NDR_CHECK(ndr_push_dfs_referral_v4(ndr, NDR_BUFFERS, &r->v4));
|
|---|
| 1060 | break;
|
|---|
| 1061 |
|
|---|
| 1062 | default:
|
|---|
| 1063 | break;
|
|---|
| 1064 |
|
|---|
| 1065 | }
|
|---|
| 1066 | }
|
|---|
| 1067 | return NDR_ERR_SUCCESS;
|
|---|
| 1068 | }
|
|---|
| 1069 |
|
|---|
| 1070 | static enum ndr_err_code ndr_pull_dfs_referral_version(struct ndr_pull *ndr, int ndr_flags, union dfs_referral_version *r)
|
|---|
| 1071 | {
|
|---|
| 1072 | uint32_t level;
|
|---|
| 1073 | level = ndr_pull_get_switch_value(ndr, r);
|
|---|
| 1074 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1075 | NDR_CHECK(ndr_pull_union_align(ndr, 5));
|
|---|
| 1076 | switch (level) {
|
|---|
| 1077 | case 1: {
|
|---|
| 1078 | NDR_CHECK(ndr_pull_dfs_referral_v1(ndr, NDR_SCALARS, &r->v1));
|
|---|
| 1079 | break; }
|
|---|
| 1080 |
|
|---|
| 1081 | case 2: {
|
|---|
| 1082 | NDR_CHECK(ndr_pull_dfs_referral_v2(ndr, NDR_SCALARS, &r->v2));
|
|---|
| 1083 | break; }
|
|---|
| 1084 |
|
|---|
| 1085 | case 3: {
|
|---|
| 1086 | NDR_CHECK(ndr_pull_dfs_referral_v3(ndr, NDR_SCALARS, &r->v3));
|
|---|
| 1087 | break; }
|
|---|
| 1088 |
|
|---|
| 1089 | case 4: {
|
|---|
| 1090 | NDR_CHECK(ndr_pull_dfs_referral_v4(ndr, NDR_SCALARS, &r->v4));
|
|---|
| 1091 | break; }
|
|---|
| 1092 |
|
|---|
| 1093 | default: {
|
|---|
| 1094 | break; }
|
|---|
| 1095 |
|
|---|
| 1096 | }
|
|---|
| 1097 | }
|
|---|
| 1098 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1099 | switch (level) {
|
|---|
| 1100 | case 1:
|
|---|
| 1101 | NDR_CHECK(ndr_pull_dfs_referral_v1(ndr, NDR_BUFFERS, &r->v1));
|
|---|
| 1102 | break;
|
|---|
| 1103 |
|
|---|
| 1104 | case 2:
|
|---|
| 1105 | NDR_CHECK(ndr_pull_dfs_referral_v2(ndr, NDR_BUFFERS, &r->v2));
|
|---|
| 1106 | break;
|
|---|
| 1107 |
|
|---|
| 1108 | case 3:
|
|---|
| 1109 | NDR_CHECK(ndr_pull_dfs_referral_v3(ndr, NDR_BUFFERS, &r->v3));
|
|---|
| 1110 | break;
|
|---|
| 1111 |
|
|---|
| 1112 | case 4:
|
|---|
| 1113 | NDR_CHECK(ndr_pull_dfs_referral_v4(ndr, NDR_BUFFERS, &r->v4));
|
|---|
| 1114 | break;
|
|---|
| 1115 |
|
|---|
| 1116 | default:
|
|---|
| 1117 | break;
|
|---|
| 1118 |
|
|---|
| 1119 | }
|
|---|
| 1120 | }
|
|---|
| 1121 | return NDR_ERR_SUCCESS;
|
|---|
| 1122 | }
|
|---|
| 1123 |
|
|---|
| 1124 | _PUBLIC_ void ndr_print_dfs_referral_version(struct ndr_print *ndr, const char *name, const union dfs_referral_version *r)
|
|---|
| 1125 | {
|
|---|
| 1126 | uint32_t level;
|
|---|
| 1127 | level = ndr_print_get_switch_value(ndr, r);
|
|---|
| 1128 | ndr_print_union(ndr, name, level, "dfs_referral_version");
|
|---|
| 1129 | switch (level) {
|
|---|
| 1130 | case 1:
|
|---|
| 1131 | ndr_print_dfs_referral_v1(ndr, "v1", &r->v1);
|
|---|
| 1132 | break;
|
|---|
| 1133 |
|
|---|
| 1134 | case 2:
|
|---|
| 1135 | ndr_print_dfs_referral_v2(ndr, "v2", &r->v2);
|
|---|
| 1136 | break;
|
|---|
| 1137 |
|
|---|
| 1138 | case 3:
|
|---|
| 1139 | ndr_print_dfs_referral_v3(ndr, "v3", &r->v3);
|
|---|
| 1140 | break;
|
|---|
| 1141 |
|
|---|
| 1142 | case 4:
|
|---|
| 1143 | ndr_print_dfs_referral_v4(ndr, "v4", &r->v4);
|
|---|
| 1144 | break;
|
|---|
| 1145 |
|
|---|
| 1146 | default:
|
|---|
| 1147 | break;
|
|---|
| 1148 |
|
|---|
| 1149 | }
|
|---|
| 1150 | }
|
|---|
| 1151 |
|
|---|
| 1152 | static enum ndr_err_code ndr_push_dfs_referral_type(struct ndr_push *ndr, int ndr_flags, const struct dfs_referral_type *r)
|
|---|
| 1153 | {
|
|---|
| 1154 | uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
|
|---|
| 1155 | {
|
|---|
| 1156 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 1157 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 1158 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1159 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 1160 | NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
|
|---|
| 1161 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version));
|
|---|
| 1162 | NDR_CHECK(ndr_push_set_switch_value(ndr, &r->referral, r->version));
|
|---|
| 1163 | NDR_CHECK(ndr_push_dfs_referral_version(ndr, NDR_SCALARS, &r->referral));
|
|---|
| 1164 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 1165 | }
|
|---|
| 1166 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1167 | NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
|
|---|
| 1168 | NDR_CHECK(ndr_push_dfs_referral_version(ndr, NDR_BUFFERS, &r->referral));
|
|---|
| 1169 | }
|
|---|
| 1170 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 1171 | }
|
|---|
| 1172 | ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
|
|---|
| 1173 | return NDR_ERR_SUCCESS;
|
|---|
| 1174 | }
|
|---|
| 1175 |
|
|---|
| 1176 | static enum ndr_err_code ndr_pull_dfs_referral_type(struct ndr_pull *ndr, int ndr_flags, struct dfs_referral_type *r)
|
|---|
| 1177 | {
|
|---|
| 1178 | uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
|
|---|
| 1179 | {
|
|---|
| 1180 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 1181 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 1182 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1183 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 1184 | NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
|
|---|
| 1185 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version));
|
|---|
| 1186 | NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->referral, r->version));
|
|---|
| 1187 | NDR_CHECK(ndr_pull_dfs_referral_version(ndr, NDR_SCALARS, &r->referral));
|
|---|
| 1188 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 1189 | }
|
|---|
| 1190 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1191 | NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
|
|---|
| 1192 | NDR_CHECK(ndr_pull_dfs_referral_version(ndr, NDR_BUFFERS, &r->referral));
|
|---|
| 1193 | }
|
|---|
| 1194 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 1195 | }
|
|---|
| 1196 | ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
|
|---|
| 1197 | return NDR_ERR_SUCCESS;
|
|---|
| 1198 | }
|
|---|
| 1199 |
|
|---|
| 1200 | _PUBLIC_ void ndr_print_dfs_referral_type(struct ndr_print *ndr, const char *name, const struct dfs_referral_type *r)
|
|---|
| 1201 | {
|
|---|
| 1202 | ndr_print_struct(ndr, name, "dfs_referral_type");
|
|---|
| 1203 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 1204 | {
|
|---|
| 1205 | uint32_t _flags_save_STRUCT = ndr->flags;
|
|---|
| 1206 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
|
|---|
| 1207 | ndr->depth++;
|
|---|
| 1208 | ndr_print_uint16(ndr, "version", r->version);
|
|---|
| 1209 | ndr_print_set_switch_value(ndr, &r->referral, r->version);
|
|---|
| 1210 | ndr_print_dfs_referral_version(ndr, "referral", &r->referral);
|
|---|
| 1211 | ndr->depth--;
|
|---|
| 1212 | ndr->flags = _flags_save_STRUCT;
|
|---|
| 1213 | }
|
|---|
| 1214 | }
|
|---|
| 1215 |
|
|---|
| 1216 | _PUBLIC_ enum ndr_err_code ndr_push_dfs_referral_resp(struct ndr_push *ndr, int ndr_flags, const struct dfs_referral_resp *r)
|
|---|
| 1217 | {
|
|---|
| 1218 | uint32_t cntr_referral_entries_0;
|
|---|
| 1219 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1220 | NDR_CHECK(ndr_push_align(ndr, 5));
|
|---|
| 1221 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->path_consumed));
|
|---|
| 1222 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nb_referrals));
|
|---|
| 1223 | NDR_CHECK(ndr_push_DFS_HEADER_FLAG(ndr, NDR_SCALARS, r->header_flags));
|
|---|
| 1224 | for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < r->nb_referrals; cntr_referral_entries_0++) {
|
|---|
| 1225 | NDR_CHECK(ndr_push_dfs_referral_type(ndr, NDR_SCALARS, &r->referral_entries[cntr_referral_entries_0]));
|
|---|
| 1226 | }
|
|---|
| 1227 | NDR_CHECK(ndr_push_trailer_align(ndr, 5));
|
|---|
| 1228 | }
|
|---|
| 1229 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1230 | for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < r->nb_referrals; cntr_referral_entries_0++) {
|
|---|
| 1231 | NDR_CHECK(ndr_push_dfs_referral_type(ndr, NDR_BUFFERS, &r->referral_entries[cntr_referral_entries_0]));
|
|---|
| 1232 | }
|
|---|
| 1233 | }
|
|---|
| 1234 | return NDR_ERR_SUCCESS;
|
|---|
| 1235 | }
|
|---|
| 1236 |
|
|---|
| 1237 | _PUBLIC_ enum ndr_err_code ndr_pull_dfs_referral_resp(struct ndr_pull *ndr, int ndr_flags, struct dfs_referral_resp *r)
|
|---|
| 1238 | {
|
|---|
| 1239 | uint32_t size_referral_entries_0 = 0;
|
|---|
| 1240 | uint32_t cntr_referral_entries_0;
|
|---|
| 1241 | TALLOC_CTX *_mem_save_referral_entries_0;
|
|---|
| 1242 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1243 | NDR_CHECK(ndr_pull_align(ndr, 5));
|
|---|
| 1244 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->path_consumed));
|
|---|
| 1245 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nb_referrals));
|
|---|
| 1246 | NDR_CHECK(ndr_pull_DFS_HEADER_FLAG(ndr, NDR_SCALARS, &r->header_flags));
|
|---|
| 1247 | size_referral_entries_0 = r->nb_referrals;
|
|---|
| 1248 | NDR_PULL_ALLOC_N(ndr, r->referral_entries, size_referral_entries_0);
|
|---|
| 1249 | _mem_save_referral_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 1250 | NDR_PULL_SET_MEM_CTX(ndr, r->referral_entries, 0);
|
|---|
| 1251 | for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < size_referral_entries_0; cntr_referral_entries_0++) {
|
|---|
| 1252 | NDR_CHECK(ndr_pull_dfs_referral_type(ndr, NDR_SCALARS, &r->referral_entries[cntr_referral_entries_0]));
|
|---|
| 1253 | }
|
|---|
| 1254 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_referral_entries_0, 0);
|
|---|
| 1255 | NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
|
|---|
| 1256 | }
|
|---|
| 1257 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1258 | size_referral_entries_0 = r->nb_referrals;
|
|---|
| 1259 | _mem_save_referral_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 1260 | NDR_PULL_SET_MEM_CTX(ndr, r->referral_entries, 0);
|
|---|
| 1261 | for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < size_referral_entries_0; cntr_referral_entries_0++) {
|
|---|
| 1262 | NDR_CHECK(ndr_pull_dfs_referral_type(ndr, NDR_BUFFERS, &r->referral_entries[cntr_referral_entries_0]));
|
|---|
| 1263 | }
|
|---|
| 1264 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_referral_entries_0, 0);
|
|---|
| 1265 | }
|
|---|
| 1266 | return NDR_ERR_SUCCESS;
|
|---|
| 1267 | }
|
|---|
| 1268 |
|
|---|
| 1269 | _PUBLIC_ void ndr_print_dfs_referral_resp(struct ndr_print *ndr, const char *name, const struct dfs_referral_resp *r)
|
|---|
| 1270 | {
|
|---|
| 1271 | uint32_t cntr_referral_entries_0;
|
|---|
| 1272 | ndr_print_struct(ndr, name, "dfs_referral_resp");
|
|---|
| 1273 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 1274 | ndr->depth++;
|
|---|
| 1275 | ndr_print_uint16(ndr, "path_consumed", r->path_consumed);
|
|---|
| 1276 | ndr_print_uint16(ndr, "nb_referrals", r->nb_referrals);
|
|---|
| 1277 | ndr_print_DFS_HEADER_FLAG(ndr, "header_flags", r->header_flags);
|
|---|
| 1278 | ndr->print(ndr, "%s: ARRAY(%d)", "referral_entries", (int)r->nb_referrals);
|
|---|
| 1279 | ndr->depth++;
|
|---|
| 1280 | for (cntr_referral_entries_0=0;cntr_referral_entries_0<r->nb_referrals;cntr_referral_entries_0++) {
|
|---|
| 1281 | ndr_print_dfs_referral_type(ndr, "referral_entries", &r->referral_entries[cntr_referral_entries_0]);
|
|---|
| 1282 | }
|
|---|
| 1283 | ndr->depth--;
|
|---|
| 1284 | ndr->depth--;
|
|---|
| 1285 | }
|
|---|
| 1286 |
|
|---|
| 1287 | _PUBLIC_ enum ndr_err_code ndr_push_dfs_GetDFSReferral_in(struct ndr_push *ndr, int ndr_flags, const struct dfs_GetDFSReferral_in *r)
|
|---|
| 1288 | {
|
|---|
| 1289 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1290 | NDR_CHECK(ndr_push_align(ndr, 4));
|
|---|
| 1291 | NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_referral_level));
|
|---|
| 1292 | {
|
|---|
| 1293 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 1294 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 1295 | NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
|
|---|
| 1296 | ndr->flags = _flags_save_string;
|
|---|
| 1297 | }
|
|---|
| 1298 | NDR_CHECK(ndr_push_trailer_align(ndr, 4));
|
|---|
| 1299 | }
|
|---|
| 1300 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1301 | }
|
|---|
| 1302 | return NDR_ERR_SUCCESS;
|
|---|
| 1303 | }
|
|---|
| 1304 |
|
|---|
| 1305 | _PUBLIC_ enum ndr_err_code ndr_pull_dfs_GetDFSReferral_in(struct ndr_pull *ndr, int ndr_flags, struct dfs_GetDFSReferral_in *r)
|
|---|
| 1306 | {
|
|---|
| 1307 | if (ndr_flags & NDR_SCALARS) {
|
|---|
| 1308 | NDR_CHECK(ndr_pull_align(ndr, 4));
|
|---|
| 1309 | NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_referral_level));
|
|---|
| 1310 | {
|
|---|
| 1311 | uint32_t _flags_save_string = ndr->flags;
|
|---|
| 1312 | ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
|
|---|
| 1313 | NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
|
|---|
| 1314 | ndr->flags = _flags_save_string;
|
|---|
| 1315 | }
|
|---|
| 1316 | NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
|
|---|
| 1317 | }
|
|---|
| 1318 | if (ndr_flags & NDR_BUFFERS) {
|
|---|
| 1319 | }
|
|---|
| 1320 | return NDR_ERR_SUCCESS;
|
|---|
| 1321 | }
|
|---|
| 1322 |
|
|---|
| 1323 | _PUBLIC_ void ndr_print_dfs_GetDFSReferral_in(struct ndr_print *ndr, const char *name, const struct dfs_GetDFSReferral_in *r)
|
|---|
| 1324 | {
|
|---|
| 1325 | ndr_print_struct(ndr, name, "dfs_GetDFSReferral_in");
|
|---|
| 1326 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 1327 | ndr->depth++;
|
|---|
| 1328 | ndr_print_uint16(ndr, "max_referral_level", r->max_referral_level);
|
|---|
| 1329 | ndr_print_string(ndr, "servername", r->servername);
|
|---|
| 1330 | ndr->depth--;
|
|---|
| 1331 | }
|
|---|
| 1332 |
|
|---|
| 1333 | _PUBLIC_ enum ndr_err_code ndr_push_dfs_GetDFSReferral(struct ndr_push *ndr, int flags, const struct dfs_GetDFSReferral *r)
|
|---|
| 1334 | {
|
|---|
| 1335 | if (flags & NDR_IN) {
|
|---|
| 1336 | NDR_CHECK(ndr_push_dfs_GetDFSReferral_in(ndr, NDR_SCALARS, &r->in.req));
|
|---|
| 1337 | }
|
|---|
| 1338 | if (flags & NDR_OUT) {
|
|---|
| 1339 | if (r->out.resp == NULL) {
|
|---|
| 1340 | return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
|
|---|
| 1341 | }
|
|---|
| 1342 | NDR_CHECK(ndr_push_dfs_referral_resp(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.resp));
|
|---|
| 1343 | }
|
|---|
| 1344 | return NDR_ERR_SUCCESS;
|
|---|
| 1345 | }
|
|---|
| 1346 |
|
|---|
| 1347 | _PUBLIC_ enum ndr_err_code ndr_pull_dfs_GetDFSReferral(struct ndr_pull *ndr, int flags, struct dfs_GetDFSReferral *r)
|
|---|
| 1348 | {
|
|---|
| 1349 | TALLOC_CTX *_mem_save_resp_0;
|
|---|
| 1350 | if (flags & NDR_IN) {
|
|---|
| 1351 | ZERO_STRUCT(r->out);
|
|---|
| 1352 |
|
|---|
| 1353 | NDR_CHECK(ndr_pull_dfs_GetDFSReferral_in(ndr, NDR_SCALARS, &r->in.req));
|
|---|
| 1354 | NDR_PULL_ALLOC(ndr, r->out.resp);
|
|---|
| 1355 | ZERO_STRUCTP(r->out.resp);
|
|---|
| 1356 | }
|
|---|
| 1357 | if (flags & NDR_OUT) {
|
|---|
| 1358 | if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
|
|---|
| 1359 | NDR_PULL_ALLOC(ndr, r->out.resp);
|
|---|
| 1360 | }
|
|---|
| 1361 | _mem_save_resp_0 = NDR_PULL_GET_MEM_CTX(ndr);
|
|---|
| 1362 | NDR_PULL_SET_MEM_CTX(ndr, r->out.resp, LIBNDR_FLAG_REF_ALLOC);
|
|---|
| 1363 | NDR_CHECK(ndr_pull_dfs_referral_resp(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.resp));
|
|---|
| 1364 | NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resp_0, LIBNDR_FLAG_REF_ALLOC);
|
|---|
| 1365 | }
|
|---|
| 1366 | return NDR_ERR_SUCCESS;
|
|---|
| 1367 | }
|
|---|
| 1368 |
|
|---|
| 1369 | _PUBLIC_ void ndr_print_dfs_GetDFSReferral(struct ndr_print *ndr, const char *name, int flags, const struct dfs_GetDFSReferral *r)
|
|---|
| 1370 | {
|
|---|
| 1371 | ndr_print_struct(ndr, name, "dfs_GetDFSReferral");
|
|---|
| 1372 | if (r == NULL) { ndr_print_null(ndr); return; }
|
|---|
| 1373 | ndr->depth++;
|
|---|
| 1374 | if (flags & NDR_SET_VALUES) {
|
|---|
| 1375 | ndr->flags |= LIBNDR_PRINT_SET_VALUES;
|
|---|
| 1376 | }
|
|---|
| 1377 | if (flags & NDR_IN) {
|
|---|
| 1378 | ndr_print_struct(ndr, "in", "dfs_GetDFSReferral");
|
|---|
| 1379 | ndr->depth++;
|
|---|
| 1380 | ndr_print_dfs_GetDFSReferral_in(ndr, "req", &r->in.req);
|
|---|
| 1381 | ndr->depth--;
|
|---|
| 1382 | }
|
|---|
| 1383 | if (flags & NDR_OUT) {
|
|---|
| 1384 | ndr_print_struct(ndr, "out", "dfs_GetDFSReferral");
|
|---|
| 1385 | ndr->depth++;
|
|---|
| 1386 | ndr_print_ptr(ndr, "resp", r->out.resp);
|
|---|
| 1387 | ndr->depth++;
|
|---|
| 1388 | ndr_print_dfs_referral_resp(ndr, "resp", r->out.resp);
|
|---|
| 1389 | ndr->depth--;
|
|---|
| 1390 | ndr->depth--;
|
|---|
| 1391 | }
|
|---|
| 1392 | ndr->depth--;
|
|---|
| 1393 | }
|
|---|
| 1394 |
|
|---|
| 1395 | static const struct ndr_interface_call dfsblobs_calls[] = {
|
|---|
| 1396 | {
|
|---|
| 1397 | "dfs_GetDFSReferral",
|
|---|
| 1398 | sizeof(struct dfs_GetDFSReferral),
|
|---|
| 1399 | (ndr_push_flags_fn_t) ndr_push_dfs_GetDFSReferral,
|
|---|
| 1400 | (ndr_pull_flags_fn_t) ndr_pull_dfs_GetDFSReferral,
|
|---|
| 1401 | (ndr_print_function_t) ndr_print_dfs_GetDFSReferral,
|
|---|
| 1402 | { 0, NULL },
|
|---|
| 1403 | { 0, NULL },
|
|---|
| 1404 | },
|
|---|
| 1405 | { NULL, 0, NULL, NULL, NULL }
|
|---|
| 1406 | };
|
|---|
| 1407 |
|
|---|
| 1408 | static const char * const dfsblobs_endpoint_strings[] = {
|
|---|
| 1409 | "ncacn_np:[\\pipe\\dfsblobs]",
|
|---|
| 1410 | };
|
|---|
| 1411 |
|
|---|
| 1412 | static const struct ndr_interface_string_array dfsblobs_endpoints = {
|
|---|
| 1413 | .count = 1,
|
|---|
| 1414 | .names = dfsblobs_endpoint_strings
|
|---|
| 1415 | };
|
|---|
| 1416 |
|
|---|
| 1417 | static const char * const dfsblobs_authservice_strings[] = {
|
|---|
| 1418 | "host",
|
|---|
| 1419 | };
|
|---|
| 1420 |
|
|---|
| 1421 | static const struct ndr_interface_string_array dfsblobs_authservices = {
|
|---|
| 1422 | .count = 1,
|
|---|
| 1423 | .names = dfsblobs_authservice_strings
|
|---|
| 1424 | };
|
|---|
| 1425 |
|
|---|
| 1426 |
|
|---|
| 1427 | const struct ndr_interface_table ndr_table_dfsblobs = {
|
|---|
| 1428 | .name = "dfsblobs",
|
|---|
| 1429 | .syntax_id = {
|
|---|
| 1430 | {0x12345778,0x1234,0xabcd,{0x00,0x01},{0x00,0x00,0x00,0x03}},
|
|---|
| 1431 | NDR_DFSBLOBS_VERSION
|
|---|
| 1432 | },
|
|---|
| 1433 | .helpstring = NDR_DFSBLOBS_HELPSTRING,
|
|---|
| 1434 | .num_calls = 1,
|
|---|
| 1435 | .calls = dfsblobs_calls,
|
|---|
| 1436 | .endpoints = &dfsblobs_endpoints,
|
|---|
| 1437 | .authservices = &dfsblobs_authservices
|
|---|
| 1438 | };
|
|---|
| 1439 |
|
|---|