From f285af63676e4bafc9f136f8181c5856d2851d45 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 28 Oct 2008 19:03:50 +0100 Subject: s4-netlogon: merge netr_LogonSamLogon{Ex,WithFlags} from s3 idl. Guenther --- source4/torture/rpc/samlogon.c | 72 ++++++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 20 deletions(-) (limited to 'source4/torture/rpc/samlogon.c') diff --git a/source4/torture/rpc/samlogon.c b/source4/torture/rpc/samlogon.c index fc47a86730..9a707605e6 100644 --- a/source4/torture/rpc/samlogon.c +++ b/source4/torture/rpc/samlogon.c @@ -92,9 +92,9 @@ static NTSTATUS check_samlogon(struct samlogon_state *samlogon_state, struct netr_SamBaseInfo *base = NULL; uint16_t validation_level = 0; - samlogon_state->r.in.logon.network = &ninfo; - samlogon_state->r_ex.in.logon.network = &ninfo; - samlogon_state->r_flags.in.logon.network = &ninfo; + samlogon_state->r.in.logon->network = &ninfo; + samlogon_state->r_ex.in.logon->network = &ninfo; + samlogon_state->r_flags.in.logon->network = &ninfo; ninfo.identity_info.domain_name.string = samlogon_state->account_domain; ninfo.identity_info.parameter_control = parameter_control; @@ -170,17 +170,17 @@ static NTSTATUS check_samlogon(struct samlogon_state *samlogon_state, validation_level = r->in.validation_level; - creds_decrypt_samlogon(samlogon_state->creds, validation_level, &r->out.validation); + creds_decrypt_samlogon(samlogon_state->creds, validation_level, r->out.validation); switch (validation_level) { case 2: - base = &r->out.validation.sam2->base; + base = &r->out.validation->sam2->base; break; case 3: - base = &r->out.validation.sam3->base; + base = &r->out.validation->sam3->base; break; case 6: - base = &r->out.validation.sam6->base; + base = &r->out.validation->sam6->base; break; } break; @@ -195,17 +195,17 @@ static NTSTATUS check_samlogon(struct samlogon_state *samlogon_state, validation_level = r_ex->in.validation_level; - creds_decrypt_samlogon(samlogon_state->creds, validation_level, &r_ex->out.validation); + creds_decrypt_samlogon(samlogon_state->creds, validation_level, r_ex->out.validation); switch (validation_level) { case 2: - base = &r_ex->out.validation.sam2->base; + base = &r_ex->out.validation->sam2->base; break; case 3: - base = &r_ex->out.validation.sam3->base; + base = &r_ex->out.validation->sam3->base; break; case 6: - base = &r_ex->out.validation.sam6->base; + base = &r_ex->out.validation->sam6->base; break; } break; @@ -228,17 +228,17 @@ static NTSTATUS check_samlogon(struct samlogon_state *samlogon_state, validation_level = r_flags->in.validation_level; - creds_decrypt_samlogon(samlogon_state->creds, validation_level, &r_flags->out.validation); + creds_decrypt_samlogon(samlogon_state->creds, validation_level, r_flags->out.validation); switch (validation_level) { case 2: - base = &r_flags->out.validation.sam2->base; + base = &r_flags->out.validation->sam2->base; break; case 3: - base = &r_flags->out.validation.sam3->base; + base = &r_flags->out.validation->sam3->base; break; case 6: - base = &r_flags->out.validation.sam6->base; + base = &r_flags->out.validation->sam6->base; break; } break; @@ -1331,7 +1331,14 @@ static bool test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, NDR_NETR_LOGONSAMLOGONEX, NDR_NETR_LOGONSAMLOGONWITHFLAGS }; struct samlogon_state samlogon_state; - + + union netr_LogonLevel logon; + union netr_Validation validation; + uint8_t authoritative = 0; + uint32_t flags = 0; + + ZERO_STRUCT(logon); + d_printf("testing netr_LogonSamLogon and netr_LogonSamLogonWithFlags\n"); samlogon_state.comment = comment; @@ -1353,16 +1360,28 @@ static bool test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, samlogon_state.r_flags.in.computer_name = TEST_MACHINE_NAME; samlogon_state.r_flags.in.credential = &samlogon_state.auth; samlogon_state.r_flags.in.return_authenticator = &samlogon_state.auth2; - samlogon_state.r_flags.in.flags = 0; + samlogon_state.r_flags.in.flags = &flags; + samlogon_state.r_flags.in.logon = &logon; + samlogon_state.r_flags.out.validation = &validation; + samlogon_state.r_flags.out.authoritative = &authoritative; + samlogon_state.r_flags.out.flags = &flags; samlogon_state.r_ex.in.server_name = talloc_asprintf(fn_ctx, "\\\\%s", dcerpc_server_name(p)); samlogon_state.r_ex.in.computer_name = TEST_MACHINE_NAME; - samlogon_state.r_ex.in.flags = 0; + samlogon_state.r_ex.in.flags = &flags; + samlogon_state.r_ex.in.logon = &logon; + samlogon_state.r_ex.out.validation = &validation; + samlogon_state.r_ex.out.authoritative = &authoritative; + samlogon_state.r_ex.out.flags = &flags; samlogon_state.r.in.server_name = talloc_asprintf(fn_ctx, "\\\\%s", dcerpc_server_name(p)); samlogon_state.r.in.computer_name = TEST_MACHINE_NAME; samlogon_state.r.in.credential = &samlogon_state.auth; samlogon_state.r.in.return_authenticator = &samlogon_state.auth2; + samlogon_state.r.in.logon = &logon; + samlogon_state.r.out.validation = &validation; + samlogon_state.r.out.authoritative = &authoritative; + for (f=0;f