~ubuntu-branches/ubuntu/oneiric/samba/oneiric-security

« back to all changes in this revision

Viewing changes to .pc/fix-windows7-print-connection.patch/librpc/gen_ndr/ndr_nbt.c

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2011-03-10 10:03:01 UTC
  • mfrom: (0.39.11 sid)
  • Revision ID: james.westby@ubuntu.com-20110310100301-jfjg41wv0iq05zj4
Tags: 2:3.5.8~dfsg-1ubuntu1
* Merge from debian unstable.  Remaining changes:
  + debian/patches/VERSION.patch:
    - set SAMBA_VERSION_SUFFIX to Ubuntu.
  + debian/smb.conf:
    - add "(Samba, Ubuntu)" to server string.
    - comment out the default [homes] share, and add a comment about
      "valid users = %S" to show users how to restrict access to
      \\server\username to only username.
    - Set 'usershare allow guests', so that usershare admins are 
      allowed to create public shares in addition to authenticated
      ones.
    - add map to guest = Bad user, maps bad username to guest access. 
  + debian/samba-common.config:
    - Do not change priority to high if dhclient3 is installed.
    - Use priority medium instead of high for the workgroup question.
  + debian/mksmbpasswd.awk:
    - Do not add user with UID less than 1000 to smbpasswd
  + debian/control:
    - Make libwbclient0 replace/conflict with hardy's likewise-open.
    - Don't build against or suggest ctdb.
    - Add dependency on samba-common-bin to samba.
    - Add cuups breaks to push the package to aslo upgrade cups (LP: #639768)
  + debian/rules:
    - enable "native" PIE hardening.
    - Add BIND_NOW to maximize benefit of RELRO hardening.
  + Add ufw integration:
    - Created debian/samba.ufw.profile
    - debian/rules, debian/samba.dirs, debian/samba.files: install
      profile
    - debian/control: have samba suggest ufw
  + Add apport hook:
    - Created debian/source_samba.py.
    - debian/rules, debian/samba.dirs, debian/samba-common-bin.files: install
  + Switch to upstart:
    - Add debian/samba.{nmbd,smbd}.upstart.
    - Don't ship the /etc/network/if-up.d file.
  + debian/samba.postinst: 
    - Fixed bashism.
    - Avoid scary pdbedit warnings on first import.
  + debian/samba-common.postinst: Add more informative error message for
    the case where smb.conf was manually deleted
  + debian/samba.logrotate: Make it upstart compatible
  + debian/samba-common.dhcp: Fix typo to get a proper parsing in
    /etc/samba/dhcp.
  + Dropped:
    - debian/patches/fix-windows7-print-connection.patch: Merged upstream.
    - debian/patches/security-CVE-2011-0719.patch: Merged upstream. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* parser auto-generated by pidl */
2
 
 
3
 
#include "includes.h"
4
 
#include "../librpc/gen_ndr/ndr_nbt.h"
5
 
 
6
 
#include "librpc/gen_ndr/ndr_misc.h"
7
 
#include "librpc/gen_ndr/ndr_security.h"
8
 
#include "librpc/gen_ndr/ndr_svcctl.h"
9
 
#include "librpc/gen_ndr/ndr_samr.h"
10
 
static enum ndr_err_code ndr_push_nbt_operation(struct ndr_push *ndr, int ndr_flags, uint16_t r)
11
 
{
12
 
        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13
 
        return NDR_ERR_SUCCESS;
14
 
}
15
 
 
16
 
static enum ndr_err_code ndr_pull_nbt_operation(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
17
 
{
18
 
        uint16_t v;
19
 
        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
20
 
        *r = v;
21
 
        return NDR_ERR_SUCCESS;
22
 
}
23
 
 
24
 
_PUBLIC_ void ndr_print_nbt_operation(struct ndr_print *ndr, const char *name, uint16_t r)
25
 
{
26
 
        ndr_print_uint16(ndr, name, r);
27
 
        ndr->depth++;
28
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_RCODE", NBT_RCODE, r);
29
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_BROADCAST", NBT_FLAG_BROADCAST, r);
30
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_RECURSION_AVAIL", NBT_FLAG_RECURSION_AVAIL, r);
31
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_RECURSION_DESIRED", NBT_FLAG_RECURSION_DESIRED, r);
32
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_TRUNCATION", NBT_FLAG_TRUNCATION, r);
33
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_AUTHORITIVE", NBT_FLAG_AUTHORITIVE, r);
34
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_OPCODE", NBT_OPCODE, r);
35
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_REPLY", NBT_FLAG_REPLY, r);
36
 
        ndr->depth--;
37
 
}
38
 
 
39
 
static enum ndr_err_code ndr_push_nbt_name_type(struct ndr_push *ndr, int ndr_flags, enum nbt_name_type r)
40
 
{
41
 
        NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
42
 
        return NDR_ERR_SUCCESS;
43
 
}
44
 
 
45
 
static enum ndr_err_code ndr_pull_nbt_name_type(struct ndr_pull *ndr, int ndr_flags, enum nbt_name_type *r)
46
 
{
47
 
        uint8_t v;
48
 
        NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
49
 
        *r = v;
50
 
        return NDR_ERR_SUCCESS;
51
 
}
52
 
 
53
 
_PUBLIC_ void ndr_print_nbt_name_type(struct ndr_print *ndr, const char *name, enum nbt_name_type r)
54
 
{
55
 
        const char *val = NULL;
56
 
 
57
 
        switch (r) {
58
 
                case NBT_NAME_CLIENT: val = "NBT_NAME_CLIENT"; break;
59
 
                case NBT_NAME_MS: val = "NBT_NAME_MS"; break;
60
 
                case NBT_NAME_USER: val = "NBT_NAME_USER"; break;
61
 
                case NBT_NAME_SERVER: val = "NBT_NAME_SERVER"; break;
62
 
                case NBT_NAME_PDC: val = "NBT_NAME_PDC"; break;
63
 
                case NBT_NAME_LOGON: val = "NBT_NAME_LOGON"; break;
64
 
                case NBT_NAME_MASTER: val = "NBT_NAME_MASTER"; break;
65
 
                case NBT_NAME_BROWSER: val = "NBT_NAME_BROWSER"; break;
66
 
        }
67
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
68
 
}
69
 
 
70
 
_PUBLIC_ void ndr_print_nbt_name(struct ndr_print *ndr, const char *name, const struct nbt_name *r)
71
 
{
72
 
        ndr_print_struct(ndr, name, "nbt_name");
73
 
        ndr->depth++;
74
 
        ndr_print_string(ndr, "name", r->name);
75
 
        ndr_print_string(ndr, "scope", r->scope);
76
 
        ndr_print_nbt_name_type(ndr, "type", r->type);
77
 
        ndr->depth--;
78
 
}
79
 
 
80
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_qclass(struct ndr_push *ndr, int ndr_flags, enum nbt_qclass r)
81
 
{
82
 
        NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
83
 
        return NDR_ERR_SUCCESS;
84
 
}
85
 
 
86
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_qclass(struct ndr_pull *ndr, int ndr_flags, enum nbt_qclass *r)
87
 
{
88
 
        uint16_t v;
89
 
        NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
90
 
        *r = v;
91
 
        return NDR_ERR_SUCCESS;
92
 
}
93
 
 
94
 
_PUBLIC_ void ndr_print_nbt_qclass(struct ndr_print *ndr, const char *name, enum nbt_qclass r)
95
 
{
96
 
        const char *val = NULL;
97
 
 
98
 
        switch (r) {
99
 
                case NBT_QCLASS_IP: val = "NBT_QCLASS_IP"; break;
100
 
        }
101
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
102
 
}
103
 
 
104
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_qtype(struct ndr_push *ndr, int ndr_flags, enum nbt_qtype r)
105
 
{
106
 
        NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
107
 
        return NDR_ERR_SUCCESS;
108
 
}
109
 
 
110
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_qtype(struct ndr_pull *ndr, int ndr_flags, enum nbt_qtype *r)
111
 
{
112
 
        uint16_t v;
113
 
        NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
114
 
        *r = v;
115
 
        return NDR_ERR_SUCCESS;
116
 
}
117
 
 
118
 
_PUBLIC_ void ndr_print_nbt_qtype(struct ndr_print *ndr, const char *name, enum nbt_qtype r)
119
 
{
120
 
        const char *val = NULL;
121
 
 
122
 
        switch (r) {
123
 
                case NBT_QTYPE_ADDRESS: val = "NBT_QTYPE_ADDRESS"; break;
124
 
                case NBT_QTYPE_NAMESERVICE: val = "NBT_QTYPE_NAMESERVICE"; break;
125
 
                case NBT_QTYPE_NULL: val = "NBT_QTYPE_NULL"; break;
126
 
                case NBT_QTYPE_NETBIOS: val = "NBT_QTYPE_NETBIOS"; break;
127
 
                case NBT_QTYPE_STATUS: val = "NBT_QTYPE_STATUS"; break;
128
 
        }
129
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
130
 
}
131
 
 
132
 
static enum ndr_err_code ndr_push_nbt_name_question(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_question *r)
133
 
{
134
 
        if (ndr_flags & NDR_SCALARS) {
135
 
                NDR_CHECK(ndr_push_align(ndr, 4));
136
 
                NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->name));
137
 
                NDR_CHECK(ndr_push_nbt_qtype(ndr, NDR_SCALARS, r->question_type));
138
 
                NDR_CHECK(ndr_push_nbt_qclass(ndr, NDR_SCALARS, r->question_class));
139
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
140
 
        }
141
 
        if (ndr_flags & NDR_BUFFERS) {
142
 
        }
143
 
        return NDR_ERR_SUCCESS;
144
 
}
145
 
 
146
 
static enum ndr_err_code ndr_pull_nbt_name_question(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_question *r)
147
 
{
148
 
        if (ndr_flags & NDR_SCALARS) {
149
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
150
 
                NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->name));
151
 
                NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->question_type));
152
 
                NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->question_class));
153
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
154
 
        }
155
 
        if (ndr_flags & NDR_BUFFERS) {
156
 
        }
157
 
        return NDR_ERR_SUCCESS;
158
 
}
159
 
 
160
 
_PUBLIC_ void ndr_print_nbt_name_question(struct ndr_print *ndr, const char *name, const struct nbt_name_question *r)
161
 
{
162
 
        ndr_print_struct(ndr, name, "nbt_name_question");
163
 
        ndr->depth++;
164
 
        ndr_print_nbt_name(ndr, "name", &r->name);
165
 
        ndr_print_nbt_qtype(ndr, "question_type", r->question_type);
166
 
        ndr_print_nbt_qclass(ndr, "question_class", r->question_class);
167
 
        ndr->depth--;
168
 
}
169
 
 
170
 
static enum ndr_err_code ndr_push_nb_flags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
171
 
{
172
 
        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
173
 
        return NDR_ERR_SUCCESS;
174
 
}
175
 
 
176
 
static enum ndr_err_code ndr_pull_nb_flags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
177
 
{
178
 
        uint16_t v;
179
 
        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
180
 
        *r = v;
181
 
        return NDR_ERR_SUCCESS;
182
 
}
183
 
 
184
 
_PUBLIC_ void ndr_print_nb_flags(struct ndr_print *ndr, const char *name, uint16_t r)
185
 
{
186
 
        ndr_print_uint16(ndr, name, r);
187
 
        ndr->depth++;
188
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_PERMANENT", NBT_NM_PERMANENT, r);
189
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_ACTIVE", NBT_NM_ACTIVE, r);
190
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_CONFLICT", NBT_NM_CONFLICT, r);
191
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_DEREGISTER", NBT_NM_DEREGISTER, r);
192
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_OWNER_TYPE", NBT_NM_OWNER_TYPE, r);
193
 
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_GROUP", NBT_NM_GROUP, r);
194
 
        ndr->depth--;
195
 
}
196
 
 
197
 
static enum ndr_err_code ndr_push_nbt_rdata_address(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_address *r)
198
 
{
199
 
        if (ndr_flags & NDR_SCALARS) {
200
 
                NDR_CHECK(ndr_push_align(ndr, 4));
201
 
                NDR_CHECK(ndr_push_nb_flags(ndr, NDR_SCALARS, r->nb_flags));
202
 
                NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->ipaddr));
203
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
204
 
        }
205
 
        if (ndr_flags & NDR_BUFFERS) {
206
 
        }
207
 
        return NDR_ERR_SUCCESS;
208
 
}
209
 
 
210
 
static enum ndr_err_code ndr_pull_nbt_rdata_address(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_address *r)
211
 
{
212
 
        if (ndr_flags & NDR_SCALARS) {
213
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
214
 
                NDR_CHECK(ndr_pull_nb_flags(ndr, NDR_SCALARS, &r->nb_flags));
215
 
                NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->ipaddr));
216
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
217
 
        }
218
 
        if (ndr_flags & NDR_BUFFERS) {
219
 
        }
220
 
        return NDR_ERR_SUCCESS;
221
 
}
222
 
 
223
 
_PUBLIC_ void ndr_print_nbt_rdata_address(struct ndr_print *ndr, const char *name, const struct nbt_rdata_address *r)
224
 
{
225
 
        ndr_print_struct(ndr, name, "nbt_rdata_address");
226
 
        ndr->depth++;
227
 
        ndr_print_nb_flags(ndr, "nb_flags", r->nb_flags);
228
 
        ndr_print_ipv4address(ndr, "ipaddr", r->ipaddr);
229
 
        ndr->depth--;
230
 
}
231
 
 
232
 
static enum ndr_err_code ndr_push_nbt_rdata_netbios(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_netbios *r)
233
 
{
234
 
        uint32_t cntr_addresses_0;
235
 
        if (ndr_flags & NDR_SCALARS) {
236
 
                NDR_CHECK(ndr_push_align(ndr, 4));
237
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
238
 
                for (cntr_addresses_0 = 0; cntr_addresses_0 < r->length / 6; cntr_addresses_0++) {
239
 
                        NDR_CHECK(ndr_push_nbt_rdata_address(ndr, NDR_SCALARS, &r->addresses[cntr_addresses_0]));
240
 
                }
241
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
242
 
        }
243
 
        if (ndr_flags & NDR_BUFFERS) {
244
 
        }
245
 
        return NDR_ERR_SUCCESS;
246
 
}
247
 
 
248
 
static enum ndr_err_code ndr_pull_nbt_rdata_netbios(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_netbios *r)
249
 
{
250
 
        uint32_t cntr_addresses_0;
251
 
        TALLOC_CTX *_mem_save_addresses_0;
252
 
        if (ndr_flags & NDR_SCALARS) {
253
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
254
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
255
 
                NDR_PULL_ALLOC_N(ndr, r->addresses, r->length / 6);
256
 
                _mem_save_addresses_0 = NDR_PULL_GET_MEM_CTX(ndr);
257
 
                NDR_PULL_SET_MEM_CTX(ndr, r->addresses, 0);
258
 
                for (cntr_addresses_0 = 0; cntr_addresses_0 < r->length / 6; cntr_addresses_0++) {
259
 
                        NDR_CHECK(ndr_pull_nbt_rdata_address(ndr, NDR_SCALARS, &r->addresses[cntr_addresses_0]));
260
 
                }
261
 
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_0, 0);
262
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
263
 
        }
264
 
        if (ndr_flags & NDR_BUFFERS) {
265
 
        }
266
 
        return NDR_ERR_SUCCESS;
267
 
}
268
 
 
269
 
_PUBLIC_ void ndr_print_nbt_rdata_netbios(struct ndr_print *ndr, const char *name, const struct nbt_rdata_netbios *r)
270
 
{
271
 
        uint32_t cntr_addresses_0;
272
 
        ndr_print_struct(ndr, name, "nbt_rdata_netbios");
273
 
        ndr->depth++;
274
 
        ndr_print_uint16(ndr, "length", r->length);
275
 
        ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->length / 6);
276
 
        ndr->depth++;
277
 
        for (cntr_addresses_0=0;cntr_addresses_0<r->length / 6;cntr_addresses_0++) {
278
 
                char *idx_0=NULL;
279
 
                if (asprintf(&idx_0, "[%d]", cntr_addresses_0) != -1) {
280
 
                        ndr_print_nbt_rdata_address(ndr, "addresses", &r->addresses[cntr_addresses_0]);
281
 
                        free(idx_0);
282
 
                }
283
 
        }
284
 
        ndr->depth--;
285
 
        ndr->depth--;
286
 
}
287
 
 
288
 
static enum ndr_err_code ndr_push_nbt_statistics(struct ndr_push *ndr, int ndr_flags, const struct nbt_statistics *r)
289
 
{
290
 
        if (ndr_flags & NDR_SCALARS) {
291
 
                NDR_CHECK(ndr_push_align(ndr, 4));
292
 
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->unit_id, 6));
293
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->jumpers));
294
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->test_result));
295
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version_number));
296
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->period_of_statistics));
297
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_crcs));
298
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_alignment_errors));
299
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_collisions));
300
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_send_aborts));
301
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_sends));
302
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_receives));
303
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_retransmits));
304
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_no_resource_conditions));
305
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_free_command_blocks));
306
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_number_command_blocks));
307
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_number_command_blocks));
308
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_pending_sessions));
309
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_number_pending_sessions));
310
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_sessions_possible));
311
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->session_data_packet_size));
312
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
313
 
        }
314
 
        if (ndr_flags & NDR_BUFFERS) {
315
 
        }
316
 
        return NDR_ERR_SUCCESS;
317
 
}
318
 
 
319
 
static enum ndr_err_code ndr_pull_nbt_statistics(struct ndr_pull *ndr, int ndr_flags, struct nbt_statistics *r)
320
 
{
321
 
        if (ndr_flags & NDR_SCALARS) {
322
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
323
 
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->unit_id, 6));
324
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->jumpers));
325
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->test_result));
326
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version_number));
327
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->period_of_statistics));
328
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_crcs));
329
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_alignment_errors));
330
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_collisions));
331
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_send_aborts));
332
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_sends));
333
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_receives));
334
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_retransmits));
335
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_no_resource_conditions));
336
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_free_command_blocks));
337
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_number_command_blocks));
338
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_number_command_blocks));
339
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_pending_sessions));
340
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_number_pending_sessions));
341
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_sessions_possible));
342
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->session_data_packet_size));
343
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
344
 
        }
