2
* Unix SMB/CIFS implementation.
3
* server auto-generated by pidl. DO NOT MODIFY!
7
#include "../librpc/gen_ndr/srv_netlogon.h"
9
static bool api_netr_LogonUasLogon(pipes_struct *p)
11
const struct ndr_interface_call *call;
12
struct ndr_pull *pull;
13
struct ndr_push *push;
14
enum ndr_err_code ndr_err;
16
struct netr_LogonUasLogon *r;
18
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONUASLOGON];
20
r = talloc(talloc_tos(), struct netr_LogonUasLogon);
25
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
30
pull = ndr_pull_init_blob(&blob, r, NULL);
36
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
37
ndr_err = call->ndr_pull(pull, NDR_IN, r);
38
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
43
if (DEBUGLEVEL >= 10) {
44
NDR_PRINT_IN_DEBUG(netr_LogonUasLogon, r);
48
r->out.info = talloc_zero(r, struct netr_UasInfo *);
49
if (r->out.info == NULL) {
54
r->out.result = _netr_LogonUasLogon(p, r);
56
if (p->rng_fault_state) {
58
/* Return true here, srv_pipe_hnd.c will take care */
62
if (DEBUGLEVEL >= 10) {
63
NDR_PRINT_OUT_DEBUG(netr_LogonUasLogon, r);
66
push = ndr_push_init_ctx(r, NULL);
72
ndr_err = call->ndr_push(push, NDR_OUT, r);
73
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
78
blob = ndr_push_blob(push);
79
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
89
static bool api_netr_LogonUasLogoff(pipes_struct *p)
91
const struct ndr_interface_call *call;
92
struct ndr_pull *pull;
93
struct ndr_push *push;
94
enum ndr_err_code ndr_err;
96
struct netr_LogonUasLogoff *r;
98
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONUASLOGOFF];
100
r = talloc(talloc_tos(), struct netr_LogonUasLogoff);
105
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
110
pull = ndr_pull_init_blob(&blob, r, NULL);
116
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
117
ndr_err = call->ndr_pull(pull, NDR_IN, r);
118
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
123
if (DEBUGLEVEL >= 10) {
124
NDR_PRINT_IN_DEBUG(netr_LogonUasLogoff, r);
128
r->out.info = talloc_zero(r, struct netr_UasLogoffInfo);
129
if (r->out.info == NULL) {
134
r->out.result = _netr_LogonUasLogoff(p, r);
136
if (p->rng_fault_state) {
138
/* Return true here, srv_pipe_hnd.c will take care */
142
if (DEBUGLEVEL >= 10) {
143
NDR_PRINT_OUT_DEBUG(netr_LogonUasLogoff, r);
146
push = ndr_push_init_ctx(r, NULL);
152
ndr_err = call->ndr_push(push, NDR_OUT, r);
153
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
158
blob = ndr_push_blob(push);
159
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
169
static bool api_netr_LogonSamLogon(pipes_struct *p)
171
const struct ndr_interface_call *call;
172
struct ndr_pull *pull;
173
struct ndr_push *push;
174
enum ndr_err_code ndr_err;
176
struct netr_LogonSamLogon *r;
178
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONSAMLOGON];
180
r = talloc(talloc_tos(), struct netr_LogonSamLogon);
185
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
190
pull = ndr_pull_init_blob(&blob, r, NULL);
196
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
197
ndr_err = call->ndr_pull(pull, NDR_IN, r);
198
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
203
if (DEBUGLEVEL >= 10) {
204
NDR_PRINT_IN_DEBUG(netr_LogonSamLogon, r);
208
r->out.return_authenticator = r->in.return_authenticator;
209
r->out.validation = talloc_zero(r, union netr_Validation);
210
if (r->out.validation == NULL) {
215
r->out.authoritative = talloc_zero(r, uint8_t);
216
if (r->out.authoritative == NULL) {
221
r->out.result = _netr_LogonSamLogon(p, r);
223
if (p->rng_fault_state) {
225
/* Return true here, srv_pipe_hnd.c will take care */
229
if (DEBUGLEVEL >= 10) {
230
NDR_PRINT_OUT_DEBUG(netr_LogonSamLogon, r);
233
push = ndr_push_init_ctx(r, NULL);
239
ndr_err = call->ndr_push(push, NDR_OUT, r);
240
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
245
blob = ndr_push_blob(push);
246
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
256
static bool api_netr_LogonSamLogoff(pipes_struct *p)
258
const struct ndr_interface_call *call;
259
struct ndr_pull *pull;
260
struct ndr_push *push;
261
enum ndr_err_code ndr_err;
263
struct netr_LogonSamLogoff *r;
265
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONSAMLOGOFF];
267
r = talloc(talloc_tos(), struct netr_LogonSamLogoff);
272
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
277
pull = ndr_pull_init_blob(&blob, r, NULL);
283
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
284
ndr_err = call->ndr_pull(pull, NDR_IN, r);
285
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
290
if (DEBUGLEVEL >= 10) {
291
NDR_PRINT_IN_DEBUG(netr_LogonSamLogoff, r);
295
r->out.return_authenticator = r->in.return_authenticator;
296
r->out.result = _netr_LogonSamLogoff(p, r);
298
if (p->rng_fault_state) {
300
/* Return true here, srv_pipe_hnd.c will take care */
304
if (DEBUGLEVEL >= 10) {
305
NDR_PRINT_OUT_DEBUG(netr_LogonSamLogoff, r);
308
push = ndr_push_init_ctx(r, NULL);
314
ndr_err = call->ndr_push(push, NDR_OUT, r);
315
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
320
blob = ndr_push_blob(push);
321
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
331
static bool api_netr_ServerReqChallenge(pipes_struct *p)
333
const struct ndr_interface_call *call;
334
struct ndr_pull *pull;
335
struct ndr_push *push;
336
enum ndr_err_code ndr_err;
338
struct netr_ServerReqChallenge *r;
340
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERREQCHALLENGE];
342
r = talloc(talloc_tos(), struct netr_ServerReqChallenge);
347
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
352
pull = ndr_pull_init_blob(&blob, r, NULL);
358
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
359
ndr_err = call->ndr_pull(pull, NDR_IN, r);
360
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
365
if (DEBUGLEVEL >= 10) {
366
NDR_PRINT_IN_DEBUG(netr_ServerReqChallenge, r);
370
r->out.return_credentials = talloc_zero(r, struct netr_Credential);
371
if (r->out.return_credentials == NULL) {
376
r->out.result = _netr_ServerReqChallenge(p, r);
378
if (p->rng_fault_state) {
380
/* Return true here, srv_pipe_hnd.c will take care */
384
if (DEBUGLEVEL >= 10) {
385
NDR_PRINT_OUT_DEBUG(netr_ServerReqChallenge, r);
388
push = ndr_push_init_ctx(r, NULL);
394
ndr_err = call->ndr_push(push, NDR_OUT, r);
395
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
400
blob = ndr_push_blob(push);
401
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
411
static bool api_netr_ServerAuthenticate(pipes_struct *p)
413
const struct ndr_interface_call *call;
414
struct ndr_pull *pull;
415
struct ndr_push *push;
416
enum ndr_err_code ndr_err;
418
struct netr_ServerAuthenticate *r;
420
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERAUTHENTICATE];
422
r = talloc(talloc_tos(), struct netr_ServerAuthenticate);
427
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
432
pull = ndr_pull_init_blob(&blob, r, NULL);
438
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
439
ndr_err = call->ndr_pull(pull, NDR_IN, r);
440
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
445
if (DEBUGLEVEL >= 10) {
446
NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate, r);
450
r->out.return_credentials = talloc_zero(r, struct netr_Credential);
451
if (r->out.return_credentials == NULL) {
456
r->out.result = _netr_ServerAuthenticate(p, r);
458
if (p->rng_fault_state) {
460
/* Return true here, srv_pipe_hnd.c will take care */
464
if (DEBUGLEVEL >= 10) {
465
NDR_PRINT_OUT_DEBUG(netr_ServerAuthenticate, r);
468
push = ndr_push_init_ctx(r, NULL);
474
ndr_err = call->ndr_push(push, NDR_OUT, r);
475
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
480
blob = ndr_push_blob(push);
481
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
491
static bool api_netr_ServerPasswordSet(pipes_struct *p)
493
const struct ndr_interface_call *call;
494
struct ndr_pull *pull;
495
struct ndr_push *push;
496
enum ndr_err_code ndr_err;
498
struct netr_ServerPasswordSet *r;
500
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERPASSWORDSET];
502
r = talloc(talloc_tos(), struct netr_ServerPasswordSet);
507
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
512
pull = ndr_pull_init_blob(&blob, r, NULL);
518
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
519
ndr_err = call->ndr_pull(pull, NDR_IN, r);
520
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
525
if (DEBUGLEVEL >= 10) {
526
NDR_PRINT_IN_DEBUG(netr_ServerPasswordSet, r);
530
r->out.return_authenticator = talloc_zero(r, struct netr_Authenticator);
531
if (r->out.return_authenticator == NULL) {
536
r->out.result = _netr_ServerPasswordSet(p, r);
538
if (p->rng_fault_state) {
540
/* Return true here, srv_pipe_hnd.c will take care */
544
if (DEBUGLEVEL >= 10) {
545
NDR_PRINT_OUT_DEBUG(netr_ServerPasswordSet, r);
548
push = ndr_push_init_ctx(r, NULL);
554
ndr_err = call->ndr_push(push, NDR_OUT, r);
555
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
560
blob = ndr_push_blob(push);
561
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
571
static bool api_netr_DatabaseDeltas(pipes_struct *p)
573
const struct ndr_interface_call *call;
574
struct ndr_pull *pull;
575
struct ndr_push *push;
576
enum ndr_err_code ndr_err;
578
struct netr_DatabaseDeltas *r;
580
call = &ndr_table_netlogon.calls[NDR_NETR_DATABASEDELTAS];
582
r = talloc(talloc_tos(), struct netr_DatabaseDeltas);
587
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
592
pull = ndr_pull_init_blob(&blob, r, NULL);
598
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
599
ndr_err = call->ndr_pull(pull, NDR_IN, r);
600
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
605
if (DEBUGLEVEL >= 10) {
606
NDR_PRINT_IN_DEBUG(netr_DatabaseDeltas, r);
610
r->out.return_authenticator = r->in.return_authenticator;
611
r->out.sequence_num = r->in.sequence_num;
612
r->out.delta_enum_array = talloc_zero(r, struct netr_DELTA_ENUM_ARRAY *);
613
if (r->out.delta_enum_array == NULL) {
618
r->out.result = _netr_DatabaseDeltas(p, r);
620
if (p->rng_fault_state) {
622
/* Return true here, srv_pipe_hnd.c will take care */
626
if (DEBUGLEVEL >= 10) {
627
NDR_PRINT_OUT_DEBUG(netr_DatabaseDeltas, r);
630
push = ndr_push_init_ctx(r, NULL);
636
ndr_err = call->ndr_push(push, NDR_OUT, r);
637
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
642
blob = ndr_push_blob(push);
643
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
653
static bool api_netr_DatabaseSync(pipes_struct *p)
655
const struct ndr_interface_call *call;
656
struct ndr_pull *pull;
657
struct ndr_push *push;
658
enum ndr_err_code ndr_err;
660
struct netr_DatabaseSync *r;
662
call = &ndr_table_netlogon.calls[NDR_NETR_DATABASESYNC];
664
r = talloc(talloc_tos(), struct netr_DatabaseSync);
669
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
674
pull = ndr_pull_init_blob(&blob, r, NULL);
680
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
681
ndr_err = call->ndr_pull(pull, NDR_IN, r);
682
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
687
if (DEBUGLEVEL >= 10) {
688
NDR_PRINT_IN_DEBUG(netr_DatabaseSync, r);
692
r->out.return_authenticator = r->in.return_authenticator;
693
r->out.sync_context = r->in.sync_context;
694
r->out.delta_enum_array = talloc_zero(r, struct netr_DELTA_ENUM_ARRAY *);
695
if (r->out.delta_enum_array == NULL) {
700
r->out.result = _netr_DatabaseSync(p, r);
702
if (p->rng_fault_state) {
704
/* Return true here, srv_pipe_hnd.c will take care */
708
if (DEBUGLEVEL >= 10) {
709
NDR_PRINT_OUT_DEBUG(netr_DatabaseSync, r);
712
push = ndr_push_init_ctx(r, NULL);
718
ndr_err = call->ndr_push(push, NDR_OUT, r);
719
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
724
blob = ndr_push_blob(push);
725
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
735
static bool api_netr_AccountDeltas(pipes_struct *p)
737
const struct ndr_interface_call *call;
738
struct ndr_pull *pull;
739
struct ndr_push *push;
740
enum ndr_err_code ndr_err;
742
struct netr_AccountDeltas *r;
744
call = &ndr_table_netlogon.calls[NDR_NETR_ACCOUNTDELTAS];
746
r = talloc(talloc_tos(), struct netr_AccountDeltas);
751
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
756
pull = ndr_pull_init_blob(&blob, r, NULL);
762
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
763
ndr_err = call->ndr_pull(pull, NDR_IN, r);
764
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
769
if (DEBUGLEVEL >= 10) {
770
NDR_PRINT_IN_DEBUG(netr_AccountDeltas, r);
774
r->out.return_authenticator = r->in.return_authenticator;
775
r->out.buffer = talloc_zero(r, struct netr_AccountBuffer);
776
if (r->out.buffer == NULL) {
781
r->out.count_returned = talloc_zero(r, uint32_t);
782
if (r->out.count_returned == NULL) {
787
r->out.total_entries = talloc_zero(r, uint32_t);
788
if (r->out.total_entries == NULL) {
793
r->out.recordid = talloc_zero(r, struct netr_UAS_INFO_0);
794
if (r->out.recordid == NULL) {
799
r->out.result = _netr_AccountDeltas(p, r);
801
if (p->rng_fault_state) {
803
/* Return true here, srv_pipe_hnd.c will take care */
807
if (DEBUGLEVEL >= 10) {
808
NDR_PRINT_OUT_DEBUG(netr_AccountDeltas, r);
811
push = ndr_push_init_ctx(r, NULL);
817
ndr_err = call->ndr_push(push, NDR_OUT, r);
818
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
823
blob = ndr_push_blob(push);
824
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
834
static bool api_netr_AccountSync(pipes_struct *p)
836
const struct ndr_interface_call *call;
837
struct ndr_pull *pull;
838
struct ndr_push *push;
839
enum ndr_err_code ndr_err;
841
struct netr_AccountSync *r;
843
call = &ndr_table_netlogon.calls[NDR_NETR_ACCOUNTSYNC];
845
r = talloc(talloc_tos(), struct netr_AccountSync);
850
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
855
pull = ndr_pull_init_blob(&blob, r, NULL);
861
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
862
ndr_err = call->ndr_pull(pull, NDR_IN, r);
863
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
868
if (DEBUGLEVEL >= 10) {
869
NDR_PRINT_IN_DEBUG(netr_AccountSync, r);
873
r->out.return_authenticator = r->in.return_authenticator;
874
r->out.recordid = r->in.recordid;
875
r->out.buffer = talloc_zero(r, struct netr_AccountBuffer);
876
if (r->out.buffer == NULL) {
881
r->out.count_returned = talloc_zero(r, uint32_t);
882
if (r->out.count_returned == NULL) {
887
r->out.total_entries = talloc_zero(r, uint32_t);
888
if (r->out.total_entries == NULL) {
893
r->out.next_reference = talloc_zero(r, uint32_t);
894
if (r->out.next_reference == NULL) {
899
r->out.result = _netr_AccountSync(p, r);
901
if (p->rng_fault_state) {
903
/* Return true here, srv_pipe_hnd.c will take care */
907
if (DEBUGLEVEL >= 10) {
908
NDR_PRINT_OUT_DEBUG(netr_AccountSync, r);
911
push = ndr_push_init_ctx(r, NULL);
917
ndr_err = call->ndr_push(push, NDR_OUT, r);
918
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
923
blob = ndr_push_blob(push);
924
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
934
static bool api_netr_GetDcName(pipes_struct *p)
936
const struct ndr_interface_call *call;
937
struct ndr_pull *pull;
938
struct ndr_push *push;
939
enum ndr_err_code ndr_err;
941
struct netr_GetDcName *r;
943
call = &ndr_table_netlogon.calls[NDR_NETR_GETDCNAME];
945
r = talloc(talloc_tos(), struct netr_GetDcName);
950
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
955
pull = ndr_pull_init_blob(&blob, r, NULL);
961
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
962
ndr_err = call->ndr_pull(pull, NDR_IN, r);
963
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
968
if (DEBUGLEVEL >= 10) {
969
NDR_PRINT_IN_DEBUG(netr_GetDcName, r);
973
r->out.dcname = talloc_zero(r, const char *);
974
if (r->out.dcname == NULL) {
979
r->out.result = _netr_GetDcName(p, r);
981
if (p->rng_fault_state) {
983
/* Return true here, srv_pipe_hnd.c will take care */
987
if (DEBUGLEVEL >= 10) {
988
NDR_PRINT_OUT_DEBUG(netr_GetDcName, r);
991
push = ndr_push_init_ctx(r, NULL);
997
ndr_err = call->ndr_push(push, NDR_OUT, r);
998
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1003
blob = ndr_push_blob(push);
1004
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1014
static bool api_netr_LogonControl(pipes_struct *p)
1016
const struct ndr_interface_call *call;
1017
struct ndr_pull *pull;
1018
struct ndr_push *push;
1019
enum ndr_err_code ndr_err;
1021
struct netr_LogonControl *r;
1023
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONCONTROL];
1025
r = talloc(talloc_tos(), struct netr_LogonControl);
1030
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1035
pull = ndr_pull_init_blob(&blob, r, NULL);
1041
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1042
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1043
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1048
if (DEBUGLEVEL >= 10) {
1049
NDR_PRINT_IN_DEBUG(netr_LogonControl, r);
1052
ZERO_STRUCT(r->out);
1053
r->out.info = talloc_zero(r, union netr_CONTROL_QUERY_INFORMATION);
1054
if (r->out.info == NULL) {
1059
r->out.result = _netr_LogonControl(p, r);
1061
if (p->rng_fault_state) {
1063
/* Return true here, srv_pipe_hnd.c will take care */
1067
if (DEBUGLEVEL >= 10) {
1068
NDR_PRINT_OUT_DEBUG(netr_LogonControl, r);
1071
push = ndr_push_init_ctx(r, NULL);
1077
ndr_err = call->ndr_push(push, NDR_OUT, r);
1078
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1083
blob = ndr_push_blob(push);
1084
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1094
static bool api_netr_GetAnyDCName(pipes_struct *p)
1096
const struct ndr_interface_call *call;
1097
struct ndr_pull *pull;
1098
struct ndr_push *push;
1099
enum ndr_err_code ndr_err;
1101
struct netr_GetAnyDCName *r;
1103
call = &ndr_table_netlogon.calls[NDR_NETR_GETANYDCNAME];
1105
r = talloc(talloc_tos(), struct netr_GetAnyDCName);
1110
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1115
pull = ndr_pull_init_blob(&blob, r, NULL);
1121
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1122
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1123
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1128
if (DEBUGLEVEL >= 10) {
1129
NDR_PRINT_IN_DEBUG(netr_GetAnyDCName, r);
1132
ZERO_STRUCT(r->out);
1133
r->out.dcname = talloc_zero(r, const char *);
1134
if (r->out.dcname == NULL) {
1139
r->out.result = _netr_GetAnyDCName(p, r);
1141
if (p->rng_fault_state) {
1143
/* Return true here, srv_pipe_hnd.c will take care */
1147
if (DEBUGLEVEL >= 10) {
1148
NDR_PRINT_OUT_DEBUG(netr_GetAnyDCName, r);
1151
push = ndr_push_init_ctx(r, NULL);
1157
ndr_err = call->ndr_push(push, NDR_OUT, r);
1158
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1163
blob = ndr_push_blob(push);
1164
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1174
static bool api_netr_LogonControl2(pipes_struct *p)
1176
const struct ndr_interface_call *call;
1177
struct ndr_pull *pull;
1178
struct ndr_push *push;
1179
enum ndr_err_code ndr_err;
1181
struct netr_LogonControl2 *r;
1183
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONCONTROL2];
1185
r = talloc(talloc_tos(), struct netr_LogonControl2);
1190
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1195
pull = ndr_pull_init_blob(&blob, r, NULL);
1201
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1202
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1203
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1208
if (DEBUGLEVEL >= 10) {
1209
NDR_PRINT_IN_DEBUG(netr_LogonControl2, r);
1212
ZERO_STRUCT(r->out);
1213
r->out.query = talloc_zero(r, union netr_CONTROL_QUERY_INFORMATION);
1214
if (r->out.query == NULL) {
1219
r->out.result = _netr_LogonControl2(p, r);
1221
if (p->rng_fault_state) {
1223
/* Return true here, srv_pipe_hnd.c will take care */
1227
if (DEBUGLEVEL >= 10) {
1228
NDR_PRINT_OUT_DEBUG(netr_LogonControl2, r);
1231
push = ndr_push_init_ctx(r, NULL);
1237
ndr_err = call->ndr_push(push, NDR_OUT, r);
1238
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1243
blob = ndr_push_blob(push);
1244
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1254
static bool api_netr_ServerAuthenticate2(pipes_struct *p)
1256
const struct ndr_interface_call *call;
1257
struct ndr_pull *pull;
1258
struct ndr_push *push;
1259
enum ndr_err_code ndr_err;
1261
struct netr_ServerAuthenticate2 *r;
1263
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERAUTHENTICATE2];
1265
r = talloc(talloc_tos(), struct netr_ServerAuthenticate2);
1270
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1275
pull = ndr_pull_init_blob(&blob, r, NULL);
1281
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1282
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1283
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1288
if (DEBUGLEVEL >= 10) {
1289
NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate2, r);
1292
ZERO_STRUCT(r->out);
1293
r->out.negotiate_flags = r->in.negotiate_flags;
1294
r->out.return_credentials = talloc_zero(r, struct netr_Credential);
1295
if (r->out.return_credentials == NULL) {
1300
r->out.result = _netr_ServerAuthenticate2(p, r);
1302
if (p->rng_fault_state) {
1304
/* Return true here, srv_pipe_hnd.c will take care */
1308
if (DEBUGLEVEL >= 10) {
1309
NDR_PRINT_OUT_DEBUG(netr_ServerAuthenticate2, r);
1312
push = ndr_push_init_ctx(r, NULL);
1318
ndr_err = call->ndr_push(push, NDR_OUT, r);
1319
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1324
blob = ndr_push_blob(push);
1325
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1335
static bool api_netr_DatabaseSync2(pipes_struct *p)
1337
const struct ndr_interface_call *call;
1338
struct ndr_pull *pull;
1339
struct ndr_push *push;
1340
enum ndr_err_code ndr_err;
1342
struct netr_DatabaseSync2 *r;
1344
call = &ndr_table_netlogon.calls[NDR_NETR_DATABASESYNC2];
1346
r = talloc(talloc_tos(), struct netr_DatabaseSync2);
1351
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1356
pull = ndr_pull_init_blob(&blob, r, NULL);
1362
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1363
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1364
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1369
if (DEBUGLEVEL >= 10) {
1370
NDR_PRINT_IN_DEBUG(netr_DatabaseSync2, r);
1373
ZERO_STRUCT(r->out);
1374
r->out.return_authenticator = r->in.return_authenticator;
1375
r->out.sync_context = r->in.sync_context;
1376
r->out.delta_enum_array = talloc_zero(r, struct netr_DELTA_ENUM_ARRAY *);
1377
if (r->out.delta_enum_array == NULL) {
1382
r->out.result = _netr_DatabaseSync2(p, r);
1384
if (p->rng_fault_state) {
1386
/* Return true here, srv_pipe_hnd.c will take care */
1390
if (DEBUGLEVEL >= 10) {
1391
NDR_PRINT_OUT_DEBUG(netr_DatabaseSync2, r);
1394
push = ndr_push_init_ctx(r, NULL);
1400
ndr_err = call->ndr_push(push, NDR_OUT, r);
1401
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1406
blob = ndr_push_blob(push);
1407
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1417
static bool api_netr_DatabaseRedo(pipes_struct *p)
1419
const struct ndr_interface_call *call;
1420
struct ndr_pull *pull;
1421
struct ndr_push *push;
1422
enum ndr_err_code ndr_err;
1424
struct netr_DatabaseRedo *r;
1426
call = &ndr_table_netlogon.calls[NDR_NETR_DATABASEREDO];
1428
r = talloc(talloc_tos(), struct netr_DatabaseRedo);
1433
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1438
pull = ndr_pull_init_blob(&blob, r, NULL);
1444
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1445
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1446
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1451
if (DEBUGLEVEL >= 10) {
1452
NDR_PRINT_IN_DEBUG(netr_DatabaseRedo, r);
1455
ZERO_STRUCT(r->out);
1456
r->out.return_authenticator = r->in.return_authenticator;
1457
r->out.delta_enum_array = talloc_zero(r, struct netr_DELTA_ENUM_ARRAY *);
1458
if (r->out.delta_enum_array == NULL) {
1463
r->out.result = _netr_DatabaseRedo(p, r);
1465
if (p->rng_fault_state) {
1467
/* Return true here, srv_pipe_hnd.c will take care */
1471
if (DEBUGLEVEL >= 10) {
1472
NDR_PRINT_OUT_DEBUG(netr_DatabaseRedo, r);
1475
push = ndr_push_init_ctx(r, NULL);
1481
ndr_err = call->ndr_push(push, NDR_OUT, r);
1482
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1487
blob = ndr_push_blob(push);
1488
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1498
static bool api_netr_LogonControl2Ex(pipes_struct *p)
1500
const struct ndr_interface_call *call;
1501
struct ndr_pull *pull;
1502
struct ndr_push *push;
1503
enum ndr_err_code ndr_err;
1505
struct netr_LogonControl2Ex *r;
1507
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONCONTROL2EX];
1509
r = talloc(talloc_tos(), struct netr_LogonControl2Ex);
1514
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1519
pull = ndr_pull_init_blob(&blob, r, NULL);
1525
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1526
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1527
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1532
if (DEBUGLEVEL >= 10) {
1533
NDR_PRINT_IN_DEBUG(netr_LogonControl2Ex, r);
1536
ZERO_STRUCT(r->out);
1537
r->out.query = talloc_zero(r, union netr_CONTROL_QUERY_INFORMATION);
1538
if (r->out.query == NULL) {
1543
r->out.result = _netr_LogonControl2Ex(p, r);
1545
if (p->rng_fault_state) {
1547
/* Return true here, srv_pipe_hnd.c will take care */
1551
if (DEBUGLEVEL >= 10) {
1552
NDR_PRINT_OUT_DEBUG(netr_LogonControl2Ex, r);
1555
push = ndr_push_init_ctx(r, NULL);
1561
ndr_err = call->ndr_push(push, NDR_OUT, r);
1562
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1567
blob = ndr_push_blob(push);
1568
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1578
static bool api_netr_NetrEnumerateTrustedDomains(pipes_struct *p)
1580
const struct ndr_interface_call *call;
1581
struct ndr_pull *pull;
1582
struct ndr_push *push;
1583
enum ndr_err_code ndr_err;
1585
struct netr_NetrEnumerateTrustedDomains *r;
1587
call = &ndr_table_netlogon.calls[NDR_NETR_NETRENUMERATETRUSTEDDOMAINS];
1589
r = talloc(talloc_tos(), struct netr_NetrEnumerateTrustedDomains);
1594
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1599
pull = ndr_pull_init_blob(&blob, r, NULL);
1605
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1606
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1607
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1612
if (DEBUGLEVEL >= 10) {
1613
NDR_PRINT_IN_DEBUG(netr_NetrEnumerateTrustedDomains, r);
1616
ZERO_STRUCT(r->out);
1617
r->out.trusted_domains_blob = talloc_zero(r, struct netr_Blob);
1618
if (r->out.trusted_domains_blob == NULL) {
1623
r->out.result = _netr_NetrEnumerateTrustedDomains(p, r);
1625
if (p->rng_fault_state) {
1627
/* Return true here, srv_pipe_hnd.c will take care */
1631
if (DEBUGLEVEL >= 10) {
1632
NDR_PRINT_OUT_DEBUG(netr_NetrEnumerateTrustedDomains, r);
1635
push = ndr_push_init_ctx(r, NULL);
1641
ndr_err = call->ndr_push(push, NDR_OUT, r);
1642
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1647
blob = ndr_push_blob(push);
1648
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1658
static bool api_netr_DsRGetDCName(pipes_struct *p)
1660
const struct ndr_interface_call *call;
1661
struct ndr_pull *pull;
1662
struct ndr_push *push;
1663
enum ndr_err_code ndr_err;
1665
struct netr_DsRGetDCName *r;
1667
call = &ndr_table_netlogon.calls[NDR_NETR_DSRGETDCNAME];
1669
r = talloc(talloc_tos(), struct netr_DsRGetDCName);
1674
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1679
pull = ndr_pull_init_blob(&blob, r, NULL);
1685
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1686
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1687
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1692
if (DEBUGLEVEL >= 10) {
1693
NDR_PRINT_IN_DEBUG(netr_DsRGetDCName, r);
1696
ZERO_STRUCT(r->out);
1697
r->out.info = talloc_zero(r, struct netr_DsRGetDCNameInfo *);
1698
if (r->out.info == NULL) {
1703
r->out.result = _netr_DsRGetDCName(p, r);
1705
if (p->rng_fault_state) {
1707
/* Return true here, srv_pipe_hnd.c will take care */
1711
if (DEBUGLEVEL >= 10) {
1712
NDR_PRINT_OUT_DEBUG(netr_DsRGetDCName, r);
1715
push = ndr_push_init_ctx(r, NULL);
1721
ndr_err = call->ndr_push(push, NDR_OUT, r);
1722
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1727
blob = ndr_push_blob(push);
1728
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1738
static bool api_netr_LogonGetCapabilities(pipes_struct *p)
1740
const struct ndr_interface_call *call;
1741
struct ndr_pull *pull;
1742
struct ndr_push *push;
1743
enum ndr_err_code ndr_err;
1745
struct netr_LogonGetCapabilities *r;
1747
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONGETCAPABILITIES];
1749
r = talloc(talloc_tos(), struct netr_LogonGetCapabilities);
1754
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1759
pull = ndr_pull_init_blob(&blob, r, NULL);
1765
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1766
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1767
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1772
if (DEBUGLEVEL >= 10) {
1773
NDR_PRINT_IN_DEBUG(netr_LogonGetCapabilities, r);
1776
ZERO_STRUCT(r->out);
1777
r->out.return_authenticator = r->in.return_authenticator;
1778
r->out.capabilities = talloc_zero(r, union netr_Capabilities);
1779
if (r->out.capabilities == NULL) {
1784
r->out.result = _netr_LogonGetCapabilities(p, r);
1786
if (p->rng_fault_state) {
1788
/* Return true here, srv_pipe_hnd.c will take care */
1792
if (DEBUGLEVEL >= 10) {
1793
NDR_PRINT_OUT_DEBUG(netr_LogonGetCapabilities, r);
1796
push = ndr_push_init_ctx(r, NULL);
1802
ndr_err = call->ndr_push(push, NDR_OUT, r);
1803
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1808
blob = ndr_push_blob(push);
1809
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1819
static bool api_netr_NETRLOGONSETSERVICEBITS(pipes_struct *p)
1821
const struct ndr_interface_call *call;
1822
struct ndr_pull *pull;
1823
struct ndr_push *push;
1824
enum ndr_err_code ndr_err;
1826
struct netr_NETRLOGONSETSERVICEBITS *r;
1828
call = &ndr_table_netlogon.calls[NDR_NETR_NETRLOGONSETSERVICEBITS];
1830
r = talloc(talloc_tos(), struct netr_NETRLOGONSETSERVICEBITS);
1835
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1840
pull = ndr_pull_init_blob(&blob, r, NULL);
1846
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1847
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1848
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1853
if (DEBUGLEVEL >= 10) {
1854
NDR_PRINT_IN_DEBUG(netr_NETRLOGONSETSERVICEBITS, r);
1857
r->out.result = _netr_NETRLOGONSETSERVICEBITS(p, r);
1859
if (p->rng_fault_state) {
1861
/* Return true here, srv_pipe_hnd.c will take care */
1865
if (DEBUGLEVEL >= 10) {
1866
NDR_PRINT_OUT_DEBUG(netr_NETRLOGONSETSERVICEBITS, r);
1869
push = ndr_push_init_ctx(r, NULL);
1875
ndr_err = call->ndr_push(push, NDR_OUT, r);
1876
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1881
blob = ndr_push_blob(push);
1882
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1892
static bool api_netr_LogonGetTrustRid(pipes_struct *p)
1894
const struct ndr_interface_call *call;
1895
struct ndr_pull *pull;
1896
struct ndr_push *push;
1897
enum ndr_err_code ndr_err;
1899
struct netr_LogonGetTrustRid *r;
1901
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONGETTRUSTRID];
1903
r = talloc(talloc_tos(), struct netr_LogonGetTrustRid);
1908
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1913
pull = ndr_pull_init_blob(&blob, r, NULL);
1919
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1920
ndr_err = call->ndr_pull(pull, NDR_IN, r);
1921
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1926
if (DEBUGLEVEL >= 10) {
1927
NDR_PRINT_IN_DEBUG(netr_LogonGetTrustRid, r);
1930
ZERO_STRUCT(r->out);
1931
r->out.rid = talloc_zero(r, uint32_t);
1932
if (r->out.rid == NULL) {
1937
r->out.result = _netr_LogonGetTrustRid(p, r);
1939
if (p->rng_fault_state) {
1941
/* Return true here, srv_pipe_hnd.c will take care */
1945
if (DEBUGLEVEL >= 10) {
1946
NDR_PRINT_OUT_DEBUG(netr_LogonGetTrustRid, r);
1949
push = ndr_push_init_ctx(r, NULL);
1955
ndr_err = call->ndr_push(push, NDR_OUT, r);
1956
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1961
blob = ndr_push_blob(push);
1962
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1972
static bool api_netr_NETRLOGONCOMPUTESERVERDIGEST(pipes_struct *p)
1974
const struct ndr_interface_call *call;
1975
struct ndr_pull *pull;
1976
struct ndr_push *push;
1977
enum ndr_err_code ndr_err;
1979
struct netr_NETRLOGONCOMPUTESERVERDIGEST *r;
1981
call = &ndr_table_netlogon.calls[NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST];
1983
r = talloc(talloc_tos(), struct netr_NETRLOGONCOMPUTESERVERDIGEST);
1988
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1993
pull = ndr_pull_init_blob(&blob, r, NULL);
1999
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2000
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2001
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2006
if (DEBUGLEVEL >= 10) {
2007
NDR_PRINT_IN_DEBUG(netr_NETRLOGONCOMPUTESERVERDIGEST, r);
2010
r->out.result = _netr_NETRLOGONCOMPUTESERVERDIGEST(p, r);
2012
if (p->rng_fault_state) {
2014
/* Return true here, srv_pipe_hnd.c will take care */
2018
if (DEBUGLEVEL >= 10) {
2019
NDR_PRINT_OUT_DEBUG(netr_NETRLOGONCOMPUTESERVERDIGEST, r);
2022
push = ndr_push_init_ctx(r, NULL);
2028
ndr_err = call->ndr_push(push, NDR_OUT, r);
2029
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2034
blob = ndr_push_blob(push);
2035
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2045
static bool api_netr_NETRLOGONCOMPUTECLIENTDIGEST(pipes_struct *p)
2047
const struct ndr_interface_call *call;
2048
struct ndr_pull *pull;
2049
struct ndr_push *push;
2050
enum ndr_err_code ndr_err;
2052
struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r;
2054
call = &ndr_table_netlogon.calls[NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST];
2056
r = talloc(talloc_tos(), struct netr_NETRLOGONCOMPUTECLIENTDIGEST);
2061
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2066
pull = ndr_pull_init_blob(&blob, r, NULL);
2072
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2073
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2074
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2079
if (DEBUGLEVEL >= 10) {
2080
NDR_PRINT_IN_DEBUG(netr_NETRLOGONCOMPUTECLIENTDIGEST, r);
2083
r->out.result = _netr_NETRLOGONCOMPUTECLIENTDIGEST(p, r);
2085
if (p->rng_fault_state) {
2087
/* Return true here, srv_pipe_hnd.c will take care */
2091
if (DEBUGLEVEL >= 10) {
2092
NDR_PRINT_OUT_DEBUG(netr_NETRLOGONCOMPUTECLIENTDIGEST, r);
2095
push = ndr_push_init_ctx(r, NULL);
2101
ndr_err = call->ndr_push(push, NDR_OUT, r);
2102
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2107
blob = ndr_push_blob(push);
2108
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2118
static bool api_netr_ServerAuthenticate3(pipes_struct *p)
2120
const struct ndr_interface_call *call;
2121
struct ndr_pull *pull;
2122
struct ndr_push *push;
2123
enum ndr_err_code ndr_err;
2125
struct netr_ServerAuthenticate3 *r;
2127
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERAUTHENTICATE3];
2129
r = talloc(talloc_tos(), struct netr_ServerAuthenticate3);
2134
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2139
pull = ndr_pull_init_blob(&blob, r, NULL);
2145
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2146
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2147
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2152
if (DEBUGLEVEL >= 10) {
2153
NDR_PRINT_IN_DEBUG(netr_ServerAuthenticate3, r);
2156
ZERO_STRUCT(r->out);
2157
r->out.negotiate_flags = r->in.negotiate_flags;
2158
r->out.return_credentials = talloc_zero(r, struct netr_Credential);
2159
if (r->out.return_credentials == NULL) {
2164
r->out.rid = talloc_zero(r, uint32_t);
2165
if (r->out.rid == NULL) {
2170
r->out.result = _netr_ServerAuthenticate3(p, r);
2172
if (p->rng_fault_state) {
2174
/* Return true here, srv_pipe_hnd.c will take care */
2178
if (DEBUGLEVEL >= 10) {
2179
NDR_PRINT_OUT_DEBUG(netr_ServerAuthenticate3, r);
2182
push = ndr_push_init_ctx(r, NULL);
2188
ndr_err = call->ndr_push(push, NDR_OUT, r);
2189
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2194
blob = ndr_push_blob(push);
2195
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2205
static bool api_netr_DsRGetDCNameEx(pipes_struct *p)
2207
const struct ndr_interface_call *call;
2208
struct ndr_pull *pull;
2209
struct ndr_push *push;
2210
enum ndr_err_code ndr_err;
2212
struct netr_DsRGetDCNameEx *r;
2214
call = &ndr_table_netlogon.calls[NDR_NETR_DSRGETDCNAMEEX];
2216
r = talloc(talloc_tos(), struct netr_DsRGetDCNameEx);
2221
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2226
pull = ndr_pull_init_blob(&blob, r, NULL);
2232
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2233
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2234
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2239
if (DEBUGLEVEL >= 10) {
2240
NDR_PRINT_IN_DEBUG(netr_DsRGetDCNameEx, r);
2243
ZERO_STRUCT(r->out);
2244
r->out.info = talloc_zero(r, struct netr_DsRGetDCNameInfo *);
2245
if (r->out.info == NULL) {
2250
r->out.result = _netr_DsRGetDCNameEx(p, r);
2252
if (p->rng_fault_state) {
2254
/* Return true here, srv_pipe_hnd.c will take care */
2258
if (DEBUGLEVEL >= 10) {
2259
NDR_PRINT_OUT_DEBUG(netr_DsRGetDCNameEx, r);
2262
push = ndr_push_init_ctx(r, NULL);
2268
ndr_err = call->ndr_push(push, NDR_OUT, r);
2269
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2274
blob = ndr_push_blob(push);
2275
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2285
static bool api_netr_DsRGetSiteName(pipes_struct *p)
2287
const struct ndr_interface_call *call;
2288
struct ndr_pull *pull;
2289
struct ndr_push *push;
2290
enum ndr_err_code ndr_err;
2292
struct netr_DsRGetSiteName *r;
2294
call = &ndr_table_netlogon.calls[NDR_NETR_DSRGETSITENAME];
2296
r = talloc(talloc_tos(), struct netr_DsRGetSiteName);
2301
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2306
pull = ndr_pull_init_blob(&blob, r, NULL);
2312
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2313
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2314
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2319
if (DEBUGLEVEL >= 10) {
2320
NDR_PRINT_IN_DEBUG(netr_DsRGetSiteName, r);
2323
ZERO_STRUCT(r->out);
2324
r->out.site = talloc_zero(r, const char *);
2325
if (r->out.site == NULL) {
2330
r->out.result = _netr_DsRGetSiteName(p, r);
2332
if (p->rng_fault_state) {
2334
/* Return true here, srv_pipe_hnd.c will take care */
2338
if (DEBUGLEVEL >= 10) {
2339
NDR_PRINT_OUT_DEBUG(netr_DsRGetSiteName, r);
2342
push = ndr_push_init_ctx(r, NULL);
2348
ndr_err = call->ndr_push(push, NDR_OUT, r);
2349
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2354
blob = ndr_push_blob(push);
2355
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2365
static bool api_netr_LogonGetDomainInfo(pipes_struct *p)
2367
const struct ndr_interface_call *call;
2368
struct ndr_pull *pull;
2369
struct ndr_push *push;
2370
enum ndr_err_code ndr_err;
2372
struct netr_LogonGetDomainInfo *r;
2374
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONGETDOMAININFO];
2376
r = talloc(talloc_tos(), struct netr_LogonGetDomainInfo);
2381
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2386
pull = ndr_pull_init_blob(&blob, r, NULL);
2392
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2393
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2394
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2399
if (DEBUGLEVEL >= 10) {
2400
NDR_PRINT_IN_DEBUG(netr_LogonGetDomainInfo, r);
2403
ZERO_STRUCT(r->out);
2404
r->out.return_authenticator = r->in.return_authenticator;
2405
r->out.info = talloc_zero(r, union netr_DomainInfo);
2406
if (r->out.info == NULL) {
2411
r->out.result = _netr_LogonGetDomainInfo(p, r);
2413
if (p->rng_fault_state) {
2415
/* Return true here, srv_pipe_hnd.c will take care */
2419
if (DEBUGLEVEL >= 10) {
2420
NDR_PRINT_OUT_DEBUG(netr_LogonGetDomainInfo, r);
2423
push = ndr_push_init_ctx(r, NULL);
2429
ndr_err = call->ndr_push(push, NDR_OUT, r);
2430
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2435
blob = ndr_push_blob(push);
2436
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2446
static bool api_netr_ServerPasswordSet2(pipes_struct *p)
2448
const struct ndr_interface_call *call;
2449
struct ndr_pull *pull;
2450
struct ndr_push *push;
2451
enum ndr_err_code ndr_err;
2453
struct netr_ServerPasswordSet2 *r;
2455
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERPASSWORDSET2];
2457
r = talloc(talloc_tos(), struct netr_ServerPasswordSet2);
2462
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2467
pull = ndr_pull_init_blob(&blob, r, NULL);
2473
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2474
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2475
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2480
if (DEBUGLEVEL >= 10) {
2481
NDR_PRINT_IN_DEBUG(netr_ServerPasswordSet2, r);
2484
ZERO_STRUCT(r->out);
2485
r->out.return_authenticator = talloc_zero(r, struct netr_Authenticator);
2486
if (r->out.return_authenticator == NULL) {
2491
r->out.result = _netr_ServerPasswordSet2(p, r);
2493
if (p->rng_fault_state) {
2495
/* Return true here, srv_pipe_hnd.c will take care */
2499
if (DEBUGLEVEL >= 10) {
2500
NDR_PRINT_OUT_DEBUG(netr_ServerPasswordSet2, r);
2503
push = ndr_push_init_ctx(r, NULL);
2509
ndr_err = call->ndr_push(push, NDR_OUT, r);
2510
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2515
blob = ndr_push_blob(push);
2516
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2526
static bool api_netr_ServerPasswordGet(pipes_struct *p)
2528
const struct ndr_interface_call *call;
2529
struct ndr_pull *pull;
2530
struct ndr_push *push;
2531
enum ndr_err_code ndr_err;
2533
struct netr_ServerPasswordGet *r;
2535
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERPASSWORDGET];
2537
r = talloc(talloc_tos(), struct netr_ServerPasswordGet);
2542
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2547
pull = ndr_pull_init_blob(&blob, r, NULL);
2553
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2554
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2555
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2560
if (DEBUGLEVEL >= 10) {
2561
NDR_PRINT_IN_DEBUG(netr_ServerPasswordGet, r);
2564
ZERO_STRUCT(r->out);
2565
r->out.return_authenticator = talloc_zero(r, struct netr_Authenticator);
2566
if (r->out.return_authenticator == NULL) {
2571
r->out.password = talloc_zero(r, struct samr_Password);
2572
if (r->out.password == NULL) {
2577
r->out.result = _netr_ServerPasswordGet(p, r);
2579
if (p->rng_fault_state) {
2581
/* Return true here, srv_pipe_hnd.c will take care */
2585
if (DEBUGLEVEL >= 10) {
2586
NDR_PRINT_OUT_DEBUG(netr_ServerPasswordGet, r);
2589
push = ndr_push_init_ctx(r, NULL);
2595
ndr_err = call->ndr_push(push, NDR_OUT, r);
2596
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2601
blob = ndr_push_blob(push);
2602
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2612
static bool api_netr_NETRLOGONSENDTOSAM(pipes_struct *p)
2614
const struct ndr_interface_call *call;
2615
struct ndr_pull *pull;
2616
struct ndr_push *push;
2617
enum ndr_err_code ndr_err;
2619
struct netr_NETRLOGONSENDTOSAM *r;
2621
call = &ndr_table_netlogon.calls[NDR_NETR_NETRLOGONSENDTOSAM];
2623
r = talloc(talloc_tos(), struct netr_NETRLOGONSENDTOSAM);
2628
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2633
pull = ndr_pull_init_blob(&blob, r, NULL);
2639
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2640
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2641
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2646
if (DEBUGLEVEL >= 10) {
2647
NDR_PRINT_IN_DEBUG(netr_NETRLOGONSENDTOSAM, r);
2650
r->out.result = _netr_NETRLOGONSENDTOSAM(p, r);
2652
if (p->rng_fault_state) {
2654
/* Return true here, srv_pipe_hnd.c will take care */
2658
if (DEBUGLEVEL >= 10) {
2659
NDR_PRINT_OUT_DEBUG(netr_NETRLOGONSENDTOSAM, r);
2662
push = ndr_push_init_ctx(r, NULL);
2668
ndr_err = call->ndr_push(push, NDR_OUT, r);
2669
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2674
blob = ndr_push_blob(push);
2675
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2685
static bool api_netr_DsRAddressToSitenamesW(pipes_struct *p)
2687
const struct ndr_interface_call *call;
2688
struct ndr_pull *pull;
2689
struct ndr_push *push;
2690
enum ndr_err_code ndr_err;
2692
struct netr_DsRAddressToSitenamesW *r;
2694
call = &ndr_table_netlogon.calls[NDR_NETR_DSRADDRESSTOSITENAMESW];
2696
r = talloc(talloc_tos(), struct netr_DsRAddressToSitenamesW);
2701
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2706
pull = ndr_pull_init_blob(&blob, r, NULL);
2712
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2713
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2714
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2719
if (DEBUGLEVEL >= 10) {
2720
NDR_PRINT_IN_DEBUG(netr_DsRAddressToSitenamesW, r);
2723
ZERO_STRUCT(r->out);
2724
r->out.ctr = talloc_zero(r, struct netr_DsRAddressToSitenamesWCtr *);
2725
if (r->out.ctr == NULL) {
2730
r->out.result = _netr_DsRAddressToSitenamesW(p, r);
2732
if (p->rng_fault_state) {
2734
/* Return true here, srv_pipe_hnd.c will take care */
2738
if (DEBUGLEVEL >= 10) {
2739
NDR_PRINT_OUT_DEBUG(netr_DsRAddressToSitenamesW, r);
2742
push = ndr_push_init_ctx(r, NULL);
2748
ndr_err = call->ndr_push(push, NDR_OUT, r);
2749
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2754
blob = ndr_push_blob(push);
2755
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2765
static bool api_netr_DsRGetDCNameEx2(pipes_struct *p)
2767
const struct ndr_interface_call *call;
2768
struct ndr_pull *pull;
2769
struct ndr_push *push;
2770
enum ndr_err_code ndr_err;
2772
struct netr_DsRGetDCNameEx2 *r;
2774
call = &ndr_table_netlogon.calls[NDR_NETR_DSRGETDCNAMEEX2];
2776
r = talloc(talloc_tos(), struct netr_DsRGetDCNameEx2);
2781
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2786
pull = ndr_pull_init_blob(&blob, r, NULL);
2792
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2793
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2794
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2799
if (DEBUGLEVEL >= 10) {
2800
NDR_PRINT_IN_DEBUG(netr_DsRGetDCNameEx2, r);
2803
ZERO_STRUCT(r->out);
2804
r->out.info = talloc_zero(r, struct netr_DsRGetDCNameInfo *);
2805
if (r->out.info == NULL) {
2810
r->out.result = _netr_DsRGetDCNameEx2(p, r);
2812
if (p->rng_fault_state) {
2814
/* Return true here, srv_pipe_hnd.c will take care */
2818
if (DEBUGLEVEL >= 10) {
2819
NDR_PRINT_OUT_DEBUG(netr_DsRGetDCNameEx2, r);
2822
push = ndr_push_init_ctx(r, NULL);
2828
ndr_err = call->ndr_push(push, NDR_OUT, r);
2829
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2834
blob = ndr_push_blob(push);
2835
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2845
static bool api_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(pipes_struct *p)
2847
const struct ndr_interface_call *call;
2848
struct ndr_pull *pull;
2849
struct ndr_push *push;
2850
enum ndr_err_code ndr_err;
2852
struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r;
2854
call = &ndr_table_netlogon.calls[NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN];
2856
r = talloc(talloc_tos(), struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN);
2861
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2866
pull = ndr_pull_init_blob(&blob, r, NULL);
2872
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2873
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2874
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2879
if (DEBUGLEVEL >= 10) {
2880
NDR_PRINT_IN_DEBUG(netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, r);
2883
r->out.result = _netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(p, r);
2885
if (p->rng_fault_state) {
2887
/* Return true here, srv_pipe_hnd.c will take care */
2891
if (DEBUGLEVEL >= 10) {
2892
NDR_PRINT_OUT_DEBUG(netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN, r);
2895
push = ndr_push_init_ctx(r, NULL);
2901
ndr_err = call->ndr_push(push, NDR_OUT, r);
2902
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2907
blob = ndr_push_blob(push);
2908
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2918
static bool api_netr_NetrEnumerateTrustedDomainsEx(pipes_struct *p)
2920
const struct ndr_interface_call *call;
2921
struct ndr_pull *pull;
2922
struct ndr_push *push;
2923
enum ndr_err_code ndr_err;
2925
struct netr_NetrEnumerateTrustedDomainsEx *r;
2927
call = &ndr_table_netlogon.calls[NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX];
2929
r = talloc(talloc_tos(), struct netr_NetrEnumerateTrustedDomainsEx);
2934
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2939
pull = ndr_pull_init_blob(&blob, r, NULL);
2945
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2946
ndr_err = call->ndr_pull(pull, NDR_IN, r);
2947
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2952
if (DEBUGLEVEL >= 10) {
2953
NDR_PRINT_IN_DEBUG(netr_NetrEnumerateTrustedDomainsEx, r);
2956
ZERO_STRUCT(r->out);
2957
r->out.dom_trust_list = talloc_zero(r, struct netr_DomainTrustList);
2958
if (r->out.dom_trust_list == NULL) {
2963
r->out.result = _netr_NetrEnumerateTrustedDomainsEx(p, r);
2965
if (p->rng_fault_state) {
2967
/* Return true here, srv_pipe_hnd.c will take care */
2971
if (DEBUGLEVEL >= 10) {
2972
NDR_PRINT_OUT_DEBUG(netr_NetrEnumerateTrustedDomainsEx, r);
2975
push = ndr_push_init_ctx(r, NULL);
2981
ndr_err = call->ndr_push(push, NDR_OUT, r);
2982
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2987
blob = ndr_push_blob(push);
2988
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2998
static bool api_netr_DsRAddressToSitenamesExW(pipes_struct *p)
3000
const struct ndr_interface_call *call;
3001
struct ndr_pull *pull;
3002
struct ndr_push *push;
3003
enum ndr_err_code ndr_err;
3005
struct netr_DsRAddressToSitenamesExW *r;
3007
call = &ndr_table_netlogon.calls[NDR_NETR_DSRADDRESSTOSITENAMESEXW];
3009
r = talloc(talloc_tos(), struct netr_DsRAddressToSitenamesExW);
3014
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3019
pull = ndr_pull_init_blob(&blob, r, NULL);
3025
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3026
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3027
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3032
if (DEBUGLEVEL >= 10) {
3033
NDR_PRINT_IN_DEBUG(netr_DsRAddressToSitenamesExW, r);
3036
ZERO_STRUCT(r->out);
3037
r->out.ctr = talloc_zero(r, struct netr_DsRAddressToSitenamesExWCtr *);
3038
if (r->out.ctr == NULL) {
3043
r->out.result = _netr_DsRAddressToSitenamesExW(p, r);
3045
if (p->rng_fault_state) {
3047
/* Return true here, srv_pipe_hnd.c will take care */
3051
if (DEBUGLEVEL >= 10) {
3052
NDR_PRINT_OUT_DEBUG(netr_DsRAddressToSitenamesExW, r);
3055
push = ndr_push_init_ctx(r, NULL);
3061
ndr_err = call->ndr_push(push, NDR_OUT, r);
3062
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3067
blob = ndr_push_blob(push);
3068
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3078
static bool api_netr_DsrGetDcSiteCoverageW(pipes_struct *p)
3080
const struct ndr_interface_call *call;
3081
struct ndr_pull *pull;
3082
struct ndr_push *push;
3083
enum ndr_err_code ndr_err;
3085
struct netr_DsrGetDcSiteCoverageW *r;
3087
call = &ndr_table_netlogon.calls[NDR_NETR_DSRGETDCSITECOVERAGEW];
3089
r = talloc(talloc_tos(), struct netr_DsrGetDcSiteCoverageW);
3094
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3099
pull = ndr_pull_init_blob(&blob, r, NULL);
3105
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3106
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3107
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3112
if (DEBUGLEVEL >= 10) {
3113
NDR_PRINT_IN_DEBUG(netr_DsrGetDcSiteCoverageW, r);
3116
ZERO_STRUCT(r->out);
3117
r->out.ctr = talloc_zero(r, struct DcSitesCtr *);
3118
if (r->out.ctr == NULL) {
3123
r->out.result = _netr_DsrGetDcSiteCoverageW(p, r);
3125
if (p->rng_fault_state) {
3127
/* Return true here, srv_pipe_hnd.c will take care */
3131
if (DEBUGLEVEL >= 10) {
3132
NDR_PRINT_OUT_DEBUG(netr_DsrGetDcSiteCoverageW, r);
3135
push = ndr_push_init_ctx(r, NULL);
3141
ndr_err = call->ndr_push(push, NDR_OUT, r);
3142
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3147
blob = ndr_push_blob(push);
3148
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3158
static bool api_netr_LogonSamLogonEx(pipes_struct *p)
3160
const struct ndr_interface_call *call;
3161
struct ndr_pull *pull;
3162
struct ndr_push *push;
3163
enum ndr_err_code ndr_err;
3165
struct netr_LogonSamLogonEx *r;
3167
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONSAMLOGONEX];
3169
r = talloc(talloc_tos(), struct netr_LogonSamLogonEx);
3174
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3179
pull = ndr_pull_init_blob(&blob, r, NULL);
3185
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3186
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3187
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3192
if (DEBUGLEVEL >= 10) {
3193
NDR_PRINT_IN_DEBUG(netr_LogonSamLogonEx, r);
3196
ZERO_STRUCT(r->out);
3197
r->out.flags = r->in.flags;
3198
r->out.validation = talloc_zero(r, union netr_Validation);
3199
if (r->out.validation == NULL) {
3204
r->out.authoritative = talloc_zero(r, uint8_t);
3205
if (r->out.authoritative == NULL) {
3210
r->out.result = _netr_LogonSamLogonEx(p, r);
3212
if (p->rng_fault_state) {
3214
/* Return true here, srv_pipe_hnd.c will take care */
3218
if (DEBUGLEVEL >= 10) {
3219
NDR_PRINT_OUT_DEBUG(netr_LogonSamLogonEx, r);
3222
push = ndr_push_init_ctx(r, NULL);
3228
ndr_err = call->ndr_push(push, NDR_OUT, r);
3229
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3234
blob = ndr_push_blob(push);
3235
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3245
static bool api_netr_DsrEnumerateDomainTrusts(pipes_struct *p)
3247
const struct ndr_interface_call *call;
3248
struct ndr_pull *pull;
3249
struct ndr_push *push;
3250
enum ndr_err_code ndr_err;
3252
struct netr_DsrEnumerateDomainTrusts *r;
3254
call = &ndr_table_netlogon.calls[NDR_NETR_DSRENUMERATEDOMAINTRUSTS];
3256
r = talloc(talloc_tos(), struct netr_DsrEnumerateDomainTrusts);
3261
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3266
pull = ndr_pull_init_blob(&blob, r, NULL);
3272
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3273
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3274
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3279
if (DEBUGLEVEL >= 10) {
3280
NDR_PRINT_IN_DEBUG(netr_DsrEnumerateDomainTrusts, r);
3283
ZERO_STRUCT(r->out);
3284
r->out.trusts = talloc_zero(r, struct netr_DomainTrustList);
3285
if (r->out.trusts == NULL) {
3290
r->out.result = _netr_DsrEnumerateDomainTrusts(p, r);
3292
if (p->rng_fault_state) {
3294
/* Return true here, srv_pipe_hnd.c will take care */
3298
if (DEBUGLEVEL >= 10) {
3299
NDR_PRINT_OUT_DEBUG(netr_DsrEnumerateDomainTrusts, r);
3302
push = ndr_push_init_ctx(r, NULL);
3308
ndr_err = call->ndr_push(push, NDR_OUT, r);
3309
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3314
blob = ndr_push_blob(push);
3315
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3325
static bool api_netr_DsrDeregisterDNSHostRecords(pipes_struct *p)
3327
const struct ndr_interface_call *call;
3328
struct ndr_pull *pull;
3329
struct ndr_push *push;
3330
enum ndr_err_code ndr_err;
3332
struct netr_DsrDeregisterDNSHostRecords *r;
3334
call = &ndr_table_netlogon.calls[NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS];
3336
r = talloc(talloc_tos(), struct netr_DsrDeregisterDNSHostRecords);
3341
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3346
pull = ndr_pull_init_blob(&blob, r, NULL);
3352
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3353
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3354
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3359
if (DEBUGLEVEL >= 10) {
3360
NDR_PRINT_IN_DEBUG(netr_DsrDeregisterDNSHostRecords, r);
3363
r->out.result = _netr_DsrDeregisterDNSHostRecords(p, r);
3365
if (p->rng_fault_state) {
3367
/* Return true here, srv_pipe_hnd.c will take care */
3371
if (DEBUGLEVEL >= 10) {
3372
NDR_PRINT_OUT_DEBUG(netr_DsrDeregisterDNSHostRecords, r);
3375
push = ndr_push_init_ctx(r, NULL);
3381
ndr_err = call->ndr_push(push, NDR_OUT, r);
3382
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3387
blob = ndr_push_blob(push);
3388
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3398
static bool api_netr_ServerTrustPasswordsGet(pipes_struct *p)
3400
const struct ndr_interface_call *call;
3401
struct ndr_pull *pull;
3402
struct ndr_push *push;
3403
enum ndr_err_code ndr_err;
3405
struct netr_ServerTrustPasswordsGet *r;
3407
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERTRUSTPASSWORDSGET];
3409
r = talloc(talloc_tos(), struct netr_ServerTrustPasswordsGet);
3414
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3419
pull = ndr_pull_init_blob(&blob, r, NULL);
3425
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3426
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3427
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3432
if (DEBUGLEVEL >= 10) {
3433
NDR_PRINT_IN_DEBUG(netr_ServerTrustPasswordsGet, r);
3436
ZERO_STRUCT(r->out);
3437
r->out.return_authenticator = talloc_zero(r, struct netr_Authenticator);
3438
if (r->out.return_authenticator == NULL) {
3443
r->out.password = talloc_zero(r, struct samr_Password);
3444
if (r->out.password == NULL) {
3449
r->out.password2 = talloc_zero(r, struct samr_Password);
3450
if (r->out.password2 == NULL) {
3455
r->out.result = _netr_ServerTrustPasswordsGet(p, r);
3457
if (p->rng_fault_state) {
3459
/* Return true here, srv_pipe_hnd.c will take care */
3463
if (DEBUGLEVEL >= 10) {
3464
NDR_PRINT_OUT_DEBUG(netr_ServerTrustPasswordsGet, r);
3467
push = ndr_push_init_ctx(r, NULL);
3473
ndr_err = call->ndr_push(push, NDR_OUT, r);
3474
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3479
blob = ndr_push_blob(push);
3480
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3490
static bool api_netr_DsRGetForestTrustInformation(pipes_struct *p)
3492
const struct ndr_interface_call *call;
3493
struct ndr_pull *pull;
3494
struct ndr_push *push;
3495
enum ndr_err_code ndr_err;
3497
struct netr_DsRGetForestTrustInformation *r;
3499
call = &ndr_table_netlogon.calls[NDR_NETR_DSRGETFORESTTRUSTINFORMATION];
3501
r = talloc(talloc_tos(), struct netr_DsRGetForestTrustInformation);
3506
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3511
pull = ndr_pull_init_blob(&blob, r, NULL);
3517
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3518
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3519
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3524
if (DEBUGLEVEL >= 10) {
3525
NDR_PRINT_IN_DEBUG(netr_DsRGetForestTrustInformation, r);
3528
ZERO_STRUCT(r->out);
3529
r->out.forest_trust_info = talloc_zero(r, struct lsa_ForestTrustInformation *);
3530
if (r->out.forest_trust_info == NULL) {
3535
r->out.result = _netr_DsRGetForestTrustInformation(p, r);
3537
if (p->rng_fault_state) {
3539
/* Return true here, srv_pipe_hnd.c will take care */
3543
if (DEBUGLEVEL >= 10) {
3544
NDR_PRINT_OUT_DEBUG(netr_DsRGetForestTrustInformation, r);
3547
push = ndr_push_init_ctx(r, NULL);
3553
ndr_err = call->ndr_push(push, NDR_OUT, r);
3554
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3559
blob = ndr_push_blob(push);
3560
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3570
static bool api_netr_GetForestTrustInformation(pipes_struct *p)
3572
const struct ndr_interface_call *call;
3573
struct ndr_pull *pull;
3574
struct ndr_push *push;
3575
enum ndr_err_code ndr_err;
3577
struct netr_GetForestTrustInformation *r;
3579
call = &ndr_table_netlogon.calls[NDR_NETR_GETFORESTTRUSTINFORMATION];
3581
r = talloc(talloc_tos(), struct netr_GetForestTrustInformation);
3586
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3591
pull = ndr_pull_init_blob(&blob, r, NULL);
3597
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3598
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3599
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3604
if (DEBUGLEVEL >= 10) {
3605
NDR_PRINT_IN_DEBUG(netr_GetForestTrustInformation, r);
3608
ZERO_STRUCT(r->out);
3609
r->out.return_authenticator = talloc_zero(r, struct netr_Authenticator);
3610
if (r->out.return_authenticator == NULL) {
3615
r->out.forest_trust_info = talloc_zero(r, struct lsa_ForestTrustInformation *);
3616
if (r->out.forest_trust_info == NULL) {
3621
r->out.result = _netr_GetForestTrustInformation(p, r);
3623
if (p->rng_fault_state) {
3625
/* Return true here, srv_pipe_hnd.c will take care */
3629
if (DEBUGLEVEL >= 10) {
3630
NDR_PRINT_OUT_DEBUG(netr_GetForestTrustInformation, r);
3633
push = ndr_push_init_ctx(r, NULL);
3639
ndr_err = call->ndr_push(push, NDR_OUT, r);
3640
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3645
blob = ndr_push_blob(push);
3646
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3656
static bool api_netr_LogonSamLogonWithFlags(pipes_struct *p)
3658
const struct ndr_interface_call *call;
3659
struct ndr_pull *pull;
3660
struct ndr_push *push;
3661
enum ndr_err_code ndr_err;
3663
struct netr_LogonSamLogonWithFlags *r;
3665
call = &ndr_table_netlogon.calls[NDR_NETR_LOGONSAMLOGONWITHFLAGS];
3667
r = talloc(talloc_tos(), struct netr_LogonSamLogonWithFlags);
3672
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3677
pull = ndr_pull_init_blob(&blob, r, NULL);
3683
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3684
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3685
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3690
if (DEBUGLEVEL >= 10) {
3691
NDR_PRINT_IN_DEBUG(netr_LogonSamLogonWithFlags, r);
3694
ZERO_STRUCT(r->out);
3695
r->out.return_authenticator = r->in.return_authenticator;
3696
r->out.flags = r->in.flags;
3697
r->out.validation = talloc_zero(r, union netr_Validation);
3698
if (r->out.validation == NULL) {
3703
r->out.authoritative = talloc_zero(r, uint8_t);
3704
if (r->out.authoritative == NULL) {
3709
r->out.result = _netr_LogonSamLogonWithFlags(p, r);
3711
if (p->rng_fault_state) {
3713
/* Return true here, srv_pipe_hnd.c will take care */
3717
if (DEBUGLEVEL >= 10) {
3718
NDR_PRINT_OUT_DEBUG(netr_LogonSamLogonWithFlags, r);
3721
push = ndr_push_init_ctx(r, NULL);
3727
ndr_err = call->ndr_push(push, NDR_OUT, r);
3728
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3733
blob = ndr_push_blob(push);
3734
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3744
static bool api_netr_ServerGetTrustInfo(pipes_struct *p)
3746
const struct ndr_interface_call *call;
3747
struct ndr_pull *pull;
3748
struct ndr_push *push;
3749
enum ndr_err_code ndr_err;
3751
struct netr_ServerGetTrustInfo *r;
3753
call = &ndr_table_netlogon.calls[NDR_NETR_SERVERGETTRUSTINFO];
3755
r = talloc(talloc_tos(), struct netr_ServerGetTrustInfo);
3760
if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3765
pull = ndr_pull_init_blob(&blob, r, NULL);
3771
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3772
ndr_err = call->ndr_pull(pull, NDR_IN, r);
3773
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3778
if (DEBUGLEVEL >= 10) {
3779
NDR_PRINT_IN_DEBUG(netr_ServerGetTrustInfo, r);
3782
ZERO_STRUCT(r->out);
3783
r->out.return_authenticator = talloc_zero(r, struct netr_Authenticator);
3784
if (r->out.return_authenticator == NULL) {
3789
r->out.new_owf_password = talloc_zero(r, struct samr_Password);
3790
if (r->out.new_owf_password == NULL) {
3795
r->out.old_owf_password = talloc_zero(r, struct samr_Password);
3796
if (r->out.old_owf_password == NULL) {
3801
r->out.trust_info = talloc_zero(r, struct netr_TrustInfo *);
3802
if (r->out.trust_info == NULL) {
3807
r->out.result = _netr_ServerGetTrustInfo(p, r);
3809
if (p->rng_fault_state) {
3811
/* Return true here, srv_pipe_hnd.c will take care */
3815
if (DEBUGLEVEL >= 10) {
3816
NDR_PRINT_OUT_DEBUG(netr_ServerGetTrustInfo, r);
3819
push = ndr_push_init_ctx(r, NULL);
3825
ndr_err = call->ndr_push(push, NDR_OUT, r);
3826
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3831
blob = ndr_push_blob(push);
3832
if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3844
static struct api_struct api_netlogon_cmds[] =
3846
{"NETR_LOGONUASLOGON", NDR_NETR_LOGONUASLOGON, api_netr_LogonUasLogon},
3847
{"NETR_LOGONUASLOGOFF", NDR_NETR_LOGONUASLOGOFF, api_netr_LogonUasLogoff},
3848
{"NETR_LOGONSAMLOGON", NDR_NETR_LOGONSAMLOGON, api_netr_LogonSamLogon},
3849
{"NETR_LOGONSAMLOGOFF", NDR_NETR_LOGONSAMLOGOFF, api_netr_LogonSamLogoff},
3850
{"NETR_SERVERREQCHALLENGE", NDR_NETR_SERVERREQCHALLENGE, api_netr_ServerReqChallenge},
3851
{"NETR_SERVERAUTHENTICATE", NDR_NETR_SERVERAUTHENTICATE, api_netr_ServerAuthenticate},
3852
{"NETR_SERVERPASSWORDSET", NDR_NETR_SERVERPASSWORDSET, api_netr_ServerPasswordSet},
3853
{"NETR_DATABASEDELTAS", NDR_NETR_DATABASEDELTAS, api_netr_DatabaseDeltas},
3854
{"NETR_DATABASESYNC", NDR_NETR_DATABASESYNC, api_netr_DatabaseSync},
3855
{"NETR_ACCOUNTDELTAS", NDR_NETR_ACCOUNTDELTAS, api_netr_AccountDeltas},
3856
{"NETR_ACCOUNTSYNC", NDR_NETR_ACCOUNTSYNC, api_netr_AccountSync},
3857
{"NETR_GETDCNAME", NDR_NETR_GETDCNAME, api_netr_GetDcName},
3858
{"NETR_LOGONCONTROL", NDR_NETR_LOGONCONTROL, api_netr_LogonControl},
3859
{"NETR_GETANYDCNAME", NDR_NETR_GETANYDCNAME, api_netr_GetAnyDCName},
3860
{"NETR_LOGONCONTROL2", NDR_NETR_LOGONCONTROL2, api_netr_LogonControl2},
3861
{"NETR_SERVERAUTHENTICATE2", NDR_NETR_SERVERAUTHENTICATE2, api_netr_ServerAuthenticate2},
3862
{"NETR_DATABASESYNC2", NDR_NETR_DATABASESYNC2, api_netr_DatabaseSync2},
3863
{"NETR_DATABASEREDO", NDR_NETR_DATABASEREDO, api_netr_DatabaseRedo},
3864
{"NETR_LOGONCONTROL2EX", NDR_NETR_LOGONCONTROL2EX, api_netr_LogonControl2Ex},
3865
{"NETR_NETRENUMERATETRUSTEDDOMAINS", NDR_NETR_NETRENUMERATETRUSTEDDOMAINS, api_netr_NetrEnumerateTrustedDomains},
3866
{"NETR_DSRGETDCNAME", NDR_NETR_DSRGETDCNAME, api_netr_DsRGetDCName},
3867
{"NETR_LOGONGETCAPABILITIES", NDR_NETR_LOGONGETCAPABILITIES, api_netr_LogonGetCapabilities},
3868
{"NETR_NETRLOGONSETSERVICEBITS", NDR_NETR_NETRLOGONSETSERVICEBITS, api_netr_NETRLOGONSETSERVICEBITS},
3869
{"NETR_LOGONGETTRUSTRID", NDR_NETR_LOGONGETTRUSTRID, api_netr_LogonGetTrustRid},
3870
{"NETR_NETRLOGONCOMPUTESERVERDIGEST", NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST, api_netr_NETRLOGONCOMPUTESERVERDIGEST},
3871
{"NETR_NETRLOGONCOMPUTECLIENTDIGEST", NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST, api_netr_NETRLOGONCOMPUTECLIENTDIGEST},
3872
{"NETR_SERVERAUTHENTICATE3", NDR_NETR_SERVERAUTHENTICATE3, api_netr_ServerAuthenticate3},
3873
{"NETR_DSRGETDCNAMEEX", NDR_NETR_DSRGETDCNAMEEX, api_netr_DsRGetDCNameEx},
3874
{"NETR_DSRGETSITENAME", NDR_NETR_DSRGETSITENAME, api_netr_DsRGetSiteName},
3875
{"NETR_LOGONGETDOMAININFO", NDR_NETR_LOGONGETDOMAININFO, api_netr_LogonGetDomainInfo},
3876
{"NETR_SERVERPASSWORDSET2", NDR_NETR_SERVERPASSWORDSET2, api_netr_ServerPasswordSet2},
3877
{"NETR_SERVERPASSWORDGET", NDR_NETR_SERVERPASSWORDGET, api_netr_ServerPasswordGet},
3878
{"NETR_NETRLOGONSENDTOSAM", NDR_NETR_NETRLOGONSENDTOSAM, api_netr_NETRLOGONSENDTOSAM},
3879
{"NETR_DSRADDRESSTOSITENAMESW", NDR_NETR_DSRADDRESSTOSITENAMESW, api_netr_DsRAddressToSitenamesW},
3880
{"NETR_DSRGETDCNAMEEX2", NDR_NETR_DSRGETDCNAMEEX2, api_netr_DsRGetDCNameEx2},
3881
{"NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN", NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN, api_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN},
3882
{"NETR_NETRENUMERATETRUSTEDDOMAINSEX", NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX, api_netr_NetrEnumerateTrustedDomainsEx},
3883
{"NETR_DSRADDRESSTOSITENAMESEXW", NDR_NETR_DSRADDRESSTOSITENAMESEXW, api_netr_DsRAddressToSitenamesExW},
3884
{"NETR_DSRGETDCSITECOVERAGEW", NDR_NETR_DSRGETDCSITECOVERAGEW, api_netr_DsrGetDcSiteCoverageW},
3885
{"NETR_LOGONSAMLOGONEX", NDR_NETR_LOGONSAMLOGONEX, api_netr_LogonSamLogonEx},
3886
{"NETR_DSRENUMERATEDOMAINTRUSTS", NDR_NETR_DSRENUMERATEDOMAINTRUSTS, api_netr_DsrEnumerateDomainTrusts},
3887
{"NETR_DSRDEREGISTERDNSHOSTRECORDS", NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS, api_netr_DsrDeregisterDNSHostRecords},
3888
{"NETR_SERVERTRUSTPASSWORDSGET", NDR_NETR_SERVERTRUSTPASSWORDSGET, api_netr_ServerTrustPasswordsGet},
3889
{"NETR_DSRGETFORESTTRUSTINFORMATION", NDR_NETR_DSRGETFORESTTRUSTINFORMATION, api_netr_DsRGetForestTrustInformation},
3890
{"NETR_GETFORESTTRUSTINFORMATION", NDR_NETR_GETFORESTTRUSTINFORMATION, api_netr_GetForestTrustInformation},
3891
{"NETR_LOGONSAMLOGONWITHFLAGS", NDR_NETR_LOGONSAMLOGONWITHFLAGS, api_netr_LogonSamLogonWithFlags},
3892
{"NETR_SERVERGETTRUSTINFO", NDR_NETR_SERVERGETTRUSTINFO, api_netr_ServerGetTrustInfo},
3895
void netlogon_get_pipe_fns(struct api_struct **fns, int *n_fns)
3897
*fns = api_netlogon_cmds;
3898
*n_fns = sizeof(api_netlogon_cmds) / sizeof(struct api_struct);
3901
NTSTATUS rpc_netlogon_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
3903
if (cli->pipes_struct == NULL) {
3904
return NT_STATUS_INVALID_PARAMETER;
3909
case NDR_NETR_LOGONUASLOGON: {
3910
struct netr_LogonUasLogon *r = (struct netr_LogonUasLogon *)_r;
3911
ZERO_STRUCT(r->out);
3912
r->out.info = talloc_zero(mem_ctx, struct netr_UasInfo *);
3913
if (r->out.info == NULL) {
3914
return NT_STATUS_NO_MEMORY;
3917
r->out.result = _netr_LogonUasLogon(cli->pipes_struct, r);
3918
return NT_STATUS_OK;
3921
case NDR_NETR_LOGONUASLOGOFF: {
3922
struct netr_LogonUasLogoff *r = (struct netr_LogonUasLogoff *)_r;
3923
ZERO_STRUCT(r->out);
3924
r->out.info = talloc_zero(mem_ctx, struct netr_UasLogoffInfo);
3925
if (r->out.info == NULL) {
3926
return NT_STATUS_NO_MEMORY;
3929
r->out.result = _netr_LogonUasLogoff(cli->pipes_struct, r);
3930
return NT_STATUS_OK;
3933
case NDR_NETR_LOGONSAMLOGON: {
3934
struct netr_LogonSamLogon *r = (struct netr_LogonSamLogon *)_r;
3935
ZERO_STRUCT(r->out);
3936
r->out.return_authenticator = r->in.return_authenticator;
3937
r->out.validation = talloc_zero(mem_ctx, union netr_Validation);
3938
if (r->out.validation == NULL) {
3939
return NT_STATUS_NO_MEMORY;
3942
r->out.authoritative = talloc_zero(mem_ctx, uint8_t);
3943
if (r->out.authoritative == NULL) {
3944
return NT_STATUS_NO_MEMORY;
3947
r->out.result = _netr_LogonSamLogon(cli->pipes_struct, r);
3948
return NT_STATUS_OK;
3951
case NDR_NETR_LOGONSAMLOGOFF: {
3952
struct netr_LogonSamLogoff *r = (struct netr_LogonSamLogoff *)_r;
3953
ZERO_STRUCT(r->out);
3954
r->out.return_authenticator = r->in.return_authenticator;
3955
r->out.result = _netr_LogonSamLogoff(cli->pipes_struct, r);
3956
return NT_STATUS_OK;
3959
case NDR_NETR_SERVERREQCHALLENGE: {
3960
struct netr_ServerReqChallenge *r = (struct netr_ServerReqChallenge *)_r;
3961
ZERO_STRUCT(r->out);
3962
r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
3963
if (r->out.return_credentials == NULL) {
3964
return NT_STATUS_NO_MEMORY;
3967
r->out.result = _netr_ServerReqChallenge(cli->pipes_struct, r);
3968
return NT_STATUS_OK;
3971
case NDR_NETR_SERVERAUTHENTICATE: {
3972
struct netr_ServerAuthenticate *r = (struct netr_ServerAuthenticate *)_r;
3973
ZERO_STRUCT(r->out);
3974
r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
3975
if (r->out.return_credentials == NULL) {
3976
return NT_STATUS_NO_MEMORY;
3979
r->out.result = _netr_ServerAuthenticate(cli->pipes_struct, r);
3980
return NT_STATUS_OK;
3983
case NDR_NETR_SERVERPASSWORDSET: {
3984
struct netr_ServerPasswordSet *r = (struct netr_ServerPasswordSet *)_r;
3985
ZERO_STRUCT(r->out);
3986
r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
3987
if (r->out.return_authenticator == NULL) {
3988
return NT_STATUS_NO_MEMORY;
3991
r->out.result = _netr_ServerPasswordSet(cli->pipes_struct, r);
3992
return NT_STATUS_OK;
3995
case NDR_NETR_DATABASEDELTAS: {
3996
struct netr_DatabaseDeltas *r = (struct netr_DatabaseDeltas *)_r;
3997
ZERO_STRUCT(r->out);
3998
r->out.return_authenticator = r->in.return_authenticator;
3999
r->out.sequence_num = r->in.sequence_num;
4000
r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
4001
if (r->out.delta_enum_array == NULL) {
4002
return NT_STATUS_NO_MEMORY;
4005
r->out.result = _netr_DatabaseDeltas(cli->pipes_struct, r);
4006
return NT_STATUS_OK;
4009
case NDR_NETR_DATABASESYNC: {
4010
struct netr_DatabaseSync *r = (struct netr_DatabaseSync *)_r;
4011
ZERO_STRUCT(r->out);
4012
r->out.return_authenticator = r->in.return_authenticator;
4013
r->out.sync_context = r->in.sync_context;
4014
r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
4015
if (r->out.delta_enum_array == NULL) {
4016
return NT_STATUS_NO_MEMORY;
4019
r->out.result = _netr_DatabaseSync(cli->pipes_struct, r);
4020
return NT_STATUS_OK;
4023
case NDR_NETR_ACCOUNTDELTAS: {
4024
struct netr_AccountDeltas *r = (struct netr_AccountDeltas *)_r;
4025
ZERO_STRUCT(r->out);
4026
r->out.return_authenticator = r->in.return_authenticator;
4027
r->out.buffer = talloc_zero(mem_ctx, struct netr_AccountBuffer);
4028
if (r->out.buffer == NULL) {
4029
return NT_STATUS_NO_MEMORY;
4032
r->out.count_returned = talloc_zero(mem_ctx, uint32_t);
4033
if (r->out.count_returned == NULL) {
4034
return NT_STATUS_NO_MEMORY;
4037
r->out.total_entries = talloc_zero(mem_ctx, uint32_t);
4038
if (r->out.total_entries == NULL) {
4039
return NT_STATUS_NO_MEMORY;
4042
r->out.recordid = talloc_zero(mem_ctx, struct netr_UAS_INFO_0);
4043
if (r->out.recordid == NULL) {
4044
return NT_STATUS_NO_MEMORY;
4047
r->out.result = _netr_AccountDeltas(cli->pipes_struct, r);
4048
return NT_STATUS_OK;
4051
case NDR_NETR_ACCOUNTSYNC: {
4052
struct netr_AccountSync *r = (struct netr_AccountSync *)_r;
4053
ZERO_STRUCT(r->out);
4054
r->out.return_authenticator = r->in.return_authenticator;
4055
r->out.recordid = r->in.recordid;
4056
r->out.buffer = talloc_zero(mem_ctx, struct netr_AccountBuffer);
4057
if (r->out.buffer == NULL) {
4058
return NT_STATUS_NO_MEMORY;
4061
r->out.count_returned = talloc_zero(mem_ctx, uint32_t);
4062
if (r->out.count_returned == NULL) {
4063
return NT_STATUS_NO_MEMORY;
4066
r->out.total_entries = talloc_zero(mem_ctx, uint32_t);
4067
if (r->out.total_entries == NULL) {
4068
return NT_STATUS_NO_MEMORY;
4071
r->out.next_reference = talloc_zero(mem_ctx, uint32_t);
4072
if (r->out.next_reference == NULL) {
4073
return NT_STATUS_NO_MEMORY;
4076
r->out.result = _netr_AccountSync(cli->pipes_struct, r);
4077
return NT_STATUS_OK;
4080
case NDR_NETR_GETDCNAME: {
4081
struct netr_GetDcName *r = (struct netr_GetDcName *)_r;
4082
ZERO_STRUCT(r->out);
4083
r->out.dcname = talloc_zero(mem_ctx, const char *);
4084
if (r->out.dcname == NULL) {
4085
return NT_STATUS_NO_MEMORY;
4088
r->out.result = _netr_GetDcName(cli->pipes_struct, r);
4089
return NT_STATUS_OK;
4092
case NDR_NETR_LOGONCONTROL: {
4093
struct netr_LogonControl *r = (struct netr_LogonControl *)_r;
4094
ZERO_STRUCT(r->out);
4095
r->out.info = talloc_zero(mem_ctx, union netr_CONTROL_QUERY_INFORMATION);
4096
if (r->out.info == NULL) {
4097
return NT_STATUS_NO_MEMORY;
4100
r->out.result = _netr_LogonControl(cli->pipes_struct, r);
4101
return NT_STATUS_OK;
4104
case NDR_NETR_GETANYDCNAME: {
4105
struct netr_GetAnyDCName *r = (struct netr_GetAnyDCName *)_r;
4106
ZERO_STRUCT(r->out);
4107
r->out.dcname = talloc_zero(mem_ctx, const char *);
4108
if (r->out.dcname == NULL) {
4109
return NT_STATUS_NO_MEMORY;
4112
r->out.result = _netr_GetAnyDCName(cli->pipes_struct, r);
4113
return NT_STATUS_OK;
4116
case NDR_NETR_LOGONCONTROL2: {
4117
struct netr_LogonControl2 *r = (struct netr_LogonControl2 *)_r;
4118
ZERO_STRUCT(r->out);
4119
r->out.query = talloc_zero(mem_ctx, union netr_CONTROL_QUERY_INFORMATION);
4120
if (r->out.query == NULL) {
4121
return NT_STATUS_NO_MEMORY;
4124
r->out.result = _netr_LogonControl2(cli->pipes_struct, r);
4125
return NT_STATUS_OK;
4128
case NDR_NETR_SERVERAUTHENTICATE2: {
4129
struct netr_ServerAuthenticate2 *r = (struct netr_ServerAuthenticate2 *)_r;
4130
ZERO_STRUCT(r->out);
4131
r->out.negotiate_flags = r->in.negotiate_flags;
4132
r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
4133
if (r->out.return_credentials == NULL) {
4134
return NT_STATUS_NO_MEMORY;
4137
r->out.result = _netr_ServerAuthenticate2(cli->pipes_struct, r);
4138
return NT_STATUS_OK;
4141
case NDR_NETR_DATABASESYNC2: {
4142
struct netr_DatabaseSync2 *r = (struct netr_DatabaseSync2 *)_r;
4143
ZERO_STRUCT(r->out);
4144
r->out.return_authenticator = r->in.return_authenticator;
4145
r->out.sync_context = r->in.sync_context;
4146
r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
4147
if (r->out.delta_enum_array == NULL) {
4148
return NT_STATUS_NO_MEMORY;
4151
r->out.result = _netr_DatabaseSync2(cli->pipes_struct, r);
4152
return NT_STATUS_OK;
4155
case NDR_NETR_DATABASEREDO: {
4156
struct netr_DatabaseRedo *r = (struct netr_DatabaseRedo *)_r;
4157
ZERO_STRUCT(r->out);
4158
r->out.return_authenticator = r->in.return_authenticator;
4159
r->out.delta_enum_array = talloc_zero(mem_ctx, struct netr_DELTA_ENUM_ARRAY *);
4160
if (r->out.delta_enum_array == NULL) {
4161
return NT_STATUS_NO_MEMORY;
4164
r->out.result = _netr_DatabaseRedo(cli->pipes_struct, r);
4165
return NT_STATUS_OK;
4168
case NDR_NETR_LOGONCONTROL2EX: {
4169
struct netr_LogonControl2Ex *r = (struct netr_LogonControl2Ex *)_r;
4170
ZERO_STRUCT(r->out);
4171
r->out.query = talloc_zero(mem_ctx, union netr_CONTROL_QUERY_INFORMATION);
4172
if (r->out.query == NULL) {
4173
return NT_STATUS_NO_MEMORY;
4176
r->out.result = _netr_LogonControl2Ex(cli->pipes_struct, r);
4177
return NT_STATUS_OK;
4180
case NDR_NETR_NETRENUMERATETRUSTEDDOMAINS: {
4181
struct netr_NetrEnumerateTrustedDomains *r = (struct netr_NetrEnumerateTrustedDomains *)_r;
4182
ZERO_STRUCT(r->out);
4183
r->out.trusted_domains_blob = talloc_zero(mem_ctx, struct netr_Blob);
4184
if (r->out.trusted_domains_blob == NULL) {
4185
return NT_STATUS_NO_MEMORY;
4188
r->out.result = _netr_NetrEnumerateTrustedDomains(cli->pipes_struct, r);
4189
return NT_STATUS_OK;
4192
case NDR_NETR_DSRGETDCNAME: {
4193
struct netr_DsRGetDCName *r = (struct netr_DsRGetDCName *)_r;
4194
ZERO_STRUCT(r->out);
4195
r->out.info = talloc_zero(mem_ctx, struct netr_DsRGetDCNameInfo *);
4196
if (r->out.info == NULL) {
4197
return NT_STATUS_NO_MEMORY;
4200
r->out.result = _netr_DsRGetDCName(cli->pipes_struct, r);
4201
return NT_STATUS_OK;
4204
case NDR_NETR_LOGONGETCAPABILITIES: {
4205
struct netr_LogonGetCapabilities *r = (struct netr_LogonGetCapabilities *)_r;
4206
ZERO_STRUCT(r->out);
4207
r->out.return_authenticator = r->in.return_authenticator;
4208
r->out.capabilities = talloc_zero(mem_ctx, union netr_Capabilities);
4209
if (r->out.capabilities == NULL) {
4210
return NT_STATUS_NO_MEMORY;
4213
r->out.result = _netr_LogonGetCapabilities(cli->pipes_struct, r);
4214
return NT_STATUS_OK;
4217
case NDR_NETR_NETRLOGONSETSERVICEBITS: {
4218
struct netr_NETRLOGONSETSERVICEBITS *r = (struct netr_NETRLOGONSETSERVICEBITS *)_r;
4219
r->out.result = _netr_NETRLOGONSETSERVICEBITS(cli->pipes_struct, r);
4220
return NT_STATUS_OK;
4223
case NDR_NETR_LOGONGETTRUSTRID: {
4224
struct netr_LogonGetTrustRid *r = (struct netr_LogonGetTrustRid *)_r;
4225
ZERO_STRUCT(r->out);
4226
r->out.rid = talloc_zero(mem_ctx, uint32_t);
4227
if (r->out.rid == NULL) {
4228
return NT_STATUS_NO_MEMORY;
4231
r->out.result = _netr_LogonGetTrustRid(cli->pipes_struct, r);
4232
return NT_STATUS_OK;
4235
case NDR_NETR_NETRLOGONCOMPUTESERVERDIGEST: {
4236
struct netr_NETRLOGONCOMPUTESERVERDIGEST *r = (struct netr_NETRLOGONCOMPUTESERVERDIGEST *)_r;
4237
r->out.result = _netr_NETRLOGONCOMPUTESERVERDIGEST(cli->pipes_struct, r);
4238
return NT_STATUS_OK;
4241
case NDR_NETR_NETRLOGONCOMPUTECLIENTDIGEST: {
4242
struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r = (struct netr_NETRLOGONCOMPUTECLIENTDIGEST *)_r;
4243
r->out.result = _netr_NETRLOGONCOMPUTECLIENTDIGEST(cli->pipes_struct, r);
4244
return NT_STATUS_OK;
4247
case NDR_NETR_SERVERAUTHENTICATE3: {
4248
struct netr_ServerAuthenticate3 *r = (struct netr_ServerAuthenticate3 *)_r;
4249
ZERO_STRUCT(r->out);
4250
r->out.negotiate_flags = r->in.negotiate_flags;
4251
r->out.return_credentials = talloc_zero(mem_ctx, struct netr_Credential);
4252
if (r->out.return_credentials == NULL) {
4253
return NT_STATUS_NO_MEMORY;
4256
r->out.rid = talloc_zero(mem_ctx, uint32_t);
4257
if (r->out.rid == NULL) {
4258
return NT_STATUS_NO_MEMORY;
4261
r->out.result = _netr_ServerAuthenticate3(cli->pipes_struct, r);
4262
return NT_STATUS_OK;
4265
case NDR_NETR_DSRGETDCNAMEEX: {
4266
struct netr_DsRGetDCNameEx *r = (struct netr_DsRGetDCNameEx *)_r;
4267
ZERO_STRUCT(r->out);
4268
r->out.info = talloc_zero(mem_ctx, struct netr_DsRGetDCNameInfo *);
4269
if (r->out.info == NULL) {
4270
return NT_STATUS_NO_MEMORY;
4273
r->out.result = _netr_DsRGetDCNameEx(cli->pipes_struct, r);
4274
return NT_STATUS_OK;
4277
case NDR_NETR_DSRGETSITENAME: {
4278
struct netr_DsRGetSiteName *r = (struct netr_DsRGetSiteName *)_r;
4279
ZERO_STRUCT(r->out);
4280
r->out.site = talloc_zero(mem_ctx, const char *);
4281
if (r->out.site == NULL) {
4282
return NT_STATUS_NO_MEMORY;
4285
r->out.result = _netr_DsRGetSiteName(cli->pipes_struct, r);
4286
return NT_STATUS_OK;
4289
case NDR_NETR_LOGONGETDOMAININFO: {
4290
struct netr_LogonGetDomainInfo *r = (struct netr_LogonGetDomainInfo *)_r;
4291
ZERO_STRUCT(r->out);
4292
r->out.return_authenticator = r->in.return_authenticator;
4293
r->out.info = talloc_zero(mem_ctx, union netr_DomainInfo);
4294
if (r->out.info == NULL) {
4295
return NT_STATUS_NO_MEMORY;
4298
r->out.result = _netr_LogonGetDomainInfo(cli->pipes_struct, r);
4299
return NT_STATUS_OK;
4302
case NDR_NETR_SERVERPASSWORDSET2: {
4303
struct netr_ServerPasswordSet2 *r = (struct netr_ServerPasswordSet2 *)_r;
4304
ZERO_STRUCT(r->out);
4305
r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
4306
if (r->out.return_authenticator == NULL) {
4307
return NT_STATUS_NO_MEMORY;
4310
r->out.result = _netr_ServerPasswordSet2(cli->pipes_struct, r);
4311
return NT_STATUS_OK;
4314
case NDR_NETR_SERVERPASSWORDGET: {
4315
struct netr_ServerPasswordGet *r = (struct netr_ServerPasswordGet *)_r;
4316
ZERO_STRUCT(r->out);
4317
r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
4318
if (r->out.return_authenticator == NULL) {
4319
return NT_STATUS_NO_MEMORY;
4322
r->out.password = talloc_zero(mem_ctx, struct samr_Password);
4323
if (r->out.password == NULL) {
4324
return NT_STATUS_NO_MEMORY;
4327
r->out.result = _netr_ServerPasswordGet(cli->pipes_struct, r);
4328
return NT_STATUS_OK;
4331
case NDR_NETR_NETRLOGONSENDTOSAM: {
4332
struct netr_NETRLOGONSENDTOSAM *r = (struct netr_NETRLOGONSENDTOSAM *)_r;
4333
r->out.result = _netr_NETRLOGONSENDTOSAM(cli->pipes_struct, r);
4334
return NT_STATUS_OK;
4337
case NDR_NETR_DSRADDRESSTOSITENAMESW: {
4338
struct netr_DsRAddressToSitenamesW *r = (struct netr_DsRAddressToSitenamesW *)_r;
4339
ZERO_STRUCT(r->out);
4340
r->out.ctr = talloc_zero(mem_ctx, struct netr_DsRAddressToSitenamesWCtr *);
4341
if (r->out.ctr == NULL) {
4342
return NT_STATUS_NO_MEMORY;
4345
r->out.result = _netr_DsRAddressToSitenamesW(cli->pipes_struct, r);
4346
return NT_STATUS_OK;
4349
case NDR_NETR_DSRGETDCNAMEEX2: {
4350
struct netr_DsRGetDCNameEx2 *r = (struct netr_DsRGetDCNameEx2 *)_r;
4351
ZERO_STRUCT(r->out);
4352
r->out.info = talloc_zero(mem_ctx, struct netr_DsRGetDCNameInfo *);
4353
if (r->out.info == NULL) {
4354
return NT_STATUS_NO_MEMORY;
4357
r->out.result = _netr_DsRGetDCNameEx2(cli->pipes_struct, r);
4358
return NT_STATUS_OK;
4361
case NDR_NETR_NETRLOGONGETTIMESERVICEPARENTDOMAIN: {
4362
struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r = (struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *)_r;
4363
r->out.result = _netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(cli->pipes_struct, r);
4364
return NT_STATUS_OK;
4367
case NDR_NETR_NETRENUMERATETRUSTEDDOMAINSEX: {
4368
struct netr_NetrEnumerateTrustedDomainsEx *r = (struct netr_NetrEnumerateTrustedDomainsEx *)_r;
4369
ZERO_STRUCT(r->out);
4370
r->out.dom_trust_list = talloc_zero(mem_ctx, struct netr_DomainTrustList);
4371
if (r->out.dom_trust_list == NULL) {
4372
return NT_STATUS_NO_MEMORY;
4375
r->out.result = _netr_NetrEnumerateTrustedDomainsEx(cli->pipes_struct, r);
4376
return NT_STATUS_OK;
4379
case NDR_NETR_DSRADDRESSTOSITENAMESEXW: {
4380
struct netr_DsRAddressToSitenamesExW *r = (struct netr_DsRAddressToSitenamesExW *)_r;
4381
ZERO_STRUCT(r->out);
4382
r->out.ctr = talloc_zero(mem_ctx, struct netr_DsRAddressToSitenamesExWCtr *);
4383
if (r->out.ctr == NULL) {
4384
return NT_STATUS_NO_MEMORY;
4387
r->out.result = _netr_DsRAddressToSitenamesExW(cli->pipes_struct, r);
4388
return NT_STATUS_OK;
4391
case NDR_NETR_DSRGETDCSITECOVERAGEW: {
4392
struct netr_DsrGetDcSiteCoverageW *r = (struct netr_DsrGetDcSiteCoverageW *)_r;
4393
ZERO_STRUCT(r->out);
4394
r->out.ctr = talloc_zero(mem_ctx, struct DcSitesCtr *);
4395
if (r->out.ctr == NULL) {
4396
return NT_STATUS_NO_MEMORY;
4399
r->out.result = _netr_DsrGetDcSiteCoverageW(cli->pipes_struct, r);
4400
return NT_STATUS_OK;
4403
case NDR_NETR_LOGONSAMLOGONEX: {
4404
struct netr_LogonSamLogonEx *r = (struct netr_LogonSamLogonEx *)_r;
4405
ZERO_STRUCT(r->out);
4406
r->out.flags = r->in.flags;
4407
r->out.validation = talloc_zero(mem_ctx, union netr_Validation);
4408
if (r->out.validation == NULL) {
4409
return NT_STATUS_NO_MEMORY;
4412
r->out.authoritative = talloc_zero(mem_ctx, uint8_t);
4413
if (r->out.authoritative == NULL) {
4414
return NT_STATUS_NO_MEMORY;
4417
r->out.result = _netr_LogonSamLogonEx(cli->pipes_struct, r);
4418
return NT_STATUS_OK;
4421
case NDR_NETR_DSRENUMERATEDOMAINTRUSTS: {
4422
struct netr_DsrEnumerateDomainTrusts *r = (struct netr_DsrEnumerateDomainTrusts *)_r;
4423
ZERO_STRUCT(r->out);
4424
r->out.trusts = talloc_zero(mem_ctx, struct netr_DomainTrustList);
4425
if (r->out.trusts == NULL) {
4426
return NT_STATUS_NO_MEMORY;
4429
r->out.result = _netr_DsrEnumerateDomainTrusts(cli->pipes_struct, r);
4430
return NT_STATUS_OK;
4433
case NDR_NETR_DSRDEREGISTERDNSHOSTRECORDS: {
4434
struct netr_DsrDeregisterDNSHostRecords *r = (struct netr_DsrDeregisterDNSHostRecords *)_r;
4435
r->out.result = _netr_DsrDeregisterDNSHostRecords(cli->pipes_struct, r);
4436
return NT_STATUS_OK;
4439
case NDR_NETR_SERVERTRUSTPASSWORDSGET: {
4440
struct netr_ServerTrustPasswordsGet *r = (struct netr_ServerTrustPasswordsGet *)_r;
4441
ZERO_STRUCT(r->out);
4442
r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
4443
if (r->out.return_authenticator == NULL) {
4444
return NT_STATUS_NO_MEMORY;
4447
r->out.password = talloc_zero(mem_ctx, struct samr_Password);
4448
if (r->out.password == NULL) {
4449
return NT_STATUS_NO_MEMORY;
4452
r->out.password2 = talloc_zero(mem_ctx, struct samr_Password);
4453
if (r->out.password2 == NULL) {
4454
return NT_STATUS_NO_MEMORY;
4457
r->out.result = _netr_ServerTrustPasswordsGet(cli->pipes_struct, r);
4458
return NT_STATUS_OK;
4461
case NDR_NETR_DSRGETFORESTTRUSTINFORMATION: {
4462
struct netr_DsRGetForestTrustInformation *r = (struct netr_DsRGetForestTrustInformation *)_r;
4463
ZERO_STRUCT(r->out);
4464
r->out.forest_trust_info = talloc_zero(mem_ctx, struct lsa_ForestTrustInformation *);
4465
if (r->out.forest_trust_info == NULL) {
4466
return NT_STATUS_NO_MEMORY;
4469
r->out.result = _netr_DsRGetForestTrustInformation(cli->pipes_struct, r);
4470
return NT_STATUS_OK;
4473
case NDR_NETR_GETFORESTTRUSTINFORMATION: {
4474
struct netr_GetForestTrustInformation *r = (struct netr_GetForestTrustInformation *)_r;
4475
ZERO_STRUCT(r->out);
4476
r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
4477
if (r->out.return_authenticator == NULL) {
4478
return NT_STATUS_NO_MEMORY;
4481
r->out.forest_trust_info = talloc_zero(mem_ctx, struct lsa_ForestTrustInformation *);
4482
if (r->out.forest_trust_info == NULL) {
4483
return NT_STATUS_NO_MEMORY;
4486
r->out.result = _netr_GetForestTrustInformation(cli->pipes_struct, r);
4487
return NT_STATUS_OK;
4490
case NDR_NETR_LOGONSAMLOGONWITHFLAGS: {
4491
struct netr_LogonSamLogonWithFlags *r = (struct netr_LogonSamLogonWithFlags *)_r;
4492
ZERO_STRUCT(r->out);
4493
r->out.return_authenticator = r->in.return_authenticator;
4494
r->out.flags = r->in.flags;
4495
r->out.validation = talloc_zero(mem_ctx, union netr_Validation);
4496
if (r->out.validation == NULL) {
4497
return NT_STATUS_NO_MEMORY;
4500
r->out.authoritative = talloc_zero(mem_ctx, uint8_t);
4501
if (r->out.authoritative == NULL) {
4502
return NT_STATUS_NO_MEMORY;
4505
r->out.result = _netr_LogonSamLogonWithFlags(cli->pipes_struct, r);
4506
return NT_STATUS_OK;
4509
case NDR_NETR_SERVERGETTRUSTINFO: {
4510
struct netr_ServerGetTrustInfo *r = (struct netr_ServerGetTrustInfo *)_r;
4511
ZERO_STRUCT(r->out);
4512
r->out.return_authenticator = talloc_zero(mem_ctx, struct netr_Authenticator);
4513
if (r->out.return_authenticator == NULL) {
4514
return NT_STATUS_NO_MEMORY;
4517
r->out.new_owf_password = talloc_zero(mem_ctx, struct samr_Password);
4518
if (r->out.new_owf_password == NULL) {
4519
return NT_STATUS_NO_MEMORY;
4522
r->out.old_owf_password = talloc_zero(mem_ctx, struct samr_Password);
4523
if (r->out.old_owf_password == NULL) {
4524
return NT_STATUS_NO_MEMORY;
4527
r->out.trust_info = talloc_zero(mem_ctx, struct netr_TrustInfo *);
4528
if (r->out.trust_info == NULL) {
4529
return NT_STATUS_NO_MEMORY;
4532
r->out.result = _netr_ServerGetTrustInfo(cli->pipes_struct, r);
4533
return NT_STATUS_OK;
4537
return NT_STATUS_NOT_IMPLEMENTED;
4541
NTSTATUS rpc_netlogon_init(void)
4543
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "netlogon", "netlogon", &ndr_table_netlogon, api_netlogon_cmds, sizeof(api_netlogon_cmds) / sizeof(struct api_struct));