return true;
}
+#if 0
+
+ typedef [switch_type(uint32)] union {
+ [case(1)] netr_NegotiateFlags server_capabilities;
+ } netr_Capabilities;
+
+ NTSTATUS netr_LogonGetCapabilities(
+ [in] [string,charset(UTF16)] uint16 server_name[],
+ [in,unique] [string,charset(UTF16)] uint16 *computer_name,
+ [in,ref] netr_Authenticator *credential,
+ [in,out,ref] netr_Authenticator *return_authenticator,
+ [in] uint32 query_level,
+ [out,ref,switch_is(query_level)] netr_Capabilities *capabilities
+ );
+#endif
+static bool test_LogonGetCapabilities(struct torture_context *tctx,
+ struct dcerpc_pipe *p,
+ struct cli_credentials *machine_credentials)
+{
+ NTSTATUS status;
+ struct netr_LogonGetCapabilities r;
+ union netr_Capabilities caps;
+ struct netr_Authenticator a;
+ struct creds_CredentialState *creds;
+
+ if (!test_SetupCredentials3(p, tctx, 0,
+ machine_credentials, &creds)) {
+ return false;
+ }
+
+ ZERO_STRUCT(r);
+ ZERO_STRUCT(caps);
+
+ creds_client_authenticator(creds, &a);
+
+ r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+ r.in.computer_name = TEST_MACHINE_NAME;
+ r.in.credential = &a;
+ r.in.return_authenticator = &a;
+ r.out.return_authenticator = &a;
+ r.in.query_level = 1;
+ r.out.capabilities = ∩︀
+
+ torture_comment(tctx, "Testing netr_LogonGetCapabilities\n");
+
+ status = dcerpc_netr_LogonGetCapabilities(p, tctx, &r);
+ torture_assert_ntstatus_equal(tctx, status, NT_STATUS_NOT_IMPLEMENTED,
+ "netr_LogonGetCapabilities");
+ //torture_assert_ntstatus_ok(tctx, status, "netr_LogonGetCapabilities");
+// torture_assert(tctx, creds_client_check(creds, &a.cred), "Credential chaining failed");
+
+ torture_comment(tctx, "Testing netr_LogonGetCapabilities 2nd call\n");
+ creds_client_authenticator(creds, &a);
+
+ status = dcerpc_netr_LogonGetCapabilities(p, tctx, &r);
+ torture_assert_ntstatus_equal(tctx, status, NT_STATUS_NOT_IMPLEMENTED,
+ "netr_LogonGetCapabilities");
+ //torture_assert_ntstatus_ok(tctx, status, "netr_LogonGetCapabilities");
+// torture_assert(tctx, creds_client_check(creds, &a.cred), "Credential chaining failed");
+
+ return true;
+}
+
struct torture_suite *torture_rpc_netlogon(TALLOC_CTX *mem_ctx)
{
struct torture_suite *suite = torture_suite_create(mem_ctx, "NETLOGON");
tcase = torture_suite_add_machine_rpc_iface_tcase(suite, "netlogon",
&ndr_table_netlogon, TEST_MACHINE_NAME);
-
+/*
torture_rpc_tcase_add_test(tcase, "LogonUasLogon", test_LogonUasLogon);
torture_rpc_tcase_add_test(tcase, "LogonUasLogoff", test_LogonUasLogoff);
torture_rpc_tcase_add_test_creds(tcase, "SamLogon", test_SamLogon);
torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesW", test_netr_DsRAddressToSitenamesW);
torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesExW", test_netr_DsRAddressToSitenamesExW);
torture_rpc_tcase_add_test_creds(tcase, "ServerGetTrustInfo", test_netr_ServerGetTrustInfo);
+*/ torture_rpc_tcase_add_test_creds(tcase, "LogonGetCapabilities", test_LogonGetCapabilities);
return suite;
}