345
 
        if (ndr_flags & NDR_BUFFERS) {
346
 
        }
347
 
        return NDR_ERR_SUCCESS;
348
 
}
349
 
 
350
 
_PUBLIC_ void ndr_print_nbt_statistics(struct ndr_print *ndr, const char *name, const struct nbt_statistics *r)
351
 
{
352
 
        ndr_print_struct(ndr, name, "nbt_statistics");
353
 
        ndr->depth++;
354
 
        ndr_print_array_uint8(ndr, "unit_id", r->unit_id, 6);
355
 
        ndr_print_uint8(ndr, "jumpers", r->jumpers);
356
 
        ndr_print_uint8(ndr, "test_result", r->test_result);
357
 
        ndr_print_uint16(ndr, "version_number", r->version_number);
358
 
        ndr_print_uint16(ndr, "period_of_statistics", r->period_of_statistics);
359
 
        ndr_print_uint16(ndr, "number_of_crcs", r->number_of_crcs);
360
 
        ndr_print_uint16(ndr, "number_alignment_errors", r->number_alignment_errors);
361
 
        ndr_print_uint16(ndr, "number_of_collisions", r->number_of_collisions);
362
 
        ndr_print_uint16(ndr, "number_send_aborts", r->number_send_aborts);
363
 
        ndr_print_uint32(ndr, "number_good_sends", r->number_good_sends);
364
 
        ndr_print_uint32(ndr, "number_good_receives", r->number_good_receives);
365
 
        ndr_print_uint16(ndr, "number_retransmits", r->number_retransmits);
366
 
        ndr_print_uint16(ndr, "number_no_resource_conditions", r->number_no_resource_conditions);
367
 
        ndr_print_uint16(ndr, "number_free_command_blocks", r->number_free_command_blocks);
368
 
        ndr_print_uint16(ndr, "total_number_command_blocks", r->total_number_command_blocks);
369
 
        ndr_print_uint16(ndr, "max_total_number_command_blocks", r->max_total_number_command_blocks);
370
 
        ndr_print_uint16(ndr, "number_pending_sessions", r->number_pending_sessions);
371
 
        ndr_print_uint16(ndr, "max_number_pending_sessions", r->max_number_pending_sessions);
372
 
        ndr_print_uint16(ndr, "max_total_sessions_possible", r->max_total_sessions_possible);
373
 
        ndr_print_uint16(ndr, "session_data_packet_size", r->session_data_packet_size);
374
 
        ndr->depth--;
375
 
}
376
 
 
377
 
static enum ndr_err_code ndr_push_nbt_status_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_status_name *r)
378
 
{
379
 
        if (ndr_flags & NDR_SCALARS) {
380
 
                NDR_CHECK(ndr_push_align(ndr, 2));
381
 
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, 15, sizeof(uint8_t), CH_DOS));
382
 
                NDR_CHECK(ndr_push_nbt_name_type(ndr, NDR_SCALARS, r->type));
383
 
                NDR_CHECK(ndr_push_nb_flags(ndr, NDR_SCALARS, r->nb_flags));
384
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 2));
385
 
        }
386
 
        if (ndr_flags & NDR_BUFFERS) {
387
 
        }
388
 
        return NDR_ERR_SUCCESS;
389
 
}
390
 
 
391
 
static enum ndr_err_code ndr_pull_nbt_status_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_status_name *r)
392
 
{
393
 
        if (ndr_flags & NDR_SCALARS) {
394
 
                NDR_CHECK(ndr_pull_align(ndr, 2));
395
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, 15, sizeof(uint8_t), CH_DOS));
396
 
                NDR_CHECK(ndr_pull_nbt_name_type(ndr, NDR_SCALARS, &r->type));
397
 
                NDR_CHECK(ndr_pull_nb_flags(ndr, NDR_SCALARS, &r->nb_flags));
398
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
399
 
        }
400
 
        if (ndr_flags & NDR_BUFFERS) {
401
 
        }
402
 
        return NDR_ERR_SUCCESS;
403
 
}
404
 
 
405
 
_PUBLIC_ void ndr_print_nbt_status_name(struct ndr_print *ndr, const char *name, const struct nbt_status_name *r)
406
 
{
407
 
        ndr_print_struct(ndr, name, "nbt_status_name");
408
 
        ndr->depth++;
409
 
        ndr_print_string(ndr, "name", r->name);
410
 
        ndr_print_nbt_name_type(ndr, "type", r->type);
411
 
        ndr_print_nb_flags(ndr, "nb_flags", r->nb_flags);
412
 
        ndr->depth--;
413
 
}
414
 
 
415
 
static enum ndr_err_code ndr_push_nbt_rdata_status(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_status *r)
416
 
{
417
 
        uint32_t cntr_names_0;
418
 
        if (ndr_flags & NDR_SCALARS) {
419
 
                NDR_CHECK(ndr_push_align(ndr, 4));
420
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_names * 18 + 47));
421
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_names));
422
 
                for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
423
 
                        NDR_CHECK(ndr_push_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
424
 
                }
425
 
                NDR_CHECK(ndr_push_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
426
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
427
 
        }
428
 
        if (ndr_flags & NDR_BUFFERS) {
429
 
        }
430
 
        return NDR_ERR_SUCCESS;
431
 
}
432
 
 
433
 
static enum ndr_err_code ndr_pull_nbt_rdata_status(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_status *r)
434
 
{
435
 
        uint32_t cntr_names_0;
436
 
        TALLOC_CTX *_mem_save_names_0;
437
 
        if (ndr_flags & NDR_SCALARS) {
438
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
439
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
440
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_names));
441
 
                NDR_PULL_ALLOC_N(ndr, r->names, r->num_names);
442
 
                _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
443
 
                NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
444
 
                for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
445
 
                        NDR_CHECK(ndr_pull_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
446
 
                }
447
 
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
448
 
                NDR_CHECK(ndr_pull_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
449
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
450
 
        }
451
 
        if (ndr_flags & NDR_BUFFERS) {
452
 
        }
453
 
        return NDR_ERR_SUCCESS;
454
 
}
455
 
 
456
 
_PUBLIC_ void ndr_print_nbt_rdata_status(struct ndr_print *ndr, const char *name, const struct nbt_rdata_status *r)
457
 
{
458
 
        uint32_t cntr_names_0;
459
 
        ndr_print_struct(ndr, name, "nbt_rdata_status");
460
 
        ndr->depth++;
461
 
        ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->num_names * 18 + 47:r->length);
462
 
        ndr_print_uint8(ndr, "num_names", r->num_names);
463
 
        ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->num_names);
464
 
        ndr->depth++;
465
 
        for (cntr_names_0=0;cntr_names_0<r->num_names;cntr_names_0++) {
466
 
                char *idx_0=NULL;
467
 
                if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
468
 
                        ndr_print_nbt_status_name(ndr, "names", &r->names[cntr_names_0]);
469
 
                        free(idx_0);
470
 
                }
471
 
        }
472
 
        ndr->depth--;
473
 
        ndr_print_nbt_statistics(ndr, "statistics", &r->statistics);
474
 
        ndr->depth--;
475
 
}
476
 
 
477
 
static enum ndr_err_code ndr_push_nbt_rdata_data(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_data *r)
478
 
{
479
 
        if (ndr_flags & NDR_SCALARS) {
480
 
                NDR_CHECK(ndr_push_align(ndr, 2));
481
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
482
 
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
483
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 2));
484
 
        }
485
 
        if (ndr_flags & NDR_BUFFERS) {
486
 
        }
487
 
        return NDR_ERR_SUCCESS;
488
 
}
489
 
 
490
 
static enum ndr_err_code ndr_pull_nbt_rdata_data(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_data *r)
491
 
{
492
 
        if (ndr_flags & NDR_SCALARS) {
493
 
                NDR_CHECK(ndr_pull_align(ndr, 2));
494
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
495
 
                NDR_PULL_ALLOC_N(ndr, r->data, r->length);
496
 
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
497
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
498
 
        }
499
 
        if (ndr_flags & NDR_BUFFERS) {
500
 
        }
501
 
        return NDR_ERR_SUCCESS;
502
 
}
503
 
 
504
 
_PUBLIC_ void ndr_print_nbt_rdata_data(struct ndr_print *ndr, const char *name, const struct nbt_rdata_data *r)
505
 
{
506
 
        ndr_print_struct(ndr, name, "nbt_rdata_data");
507
 
        ndr->depth++;
508
 
        ndr_print_uint16(ndr, "length", r->length);
509
 
        ndr_print_array_uint8(ndr, "data", r->data, r->length);
510
 
        ndr->depth--;
511
 
}
512
 
 
513
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_rdata(struct ndr_push *ndr, int ndr_flags, const union nbt_rdata *r)
514
 
{
515
 
        if (ndr_flags & NDR_SCALARS) {
516
 
                int level = ndr_push_get_switch_value(ndr, r);
517
 
                NDR_CHECK(ndr_push_union_align(ndr, 4));
518
 
                switch (level) {
519
 
                        case NBT_QTYPE_NETBIOS: {
520
 
                                NDR_CHECK(ndr_push_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
521
 
                        break; }
522
 
 
523
 
                        case NBT_QTYPE_STATUS: {
524
 
                                NDR_CHECK(ndr_push_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
525
 
                        break; }
526
 
 
527
 
                        default: {
528
 
                                NDR_CHECK(ndr_push_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
529
 
                        break; }
530
 
 
531
 
                }
532
 
        }
533
 
        if (ndr_flags & NDR_BUFFERS) {
534
 
                int level = ndr_push_get_switch_value(ndr, r);
535
 
                switch (level) {
536
 
                        case NBT_QTYPE_NETBIOS:
537
 
                        break;
538
 
 
539
 
                        case NBT_QTYPE_STATUS:
540
 
                        break;
541
 
 
542
 
                        default:
543
 
                        break;
544
 
 
545
 
                }
546
 
        }
547
 
        return NDR_ERR_SUCCESS;
548
 
}
549
 
 
550
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_rdata(struct ndr_pull *ndr, int ndr_flags, union nbt_rdata *r)
551
 
{
552
 
        int level;
553
 
        level = ndr_pull_get_switch_value(ndr, r);
554
 
        if (ndr_flags & NDR_SCALARS) {
555
 
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
556
 
                switch (level) {
557
 
                        case NBT_QTYPE_NETBIOS: {
558
 
                                NDR_CHECK(ndr_pull_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
559
 
                        break; }
560
 
 
561
 
                        case NBT_QTYPE_STATUS: {
562
 
                                NDR_CHECK(ndr_pull_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
563
 
                        break; }
564
 
 
565
 
                        default: {
566
 
                                NDR_CHECK(ndr_pull_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
567
 
                        break; }
568
 
 
569
 
                }
570
 
        }
571
 
        if (ndr_flags & NDR_BUFFERS) {
572
 
                switch (level) {
573
 
                        case NBT_QTYPE_NETBIOS:
574
 
                        break;
575
 
 
576
 
                        case NBT_QTYPE_STATUS:
577
 
                        break;
578
 
 
579
 
                        default:
580
 
                        break;
581
 
 
582
 
                }
583
 
        }
584
 
        return NDR_ERR_SUCCESS;
585
 
}
586
 
 
587
 
_PUBLIC_ void ndr_print_nbt_rdata(struct ndr_print *ndr, const char *name, const union nbt_rdata *r)
588
 
{
589
 
        int level;
590
 
        level = ndr_print_get_switch_value(ndr, r);
591
 
        ndr_print_union(ndr, name, level, "nbt_rdata");
592
 
        switch (level) {
593
 
                case NBT_QTYPE_NETBIOS:
594
 
                        ndr_print_nbt_rdata_netbios(ndr, "netbios", &r->netbios);
595
 
                break;
596
 
 
597
 
                case NBT_QTYPE_STATUS:
598
 
                        ndr_print_nbt_rdata_status(ndr, "status", &r->status);
599
 
                break;
600
 
 
601
 
                default:
602
 
                        ndr_print_nbt_rdata_data(ndr, "data", &r->data);
603
 
                break;
604
 
 
605
 
        }
606
 
}
607
 
 
608
 
static enum ndr_err_code ndr_pull_nbt_res_rec(struct ndr_pull *ndr, int ndr_flags, struct nbt_res_rec *r)
609
 
{
610
 
        {
611
 
                uint32_t _flags_save_STRUCT = ndr->flags;
612
 
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
613
 
                if (ndr_flags & NDR_SCALARS) {
614
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
615
 
                        NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->name));
616
 
                        NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->rr_type));
617
 
                        NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->rr_class));
618
 
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
619
 
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rdata, r->rr_type));
620
 
                        NDR_CHECK(ndr_pull_nbt_rdata(ndr, NDR_SCALARS, &r->rdata));
621
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
622
 
                }
623
 
                if (ndr_flags & NDR_BUFFERS) {
624
 
                }
625
 
                ndr->flags = _flags_save_STRUCT;
626
 
        }
627
 
        return NDR_ERR_SUCCESS;
628
 
}
629
 
 
630
 
_PUBLIC_ void ndr_print_nbt_res_rec(struct ndr_print *ndr, const char *name, const struct nbt_res_rec *r)
631
 
{
632
 
        ndr_print_struct(ndr, name, "nbt_res_rec");
633
 
        {
634
 
                uint32_t _flags_save_STRUCT = ndr->flags;
635
 
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
636
 
                ndr->depth++;
637
 
                ndr_print_nbt_name(ndr, "name", &r->name);
638
 
                ndr_print_nbt_qtype(ndr, "rr_type", r->rr_type);
639
 
                ndr_print_nbt_qclass(ndr, "rr_class", r->rr_class);
640
 
                ndr_print_uint32(ndr, "ttl", r->ttl);
641
 
                ndr_print_set_switch_value(ndr, &r->rdata, r->rr_type);
642
 
                ndr_print_nbt_rdata(ndr, "rdata", &r->rdata);
643
 
                ndr->depth--;
644
 
                ndr->flags = _flags_save_STRUCT;
645
 
        }
646
 
}
647
 
 
648
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_name_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_packet *r)
649
 
{
650
 
        uint32_t cntr_questions_0;
651
 
        uint32_t cntr_answers_0;
652
 
        uint32_t cntr_nsrecs_0;
653
 
        uint32_t cntr_additional_0;
654
 
        {
655
 
                uint32_t _flags_save_STRUCT = ndr->flags;
656
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
657
 
                if (ndr_flags & NDR_SCALARS) {
658
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
659
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->name_trn_id));
660
 
                        NDR_CHECK(ndr_push_nbt_operation(ndr, NDR_SCALARS, r->operation));
661
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->qdcount));
662
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ancount));
663
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nscount));
664
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->arcount));
665
 
                        for (cntr_questions_0 = 0; cntr_questions_0 < r->qdcount; cntr_questions_0++) {
666
 
                                NDR_CHECK(ndr_push_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
667
 
                        }
668
 
                        for (cntr_answers_0 = 0; cntr_answers_0 < r->ancount; cntr_answers_0++) {
669
 
                                NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
670
 
                        }
671
 
                        for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < r->nscount; cntr_nsrecs_0++) {
672
 
                                NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
673
 
                        }
674
 
                        for (cntr_additional_0 = 0; cntr_additional_0 < r->arcount; cntr_additional_0++) {
675
 
                                NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
676
 
                        }
677
 
                        {
678
 
                                uint32_t _flags_save_DATA_BLOB = ndr->flags;
679
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
680
 
                                NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->padding));
681
 
                                ndr->flags = _flags_save_DATA_BLOB;
682
 
                        }
683
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
684
 
                }
685
 
                if (ndr_flags & NDR_BUFFERS) {
686
 
                }
687
 
                ndr->flags = _flags_save_STRUCT;
688
 
        }
689
 
        return NDR_ERR_SUCCESS;
690
 
}
691
 
 
692
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_name_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_packet *r)
693
 
{
694
 
        uint32_t cntr_questions_0;
695
 
        TALLOC_CTX *_mem_save_questions_0;
696
 
        uint32_t cntr_answers_0;
697
 
        TALLOC_CTX *_mem_save_answers_0;
698
 
        uint32_t cntr_nsrecs_0;
699
 
        TALLOC_CTX *_mem_save_nsrecs_0;
700
 
        uint32_t cntr_additional_0;
701
 
        TALLOC_CTX *_mem_save_additional_0;
702
 
        {
703
 
                uint32_t _flags_save_STRUCT = ndr->flags;
704
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
705
 
                if (ndr_flags & NDR_SCALARS) {
706
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
707
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_trn_id));
708
 
                        NDR_CHECK(ndr_pull_nbt_operation(ndr, NDR_SCALARS, &r->operation));
709
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->qdcount));
710
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ancount));
711
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nscount));
712
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->arcount));
713
 
                        NDR_PULL_ALLOC_N(ndr, r->questions, r->qdcount);
714
 
                        _mem_save_questions_0 = NDR_PULL_GET_MEM_CTX(ndr);
715
 
                        NDR_PULL_SET_MEM_CTX(ndr, r->questions, 0);
716
 
                        for (cntr_questions_0 = 0; cntr_questions_0 < r->qdcount; cntr_questions_0++) {
717
 
                                NDR_CHECK(ndr_pull_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
718
 
                        }
719
 
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_questions_0, 0);
720
 
                        NDR_PULL_ALLOC_N(ndr, r->answers, r->ancount);
721
 
                        _mem_save_answers_0 = NDR_PULL_GET_MEM_CTX(ndr);
722
 
                        NDR_PULL_SET_MEM_CTX(ndr, r->answers, 0);
723
 
                        for (cntr_answers_0 = 0; cntr_answers_0 < r->ancount; cntr_answers_0++) {
724
 
                                NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
725
 
                        }
726
 
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_answers_0, 0);
727
 
                        NDR_PULL_ALLOC_N(ndr, r->nsrecs, r->nscount);
728
 
                        _mem_save_nsrecs_0 = NDR_PULL_GET_MEM_CTX(ndr);
729
 
                        NDR_PULL_SET_MEM_CTX(ndr, r->nsrecs, 0);
730
 
                        for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < r->nscount; cntr_nsrecs_0++) {
731
 
                                NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
732
 
                        }
733
 
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nsrecs_0, 0);
734
 
                        NDR_PULL_ALLOC_N(ndr, r->additional, r->arcount);
735
 
                        _mem_save_additional_0 = NDR_PULL_GET_MEM_CTX(ndr);
736
 
                        NDR_PULL_SET_MEM_CTX(ndr, r->additional, 0);
737
 
                        for (cntr_additional_0 = 0; cntr_additional_0 < r->arcount; cntr_additional_0++) {
738
 
                                NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
739
 
                        }
740
 
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_additional_0, 0);
741
 
                        {
742
 
                                uint32_t _flags_save_DATA_BLOB = ndr->flags;
743
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
744
 
                                NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->padding));
745
 
                                ndr->flags = _flags_save_DATA_BLOB;
746
 
                        }
747
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
748
 
                }
749
 
                if (ndr_flags & NDR_BUFFERS) {
750
 
                }
751
 
                ndr->flags = _flags_save_STRUCT;
752
 
        }
753
 
        return NDR_ERR_SUCCESS;
754
 
}
755
 
 
756
 
_PUBLIC_ void ndr_print_nbt_name_packet(struct ndr_print *ndr, const char *name, const struct nbt_name_packet *r)
757
 
{
758
 
        uint32_t cntr_questions_0;
759
 
        uint32_t cntr_answers_0;
760
 
        uint32_t cntr_nsrecs_0;
761
 
        uint32_t cntr_additional_0;
762
 
        ndr_print_struct(ndr, name, "nbt_name_packet");
763
 
        {
764
 
                uint32_t _flags_save_STRUCT = ndr->flags;
765
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
766
 
                ndr->depth++;
767
 
                ndr_print_uint16(ndr, "name_trn_id", r->name_trn_id);
768
 
                ndr_print_nbt_operation(ndr, "operation", r->operation);
769
 
                ndr_print_uint16(ndr, "qdcount", r->qdcount);
770
 
                ndr_print_uint16(ndr, "ancount", r->ancount);
771
 
                ndr_print_uint16(ndr, "nscount", r->nscount);
772
 
                ndr_print_uint16(ndr, "arcount", r->arcount);
773
 
                ndr->print(ndr, "%s: ARRAY(%d)", "questions", (int)r->qdcount);
774
 
                ndr->depth++;
775
 
                for (cntr_questions_0=0;cntr_questions_0<r->qdcount;cntr_questions_0++) {
776
 
                        char *idx_0=NULL;
777
 
                        if (asprintf(&idx_0, "[%d]", cntr_questions_0) != -1) {
778
 
                                ndr_print_nbt_name_question(ndr, "questions", &r->questions[cntr_questions_0]);
779
 
                                free(idx_0);
780
 
                        }
781
 
                }
782
 
                ndr->depth--;
783
 
                ndr->print(ndr, "%s: ARRAY(%d)", "answers", (int)r->ancount);
784
 
                ndr->depth++;
785
 
                for (cntr_answers_0=0;cntr_answers_0<r->ancount;cntr_answers_0++) {
786
 
                        char *idx_0=NULL;
787
 
                        if (asprintf(&idx_0, "[%d]", cntr_answers_0) != -1) {
788
 
                                ndr_print_nbt_res_rec(ndr, "answers", &r->answers[cntr_answers_0]);
789
 
                                free(idx_0);
790
 
                        }
791
 
                }
792
 
                ndr->depth--;
793
 
                ndr->print(ndr, "%s: ARRAY(%d)", "nsrecs", (int)r->nscount);
794
 
                ndr->depth++;
795
 
                for (cntr_nsrecs_0=0;cntr_nsrecs_0<r->nscount;cntr_nsrecs_0++) {
796
 
                        char *idx_0=NULL;
797
 
                        if (asprintf(&idx_0, "[%d]", cntr_nsrecs_0) != -1) {
798
 
                                ndr_print_nbt_res_rec(ndr, "nsrecs", &r->nsrecs[cntr_nsrecs_0]);
799
 
                                free(idx_0);
800
 
                        }
801
 
                }
802
 
                ndr->depth--;
803
 
                ndr->print(ndr, "%s: ARRAY(%d)", "additional", (int)r->arcount);
804
 
                ndr->depth++;
805
 
                for (cntr_additional_0=0;cntr_additional_0<r->arcount;cntr_additional_0++) {
806
 
                        char *idx_0=NULL;
807
 
                        if (asprintf(&idx_0, "[%d]", cntr_additional_0) != -1) {
808
 
                                ndr_print_nbt_res_rec(ndr, "additional", &r->additional[cntr_additional_0]);
809
 
                                free(idx_0);
810
 
                        }
811
 
                }
812
 
                ndr->depth--;
813
 
                ndr_print_DATA_BLOB(ndr, "padding", r->padding);
814
 
                ndr->depth--;
815
 
                ndr->flags = _flags_save_STRUCT;
816
 
        }
817
 
}
818
 
 
819
 
static enum ndr_err_code ndr_push_dgram_msg_type(struct ndr_push *ndr, int ndr_flags, enum dgram_msg_type r)
820
 
{
821
 
        NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
822
 
        return NDR_ERR_SUCCESS;
823
 
}
824
 
 
825
 
static enum ndr_err_code ndr_pull_dgram_msg_type(struct ndr_pull *ndr, int ndr_flags, enum dgram_msg_type *r)
826
 
{
827
 
        uint8_t v;
828
 
        NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
829
 
        *r = v;
830
 
        return NDR_ERR_SUCCESS;
831
 
}
832
 
 
833
 
_PUBLIC_ void ndr_print_dgram_msg_type(struct ndr_print *ndr, const char *name, enum dgram_msg_type r)
834
 
{
835
 
        const char *val = NULL;
836
 
 
837
 
        switch (r) {
838
 
                case DGRAM_DIRECT_UNIQUE: val = "DGRAM_DIRECT_UNIQUE"; break;
839
 
                case DGRAM_DIRECT_GROUP: val = "DGRAM_DIRECT_GROUP"; break;
840
 
                case DGRAM_BCAST: val = "DGRAM_BCAST"; break;
841
 
                case DGRAM_ERROR: val = "DGRAM_ERROR"; break;
842
 
                case DGRAM_QUERY: val = "DGRAM_QUERY"; break;
843
 
                case DGRAM_QUERY_POSITIVE: val = "DGRAM_QUERY_POSITIVE"; break;
844
 
                case DGRAM_QUERY_NEGATIVE: val = "DGRAM_QUERY_NEGATIVE"; break;
845
 
        }
846
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
847
 
}
848
 
 
849
 
static enum ndr_err_code ndr_push_dgram_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
850
 
{
851
 
        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
852
 
        return NDR_ERR_SUCCESS;
853
 
}
854
 
 
855
 
static enum ndr_err_code ndr_pull_dgram_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
856
 
{
857
 
        uint8_t v;
858
 
        NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
859
 
        *r = v;
860
 
        return NDR_ERR_SUCCESS;
861
 
}
862
 
 
863
 
_PUBLIC_ void ndr_print_dgram_flags(struct ndr_print *ndr, const char *name, uint8_t r)
864
 
{
865
 
        ndr_print_uint8(ndr, name, r);
866
 
        ndr->depth++;
867
 
        ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_MORE", DGRAM_FLAG_MORE, r);
868
 
        ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_FIRST", DGRAM_FLAG_FIRST, r);
869
 
        ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_NODE_TYPE", DGRAM_FLAG_NODE_TYPE, r);
870
 
        ndr->depth--;
871
 
}
872
 
 
873
 
static enum ndr_err_code ndr_push_smb_command(struct ndr_push *ndr, int ndr_flags, enum smb_command r)
874
 
{
875
 
        NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
876
 
        return NDR_ERR_SUCCESS;
877
 
}
878
 
 
879
 
static enum ndr_err_code ndr_pull_smb_command(struct ndr_pull *ndr, int ndr_flags, enum smb_command *r)
880
 
{
881
 
        uint8_t v;
882
 
        NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
883
 
        *r = v;
884
 
        return NDR_ERR_SUCCESS;
885
 
}
886
 
 
887
 
_PUBLIC_ void ndr_print_smb_command(struct ndr_print *ndr, const char *name, enum smb_command r)
888
 
{
889
 
        const char *val = NULL;
890
 
 
891
 
        switch (r) {
892
 
                case SMB_TRANSACTION: val = "SMB_TRANSACTION"; break;
893
 
        }
894
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
895
 
}
896
 
 
897
 
static enum ndr_err_code ndr_push_smb_trans_body(struct ndr_push *ndr, int ndr_flags, const struct smb_trans_body *r)
898
 
{
899
 
        if (ndr_flags & NDR_SCALARS) {
900
 
                NDR_CHECK(ndr_push_align(ndr, 4));
901
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 17));
902
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_param_count));
903
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_data_count));
904
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_param_count));
905
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_data_count));
906
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->max_setup_count));
907
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
908
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->trans_flags));
909
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timeout));
910
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
911
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_count));
912
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_offset));
913
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_count));
914
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_offset));
915
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 3));
916
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad2));
917
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opcode));
918
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->priority));
919
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->_class));
920
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->mailslot_name) + 1 + r->data.length));
921
 
                {
922
 
                        uint32_t _flags_save_string = ndr->flags;
923
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
924
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
925
 
                        ndr->flags = _flags_save_string;
926
 
                }
927
 
                {
928
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
929
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
930
 
                        NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
931
 
                        ndr->flags = _flags_save_DATA_BLOB;
932
 
                }
933
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
934
 
        }
935
 
        if (ndr_flags & NDR_BUFFERS) {
936
 
        }
937
 
        return NDR_ERR_SUCCESS;
938
 
}
939
 
 
940
 
static enum ndr_err_code ndr_pull_smb_trans_body(struct ndr_pull *ndr, int ndr_flags, struct smb_trans_body *r)
941
 
{
942
 
        if (ndr_flags & NDR_SCALARS) {
943
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
944
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->wct));
945
 
                if (r->wct < 17 || r->wct > 17) {
946
 
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
947
 
                }
948
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_param_count));
949
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_data_count));
950
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_param_count));
951
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_data_count));
952
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->max_setup_count));
953
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad));
954
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->trans_flags));
955
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timeout));
956
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved));
957
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->param_count));
958
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->param_offset));
959
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data_count));
960
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data_offset));
961
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->setup_count));
962
 
                if (r->setup_count < 3 || r->setup_count > 3) {
963
 
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
964
 
                }
965
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad2));
966
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opcode));
967
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->priority));
968
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->_class));
969
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->byte_count));
970
 
                {
971
 
                        uint32_t _flags_save_string = ndr->flags;
972
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
973
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
974
 
                        ndr->flags = _flags_save_string;
975
 
                }
976
 
                {
977
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
978
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
979
 
                        NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
980
 
                        ndr->flags = _flags_save_DATA_BLOB;
981
 
                }
982
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
983
 
        }
984
 
        if (ndr_flags & NDR_BUFFERS) {
985
 
        }
986
 
        return NDR_ERR_SUCCESS;
987
 
}
988
 
 
989
 
_PUBLIC_ void ndr_print_smb_trans_body(struct ndr_print *ndr, const char *name, const struct smb_trans_body *r)
990
 
{
991
 
        ndr_print_struct(ndr, name, "smb_trans_body");
992
 
        ndr->depth++;
993
 
        ndr_print_uint8(ndr, "wct", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?17:r->wct);
994
 
        ndr_print_uint16(ndr, "total_param_count", r->total_param_count);
995
 
        ndr_print_uint16(ndr, "total_data_count", r->total_data_count);
996
 
        ndr_print_uint16(ndr, "max_param_count", r->max_param_count);
997
 
        ndr_print_uint16(ndr, "max_data_count", r->max_data_count);
998
 
        ndr_print_uint8(ndr, "max_setup_count", r->max_setup_count);
999
 
        ndr_print_uint8(ndr, "pad", r->pad);
1000
 
        ndr_print_uint16(ndr, "trans_flags", r->trans_flags);
1001
 
        ndr_print_uint32(ndr, "timeout", r->timeout);
1002
 
        ndr_print_uint16(ndr, "reserved", r->reserved);
1003
 
        ndr_print_uint16(ndr, "param_count", r->param_count);
1004
 
        ndr_print_uint16(ndr, "param_offset", r->param_offset);
1005
 
        ndr_print_uint16(ndr, "data_count", r->data_count);
1006
 
        ndr_print_uint16(ndr, "data_offset", r->data_offset);
1007
 
        ndr_print_uint8(ndr, "setup_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?3:r->setup_count);
1008
 
        ndr_print_uint8(ndr, "pad2", r->pad2);
1009
 
        ndr_print_uint16(ndr, "opcode", r->opcode);
1010
 
        ndr_print_uint16(ndr, "priority", r->priority);
1011
 
        ndr_print_uint16(ndr, "_class", r->_class);
1012
 
        ndr_print_uint16(ndr, "byte_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->mailslot_name) + 1 + r->data.length:r->byte_count);
1013
 
        ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1014
 
        ndr_print_DATA_BLOB(ndr, "data", r->data);
1015
 
        ndr->depth--;
1016
 
}
1017
 
 
1018
 
static enum ndr_err_code ndr_push_smb_body(struct ndr_push *ndr, int ndr_flags, const union smb_body *r)
1019
 
{
1020
 
        if (ndr_flags & NDR_SCALARS) {
1021
 
                int level = ndr_push_get_switch_value(ndr, r);
1022
 
                NDR_CHECK(ndr_push_union_align(ndr, 4));
1023
 
                switch (level) {
1024
 
                        case SMB_TRANSACTION: {
1025
 
                                NDR_CHECK(ndr_push_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1026
 
                        break; }
1027
 
 
1028
 
                        default:
1029
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1030
 
                }
1031
 
        }
1032
 
        if (ndr_flags & NDR_BUFFERS) {
1033
 
                int level = ndr_push_get_switch_value(ndr, r);
1034
 
                switch (level) {
1035
 
                        case SMB_TRANSACTION:
1036
 
                        break;
1037
 
 
1038
 
                        default:
1039
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1040
 
                }
1041
 
        }
1042
 
        return NDR_ERR_SUCCESS;
1043
 
}
1044
 
 
1045
 
static enum ndr_err_code ndr_pull_smb_body(struct ndr_pull *ndr, int ndr_flags, union smb_body *r)
1046
 
{
1047
 
        int level;
1048
 
        level = ndr_pull_get_switch_value(ndr, r);
1049
 
        if (ndr_flags & NDR_SCALARS) {
1050
 
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
1051
 
                switch (level) {
1052
 
                        case SMB_TRANSACTION: {
1053
 
                                NDR_CHECK(ndr_pull_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1054
 
                        break; }
1055
 
 
1056
 
                        default:
1057
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1058
 
                }
1059
 
        }
1060
 
        if (ndr_flags & NDR_BUFFERS) {
1061
 
                switch (level) {
1062
 
                        case SMB_TRANSACTION:
1063
 
                        break;
1064
 
 
1065
 
                        default:
1066
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1067
 
                }
1068
 
        }
1069
 
        return NDR_ERR_SUCCESS;
1070
 
}
1071
 
 
1072
 
_PUBLIC_ void ndr_print_smb_body(struct ndr_print *ndr, const char *name, const union smb_body *r)
1073
 
{
1074
 
        int level;
1075
 
        level = ndr_print_get_switch_value(ndr, r);
1076
 
        ndr_print_union(ndr, name, level, "smb_body");
1077
 
        switch (level) {
1078
 
                case SMB_TRANSACTION:
1079
 
                        ndr_print_smb_trans_body(ndr, "trans", &r->trans);
1080
 
                break;
1081
 
 
1082
 
                default:
1083
 
                        ndr_print_bad_level(ndr, name, level);
1084
 
        }
1085
 
}
1086
 
 
1087
 
_PUBLIC_ enum ndr_err_code ndr_push_dgram_smb_packet(struct ndr_push *ndr, int ndr_flags, const struct dgram_smb_packet *r)
1088
 
{
1089
 
        {
1090
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1091
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1092
 
                if (ndr_flags & NDR_SCALARS) {
1093
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
1094
 
                        NDR_CHECK(ndr_push_smb_command(ndr, NDR_SCALARS, r->smb_command));
1095
 
                        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->err_class));
1096
 
                        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
1097
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->err_code));
1098
 
                        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->flags));
1099
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->flags2));
1100
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid_high));
1101
 
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->signature, 8));
1102
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
1103
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->tid));
1104
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid));
1105
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vuid));
1106
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->mid));
1107
 
                        NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->smb_command));
1108
 
                        NDR_CHECK(ndr_push_smb_body(ndr, NDR_SCALARS, &r->body));
1109
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1110
 
                }
1111
 
                if (ndr_flags & NDR_BUFFERS) {
1112
 
                }
1113
 
                ndr->flags = _flags_save_STRUCT;
1114
 
        }
1115
 
        return NDR_ERR_SUCCESS;
1116
 
}
1117
 
 
1118
 
_PUBLIC_ enum ndr_err_code ndr_pull_dgram_smb_packet(struct ndr_pull *ndr, int ndr_flags, struct dgram_smb_packet *r)
1119
 
{
1120
 
        {
1121
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1122
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1123
 
                if (ndr_flags & NDR_SCALARS) {
1124
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
1125
 
                        NDR_CHECK(ndr_pull_smb_command(ndr, NDR_SCALARS, &r->smb_command));
1126
 
                        NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->err_class));
1127
 
                        NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad));
1128
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->err_code));
1129
 
                        NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->flags));
1130
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->flags2));
1131
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid_high));
1132
 
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->signature, 8));
1133
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved));
1134
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->tid));
1135
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid));
1136
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vuid));
1137
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->mid));
1138
 
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->smb_command));
1139
 
                        NDR_CHECK(ndr_pull_smb_body(ndr, NDR_SCALARS, &r->body));
1140
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1141
 
                }
1142
 
                if (ndr_flags & NDR_BUFFERS) {
1143
 
                }
1144
 
                ndr->flags = _flags_save_STRUCT;
1145
 
        }
1146
 
        return NDR_ERR_SUCCESS;
1147
 
}
1148
 
 
1149
 
_PUBLIC_ void ndr_print_dgram_smb_packet(struct ndr_print *ndr, const char *name, const struct dgram_smb_packet *r)
1150
 
{
1151
 
        ndr_print_struct(ndr, name, "dgram_smb_packet");
1152
 
        {
1153
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1154
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1155
 
                ndr->depth++;
1156
 
                ndr_print_smb_command(ndr, "smb_command", r->smb_command);
1157
 
                ndr_print_uint8(ndr, "err_class", r->err_class);
1158
 
                ndr_print_uint8(ndr, "pad", r->pad);
1159
 
                ndr_print_uint16(ndr, "err_code", r->err_code);
1160
 
                ndr_print_uint8(ndr, "flags", r->flags);
1161
 
                ndr_print_uint16(ndr, "flags2", r->flags2);
1162
 
                ndr_print_uint16(ndr, "pid_high", r->pid_high);
1163
 
                ndr_print_array_uint8(ndr, "signature", r->signature, 8);
1164
 
                ndr_print_uint16(ndr, "reserved", r->reserved);
1165
 
                ndr_print_uint16(ndr, "tid", r->tid);
1166
 
                ndr_print_uint16(ndr, "pid", r->pid);
1167
 
                ndr_print_uint16(ndr, "vuid", r->vuid);
1168
 
                ndr_print_uint16(ndr, "mid", r->mid);
1169
 
                ndr_print_set_switch_value(ndr, &r->body, r->smb_command);
1170
 
                ndr_print_smb_body(ndr, "body", &r->body);
1171
 
                ndr->depth--;
1172
 
                ndr->flags = _flags_save_STRUCT;
1173
 
        }
1174
 
}
1175
 
 
1176
 
static enum ndr_err_code ndr_push_dgram_message_body(struct ndr_push *ndr, int ndr_flags, const union dgram_message_body *r)
1177
 
{
1178
 
        if (ndr_flags & NDR_SCALARS) {
1179
 
                int level = ndr_push_get_switch_value(ndr, r);
1180
 
                NDR_CHECK(ndr_push_union_align(ndr, 4));
1181
 
                switch (level) {
1182
 
                        case DGRAM_SMB: {
1183
 
                                NDR_CHECK(ndr_push_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1184
 
                        break; }
1185
 
 
1186
 
                        default:
1187
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1188
 
                }
1189
 
        }
1190
 
        if (ndr_flags & NDR_BUFFERS) {
1191
 
                int level = ndr_push_get_switch_value(ndr, r);
1192
 
                switch (level) {
1193
 
                        case DGRAM_SMB:
1194
 
                        break;
1195
 
 
1196
 
                        default:
1197
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1198
 
                }
1199
 
        }
1200
 
        return NDR_ERR_SUCCESS;
1201
 
}
1202
 
 
1203
 
static enum ndr_err_code ndr_pull_dgram_message_body(struct ndr_pull *ndr, int ndr_flags, union dgram_message_body *r)
1204
 
{
1205
 
        int level;
1206
 
        level = ndr_pull_get_switch_value(ndr, r);
1207
 
        if (ndr_flags & NDR_SCALARS) {
1208
 
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
1209
 
                switch (level) {
1210
 
                        case DGRAM_SMB: {
1211
 
                                NDR_CHECK(ndr_pull_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1212
 
                        break; }
1213
 
 
1214
 
                        default:
1215
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1216
 
                }
1217
 
        }
1218
 
        if (ndr_flags & NDR_BUFFERS) {
1219
 
                switch (level) {
1220
 
                        case DGRAM_SMB:
1221
 
                        break;
1222
 
 
1223
 
                        default:
1224
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1225
 
                }
1226
 
        }
1227
 
        return NDR_ERR_SUCCESS;
1228
 
}
1229
 
 
1230
 
_PUBLIC_ void ndr_print_dgram_message_body(struct ndr_print *ndr, const char *name, const union dgram_message_body *r)
1231
 
{
1232
 
        int level;
1233
 
        level = ndr_print_get_switch_value(ndr, r);
1234
 
        ndr_print_union(ndr, name, level, "dgram_message_body");
1235
 
        switch (level) {
1236
 
                case DGRAM_SMB:
1237
 
                        ndr_print_dgram_smb_packet(ndr, "smb", &r->smb);
1238
 
                break;
1239
 
 
1240
 
                default:
1241
 
                        ndr_print_bad_level(ndr, name, level);
1242
 
        }
1243
 
}
1244
 
 
1245
 
static enum ndr_err_code ndr_push_dgram_message(struct ndr_push *ndr, int ndr_flags, const struct dgram_message *r)
1246
 
{
1247
 
        if (ndr_flags & NDR_SCALARS) {
1248
 
                NDR_CHECK(ndr_push_align(ndr, 4));
1249
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1250
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->offset));
1251
 
                NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1252
 
                NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1253
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dgram_body_type));
1254
 
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->dgram_body_type));
1255
 
                NDR_CHECK(ndr_push_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1256
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1257
 
        }
1258
 
        if (ndr_flags & NDR_BUFFERS) {
1259
 
        }
1260
 
        return NDR_ERR_SUCCESS;
1261
 
}
1262
 
 
1263
 
static enum ndr_err_code ndr_pull_dgram_message(struct ndr_pull *ndr, int ndr_flags, struct dgram_message *r)
1264
 
{
1265
 
        if (ndr_flags & NDR_SCALARS) {
1266
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
1267
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1268
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->offset));
1269
 
                NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1270
 
                NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1271
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dgram_body_type));
1272
 
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->dgram_body_type));
1273
 
                NDR_CHECK(ndr_pull_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1274
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1275
 
        }
1276
 
        if (ndr_flags & NDR_BUFFERS) {
1277
 
        }
1278
 
        return NDR_ERR_SUCCESS;
1279
 
}
1280
 
 
1281
 
_PUBLIC_ void ndr_print_dgram_message(struct ndr_print *ndr, const char *name, const struct dgram_message *r)
1282
 
{
1283
 
        ndr_print_struct(ndr, name, "dgram_message");
1284
 
        ndr->depth++;
1285
 
        ndr_print_uint16(ndr, "length", r->length);
1286
 
        ndr_print_uint16(ndr, "offset", r->offset);
1287
 
        ndr_print_nbt_name(ndr, "source_name", &r->source_name);
1288
 
        ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1289
 
        ndr_print_uint32(ndr, "dgram_body_type", r->dgram_body_type);
1290
 
        ndr_print_set_switch_value(ndr, &r->body, r->dgram_body_type);
1291
 
        ndr_print_dgram_message_body(ndr, "body", &r->body);
1292
 
        ndr->depth--;
1293
 
}
1294
 
 
1295
 
static enum ndr_err_code ndr_push_dgram_err_code(struct ndr_push *ndr, int ndr_flags, enum dgram_err_code r)
1296
 
{
1297
 
        NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
1298
 
        return NDR_ERR_SUCCESS;
1299
 
}
1300
 
 
1301
 
static enum ndr_err_code ndr_pull_dgram_err_code(struct ndr_pull *ndr, int ndr_flags, enum dgram_err_code *r)
1302
 
{
1303
 
        uint8_t v;
1304
 
        NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
1305
 
        *r = v;
1306
 
        return NDR_ERR_SUCCESS;
1307
 
}
1308
 
 
1309
 
_PUBLIC_ void ndr_print_dgram_err_code(struct ndr_print *ndr, const char *name, enum dgram_err_code r)
1310
 
{
1311
 
        const char *val = NULL;
1312
 
 
1313
 
        switch (r) {
1314
 
                case DGRAM_ERROR_NAME_NOT_PRESENT: val = "DGRAM_ERROR_NAME_NOT_PRESENT"; break;
1315
 
                case DGRAM_ERROR_INVALID_SOURCE: val = "DGRAM_ERROR_INVALID_SOURCE"; break;
1316
 
                case DGRAM_ERROR_INVALID_DEST: val = "DGRAM_ERROR_INVALID_DEST"; break;
1317
 
        }
1318
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
1319
 
}
1320
 
 
1321
 
static enum ndr_err_code ndr_push_dgram_data(struct ndr_push *ndr, int ndr_flags, const union dgram_data *r)
1322
 
{
1323
 
        if (ndr_flags & NDR_SCALARS) {
1324
 
                int level = ndr_push_get_switch_value(ndr, r);
1325
 
                NDR_CHECK(ndr_push_union_align(ndr, 4));
1326
 
                switch (level) {
1327
 
                        case DGRAM_DIRECT_UNIQUE: {
1328
 
                                NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1329
 
                        break; }
1330
 
 
1331
 
                        case DGRAM_DIRECT_GROUP: {
1332
 
                                NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1333
 
                        break; }
1334
 
 
1335
 
                        case DGRAM_BCAST: {
1336
 
                                NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1337
 
                        break; }
1338
 
 
1339
 
                        case DGRAM_ERROR: {
1340
 
                                NDR_CHECK(ndr_push_dgram_err_code(ndr, NDR_SCALARS, r->error));
1341
 
                        break; }
1342
 
 
1343
 
                        case DGRAM_QUERY: {
1344
 
                                NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1345
 
                        break; }
1346
 
 
1347
 
                        case DGRAM_QUERY_POSITIVE: {
1348
 
                                NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1349
 
                        break; }
1350
 
 
1351
 
                        case DGRAM_QUERY_NEGATIVE: {
1352
 
                                NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1353
 
                        break; }
1354
 
 
1355
 
                        default:
1356
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1357
 
                }
1358
 
        }
1359
 
        if (ndr_flags & NDR_BUFFERS) {
1360
 
                int level = ndr_push_get_switch_value(ndr, r);
1361
 
                switch (level) {
1362
 
                        case DGRAM_DIRECT_UNIQUE:
1363
 
                        break;
1364
 
 
1365
 
                        case DGRAM_DIRECT_GROUP:
1366
 
                        break;
1367
 
 
1368
 
                        case DGRAM_BCAST:
1369
 
                        break;
1370
 
 
1371
 
                        case DGRAM_ERROR:
1372
 
                        break;
1373
 
 
1374
 
                        case DGRAM_QUERY:
1375
 
                        break;
1376
 
 
1377
 
                        case DGRAM_QUERY_POSITIVE:
1378
 
                        break;
1379
 
 
1380
 
                        case DGRAM_QUERY_NEGATIVE:
1381
 
                        break;
1382
 
 
1383
 
                        default:
1384
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1385
 
                }
1386
 
        }
1387
 
        return NDR_ERR_SUCCESS;
1388
 
}
1389
 
 
1390
 
static enum ndr_err_code ndr_pull_dgram_data(struct ndr_pull *ndr, int ndr_flags, union dgram_data *r)
1391
 
{
1392
 
        int level;
1393
 
        level = ndr_pull_get_switch_value(ndr, r);
1394
 
        if (ndr_flags & NDR_SCALARS) {
1395
 
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
1396
 
                switch (level) {
1397
 
                        case DGRAM_DIRECT_UNIQUE: {
1398
 
                                NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1399
 
                        break; }
1400
 
 
1401
 
                        case DGRAM_DIRECT_GROUP: {
1402
 
                                NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1403
 
                        break; }
1404
 
 
1405
 
                        case DGRAM_BCAST: {
1406
 
                                NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1407
 
                        break; }
1408
 
 
1409
 
                        case DGRAM_ERROR: {
1410
 
                                NDR_CHECK(ndr_pull_dgram_err_code(ndr, NDR_SCALARS, &r->error));
1411
 
                        break; }
1412
 
 
1413
 
                        case DGRAM_QUERY: {
1414
 
                                NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1415
 
                        break; }
1416
 
 
1417
 
                        case DGRAM_QUERY_POSITIVE: {
1418
 
                                NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1419
 
                        break; }
1420
 
 
1421
 
                        case DGRAM_QUERY_NEGATIVE: {
1422
 
                                NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1423
 
                        break; }
1424
 
 
1425
 
                        default:
1426
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1427
 
                }
1428
 
        }
1429
 
        if (ndr_flags & NDR_BUFFERS) {
1430
 
                switch (level) {
1431
 
                        case DGRAM_DIRECT_UNIQUE:
1432
 
                        break;
1433
 
 
1434
 
                        case DGRAM_DIRECT_GROUP:
1435
 
                        break;
1436
 
 
1437
 
                        case DGRAM_BCAST:
1438
 
                        break;
1439
 
 
1440
 
                        case DGRAM_ERROR:
1441
 
                        break;
1442
 
 
1443
 
                        case DGRAM_QUERY:
1444
 
                        break;
1445
 
 
1446
 
                        case DGRAM_QUERY_POSITIVE:
1447
 
                        break;
1448
 
 
1449
 
                        case DGRAM_QUERY_NEGATIVE:
1450
 
                        break;
1451
 
 
1452
 
                        default:
1453
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1454
 
                }
1455
 
        }
1456
 
        return NDR_ERR_SUCCESS;
1457
 
}
1458
 
 
1459
 
_PUBLIC_ void ndr_print_dgram_data(struct ndr_print *ndr, const char *name, const union dgram_data *r)
1460
 
{
1461
 
        int level;
1462
 
        level = ndr_print_get_switch_value(ndr, r);
1463
 
        ndr_print_union(ndr, name, level, "dgram_data");
1464
 
        switch (level) {
1465
 
                case DGRAM_DIRECT_UNIQUE:
1466
 
                        ndr_print_dgram_message(ndr, "msg", &r->msg);
1467
 
                break;
1468
 
 
1469
 
                case DGRAM_DIRECT_GROUP:
1470
 
                        ndr_print_dgram_message(ndr, "msg", &r->msg);
1471
 
                break;
1472
 
 
1473
 
                case DGRAM_BCAST:
1474
 
                        ndr_print_dgram_message(ndr, "msg", &r->msg);
1475
 
                break;
1476
 
 
1477
 
                case DGRAM_ERROR:
1478
 
                        ndr_print_dgram_err_code(ndr, "error", r->error);
1479
 
                break;
1480
 
 
1481
 
                case DGRAM_QUERY:
1482
 
                        ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1483
 
                break;
1484
 
 
1485
 
                case DGRAM_QUERY_POSITIVE:
1486
 
                        ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1487
 
                break;
1488
 
 
1489
 
                case DGRAM_QUERY_NEGATIVE:
1490
 
                        ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1491
 
                break;
1492
 
 
1493
 
                default:
1494
 
                        ndr_print_bad_level(ndr, name, level);
1495
 
        }
1496
 
}
1497
 
 
1498
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_dgram_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_dgram_packet *r)
1499
 
{
1500
 
        {
1501
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1502
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1503
 
                if (ndr_flags & NDR_SCALARS) {
1504
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
1505
 
                        NDR_CHECK(ndr_push_dgram_msg_type(ndr, NDR_SCALARS, r->msg_type));
1506
 
                        NDR_CHECK(ndr_push_dgram_flags(ndr, NDR_SCALARS, r->flags));
1507
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->dgram_id));
1508
 
                        NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->src_addr));
1509
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->src_port));
1510
 
                        NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->msg_type));
1511
 
                        NDR_CHECK(ndr_push_dgram_data(ndr, NDR_SCALARS, &r->data));
1512
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1513
 
                }
1514
 
                if (ndr_flags & NDR_BUFFERS) {
1515
 
                }
1516
 
                ndr->flags = _flags_save_STRUCT;
1517
 
        }
1518
 
        return NDR_ERR_SUCCESS;
1519
 
}
1520
 
 
1521
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_dgram_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_dgram_packet *r)
1522
 
{
1523
 
        {
1524
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1525
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1526
 
                if (ndr_flags & NDR_SCALARS) {
1527
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
1528
 
                        NDR_CHECK(ndr_pull_dgram_msg_type(ndr, NDR_SCALARS, &r->msg_type));
1529
 
                        NDR_CHECK(ndr_pull_dgram_flags(ndr, NDR_SCALARS, &r->flags));
1530
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dgram_id));
1531
 
                        NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->src_addr));
1532
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->src_port));
1533
 
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->msg_type));
1534
 
                        NDR_CHECK(ndr_pull_dgram_data(ndr, NDR_SCALARS, &r->data));
1535
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1536
 
                }
1537
 
                if (ndr_flags & NDR_BUFFERS) {
1538
 
                }
1539
 
                ndr->flags = _flags_save_STRUCT;
1540
 
        }
1541
 
        return NDR_ERR_SUCCESS;
1542
 
}
1543
 
 
1544
 
_PUBLIC_ void ndr_print_nbt_dgram_packet(struct ndr_print *ndr, const char *name, const struct nbt_dgram_packet *r)
1545
 
{
1546
 
        ndr_print_struct(ndr, name, "nbt_dgram_packet");
1547
 
        {
1548
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1549
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1550
 
                ndr->depth++;
1551
 
                ndr_print_dgram_msg_type(ndr, "msg_type", r->msg_type);
1552
 
                ndr_print_dgram_flags(ndr, "flags", r->flags);
1553
 
                ndr_print_uint16(ndr, "dgram_id", r->dgram_id);
1554
 
                ndr_print_ipv4address(ndr, "src_addr", r->src_addr);
1555
 
                ndr_print_uint16(ndr, "src_port", r->src_port);
1556
 
                ndr_print_set_switch_value(ndr, &r->data, r->msg_type);
1557
 
                ndr_print_dgram_data(ndr, "data", &r->data);
1558
 
                ndr->depth--;
1559
 
                ndr->flags = _flags_save_STRUCT;
1560
 
        }
1561
 
}
1562
 
 
1563
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_sockaddr(struct ndr_push *ndr, int ndr_flags, const struct nbt_sockaddr *r)
1564
 
{
1565
 
        if (ndr_flags & NDR_SCALARS) {
1566
 
                NDR_CHECK(ndr_push_align(ndr, 4));
1567
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sockaddr_family));
1568
 
                {
1569
 
                        uint32_t _flags_save_ipv4address = ndr->flags;
1570
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1571
 
                        NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
1572
 
                        ndr->flags = _flags_save_ipv4address;
1573
 
                }
1574
 
                {
1575
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
1576
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1577
 
                        NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
1578
 
                        ndr->flags = _flags_save_DATA_BLOB;
1579
 
                }
1580
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1581
 
        }
1582
 
        if (ndr_flags & NDR_BUFFERS) {
1583
 
        }
1584
 
        return NDR_ERR_SUCCESS;
1585
 
}
1586
 
 
1587
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_sockaddr(struct ndr_pull *ndr, int ndr_flags, struct nbt_sockaddr *r)
1588
 
{
1589
 
        if (ndr_flags & NDR_SCALARS) {
1590
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
1591
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sockaddr_family));
1592
 
                {
1593
 
                        uint32_t _flags_save_ipv4address = ndr->flags;
1594
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1595
 
                        NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
1596
 
                        ndr->flags = _flags_save_ipv4address;
1597
 
                }
1598
 
                {
1599
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
1600
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1601
 
                        NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
1602
 
                        ndr->flags = _flags_save_DATA_BLOB;
1603
 
                }
1604
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1605
 
        }
1606
 
        if (ndr_flags & NDR_BUFFERS) {
1607
 
        }
1608
 
        return NDR_ERR_SUCCESS;
1609
 
}
1610
 
 
1611
 
_PUBLIC_ void ndr_print_nbt_sockaddr(struct ndr_print *ndr, const char *name, const struct nbt_sockaddr *r)
1612
 
{
1613
 
        ndr_print_struct(ndr, name, "nbt_sockaddr");
1614
 
        ndr->depth++;
1615
 
        ndr_print_uint32(ndr, "sockaddr_family", r->sockaddr_family);
1616
 
        ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
1617
 
        ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
1618
 
        ndr->depth--;
1619
 
}
1620
 
 
1621
 
_PUBLIC_ size_t ndr_size_nbt_sockaddr(const struct nbt_sockaddr *r, struct smb_iconv_convenience *ic, int flags)
1622
 
{
1623
 
        return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_nbt_sockaddr, ic);
1624
 
}
1625
 
 
1626
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_server_type(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1627
 
{
1628
 
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1629
 
        return NDR_ERR_SUCCESS;
1630
 
}
1631
 
 
1632
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_server_type(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1633
 
{
1634
 
        uint32_t v;
1635
 
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1636
 
        *r = v;
1637
 
        return NDR_ERR_SUCCESS;
1638
 
}
1639
 
 
1640
 
_PUBLIC_ void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r)
1641
 
{
1642
 
        ndr_print_uint32(ndr, name, r);
1643
 
        ndr->depth++;
1644
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC, r);
1645
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC, r);
1646
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP, r);
1647
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS, r);
1648
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC, r);
1649
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV, r);
1650
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_CLOSEST", NBT_SERVER_CLOSEST, r);
1651
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_WRITABLE", NBT_SERVER_WRITABLE, r);
1652
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GOOD_TIMESERV", NBT_SERVER_GOOD_TIMESERV, r);
1653
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_NDNC", NBT_SERVER_NDNC, r);
1654
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_SELECT_SECRET_DOMAIN_6", NBT_SERVER_SELECT_SECRET_DOMAIN_6, r);
1655
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_FULL_SECRET_DOMAIN_6", NBT_SERVER_FULL_SECRET_DOMAIN_6, r);
1656
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DNS_FOREST", NBT_SERVER_DNS_FOREST, r);
1657
 
        ndr->depth--;
1658
 
}
1659
 
 
1660
 
_PUBLIC_ enum ndr_err_code ndr_push_netlogon_nt_version_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1661
 
{
1662
 
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1663
 
        return NDR_ERR_SUCCESS;
1664
 
}
1665
 
 
1666
 
_PUBLIC_ enum ndr_err_code ndr_pull_netlogon_nt_version_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1667
 
{
1668
 
        uint32_t v;
1669
 
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1670
 
        *r = v;
1671
 
        return NDR_ERR_SUCCESS;
1672
 
}
1673
 
 
1674
 
_PUBLIC_ void ndr_print_netlogon_nt_version_flags(struct ndr_print *ndr, const char *name, uint32_t r)
1675
 
{
1676
 
        ndr_print_uint32(ndr, name, r);
1677
 
        ndr->depth++;
1678
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_1", NETLOGON_NT_VERSION_1, r);
1679
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5", NETLOGON_NT_VERSION_5, r);
1680
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX", NETLOGON_NT_VERSION_5EX, r);
1681
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX_WITH_IP", NETLOGON_NT_VERSION_5EX_WITH_IP, r);
1682
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE", NETLOGON_NT_VERSION_WITH_CLOSEST_SITE, r);
1683
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_AVIOD_NT4EMUL", NETLOGON_NT_VERSION_AVIOD_NT4EMUL, r);
1684
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_PDC", NETLOGON_NT_VERSION_PDC, r);
1685
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_IP", NETLOGON_NT_VERSION_IP, r);
1686
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_LOCAL", NETLOGON_NT_VERSION_LOCAL, r);
1687
 
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_GC", NETLOGON_NT_VERSION_GC, r);
1688
 
        ndr->depth--;
1689
 
}
1690
 
 
1691
 
_PUBLIC_ enum ndr_err_code ndr_push_netlogon_command(struct ndr_push *ndr, int ndr_flags, enum netlogon_command r)
1692
 
{
1693
 
        NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1694
 
        return NDR_ERR_SUCCESS;
1695
 
}
1696
 
 
1697
 
_PUBLIC_ enum ndr_err_code ndr_pull_netlogon_command(struct ndr_pull *ndr, int ndr_flags, enum netlogon_command *r)
1698
 
{
1699
 
        uint16_t v;
1700
 
        NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1701
 
        *r = v;
1702
 
        return NDR_ERR_SUCCESS;
1703
 
}
1704
 
 
1705
 
_PUBLIC_ void ndr_print_netlogon_command(struct ndr_print *ndr, const char *name, enum netlogon_command r)
1706
 
{
1707
 
        const char *val = NULL;
1708
 
 
1709
 
        switch (r) {
1710
 
                case LOGON_PRIMARY_QUERY: val = "LOGON_PRIMARY_QUERY"; break;
1711
 
                case NETLOGON_ANNOUNCE_UAS: val = "NETLOGON_ANNOUNCE_UAS"; break;
1712
 
                case NETLOGON_RESPONSE_FROM_PDC: val = "NETLOGON_RESPONSE_FROM_PDC"; break;
1713
 
                case LOGON_SAM_LOGON_REQUEST: val = "LOGON_SAM_LOGON_REQUEST"; break;
1714
 
                case LOGON_SAM_LOGON_RESPONSE: val = "LOGON_SAM_LOGON_RESPONSE"; break;
1715
 
                case LOGON_SAM_LOGON_PAUSE_RESPONSE: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE"; break;
1716
 
                case LOGON_SAM_LOGON_USER_UNKNOWN: val = "LOGON_SAM_LOGON_USER_UNKNOWN"; break;
1717
 
                case LOGON_SAM_LOGON_RESPONSE_EX: val = "LOGON_SAM_LOGON_RESPONSE_EX"; break;
1718
 
                case LOGON_SAM_LOGON_PAUSE_RESPONSE_EX: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE_EX"; break;
1719
 
                case LOGON_SAM_LOGON_USER_UNKNOWN_EX: val = "LOGON_SAM_LOGON_USER_UNKNOWN_EX"; break;
1720
 
        }
1721
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
1722
 
}
1723
 
 
1724
 
_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_REQUEST(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_REQUEST *r)
1725
 
{
1726
 
        ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_REQUEST");
1727
 
        ndr->depth++;
1728
 
        ndr_print_uint16(ndr, "request_count", r->request_count);
1729
 
        ndr_print_string(ndr, "computer_name", r->computer_name);
1730
 
        ndr_print_string(ndr, "user_name", r->user_name);
1731
 
        ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1732
 
        ndr_print_samr_AcctFlags(ndr, "acct_control", r->acct_control);
1733
 
        ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);
1734
 
        ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
1735
 
        ndr_print_dom_sid0(ndr, "sid", &r->sid);
1736
 
        ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1737
 
        ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1738
 
        ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1739
 
        ndr->depth--;
1740
 
}
1741
 
 
1742
 
_PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
1743
 
{
1744
 
        {
1745
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1746
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1747
 
                if (ndr_flags & NDR_SCALARS) {
1748
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
1749
 
                        NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1750
 
                        {
1751
 
                                uint32_t _flags_save_string = ndr->flags;
1752
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1753
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server));
1754
 
                                ndr->flags = _flags_save_string;
1755
 
                        }
1756
 
                        {
1757
 
                                uint32_t _flags_save_string = ndr->flags;
1758
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1759
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
1760
 
                                ndr->flags = _flags_save_string;
1761
 
                        }
1762
 
                        {
1763
 
                                uint32_t _flags_save_string = ndr->flags;
1764
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1765
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
1766
 
                                ndr->flags = _flags_save_string;
1767
 
                        }
1768
 
                        NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1769
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1770
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1771
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1772
 
                }
1773
 
                if (ndr_flags & NDR_BUFFERS) {
1774
 
                }
1775
 
                ndr->flags = _flags_save_STRUCT;
1776
 
        }
1777
 
        return NDR_ERR_SUCCESS;
1778
 
}
1779
 
 
1780
 
_PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
1781
 
{
1782
 
        {
1783
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1784
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1785
 
                if (ndr_flags & NDR_SCALARS) {
1786
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
1787
 
                        NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
1788
 
                        {
1789
 
                                uint32_t _flags_save_string = ndr->flags;
1790
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1791
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server));
1792
 
                                ndr->flags = _flags_save_string;
1793
 
                        }
1794
 
                        {
1795
 
                                uint32_t _flags_save_string = ndr->flags;
1796
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1797
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
1798
 
                                ndr->flags = _flags_save_string;
1799
 
                        }
1800
 
                        {
1801
 
                                uint32_t _flags_save_string = ndr->flags;
1802
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1803
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
1804
 
                                ndr->flags = _flags_save_string;
1805
 
                        }
1806
 
                        NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
1807
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1808
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1809
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1810
 
                }
1811
 
                if (ndr_flags & NDR_BUFFERS) {
1812
 
                }
1813
 
                ndr->flags = _flags_save_STRUCT;
1814
 
        }
1815
 
        return NDR_ERR_SUCCESS;
1816
 
}
1817
 
 
1818
 
_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
1819
 
{
1820
 
        ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_NT40");
1821
 
        {
1822
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1823
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1824
 
                ndr->depth++;
1825
 
                ndr_print_netlogon_command(ndr, "command", r->command);
1826
 
                ndr_print_string(ndr, "server", r->server);
1827
 
                ndr_print_string(ndr, "user_name", r->user_name);
1828
 
                ndr_print_string(ndr, "domain", r->domain);
1829
 
                ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1830
 
                ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1831
 
                ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1832
 
                ndr->depth--;
1833
 
                ndr->flags = _flags_save_STRUCT;
1834
 
        }
1835
 
}
1836
 
 
1837
 
_PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE *r)
1838
 
{
1839
 
        {
1840
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1841
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1842
 
                if (ndr_flags & NDR_SCALARS) {
1843
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
1844
 
                        NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1845
 
                        {
1846
 
                                uint32_t _flags_save_string = ndr->flags;
1847
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1848
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
1849
 
                                ndr->flags = _flags_save_string;
1850
 
                        }
1851
 
                        {
1852
 
                                uint32_t _flags_save_string = ndr->flags;
1853
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1854
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
1855
 
                                ndr->flags = _flags_save_string;
1856
 
                        }
1857
 
                        {
1858
 
                                uint32_t _flags_save_string = ndr->flags;
1859
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1860
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
1861
 
                                ndr->flags = _flags_save_string;
1862
 
                        }
1863
 
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1864
 
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
1865
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
1866
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
1867
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
1868
 
                        NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
1869
 
                        NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
1870
 
                        NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1871
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1872
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1873
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1874
 
                }
1875
 
                if (ndr_flags & NDR_BUFFERS) {
1876
 
                }
1877
 
                ndr->flags = _flags_save_STRUCT;
1878
 
        }
1879
 
        return NDR_ERR_SUCCESS;
1880
 
}
1881
 
 
1882
 
_PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE *r)
1883
 
{
1884
 
        {
1885
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1886
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1887
 
                if (ndr_flags & NDR_SCALARS) {
1888
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
1889
 
                        NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
1890
 
                        {
1891
 
                                uint32_t _flags_save_string = ndr->flags;
1892
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1893
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
1894
 
                                ndr->flags = _flags_save_string;
1895
 
                        }
1896
 
                        {
1897
 
                                uint32_t _flags_save_string = ndr->flags;
1898
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1899
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
1900
 
                                ndr->flags = _flags_save_string;
1901
 
                        }
1902
 
                        {
1903
 
                                uint32_t _flags_save_string = ndr->flags;
1904
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1905
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
1906
 
                                ndr->flags = _flags_save_string;
1907
 
                        }
1908
 
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1909
 
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
1910
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
1911
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
1912
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
1913
 
                        NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
1914
 
                        NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
1915
 
                        NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
1916
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1917
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1918
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1919
 
                }
1920
 
                if (ndr_flags & NDR_BUFFERS) {
1921
 
                }
1922
 
                ndr->flags = _flags_save_STRUCT;
1923
 
        }
1924
 
        return NDR_ERR_SUCCESS;
1925
 
}
1926
 
 
1927
 
_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE *r)
1928
 
{
1929
 
        ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE");
1930
 
        {
1931
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1932
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1933
 
                ndr->depth++;
1934
 
                ndr_print_netlogon_command(ndr, "command", r->command);
1935
 
                ndr_print_string(ndr, "pdc_name", r->pdc_name);
1936
 
                ndr_print_string(ndr, "user_name", r->user_name);
1937
 
                ndr_print_string(ndr, "domain_name", r->domain_name);
1938
 
                ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
1939
 
                ndr_print_GUID(ndr, "zero_uuid", &r->zero_uuid);
1940
 
                ndr_print_nbt_string(ndr, "forest", r->forest);
1941
 
                ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
1942
 
                ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
1943
 
                ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
1944
 
                ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
1945
 
                ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1946
 
                ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1947
 
                ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1948
 
                ndr->depth--;
1949
 
                ndr->flags = _flags_save_STRUCT;
1950
 
        }
1951
 
}
1952
 
 
1953
 
_PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
1954
 
{
1955
 
        {
1956
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1957
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1958
 
                if (ndr_flags & NDR_SCALARS) {
1959
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
1960
 
                        NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1961
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
1962
 
                        NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
1963
 
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1964
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
1965
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
1966
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
1967
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
1968
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
1969
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));
1970
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));
1971
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site));
1972
 
                        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1973
 
                        {
1974
 
                                struct ndr_push *_ndr_sockaddr;
1975
 
                                NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1976
 
                                NDR_CHECK(ndr_push_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
1977
 
                                NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1978
 
                        }
1979
 
                        NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->next_closest_site));
1980
 
                        NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1981
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1982
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1983
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1984
 
                }
1985
 
                if (ndr_flags & NDR_BUFFERS) {
1986
 
                }
1987
 
                ndr->flags = _flags_save_STRUCT;
1988
 
        }
1989
 
        return NDR_ERR_SUCCESS;
1990
 
}
1991
 
 
1992
 
_PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
1993
 
{
1994
 
        {
1995
 
                uint32_t _flags_save_STRUCT = ndr->flags;
1996
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1997
 
                if (ndr_flags & NDR_SCALARS) {
1998
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
1999
 
                        NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2000
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
2001
 
                        NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
2002
 
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2003
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
2004
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
2005
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
2006
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
2007
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
2008
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));
2009
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));
2010
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site));
2011
 
                        NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->sockaddr_size));
2012
 
                        {
2013
 
                                struct ndr_pull *_ndr_sockaddr;
2014
 
                                NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sockaddr, 0, r->sockaddr_size));
2015
 
                                NDR_CHECK(ndr_pull_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
2016
 
                                NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sockaddr, 0, r->sockaddr_size));
2017
 
                        }
2018
 
                        NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->next_closest_site));
2019
 
                        NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2020
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2021
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2022
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2023
 
                }
2024
 
                if (ndr_flags & NDR_BUFFERS) {
2025
 
                }
2026
 
                ndr->flags = _flags_save_STRUCT;
2027
 
        }
2028
 
        return NDR_ERR_SUCCESS;
2029
 
}
2030
 
 
2031
 
_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
2032
 
{
2033
 
        ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_EX");
2034
 
        {
2035
 
                uint32_t _flags_save_STRUCT = ndr->flags;
2036
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2037
 
                ndr->depth++;
2038
 
                ndr_print_netlogon_command(ndr, "command", r->command);
2039
 
                ndr_print_uint16(ndr, "sbz", r->sbz);
2040
 
                ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
2041
 
                ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
2042
 
                ndr_print_nbt_string(ndr, "forest", r->forest);
2043
 
                ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
2044
 
                ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
2045
 
                ndr_print_nbt_string(ndr, "domain", r->domain);
2046
 
                ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
2047
 
                ndr_print_nbt_string(ndr, "user_name", r->user_name);
2048
 
                ndr_print_nbt_string(ndr, "server_site", r->server_site);
2049
 
                ndr_print_nbt_string(ndr, "client_site", r->client_site);
2050
 
                ndr_print_uint8(ndr, "sockaddr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags):r->sockaddr_size);
2051
 
                ndr_print_nbt_sockaddr(ndr, "sockaddr", &r->sockaddr);
2052
 
                ndr_print_nbt_string(ndr, "next_closest_site", r->next_closest_site);
2053
 
                ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2054
 
                ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2055
 
                ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2056
 
                ndr->depth--;
2057
 
                ndr->flags = _flags_save_STRUCT;
2058
 
        }
2059
 
}
2060
 
 
2061
 
static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_query_for_pdc *r)
2062
 
{
2063
 
        if (ndr_flags & NDR_SCALARS) {
2064
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2065
 
                {
2066
 
                        uint32_t _flags_save_string = ndr->flags;
2067
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2068
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
2069
 
                        ndr->flags = _flags_save_string;
2070
 
                }
2071
 
                {
2072
 
                        uint32_t _flags_save_string = ndr->flags;
2073
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2074
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
2075
 
                        ndr->flags = _flags_save_string;
2076
 
                }
2077
 
                {
2078
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
2079
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2080
 
                        NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2081
 
                        ndr->flags = _flags_save_DATA_BLOB;
2082
 
                }
2083
 
                {
2084
 
                        uint32_t _flags_save_string = ndr->flags;
2085
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2086
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_name));
2087
 
                        ndr->flags = _flags_save_string;
2088
 
                }
2089
 
                NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
2090
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2091
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2092
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2093
 
        }
2094
 
        if (ndr_flags & NDR_BUFFERS) {
2095
 
        }
2096
 
        return NDR_ERR_SUCCESS;
2097
 
}
2098
 
 
2099
 
static enum ndr_err_code ndr_pull_nbt_netlogon_query_for_pdc(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_query_for_pdc *r)
2100
 
{
2101
 
        if (ndr_flags & NDR_SCALARS) {
2102
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2103
 
                {
2104
 
                        uint32_t _flags_save_string = ndr->flags;
2105
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2106
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
2107
 
                        ndr->flags = _flags_save_string;
2108
 
                }
2109
 
                {
2110
 
                        uint32_t _flags_save_string = ndr->flags;
2111
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2112
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
2113
 
                        ndr->flags = _flags_save_string;
2114
 
                }
2115
 
                {
2116
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
2117
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2118
 
                        NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2119
 
                        ndr->flags = _flags_save_DATA_BLOB;
2120
 
                }
2121
 
                {
2122
 
                        uint32_t _flags_save_string = ndr->flags;
2123
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2124
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_name));
2125
 
                        ndr->flags = _flags_save_string;
2126
 
                }
2127
 
                NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2128
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2129
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2130
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2131
 
        }
2132
 
        if (ndr_flags & NDR_BUFFERS) {
2133
 
        }
2134
 
        return NDR_ERR_SUCCESS;
2135
 
}
2136
 
 
2137
 
_PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc *r)
2138
 
{
2139
 
        ndr_print_struct(ndr, name, "nbt_netlogon_query_for_pdc");
2140
 
        ndr->depth++;
2141
 
        ndr_print_string(ndr, "computer_name", r->computer_name);
2142
 
        ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
2143
 
        ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2144
 
        ndr_print_string(ndr, "unicode_name", r->unicode_name);
2145
 
        ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2146
 
        ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2147
 
        ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2148
 
        ndr->depth--;
2149
 
}
2150
 
 
2151
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_response_from_pdc *r)
2152
 
{
2153
 
        {
2154
 
                uint32_t _flags_save_STRUCT = ndr->flags;
2155
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2156
 
                if (ndr_flags & NDR_SCALARS) {
2157
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
2158
 
                        NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
2159
 
                        {
2160
 
                                uint32_t _flags_save_string = ndr->flags;
2161
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2162
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2163
 
                                ndr->flags = _flags_save_string;
2164
 
                        }
2165
 
                        {
2166
 
                                uint32_t _flags_save_DATA_BLOB = ndr->flags;
2167
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2168
 
                                NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2169
 
                                ndr->flags = _flags_save_DATA_BLOB;
2170
 
                        }
2171
 
                        {
2172
 
                                uint32_t _flags_save_string = ndr->flags;
2173
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2174
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
2175
 
                                ndr->flags = _flags_save_string;
2176
 
                        }
2177
 
                        {
2178
 
                                uint32_t _flags_save_string = ndr->flags;
2179
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2180
 
                                NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
2181
 
                                ndr->flags = _flags_save_string;
2182
 
                        }
2183
 
                        NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
2184
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2185
 
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2186
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2187
 
                }
2188
 
                if (ndr_flags & NDR_BUFFERS) {
2189
 
                }
2190
 
                ndr->flags = _flags_save_STRUCT;
2191
 
        }
2192
 
        return NDR_ERR_SUCCESS;
2193
 
}
2194
 
 
2195
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_response_from_pdc *r)
2196
 
{
2197
 
        {
2198
 
                uint32_t _flags_save_STRUCT = ndr->flags;
2199
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2200
 
                if (ndr_flags & NDR_SCALARS) {
2201
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
2202
 
                        NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2203
 
                        {
2204
 
                                uint32_t _flags_save_string = ndr->flags;
2205
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2206
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2207
 
                                ndr->flags = _flags_save_string;
2208
 
                        }
2209
 
                        {
2210
 
                                uint32_t _flags_save_DATA_BLOB = ndr->flags;
2211
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2212
 
                                NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2213
 
                                ndr->flags = _flags_save_DATA_BLOB;
2214
 
                        }
2215
 
                        {
2216
 
                                uint32_t _flags_save_string = ndr->flags;
2217
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2218
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
2219
 
                                ndr->flags = _flags_save_string;
2220
 
                        }
2221
 
                        {
2222
 
                                uint32_t _flags_save_string = ndr->flags;
2223
 
                                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2224
 
                                NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
2225
 
                                ndr->flags = _flags_save_string;
2226
 
                        }
2227
 
                        NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2228
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2229
 
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2230
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2231
 
                }
2232
 
                if (ndr_flags & NDR_BUFFERS) {
2233
 
                }
2234
 
                ndr->flags = _flags_save_STRUCT;
2235
 
        }
2236
 
        return NDR_ERR_SUCCESS;
2237
 
}
2238
 
 
2239
 
_PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc *r)
2240
 
{
2241
 
        ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc");
2242
 
        {
2243
 
                uint32_t _flags_save_STRUCT = ndr->flags;
2244
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2245
 
                ndr->depth++;
2246
 
                ndr_print_netlogon_command(ndr, "command", r->command);
2247
 
                ndr_print_string(ndr, "pdc_name", r->pdc_name);
2248
 
                ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2249
 
                ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
2250
 
                ndr_print_string(ndr, "domain_name", r->domain_name);
2251
 
                ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2252
 
                ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2253
 
                ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2254
 
                ndr->depth--;
2255
 
                ndr->flags = _flags_save_STRUCT;
2256
 
        }
2257
 
}
2258
 
 
2259
 
static enum ndr_err_code ndr_push_nbt_db_change_info(struct ndr_push *ndr, int ndr_flags, const struct nbt_db_change_info *r)
2260
 
{
2261
 
        if (ndr_flags & NDR_SCALARS) {
2262
 
                NDR_CHECK(ndr_push_align(ndr, 8));
2263
 
                NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->db_index));
2264
 
                NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->serial));
2265
 
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timestamp));
2266
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2267
 
        }
2268
 
        if (ndr_flags & NDR_BUFFERS) {
2269
 
        }
2270
 
        return NDR_ERR_SUCCESS;
2271
 
}
2272
 
 
2273
 
static enum ndr_err_code ndr_pull_nbt_db_change_info(struct ndr_pull *ndr, int ndr_flags, struct nbt_db_change_info *r)
2274
 
{
2275
 
        if (ndr_flags & NDR_SCALARS) {
2276
 
                NDR_CHECK(ndr_pull_align(ndr, 8));
2277
 
                NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->db_index));
2278
 
                NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->serial));
2279
 
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timestamp));
2280
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2281
 
        }
2282
 
        if (ndr_flags & NDR_BUFFERS) {
2283
 
        }
2284
 
        return NDR_ERR_SUCCESS;
2285
 
}
2286
 
 
2287
 
_PUBLIC_ void ndr_print_nbt_db_change_info(struct ndr_print *ndr, const char *name, const struct nbt_db_change_info *r)
2288
 
{
2289
 
        ndr_print_struct(ndr, name, "nbt_db_change_info");
2290
 
        ndr->depth++;
2291
 
        ndr_print_netr_SamDatabaseID(ndr, "db_index", r->db_index);
2292
 
        ndr_print_hyper(ndr, "serial", r->serial);
2293
 
        ndr_print_NTTIME(ndr, "timestamp", r->timestamp);
2294
 
        ndr->depth--;
2295
 
}
2296
 
 
2297
 
static enum ndr_err_code ndr_push_NETLOGON_DB_CHANGE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_DB_CHANGE *r)
2298
 
{
2299
 
        uint32_t cntr_dbchange_0;
2300
 
        if (ndr_flags & NDR_SCALARS) {
2301
 
                NDR_CHECK(ndr_push_align(ndr, 8));
2302
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_lo));
2303
 
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2304
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pulse));
2305
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->random));
2306
 
                {
2307
 
                        uint32_t _flags_save_string = ndr->flags;
2308
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2309
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2310
 
                        ndr->flags = _flags_save_string;
2311
 
                }
2312
 
                {
2313
 
                        uint32_t _flags_save_string = ndr->flags;
2314
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2315
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
2316
 
                        ndr->flags = _flags_save_string;
2317
 
                }
2318
 
                {
2319
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
2320
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2321
 
                        NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2322
 
                        ndr->flags = _flags_save_DATA_BLOB;
2323
 
                }
2324
 
                {
2325
 
                        uint32_t _flags_save_string = ndr->flags;
2326
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2327
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
2328
 
                        ndr->flags = _flags_save_string;
2329
 
                }
2330
 
                {
2331
 
                        uint32_t _flags_save_string = ndr->flags;
2332
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2333
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_domain));
2334
 
                        ndr->flags = _flags_save_string;
2335
 
                }
2336
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->db_count));
2337
 
                for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
2338
 
                        NDR_CHECK(ndr_push_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2339
 
                }
2340
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2341
 
                {
2342
 
                        struct ndr_push *_ndr_sid;
2343
 
                        NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2344
 
                        NDR_CHECK(ndr_push_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));
2345
 
                        NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2346
 
                }
2347
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->message_format_version));
2348
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->message_token));
2349
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2350
 
        }
2351
 
        if (ndr_flags & NDR_BUFFERS) {
2352
 
        }
2353
 
        return NDR_ERR_SUCCESS;
2354
 
}
2355
 
 
2356
 
static enum ndr_err_code ndr_pull_NETLOGON_DB_CHANGE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_DB_CHANGE *r)
2357
 
{
2358
 
        uint32_t cntr_dbchange_0;
2359
 
        TALLOC_CTX *_mem_save_dbchange_0;
2360
 
        if (ndr_flags & NDR_SCALARS) {
2361
 
                NDR_CHECK(ndr_pull_align(ndr, 8));
2362
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_lo));
2363
 
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2364
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pulse));
2365
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->random));
2366
 
                {
2367
 
                        uint32_t _flags_save_string = ndr->flags;
2368
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2369
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2370
 
                        ndr->flags = _flags_save_string;
2371
 
                }
2372
 
                {
2373
 
                        uint32_t _flags_save_string = ndr->flags;
2374
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2375
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
2376
 
                        ndr->flags = _flags_save_string;
2377
 
                }
2378
 
                {
2379
 
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
2380
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2381
 
                        NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2382
 
                        ndr->flags = _flags_save_DATA_BLOB;
2383
 
                }
2384
 
                {
2385
 
                        uint32_t _flags_save_string = ndr->flags;
2386
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2387
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
2388
 
                        ndr->flags = _flags_save_string;
2389
 
                }
2390
 
                {
2391
 
                        uint32_t _flags_save_string = ndr->flags;
2392
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2393
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_domain));
2394
 
                        ndr->flags = _flags_save_string;
2395
 
                }
2396
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->db_count));
2397
 
                NDR_PULL_ALLOC_N(ndr, r->dbchange, r->db_count);
2398
 
                _mem_save_dbchange_0 = NDR_PULL_GET_MEM_CTX(ndr);
2399
 
                NDR_PULL_SET_MEM_CTX(ndr, r->dbchange, 0);
2400
 
                for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
2401
 
                        NDR_CHECK(ndr_pull_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2402
 
                }
2403
 
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dbchange_0, 0);
2404
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));
2405
 
                {
2406
 
                        struct ndr_pull *_ndr_sid;
2407
 
                        NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sid, 0, r->sid_size));
2408
 
                        NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));
2409
 
                        NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sid, 0, r->sid_size));
2410
 
                }
2411
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->message_format_version));
2412
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->message_token));
2413
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2414
 
        }
2415
 
        if (ndr_flags & NDR_BUFFERS) {
2416
 
        }
2417
 
        return NDR_ERR_SUCCESS;
2418
 
}
2419
 
 
2420
 
_PUBLIC_ void ndr_print_NETLOGON_DB_CHANGE(struct ndr_print *ndr, const char *name, const struct NETLOGON_DB_CHANGE *r)
2421
 
{
2422
 
        uint32_t cntr_dbchange_0;
2423
 
        ndr_print_struct(ndr, name, "NETLOGON_DB_CHANGE");
2424
 
        ndr->depth++;
2425
 
        ndr_print_uint32(ndr, "serial_lo", r->serial_lo);
2426
 
        ndr_print_time_t(ndr, "timestamp", r->timestamp);
2427
 
        ndr_print_uint32(ndr, "pulse", r->pulse);
2428
 
        ndr_print_uint32(ndr, "random", r->random);
2429
 
        ndr_print_string(ndr, "pdc_name", r->pdc_name);
2430
 
        ndr_print_string(ndr, "domain", r->domain);
2431
 
        ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2432
 
        ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
2433
 
        ndr_print_string(ndr, "unicode_domain", r->unicode_domain);
2434
 
        ndr_print_uint32(ndr, "db_count", r->db_count);
2435
 
        ndr->print(ndr, "%s: ARRAY(%d)", "dbchange", (int)r->db_count);
2436
 
        ndr->depth++;
2437
 
        for (cntr_dbchange_0=0;cntr_dbchange_0<r->db_count;cntr_dbchange_0++) {
2438
 
                char *idx_0=NULL;
2439
 
                if (asprintf(&idx_0, "[%d]", cntr_dbchange_0) != -1) {
2440
 
                        ndr_print_nbt_db_change_info(ndr, "dbchange", &r->dbchange[cntr_dbchange_0]);
2441
 
                        free(idx_0);
2442
 
                }
2443
 
        }
2444
 
        ndr->depth--;
2445
 
        ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);
2446
 
        ndr_print_dom_sid0(ndr, "sid", &r->sid);
2447
 
        ndr_print_uint32(ndr, "message_format_version", r->message_format_version);
2448
 
        ndr_print_uint32(ndr, "message_token", r->message_token);
2449
 
        ndr->depth--;
2450
 
}
2451
 
 
2452
 
static enum ndr_err_code ndr_push_nbt_netlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_netlogon_request *r)
2453
 
{
2454
 
        if (ndr_flags & NDR_SCALARS) {
2455
 
                int level = ndr_push_get_switch_value(ndr, r);
2456
 
                NDR_CHECK(ndr_push_union_align(ndr, 8));
2457
 
                switch (level) {
2458
 
                        case LOGON_SAM_LOGON_REQUEST: {
2459
 
                                NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
2460
 
                        break; }
2461
 
 
2462
 
                        case LOGON_PRIMARY_QUERY: {
2463
 
                                NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2464
 
                        break; }
2465
 
 
2466
 
                        case NETLOGON_ANNOUNCE_UAS: {
2467
 
                                NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
2468
 
                        break; }
2469
 
 
2470
 
                        default:
2471
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2472
 
                }
2473
 
        }
2474
 
        if (ndr_flags & NDR_BUFFERS) {
2475
 
                int level = ndr_push_get_switch_value(ndr, r);
2476
 
                switch (level) {
2477
 
                        case LOGON_SAM_LOGON_REQUEST:
2478
 
                                NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
2479
 
                        break;
2480
 
 
2481
 
                        case LOGON_PRIMARY_QUERY:
2482
 
                        break;
2483
 
 
2484
 
                        case NETLOGON_ANNOUNCE_UAS:
2485
 
                                NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
2486
 
                        break;
2487
 
 
2488
 
                        default:
2489
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2490
 
                }
2491
 
        }
2492
 
        return NDR_ERR_SUCCESS;
2493
 
}
2494
 
 
2495
 
static enum ndr_err_code ndr_pull_nbt_netlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_netlogon_request *r)
2496
 
{
2497
 
        int level;
2498
 
        level = ndr_pull_get_switch_value(ndr, r);
2499
 
        if (ndr_flags & NDR_SCALARS) {
2500
 
                NDR_CHECK(ndr_pull_union_align(ndr, 8));
2501
 
                switch (level) {
2502
 
                        case LOGON_SAM_LOGON_REQUEST: {
2503
 
                                NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
2504
 
                        break; }
2505
 
 
2506
 
                        case LOGON_PRIMARY_QUERY: {
2507
 
                                NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2508
 
                        break; }
2509
 
 
2510
 
                        case NETLOGON_ANNOUNCE_UAS: {
2511
 
                                NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
2512
 
                        break; }
2513
 
 
2514
 
                        default:
2515
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2516
 
                }
2517
 
        }
2518
 
        if (ndr_flags & NDR_BUFFERS) {
2519
 
                switch (level) {
2520
 
                        case LOGON_SAM_LOGON_REQUEST:
2521
 
                                NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
2522
 
                        break;
2523
 
 
2524
 
                        case LOGON_PRIMARY_QUERY:
2525
 
                        break;
2526
 
 
2527
 
                        case NETLOGON_ANNOUNCE_UAS:
2528
 
                                NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
2529
 
                        break;
2530
 
 
2531
 
                        default:
2532
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2533
 
                }
2534
 
        }
2535
 
        return NDR_ERR_SUCCESS;
2536
 
}
2537
 
 
2538
 
_PUBLIC_ void ndr_print_nbt_netlogon_request(struct ndr_print *ndr, const char *name, const union nbt_netlogon_request *r)
2539
 
{
2540
 
        int level;
2541
 
        level = ndr_print_get_switch_value(ndr, r);
2542
 
        ndr_print_union(ndr, name, level, "nbt_netlogon_request");
2543
 
        switch (level) {
2544
 
                case LOGON_SAM_LOGON_REQUEST:
2545
 
                        ndr_print_NETLOGON_SAM_LOGON_REQUEST(ndr, "logon", &r->logon);
2546
 
                break;
2547
 
 
2548
 
                case LOGON_PRIMARY_QUERY:
2549
 
                        ndr_print_nbt_netlogon_query_for_pdc(ndr, "pdc", &r->pdc);
2550
 
                break;
2551
 
 
2552
 
                case NETLOGON_ANNOUNCE_UAS:
2553
 
                        ndr_print_NETLOGON_DB_CHANGE(ndr, "uas", &r->uas);
2554
 
                break;
2555
 
 
2556
 
                default:
2557
 
                        ndr_print_bad_level(ndr, name, level);
2558
 
        }
2559
 
}
2560
 
 
2561
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_packet *r)
2562
 
{
2563
 
        {
2564
 
                uint32_t _flags_save_STRUCT = ndr->flags;
2565
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2566
 
                if (ndr_flags & NDR_SCALARS) {
2567
 
                        NDR_CHECK(ndr_push_align(ndr, 8));
2568
 
                        NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
2569
 
                        NDR_CHECK(ndr_push_set_switch_value(ndr, &r->req, r->command));
2570
 
                        NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2571
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2572
 
                }
2573
 
                if (ndr_flags & NDR_BUFFERS) {
2574
 
                        NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2575
 
                }
2576
 
                ndr->flags = _flags_save_STRUCT;
2577
 
        }
2578
 
        return NDR_ERR_SUCCESS;
2579
 
}
2580
 
 
2581
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_packet *r)
2582
 
{
2583
 
        {
2584
 
                uint32_t _flags_save_STRUCT = ndr->flags;
2585
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2586
 
                if (ndr_flags & NDR_SCALARS) {
2587
 
                        NDR_CHECK(ndr_pull_align(ndr, 8));
2588
 
                        NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2589
 
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->req, r->command));
2590
 
                        NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2591
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2592
 
                }
2593
 
                if (ndr_flags & NDR_BUFFERS) {
2594
 
                        NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2595
 
                }
2596
 
                ndr->flags = _flags_save_STRUCT;
2597
 
        }
2598
 
        return NDR_ERR_SUCCESS;
2599
 
}
2600
 
 
2601
 
_PUBLIC_ void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r)
2602
 
{
2603
 
        ndr_print_struct(ndr, name, "nbt_netlogon_packet");
2604
 
        {
2605
 
                uint32_t _flags_save_STRUCT = ndr->flags;
2606
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2607
 
                ndr->depth++;
2608
 
                ndr_print_netlogon_command(ndr, "command", r->command);
2609
 
                ndr_print_set_switch_value(ndr, &r->req, r->command);
2610
 
                ndr_print_nbt_netlogon_request(ndr, "req", &r->req);
2611
 
                ndr->depth--;
2612
 
                ndr->flags = _flags_save_STRUCT;
2613
 
        }
2614
 
}
2615
 
 
2616
 
static enum ndr_err_code ndr_push_nbt_browse_opcode(struct ndr_push *ndr, int ndr_flags, enum nbt_browse_opcode r)
2617
 
{
2618
 
        NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
2619
 
        return NDR_ERR_SUCCESS;
2620
 
}
2621
 
 
2622
 
static enum ndr_err_code ndr_pull_nbt_browse_opcode(struct ndr_pull *ndr, int ndr_flags, enum nbt_browse_opcode *r)
2623
 
{
2624
 
        uint8_t v;
2625
 
        NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
2626
 
        *r = v;
2627
 
        return NDR_ERR_SUCCESS;
2628
 
}
2629
 
 
2630
 
_PUBLIC_ void ndr_print_nbt_browse_opcode(struct ndr_print *ndr, const char *name, enum nbt_browse_opcode r)
2631
 
{
2632
 
        const char *val = NULL;
2633
 
 
2634
 
        switch (r) {
2635
 
                case HostAnnouncement: val = "HostAnnouncement"; break;
2636
 
                case AnnouncementRequest: val = "AnnouncementRequest"; break;
2637
 
                case Election: val = "Election"; break;
2638
 
                case GetBackupListReq: val = "GetBackupListReq"; break;
2639
 
                case GetBackupListResp: val = "GetBackupListResp"; break;
2640
 
                case BecomeBackup: val = "BecomeBackup"; break;
2641
 
                case DomainAnnouncement: val = "DomainAnnouncement"; break;
2642
 
                case MasterAnnouncement: val = "MasterAnnouncement"; break;
2643
 
                case ResetBrowserState: val = "ResetBrowserState"; break;
2644
 
                case LocalMasterAnnouncement: val = "LocalMasterAnnouncement"; break;
2645
 
        }
2646
 
        ndr_print_enum(ndr, name, "ENUM", val, r);
2647
 
}
2648
 
 
2649
 
static enum ndr_err_code ndr_push_nbt_browse_host_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_host_announcement *r)
2650
 
{
2651
 
        if (ndr_flags & NDR_SCALARS) {
2652
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2653
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
2654
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
2655
 
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2656
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
2657
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
2658
 
                NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
2659
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
2660
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
2661
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
2662
 
                {
2663
 
                        uint32_t _flags_save_string = ndr->flags;
2664
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2665
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
2666
 
                        ndr->flags = _flags_save_string;
2667
 
                }
2668
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2669
 
        }
2670
 
        if (ndr_flags & NDR_BUFFERS) {
2671
 
        }
2672
 
        return NDR_ERR_SUCCESS;
2673
 
}
2674
 
 
2675
 
static enum ndr_err_code ndr_pull_nbt_browse_host_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_host_announcement *r)
2676
 
{
2677
 
        if (ndr_flags & NDR_SCALARS) {
2678
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2679
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
2680
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
2681
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2682
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
2683
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
2684
 
                NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
2685
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
2686
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
2687
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
2688
 
                {
2689
 
                        uint32_t _flags_save_string = ndr->flags;
2690
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2691
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
2692
 
                        ndr->flags = _flags_save_string;
2693
 
                }
2694
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2695
 
        }
2696
 
        if (ndr_flags & NDR_BUFFERS) {
2697
 
        }
2698
 
        return NDR_ERR_SUCCESS;
2699
 
}
2700
 
 
2701
 
_PUBLIC_ void ndr_print_nbt_browse_host_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_host_announcement *r)
2702
 
{
2703
 
        ndr_print_struct(ndr, name, "nbt_browse_host_announcement");
2704
 
        ndr->depth++;
2705
 
        ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
2706
 
        ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
2707
 
        ndr_print_string(ndr, "ServerName", r->ServerName);
2708
 
        ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
2709
 
        ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
2710
 
        ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
2711
 
        ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
2712
 
        ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
2713
 
        ndr_print_uint16(ndr, "Signature", r->Signature);
2714
 
        ndr_print_string(ndr, "Comment", r->Comment);
2715
 
        ndr->depth--;
2716
 
}
2717
 
 
2718
 
static enum ndr_err_code ndr_push_nbt_browse_announcement_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_announcement_request *r)
2719
 
{
2720
 
        if (ndr_flags & NDR_SCALARS) {
2721
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2722
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Unused));
2723
 
                {
2724
 
                        uint32_t _flags_save_string = ndr->flags;
2725
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2726
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ResponseName));
2727
 
                        ndr->flags = _flags_save_string;
2728
 
                }
2729
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2730
 
        }
2731
 
        if (ndr_flags & NDR_BUFFERS) {
2732
 
        }
2733
 
        return NDR_ERR_SUCCESS;
2734
 
}
2735
 
 
2736
 
static enum ndr_err_code ndr_pull_nbt_browse_announcement_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_announcement_request *r)
2737
 
{
2738
 
        if (ndr_flags & NDR_SCALARS) {
2739
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2740
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Unused));
2741
 
                {
2742
 
                        uint32_t _flags_save_string = ndr->flags;
2743
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2744
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ResponseName));
2745
 
                        ndr->flags = _flags_save_string;
2746
 
                }
2747
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2748
 
        }
2749
 
        if (ndr_flags & NDR_BUFFERS) {
2750
 
        }
2751
 
        return NDR_ERR_SUCCESS;
2752
 
}
2753
 
 
2754
 
_PUBLIC_ void ndr_print_nbt_browse_announcement_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_announcement_request *r)
2755
 
{
2756
 
        ndr_print_struct(ndr, name, "nbt_browse_announcement_request");
2757
 
        ndr->depth++;
2758
 
        ndr_print_uint8(ndr, "Unused", r->Unused);
2759
 
        ndr_print_string(ndr, "ResponseName", r->ResponseName);
2760
 
        ndr->depth--;
2761
 
}
2762
 
 
2763
 
static enum ndr_err_code ndr_push_nbt_browse_election_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_election_request *r)
2764
 
{
2765
 
        if (ndr_flags & NDR_SCALARS) {
2766
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2767
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Version));
2768
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Criteria));
2769
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->UpTime));
2770
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved));
2771
 
                {
2772
 
                        uint32_t _flags_save_string = ndr->flags;
2773
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2774
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ServerName));
2775
 
                        ndr->flags = _flags_save_string;
2776
 
                }
2777
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2778
 
        }
2779
 
        if (ndr_flags & NDR_BUFFERS) {
2780
 
        }
2781
 
        return NDR_ERR_SUCCESS;
2782
 
}
2783
 
 
2784
 
static enum ndr_err_code ndr_pull_nbt_browse_election_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_election_request *r)
2785
 
{
2786
 
        if (ndr_flags & NDR_SCALARS) {
2787
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2788
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Version));
2789
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Criteria));
2790
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->UpTime));
2791
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved));
2792
 
                {
2793
 
                        uint32_t _flags_save_string = ndr->flags;
2794
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2795
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
2796
 
                        ndr->flags = _flags_save_string;
2797
 
                }
2798
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2799
 
        }
2800
 
        if (ndr_flags & NDR_BUFFERS) {
2801
 
        }
2802
 
        return NDR_ERR_SUCCESS;
2803
 
}
2804
 
 
2805
 
_PUBLIC_ void ndr_print_nbt_browse_election_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_election_request *r)
2806
 
{
2807
 
        ndr_print_struct(ndr, name, "nbt_browse_election_request");
2808
 
        ndr->depth++;
2809
 
        ndr_print_uint8(ndr, "Version", r->Version);
2810
 
        ndr_print_uint32(ndr, "Criteria", r->Criteria);
2811
 
        ndr_print_uint32(ndr, "UpTime", r->UpTime);
2812
 
        ndr_print_uint32(ndr, "Reserved", r->Reserved);
2813
 
        ndr_print_string(ndr, "ServerName", r->ServerName);
2814
 
        ndr->depth--;
2815
 
}
2816
 
 
2817
 
static enum ndr_err_code ndr_push_nbt_browse_backup_list_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_backup_list_request *r)
2818
 
{
2819
 
        if (ndr_flags & NDR_SCALARS) {
2820
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2821
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ReqCount));
2822
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
2823
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2824
 
        }
2825
 
        if (ndr_flags & NDR_BUFFERS) {
2826
 
        }
2827
 
        return NDR_ERR_SUCCESS;
2828
 
}
2829
 
 
2830
 
static enum ndr_err_code ndr_pull_nbt_browse_backup_list_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_backup_list_request *r)
2831
 
{
2832
 
        if (ndr_flags & NDR_SCALARS) {
2833
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2834
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ReqCount));
2835
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
2836
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2837
 
        }
2838
 
        if (ndr_flags & NDR_BUFFERS) {
2839
 
        }
2840
 
        return NDR_ERR_SUCCESS;
2841
 
}
2842
 
 
2843
 
_PUBLIC_ void ndr_print_nbt_browse_backup_list_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_request *r)
2844
 
{
2845
 
        ndr_print_struct(ndr, name, "nbt_browse_backup_list_request");
2846
 
        ndr->depth++;
2847
 
        ndr_print_uint8(ndr, "ReqCount", r->ReqCount);
2848
 
        ndr_print_uint32(ndr, "Token", r->Token);
2849
 
        ndr->depth--;
2850
 
}
2851
 
 
2852
 
static enum ndr_err_code ndr_push_nbt_browse_backup_list_response(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_backup_list_response *r)
2853
 
{
2854
 
        uint32_t cntr_BackupServerList_0;
2855
 
        if (ndr_flags & NDR_SCALARS) {
2856
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2857
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BackupCount));
2858
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
2859
 
                for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < r->BackupCount; cntr_BackupServerList_0++) {
2860
 
                        NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
2861
 
                }
2862
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2863
 
        }
2864
 
        if (ndr_flags & NDR_BUFFERS) {
2865
 
        }
2866
 
        return NDR_ERR_SUCCESS;
2867
 
}
2868
 
 
2869
 
static enum ndr_err_code ndr_pull_nbt_browse_backup_list_response(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_backup_list_response *r)
2870
 
{
2871
 
        uint32_t cntr_BackupServerList_0;
2872
 
        TALLOC_CTX *_mem_save_BackupServerList_0;
2873
 
        if (ndr_flags & NDR_SCALARS) {
2874
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2875
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BackupCount));
2876
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
2877
 
                NDR_PULL_ALLOC_N(ndr, r->BackupServerList, r->BackupCount);
2878
 
                _mem_save_BackupServerList_0 = NDR_PULL_GET_MEM_CTX(ndr);
2879
 
                NDR_PULL_SET_MEM_CTX(ndr, r->BackupServerList, 0);
2880
 
                for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < r->BackupCount; cntr_BackupServerList_0++) {
2881
 
                        NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
2882
 
                }
2883
 
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_BackupServerList_0, 0);
2884
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2885
 
        }
2886
 
        if (ndr_flags & NDR_BUFFERS) {
2887
 
        }
2888
 
        return NDR_ERR_SUCCESS;
2889
 
}
2890
 
 
2891
 
_PUBLIC_ void ndr_print_nbt_browse_backup_list_response(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_response *r)
2892
 
{
2893
 
        uint32_t cntr_BackupServerList_0;
2894
 
        ndr_print_struct(ndr, name, "nbt_browse_backup_list_response");
2895
 
        ndr->depth++;
2896
 
        ndr_print_uint8(ndr, "BackupCount", r->BackupCount);
2897
 
        ndr_print_uint32(ndr, "Token", r->Token);
2898
 
        ndr->print(ndr, "%s: ARRAY(%d)", "BackupServerList", (int)r->BackupCount);
2899
 
        ndr->depth++;
2900
 
        for (cntr_BackupServerList_0=0;cntr_BackupServerList_0<r->BackupCount;cntr_BackupServerList_0++) {
2901
 
                char *idx_0=NULL;
2902
 
                if (asprintf(&idx_0, "[%d]", cntr_BackupServerList_0) != -1) {
2903
 
                        ndr_print_nbt_name(ndr, "BackupServerList", &r->BackupServerList[cntr_BackupServerList_0]);
2904
 
                        free(idx_0);
2905
 
                }
2906
 
        }
2907
 
        ndr->depth--;
2908
 
        ndr->depth--;
2909
 
}
2910
 
 
2911
 
static enum ndr_err_code ndr_push_nbt_browse_become_backup(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_become_backup *r)
2912
 
{
2913
 
        if (ndr_flags & NDR_SCALARS) {
2914
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2915
 
                {
2916
 
                        uint32_t _flags_save_string = ndr->flags;
2917
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2918
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->BrowserName));
2919
 
                        ndr->flags = _flags_save_string;
2920
 
                }
2921
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2922
 
        }
2923
 
        if (ndr_flags & NDR_BUFFERS) {
2924
 
        }
2925
 
        return NDR_ERR_SUCCESS;
2926
 
}
2927
 
 
2928
 
static enum ndr_err_code ndr_pull_nbt_browse_become_backup(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_become_backup *r)
2929
 
{
2930
 
        if (ndr_flags & NDR_SCALARS) {
2931
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2932
 
                {
2933
 
                        uint32_t _flags_save_string = ndr->flags;
2934
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2935
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->BrowserName));
2936
 
                        ndr->flags = _flags_save_string;
2937
 
                }
2938
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2939
 
        }
2940
 
        if (ndr_flags & NDR_BUFFERS) {
2941
 
        }
2942
 
        return NDR_ERR_SUCCESS;
2943
 
}
2944
 
 
2945
 
_PUBLIC_ void ndr_print_nbt_browse_become_backup(struct ndr_print *ndr, const char *name, const struct nbt_browse_become_backup *r)
2946
 
{
2947
 
        ndr_print_struct(ndr, name, "nbt_browse_become_backup");
2948
 
        ndr->depth++;
2949
 
        ndr_print_string(ndr, "BrowserName", r->BrowserName);
2950
 
        ndr->depth--;
2951
 
}
2952
 
 
2953
 
static enum ndr_err_code ndr_push_nbt_browse_domain_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_domain_announcement *r)
2954
 
{
2955
 
        if (ndr_flags & NDR_SCALARS) {
2956
 
                NDR_CHECK(ndr_push_align(ndr, 4));
2957
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
2958
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
2959
 
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2960
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
2961
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
2962
 
                NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
2963
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MysteriousField));
2964
 
                {
2965
 
                        uint32_t _flags_save_string = ndr->flags;
2966
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2967
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
2968
 
                        ndr->flags = _flags_save_string;
2969
 
                }
2970
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2971
 
        }
2972
 
        if (ndr_flags & NDR_BUFFERS) {
2973
 
        }
2974
 
        return NDR_ERR_SUCCESS;
2975
 
}
2976
 
 
2977
 
static enum ndr_err_code ndr_pull_nbt_browse_domain_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_domain_announcement *r)
2978
 
{
2979
 
        if (ndr_flags & NDR_SCALARS) {
2980
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
2981
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
2982
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
2983
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2984
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
2985
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
2986
 
                NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
2987
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MysteriousField));
2988
 
                {
2989
 
                        uint32_t _flags_save_string = ndr->flags;
2990
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2991
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
2992
 
                        ndr->flags = _flags_save_string;
2993
 
                }
2994
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2995
 
        }
2996
 
        if (ndr_flags & NDR_BUFFERS) {
2997
 
        }
2998
 
        return NDR_ERR_SUCCESS;
2999
 
}
3000
 
 
3001
 
_PUBLIC_ void ndr_print_nbt_browse_domain_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_domain_announcement *r)
3002
 
{
3003
 
        ndr_print_struct(ndr, name, "nbt_browse_domain_announcement");
3004
 
        ndr->depth++;
3005
 
        ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3006
 
        ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3007
 
        ndr_print_string(ndr, "ServerName", r->ServerName);
3008
 
        ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3009
 
        ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3010
 
        ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3011
 
        ndr_print_uint32(ndr, "MysteriousField", r->MysteriousField);
3012
 
        ndr_print_string(ndr, "Comment", r->Comment);
3013
 
        ndr->depth--;
3014
 
}
3015
 
 
3016
 
static enum ndr_err_code ndr_push_nbt_browse_master_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_master_announcement *r)
3017
 
{
3018
 
        if (ndr_flags & NDR_SCALARS) {
3019
 
                NDR_CHECK(ndr_push_align(ndr, 4));
3020
 
                {
3021
 
                        uint32_t _flags_save_string = ndr->flags;
3022
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3023
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ServerName));
3024
 
                        ndr->flags = _flags_save_string;
3025
 
                }
3026
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3027
 
        }
3028
 
        if (ndr_flags & NDR_BUFFERS) {
3029
 
        }
3030
 
        return NDR_ERR_SUCCESS;
3031
 
}
3032
 
 
3033
 
static enum ndr_err_code ndr_pull_nbt_browse_master_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_master_announcement *r)
3034
 
{
3035
 
        if (ndr_flags & NDR_SCALARS) {
3036
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
3037
 
                {
3038
 
                        uint32_t _flags_save_string = ndr->flags;
3039
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3040
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
3041
 
                        ndr->flags = _flags_save_string;
3042
 
                }
3043
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3044
 
        }
3045
 
        if (ndr_flags & NDR_BUFFERS) {
3046
 
        }
3047
 
        return NDR_ERR_SUCCESS;
3048
 
}
3049
 
 
3050
 
_PUBLIC_ void ndr_print_nbt_browse_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_master_announcement *r)
3051
 
{
3052
 
        ndr_print_struct(ndr, name, "nbt_browse_master_announcement");
3053
 
        ndr->depth++;
3054
 
        ndr_print_string(ndr, "ServerName", r->ServerName);
3055
 
        ndr->depth--;
3056
 
}
3057
 
 
3058
 
static enum ndr_err_code ndr_push_nbt_browse_reset_state(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_reset_state *r)
3059
 
{
3060
 
        if (ndr_flags & NDR_SCALARS) {
3061
 
                NDR_CHECK(ndr_push_align(ndr, 1));
3062
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Command));
3063
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3064
 
        }
3065
 
        if (ndr_flags & NDR_BUFFERS) {
3066
 
        }
3067
 
        return NDR_ERR_SUCCESS;
3068
 
}
3069
 
 
3070
 
static enum ndr_err_code ndr_pull_nbt_browse_reset_state(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_reset_state *r)
3071
 
{
3072
 
        if (ndr_flags & NDR_SCALARS) {
3073
 
                NDR_CHECK(ndr_pull_align(ndr, 1));
3074
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Command));
3075
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3076
 
        }
3077
 
        if (ndr_flags & NDR_BUFFERS) {
3078
 
        }
3079
 
        return NDR_ERR_SUCCESS;
3080
 
}
3081
 
 
3082
 
_PUBLIC_ void ndr_print_nbt_browse_reset_state(struct ndr_print *ndr, const char *name, const struct nbt_browse_reset_state *r)
3083
 
{
3084
 
        ndr_print_struct(ndr, name, "nbt_browse_reset_state");
3085
 
        ndr->depth++;
3086
 
        ndr_print_uint8(ndr, "Command", r->Command);
3087
 
        ndr->depth--;
3088
 
}
3089
 
 
3090
 
static enum ndr_err_code ndr_push_nbt_browse_local_master_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_local_master_announcement *r)
3091
 
{
3092
 
        if (ndr_flags & NDR_SCALARS) {
3093
 
                NDR_CHECK(ndr_push_align(ndr, 4));
3094
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
3095
 
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
3096
 
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3097
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
3098
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
3099
 
                NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
3100
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
3101
 
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
3102
 
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
3103
 
                {
3104
 
                        uint32_t _flags_save_string = ndr->flags;
3105
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3106
 
                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
3107
 
                        ndr->flags = _flags_save_string;
3108
 
                }
3109
 
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3110
 
        }
3111
 
        if (ndr_flags & NDR_BUFFERS) {
3112
 
        }
3113
 
        return NDR_ERR_SUCCESS;
3114
 
}
3115
 
 
3116
 
static enum ndr_err_code ndr_pull_nbt_browse_local_master_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_local_master_announcement *r)
3117
 
{
3118
 
        if (ndr_flags & NDR_SCALARS) {
3119
 
                NDR_CHECK(ndr_pull_align(ndr, 4));
3120
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
3121
 
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
3122
 
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3123
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
3124
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
3125
 
                NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
3126
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
3127
 
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
3128
 
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
3129
 
                {
3130
 
                        uint32_t _flags_save_string = ndr->flags;
3131
 
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3132
 
                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
3133
 
                        ndr->flags = _flags_save_string;
3134
 
                }
3135
 
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3136
 
        }
3137
 
        if (ndr_flags & NDR_BUFFERS) {
3138
 
        }
3139
 
        return NDR_ERR_SUCCESS;
3140
 
}
3141
 
 
3142
 
_PUBLIC_ void ndr_print_nbt_browse_local_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_local_master_announcement *r)
3143
 
{
3144
 
        ndr_print_struct(ndr, name, "nbt_browse_local_master_announcement");
3145
 
        ndr->depth++;
3146
 
        ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3147
 
        ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3148
 
        ndr_print_string(ndr, "ServerName", r->ServerName);
3149
 
        ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3150
 
        ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3151
 
        ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3152
 
        ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
3153
 
        ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
3154
 
        ndr_print_uint16(ndr, "Signature", r->Signature);
3155
 
        ndr_print_string(ndr, "Comment", r->Comment);
3156
 
        ndr->depth--;
3157
 
}
3158
 
 
3159
 
static enum ndr_err_code ndr_push_nbt_browse_payload(struct ndr_push *ndr, int ndr_flags, const union nbt_browse_payload *r)
3160
 
{
3161
 
        if (ndr_flags & NDR_SCALARS) {
3162
 
                int level = ndr_push_get_switch_value(ndr, r);
3163
 
                NDR_CHECK(ndr_push_union_align(ndr, 4));
3164
 
                switch (level) {
3165
 
                        case HostAnnouncement: {
3166
 
                                NDR_CHECK(ndr_push_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3167
 
                        break; }
3168
 
 
3169
 
                        case AnnouncementRequest: {
3170
 
                                NDR_CHECK(ndr_push_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3171
 
                        break; }
3172
 
 
3173
 
                        case Election: {
3174
 
                                NDR_CHECK(ndr_push_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3175
 
                        break; }
3176
 
 
3177
 
                        case GetBackupListReq: {
3178
 
                                NDR_CHECK(ndr_push_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3179
 
                        break; }
3180
 
 
3181
 
                        case GetBackupListResp: {
3182
 
                                NDR_CHECK(ndr_push_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3183
 
                        break; }
3184
 
 
3185
 
                        case BecomeBackup: {
3186
 
                                NDR_CHECK(ndr_push_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3187
 
                        break; }
3188
 
 
3189
 
                        case DomainAnnouncement: {
3190
 
                                NDR_CHECK(ndr_push_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3191
 
                        break; }
3192
 
 
3193
 
                        case MasterAnnouncement: {
3194
 
                                NDR_CHECK(ndr_push_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3195
 
                        break; }
3196
 
 
3197
 
                        case ResetBrowserState: {
3198
 
                                NDR_CHECK(ndr_push_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3199
 
                        break; }
3200
 
 
3201
 
                        case LocalMasterAnnouncement: {
3202
 
                                NDR_CHECK(ndr_push_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3203
 
                        break; }
3204
 
 
3205
 
                        default:
3206
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3207
 
                }
3208
 
        }
3209
 
        if (ndr_flags & NDR_BUFFERS) {
3210
 
                int level = ndr_push_get_switch_value(ndr, r);
3211
 
                switch (level) {
3212
 
                        case HostAnnouncement:
3213
 
                        break;
3214
 
 
3215
 
                        case AnnouncementRequest:
3216
 
                        break;
3217
 
 
3218
 
                        case Election:
3219
 
                        break;
3220
 
 
3221
 
                        case GetBackupListReq:
3222
 
                        break;
3223
 
 
3224
 
                        case GetBackupListResp:
3225
 
                        break;
3226
 
 
3227
 
                        case BecomeBackup:
3228
 
                        break;
3229
 
 
3230
 
                        case DomainAnnouncement:
3231
 
                        break;
3232
 
 
3233
 
                        case MasterAnnouncement:
3234
 
                        break;
3235
 
 
3236
 
                        case ResetBrowserState:
3237
 
                        break;
3238
 
 
3239
 
                        case LocalMasterAnnouncement:
3240
 
                        break;
3241
 
 
3242
 
                        default:
3243
 
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3244
 
                }
3245
 
        }
3246
 
        return NDR_ERR_SUCCESS;
3247
 
}
3248
 
 
3249
 
static enum ndr_err_code ndr_pull_nbt_browse_payload(struct ndr_pull *ndr, int ndr_flags, union nbt_browse_payload *r)
3250
 
{
3251
 
        int level;
3252
 
        level = ndr_pull_get_switch_value(ndr, r);
3253
 
        if (ndr_flags & NDR_SCALARS) {
3254
 
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
3255
 
                switch (level) {
3256
 
                        case HostAnnouncement: {
3257
 
                                NDR_CHECK(ndr_pull_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3258
 
                        break; }
3259
 
 
3260
 
                        case AnnouncementRequest: {
3261
 
                                NDR_CHECK(ndr_pull_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3262
 
                        break; }
3263
 
 
3264
 
                        case Election: {
3265
 
                                NDR_CHECK(ndr_pull_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3266
 
                        break; }
3267
 
 
3268
 
                        case GetBackupListReq: {
3269
 
                                NDR_CHECK(ndr_pull_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3270
 
                        break; }
3271
 
 
3272
 
                        case GetBackupListResp: {
3273
 
                                NDR_CHECK(ndr_pull_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3274
 
                        break; }
3275
 
 
3276
 
                        case BecomeBackup: {
3277
 
                                NDR_CHECK(ndr_pull_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3278
 
                        break; }
3279
 
 
3280
 
                        case DomainAnnouncement: {
3281
 
                                NDR_CHECK(ndr_pull_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3282
 
                        break; }
3283
 
 
3284
 
                        case MasterAnnouncement: {
3285
 
                                NDR_CHECK(ndr_pull_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3286
 
                        break; }
3287
 
 
3288
 
                        case ResetBrowserState: {
3289
 
                                NDR_CHECK(ndr_pull_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3290
 
                        break; }
3291
 
 
3292
 
                        case LocalMasterAnnouncement: {
3293
 
                                NDR_CHECK(ndr_pull_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3294
 
                        break; }
3295
 
 
3296
 
                        default:
3297
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3298
 
                }
3299
 
        }
3300
 
        if (ndr_flags & NDR_BUFFERS) {
3301
 
                switch (level) {
3302
 
                        case HostAnnouncement:
3303
 
                        break;
3304
 
 
3305
 
                        case AnnouncementRequest:
3306
 
                        break;
3307
 
 
3308
 
                        case Election:
3309
 
                        break;
3310
 
 
3311
 
                        case GetBackupListReq:
3312
 
                        break;
3313
 
 
3314
 
                        case GetBackupListResp:
3315
 
                        break;
3316
 
 
3317
 
                        case BecomeBackup:
3318
 
                        break;
3319
 
 
3320
 
                        case DomainAnnouncement:
3321
 
                        break;
3322
 
 
3323
 
                        case MasterAnnouncement:
3324
 
                        break;
3325
 
 
3326
 
                        case ResetBrowserState:
3327
 
                        break;
3328
 
 
3329
 
                        case LocalMasterAnnouncement:
3330
 
                        break;
3331
 
 
3332
 
                        default:
3333
 
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3334
 
                }
3335
 
        }
3336
 
        return NDR_ERR_SUCCESS;
3337
 
}
3338
 
 
3339
 
_PUBLIC_ void ndr_print_nbt_browse_payload(struct ndr_print *ndr, const char *name, const union nbt_browse_payload *r)
3340
 
{
3341
 
        int level;
3342
 
        level = ndr_print_get_switch_value(ndr, r);
3343
 
        ndr_print_union(ndr, name, level, "nbt_browse_payload");
3344
 
        switch (level) {
3345
 
                case HostAnnouncement:
3346
 
                        ndr_print_nbt_browse_host_announcement(ndr, "host_annoucement", &r->host_annoucement);
3347
 
                break;
3348
 
 
3349
 
                case AnnouncementRequest:
3350
 
                        ndr_print_nbt_browse_announcement_request(ndr, "announcement_request", &r->announcement_request);
3351
 
                break;
3352
 
 
3353
 
                case Election:
3354
 
                        ndr_print_nbt_browse_election_request(ndr, "election_request", &r->election_request);
3355
 
                break;
3356
 
 
3357
 
                case GetBackupListReq:
3358
 
                        ndr_print_nbt_browse_backup_list_request(ndr, "backup_list_request", &r->backup_list_request);
3359
 
                break;
3360
 
 
3361
 
                case GetBackupListResp:
3362
 
                        ndr_print_nbt_browse_backup_list_response(ndr, "backup_list_response", &r->backup_list_response);
3363
 
                break;
3364
 
 
3365
 
                case BecomeBackup:
3366
 
                        ndr_print_nbt_browse_become_backup(ndr, "become_backup", &r->become_backup);
3367
 
                break;
3368
 
 
3369
 
                case DomainAnnouncement:
3370
 
                        ndr_print_nbt_browse_domain_announcement(ndr, "domain_announcement", &r->domain_announcement);
3371
 
                break;
3372
 
 
3373
 
                case MasterAnnouncement:
3374
 
                        ndr_print_nbt_browse_master_announcement(ndr, "master_announcement", &r->master_announcement);
3375
 
                break;
3376
 
 
3377
 
                case ResetBrowserState:
3378
 
                        ndr_print_nbt_browse_reset_state(ndr, "reset_browser_state", &r->reset_browser_state);
3379
 
                break;
3380
 
 
3381
 
                case LocalMasterAnnouncement:
3382
 
                        ndr_print_nbt_browse_local_master_announcement(ndr, "local_master_announcement", &r->local_master_announcement);
3383
 
                break;
3384
 
 
3385
 
                default:
3386
 
                        ndr_print_bad_level(ndr, name, level);
3387
 
        }
3388
 
}
3389
 
 
3390
 
_PUBLIC_ enum ndr_err_code ndr_push_nbt_browse_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_packet *r)
3391
 
{
3392
 
        {
3393
 
                uint32_t _flags_save_STRUCT = ndr->flags;
3394
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3395
 
                if (ndr_flags & NDR_SCALARS) {
3396
 
                        NDR_CHECK(ndr_push_align(ndr, 4));
3397
 
                        NDR_CHECK(ndr_push_nbt_browse_opcode(ndr, NDR_SCALARS, r->opcode));
3398
 
                        NDR_CHECK(ndr_push_set_switch_value(ndr, &r->payload, r->opcode));
3399
 
                        NDR_CHECK(ndr_push_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
3400
 
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3401
 
                }
3402
 
                if (ndr_flags & NDR_BUFFERS) {
3403
 
                }
3404
 
                ndr->flags = _flags_save_STRUCT;
3405
 
        }
3406
 
        return NDR_ERR_SUCCESS;
3407
 
}
3408
 
 
3409
 
_PUBLIC_ enum ndr_err_code ndr_pull_nbt_browse_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_packet *r)
3410
 
{
3411
 
        {
3412
 
                uint32_t _flags_save_STRUCT = ndr->flags;
3413
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3414
 
                if (ndr_flags & NDR_SCALARS) {
3415
 
                        NDR_CHECK(ndr_pull_align(ndr, 4));
3416
 
                        NDR_CHECK(ndr_pull_nbt_browse_opcode(ndr, NDR_SCALARS, &r->opcode));
3417
 
                        NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->payload, r->opcode));
3418
 
                        NDR_CHECK(ndr_pull_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
3419
 
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3420
 
                }
3421
 
                if (ndr_flags & NDR_BUFFERS) {
3422
 
                }
3423
 
                ndr->flags = _flags_save_STRUCT;
3424
 
        }
3425
 
        return NDR_ERR_SUCCESS;
3426
 
}
3427
 
 
3428
 
_PUBLIC_ void ndr_print_nbt_browse_packet(struct ndr_print *ndr, const char *name, const struct nbt_browse_packet *r)
3429
 
{
3430
 
        ndr_print_struct(ndr, name, "nbt_browse_packet");
3431
 
        {
3432
 
                uint32_t _flags_save_STRUCT = ndr->flags;
3433
 
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3434
 
                ndr->depth++;
3435
 
                ndr_print_nbt_browse_opcode(ndr, "opcode", r->opcode);
3436
 
                ndr_print_set_switch_value(ndr, &r->payload, r->opcode);
3437
 
                ndr_print_nbt_browse_payload(ndr, "payload", &r->payload);
3438
 
                ndr->depth--;
3439
 
                ndr->flags = _flags_save_STRUCT;
3440
 
        }
3441
 
}
3442