mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
s4-smbtorture: use torture_context for debugging output everywhere in libnet torture tests.
Mimir, please check. Guenther
This commit is contained in:
parent
f5eb8eb97f
commit
97a974e5b7
@ -29,7 +29,8 @@
|
||||
#define TEST_GROUPNAME "libnetgroupinfotest"
|
||||
|
||||
|
||||
static bool test_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
static bool test_groupinfo(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle,
|
||||
struct dom_sid2 *domain_sid, const char* group_name,
|
||||
uint32_t *rid)
|
||||
@ -45,10 +46,10 @@ static bool test_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
group.in.sid = dom_sid_string(mem_ctx, group_sid);
|
||||
group.in.level = level; /* this should be extended */
|
||||
|
||||
printf("Testing sync libnet_rpc_groupinfo (SID argument)\n");
|
||||
torture_comment(tctx, "Testing sync libnet_rpc_groupinfo (SID argument)\n");
|
||||
status = libnet_rpc_groupinfo(p, mem_ctx, &group);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -62,7 +63,7 @@ static bool test_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
printf("Testing sync libnet_rpc_groupinfo (groupname argument)\n");
|
||||
status = libnet_rpc_groupinfo(p, mem_ctx, &group);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Failed to call sync libnet_rpc_groupinfo - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Failed to call sync libnet_rpc_groupinfo - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -103,17 +104,17 @@ bool torture_groupinfo(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_group_create(b, mem_ctx, &h, TEST_GROUPNAME, &rid)) {
|
||||
if (!test_group_create(torture, b, mem_ctx, &h, TEST_GROUPNAME, &rid)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_groupinfo(p, mem_ctx, &h, &sid, TEST_GROUPNAME, &rid)) {
|
||||
if (!test_groupinfo(torture, p, mem_ctx, &h, &sid, TEST_GROUPNAME, &rid)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_group_cleanup(b, mem_ctx, &h, TEST_GROUPNAME)) {
|
||||
if (!test_group_cleanup(torture, b, mem_ctx, &h, TEST_GROUPNAME)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ bool torture_groupadd(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_group_cleanup(b, mem_ctx, &h, name)) {
|
||||
if (!test_group_cleanup(torture, b, mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
@ -28,7 +28,8 @@
|
||||
#include "param/param.h"
|
||||
|
||||
|
||||
static bool test_opendomain_samr(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_opendomain_samr(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, struct lsa_String *domname,
|
||||
uint32_t *access_mask, struct dom_sid **sid_p)
|
||||
{
|
||||
@ -39,7 +40,7 @@ static bool test_opendomain_samr(struct dcerpc_binding_handle *b, TALLOC_CTX *me
|
||||
struct dom_sid2 *sid = NULL;
|
||||
struct samr_OpenDomain r3;
|
||||
|
||||
printf("connecting\n");
|
||||
torture_comment(tctx, "connecting\n");
|
||||
|
||||
*access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
|
||||
@ -49,7 +50,7 @@ static bool test_opendomain_samr(struct dcerpc_binding_handle *b, TALLOC_CTX *me
|
||||
|
||||
status = dcerpc_samr_Connect_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Connect failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Connect failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -57,11 +58,11 @@ static bool test_opendomain_samr(struct dcerpc_binding_handle *b, TALLOC_CTX *me
|
||||
r2.in.domain_name = domname;
|
||||
r2.out.sid = &sid;
|
||||
|
||||
printf("domain lookup on %s\n", domname->string);
|
||||
torture_comment(tctx, "domain lookup on %s\n", domname->string);
|
||||
|
||||
status = dcerpc_samr_LookupDomain_r(b, mem_ctx, &r2);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("LookupDomain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "LookupDomain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -70,11 +71,11 @@ static bool test_opendomain_samr(struct dcerpc_binding_handle *b, TALLOC_CTX *me
|
||||
r3.in.sid = *sid_p = *r2.out.sid;
|
||||
r3.out.domain_handle = &domain_handle;
|
||||
|
||||
printf("opening domain\n");
|
||||
torture_comment(tctx, "opening domain\n");
|
||||
|
||||
status = dcerpc_samr_OpenDomain_r(b, mem_ctx, &r3);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("OpenDomain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "OpenDomain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
} else {
|
||||
*handle = domain_handle;
|
||||
@ -135,7 +136,7 @@ bool torture_domain_open_lsa(struct torture_context *torture)
|
||||
|
||||
ctx = libnet_context_init(torture->ev, torture->lp_ctx);
|
||||
if (ctx == NULL) {
|
||||
d_printf("failed to create libnet context\n");
|
||||
torture_comment(torture, "failed to create libnet context\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -148,7 +149,7 @@ bool torture_domain_open_lsa(struct torture_context *torture)
|
||||
|
||||
status = libnet_DomainOpen(ctx, torture, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
d_printf("failed to open domain on lsa service: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "failed to open domain on lsa service: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -159,7 +160,7 @@ bool torture_domain_open_lsa(struct torture_context *torture)
|
||||
|
||||
status = dcerpc_lsa_Close_r(ctx->lsa.pipe->binding_handle, ctx, &lsa_close);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
d_printf("failed to close domain on lsa service: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "failed to close domain on lsa service: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
}
|
||||
|
||||
@ -189,7 +190,7 @@ bool torture_domain_close_lsa(struct torture_context *torture)
|
||||
|
||||
ctx = libnet_context_init(torture->ev, torture->lp_ctx);
|
||||
if (ctx == NULL) {
|
||||
d_printf("failed to create libnet context\n");
|
||||
torture_comment(torture, "failed to create libnet context\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -200,7 +201,7 @@ bool torture_domain_close_lsa(struct torture_context *torture)
|
||||
status = dcerpc_pipe_connect_b(mem_ctx, &p, binding, &ndr_table_lsarpc,
|
||||
cmdline_credentials, torture->ev, torture->lp_ctx);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
d_printf("failed to connect to server: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "failed to connect to server: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -208,7 +209,7 @@ bool torture_domain_close_lsa(struct torture_context *torture)
|
||||
domain_name.string = lp_workgroup(torture->lp_ctx);
|
||||
|
||||
if (!test_opendomain_lsa(p->binding_handle, torture, &h, &domain_name, &access_mask)) {
|
||||
d_printf("failed to open domain on lsa service\n");
|
||||
torture_comment(torture, "failed to open domain on lsa service\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -262,7 +263,7 @@ bool torture_domain_open_samr(struct torture_context *torture)
|
||||
/*
|
||||
* Testing synchronous version
|
||||
*/
|
||||
printf("opening domain\n");
|
||||
torture_comment(torture, "opening domain\n");
|
||||
|
||||
io.in.type = DOMAIN_SAMR;
|
||||
io.in.domain_name = domain_name;
|
||||
@ -270,7 +271,7 @@ bool torture_domain_open_samr(struct torture_context *torture)
|
||||
|
||||
status = libnet_DomainOpen(ctx, mem_ctx, &io);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Composite domain open failed - %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "Composite domain open failed - %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -280,11 +281,11 @@ bool torture_domain_open_samr(struct torture_context *torture)
|
||||
r.in.handle = &domain_handle;
|
||||
r.out.handle = &handle;
|
||||
|
||||
printf("closing domain handle\n");
|
||||
torture_comment(torture, "closing domain handle\n");
|
||||
|
||||
status = dcerpc_samr_Close_r(ctx->samr.pipe->binding_handle, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Close failed - %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "Close failed - %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -318,7 +319,7 @@ bool torture_domain_close_samr(struct torture_context *torture)
|
||||
|
||||
ctx = libnet_context_init(torture->ev, torture->lp_ctx);
|
||||
if (ctx == NULL) {
|
||||
d_printf("failed to create libnet context\n");
|
||||
torture_comment(torture, "failed to create libnet context\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -329,15 +330,15 @@ bool torture_domain_close_samr(struct torture_context *torture)
|
||||
status = dcerpc_pipe_connect_b(mem_ctx, &p, binding, &ndr_table_samr,
|
||||
ctx->cred, torture->ev, torture->lp_ctx);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
d_printf("failed to connect to server: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "failed to connect to server: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
domain_name.string = talloc_strdup(mem_ctx, lp_workgroup(torture->lp_ctx));
|
||||
|
||||
if (!test_opendomain_samr(p->binding_handle, torture, &h, &domain_name, &access_mask, &sid)) {
|
||||
d_printf("failed to open domain on samr service\n");
|
||||
if (!test_opendomain_samr(torture, p->binding_handle, torture, &h, &domain_name, &access_mask, &sid)) {
|
||||
torture_comment(torture, "failed to open domain on samr service\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -386,7 +387,7 @@ bool torture_domain_list(struct torture_context *torture)
|
||||
|
||||
ctx = libnet_context_init(torture->ev, torture->lp_ctx);
|
||||
if (ctx == NULL) {
|
||||
d_printf("failed to create libnet context\n");
|
||||
torture_comment(torture, "failed to create libnet context\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -408,10 +409,10 @@ bool torture_domain_list(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
d_printf("Received list or domains (everything in one piece):\n");
|
||||
torture_comment(torture, "Received list or domains (everything in one piece):\n");
|
||||
|
||||
for (i = 0; i < r.out.count; i++) {
|
||||
d_printf("Name[%d]: %s\n", i, r.out.domains[i].name);
|
||||
torture_comment(torture, "Name[%d]: %s\n", i, r.out.domains[i].name);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -429,14 +430,14 @@ bool torture_domain_list(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
d_printf("Received list or domains (collected in more than one round):\n");
|
||||
torture_comment(torture, "Received list or domains (collected in more than one round):\n");
|
||||
|
||||
for (i = 0; i < r.out.count; i++) {
|
||||
d_printf("Name[%d]: %s\n", i, r.out.domains[i].name);
|
||||
torture_comment(torture, "Name[%d]: %s\n", i, r.out.domains[i].name);
|
||||
}
|
||||
|
||||
done:
|
||||
d_printf("\nStatus: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "\nStatus: %s\n", nt_errstr(status));
|
||||
|
||||
talloc_free(mem_ctx);
|
||||
talloc_free(ctx);
|
||||
|
@ -31,7 +31,8 @@
|
||||
#define TEST_GROUPNAME "libnetgrouptest"
|
||||
|
||||
|
||||
static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_cleanup(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle, const char *groupname)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -51,11 +52,11 @@ static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
r1.out.rids = &rids;
|
||||
r1.out.types = &types;
|
||||
|
||||
printf("group account lookup '%s'\n", groupname);
|
||||
torture_comment(tctx, "group account lookup '%s'\n", groupname);
|
||||
|
||||
status = dcerpc_samr_LookupNames_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("LookupNames failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "LookupNames failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -66,22 +67,22 @@ static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
r2.in.rid = rid;
|
||||
r2.out.group_handle = &group_handle;
|
||||
|
||||
printf("opening group account\n");
|
||||
torture_comment(tctx, "opening group account\n");
|
||||
|
||||
status = dcerpc_samr_OpenGroup_r(b, mem_ctx, &r2);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("OpenGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "OpenGroup failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
r3.in.group_handle = &group_handle;
|
||||
r3.out.group_handle = &group_handle;
|
||||
|
||||
printf("deleting group account\n");
|
||||
torture_comment(tctx, "deleting group account\n");
|
||||
|
||||
status = dcerpc_samr_DeleteDomainGroup_r(b, mem_ctx, &r3);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("DeleteGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "DeleteGroup failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -89,7 +90,8 @@ static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
|
||||
static bool test_creategroup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_creategroup(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, const char *name)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -106,23 +108,23 @@ static bool test_creategroup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ct
|
||||
r.out.group_handle = &group_handle;
|
||||
r.out.rid = &group_rid;
|
||||
|
||||
printf("creating group account %s\n", name);
|
||||
torture_comment(tctx, "creating group account %s\n", name);
|
||||
|
||||
status = dcerpc_samr_CreateDomainGroup_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("CreateGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "CreateGroup failed - %s\n", nt_errstr(status));
|
||||
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_GROUP_EXISTS)) {
|
||||
printf("Group (%s) already exists - attempting to delete and recreate group again\n", name);
|
||||
if (!test_cleanup(b, mem_ctx, handle, TEST_GROUPNAME)) {
|
||||
torture_comment(tctx, "Group (%s) already exists - attempting to delete and recreate group again\n", name);
|
||||
if (!test_cleanup(tctx, b, mem_ctx, handle, TEST_GROUPNAME)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
printf("creating group account\n");
|
||||
torture_comment(tctx, "creating group account\n");
|
||||
|
||||
status = dcerpc_samr_CreateDomainGroup_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("CreateGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "CreateGroup failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -134,7 +136,8 @@ static bool test_creategroup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ct
|
||||
}
|
||||
|
||||
|
||||
static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_opendomain(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, struct lsa_String *domname)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -144,7 +147,7 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
struct dom_sid2 *sid = NULL;
|
||||
struct samr_OpenDomain r3;
|
||||
|
||||
printf("connecting\n");
|
||||
torture_comment(tctx, "connecting\n");
|
||||
|
||||
r1.in.system_name = 0;
|
||||
r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
@ -152,7 +155,7 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
|
||||
status = dcerpc_samr_Connect_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Connect failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Connect failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -160,11 +163,11 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
r2.in.domain_name = domname;
|
||||
r2.out.sid = &sid;
|
||||
|
||||
printf("domain lookup on %s\n", domname->string);
|
||||
torture_comment(tctx, "domain lookup on %s\n", domname->string);
|
||||
|
||||
status = dcerpc_samr_LookupDomain_r(b, mem_ctx, &r2);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("LookupDomain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "LookupDomain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -173,11 +176,11 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
r3.in.sid = *r2.out.sid;
|
||||
r3.out.domain_handle = &domain_handle;
|
||||
|
||||
printf("opening domain\n");
|
||||
torture_comment(tctx, "opening domain\n");
|
||||
|
||||
status = dcerpc_samr_OpenDomain_r(b, mem_ctx, &r3);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("OpenDomain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "OpenDomain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
} else {
|
||||
*handle = domain_handle;
|
||||
@ -187,7 +190,8 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
}
|
||||
|
||||
|
||||
static bool test_samr_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_samr_close(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -198,7 +202,7 @@ static bool test_samr_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
|
||||
status = dcerpc_samr_Close_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Close samr domain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Close samr domain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -206,7 +210,8 @@ static bool test_samr_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
}
|
||||
|
||||
|
||||
static bool test_lsa_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_lsa_close(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -217,7 +222,7 @@ static bool test_lsa_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
|
||||
status = dcerpc_lsa_Close_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Close lsa domain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Close lsa domain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -250,12 +255,12 @@ bool torture_groupinfo_api(struct torture_context *torture)
|
||||
}
|
||||
|
||||
domain_name.string = lp_workgroup(torture->lp_ctx);
|
||||
if (!test_opendomain(p->binding_handle, prep_mem_ctx, &h, &domain_name)) {
|
||||
if (!test_opendomain(torture, p->binding_handle, prep_mem_ctx, &h, &domain_name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_creategroup(p->binding_handle, prep_mem_ctx, &h, name)) {
|
||||
if (!test_creategroup(torture, p->binding_handle, prep_mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -270,19 +275,19 @@ bool torture_groupinfo_api(struct torture_context *torture)
|
||||
|
||||
status = libnet_GroupInfo(ctx, mem_ctx, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_GroupInfo call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_GroupInfo call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_cleanup(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_GROUPNAME)) {
|
||||
printf("cleanup failed\n");
|
||||
if (!test_cleanup(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_GROUPNAME)) {
|
||||
torture_comment(torture, "cleanup failed\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_samr_close(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
printf("domain close failed\n");
|
||||
if (!test_samr_close(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
torture_comment(torture, "domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
@ -312,7 +317,7 @@ bool torture_grouplist(struct torture_context *torture)
|
||||
|
||||
ZERO_STRUCT(req);
|
||||
|
||||
printf("listing group accounts:\n");
|
||||
torture_comment(torture, "listing group accounts:\n");
|
||||
|
||||
do {
|
||||
req.in.domain_name = domain_name.string;
|
||||
@ -324,7 +329,7 @@ bool torture_grouplist(struct torture_context *torture)
|
||||
!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) break;
|
||||
|
||||
for (i = 0; i < req.out.count; i++) {
|
||||
printf("\tgroup: %s, sid=%s\n",
|
||||
torture_comment(torture, "\tgroup: %s, sid=%s\n",
|
||||
req.out.groups[i].groupname, req.out.groups[i].sid);
|
||||
}
|
||||
|
||||
@ -332,18 +337,18 @@ bool torture_grouplist(struct torture_context *torture)
|
||||
|
||||
if (!(NT_STATUS_IS_OK(status) ||
|
||||
NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES))) {
|
||||
printf("libnet_GroupList call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_GroupList call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_samr_close(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
printf("domain close failed\n");
|
||||
if (!test_samr_close(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
torture_comment(torture, "domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
if (!test_lsa_close(ctx->lsa.pipe->binding_handle, mem_ctx, &ctx->lsa.handle)) {
|
||||
printf("lsa domain close failed\n");
|
||||
if (!test_lsa_close(torture, ctx->lsa.pipe->binding_handle, mem_ctx, &ctx->lsa.handle)) {
|
||||
torture_comment(torture, "lsa domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
@ -374,19 +379,19 @@ bool torture_creategroup(struct torture_context *torture)
|
||||
|
||||
status = libnet_CreateGroup(ctx, mem_ctx, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_CreateGroup call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_CreateGroup call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_cleanup(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_GROUPNAME)) {
|
||||
printf("cleanup failed\n");
|
||||
if (!test_cleanup(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_GROUPNAME)) {
|
||||
torture_comment(torture, "cleanup failed\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_samr_close(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
printf("domain close failed\n");
|
||||
if (!test_samr_close(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
torture_comment(torture, "domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
|
@ -55,14 +55,14 @@ bool torture_lookup(struct torture_context *torture)
|
||||
status = libnet_Lookup(ctx, mem_ctx, &lookup);
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Couldn't lookup name %s: %s\n", lookup.in.hostname, nt_errstr(status));
|
||||
torture_comment(torture, "Couldn't lookup name %s: %s\n", lookup.in.hostname, nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = true;
|
||||
|
||||
printf("Name [%s] found at address: %s.\n", lookup.in.hostname, *lookup.out.address);
|
||||
torture_comment(torture, "Name [%s] found at address: %s.\n", lookup.in.hostname, *lookup.out.address);
|
||||
|
||||
done:
|
||||
talloc_free(mem_ctx);
|
||||
@ -98,14 +98,14 @@ bool torture_lookup_host(struct torture_context *torture)
|
||||
status = libnet_LookupHost(ctx, mem_ctx, &lookup);
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Couldn't lookup host %s: %s\n", lookup.in.hostname, nt_errstr(status));
|
||||
torture_comment(torture, "Couldn't lookup host %s: %s\n", lookup.in.hostname, nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = true;
|
||||
|
||||
printf("Host [%s] found at address: %s.\n", lookup.in.hostname, *lookup.out.address);
|
||||
torture_comment(torture, "Host [%s] found at address: %s.\n", lookup.in.hostname, *lookup.out.address);
|
||||
|
||||
done:
|
||||
talloc_free(mem_ctx);
|
||||
@ -141,7 +141,7 @@ bool torture_lookup_pdc(struct torture_context *torture)
|
||||
status = libnet_LookupDCs(ctx, mem_ctx, lookup);
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Couldn't lookup pdc %s: %s\n", lookup->in.domain_name,
|
||||
torture_comment(torture, "Couldn't lookup pdc %s: %s\n", lookup->in.domain_name,
|
||||
nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
@ -149,9 +149,9 @@ bool torture_lookup_pdc(struct torture_context *torture)
|
||||
|
||||
ret = true;
|
||||
|
||||
printf("DCs of domain [%s] found.\n", lookup->in.domain_name);
|
||||
torture_comment(torture, "DCs of domain [%s] found.\n", lookup->in.domain_name);
|
||||
for (i = 0; i < lookup->out.num_dcs; i++) {
|
||||
printf("\tDC[%d]: name=%s, address=%s\n", i, lookup->out.dcs[i].name,
|
||||
torture_comment(torture, "\tDC[%d]: name=%s, address=%s\n", i, lookup->out.dcs[i].name,
|
||||
lookup->out.dcs[i].address);
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,8 @@
|
||||
#include "param/param.h"
|
||||
|
||||
|
||||
static bool test_connect_service(struct libnet_context *ctx,
|
||||
static bool test_connect_service(struct torture_context *tctx,
|
||||
struct libnet_context *ctx,
|
||||
const struct ndr_interface_table *iface,
|
||||
const char *binding_string,
|
||||
const char *hostname,
|
||||
@ -55,7 +56,7 @@ static bool test_connect_service(struct libnet_context *ctx,
|
||||
status = libnet_RpcConnect(ctx, ctx, &connect_r);
|
||||
|
||||
if (!NT_STATUS_EQUAL(status, expected_status)) {
|
||||
d_printf("Connecting to rpc service %s on %s.\n\tFAILED. Expected: %s."
|
||||
torture_comment(tctx, "Connecting to rpc service %s on %s.\n\tFAILED. Expected: %s."
|
||||
"Received: %s\n",
|
||||
connect_r.in.dcerpc_iface->name, connect_r.in.binding, nt_errstr(expected_status),
|
||||
nt_errstr(status));
|
||||
@ -63,18 +64,18 @@ static bool test_connect_service(struct libnet_context *ctx,
|
||||
return false;
|
||||
}
|
||||
|
||||
d_printf("PASSED. Expected: %s, received: %s\n", nt_errstr(expected_status),
|
||||
torture_comment(tctx, "PASSED. Expected: %s, received: %s\n", nt_errstr(expected_status),
|
||||
nt_errstr(status));
|
||||
|
||||
if (connect_r.level == LIBNET_RPC_CONNECT_DC_INFO && NT_STATUS_IS_OK(status)) {
|
||||
d_printf("Domain Controller Info:\n");
|
||||
d_printf("\tDomain Name:\t %s\n", connect_r.out.domain_name);
|
||||
d_printf("\tDomain SID:\t %s\n", dom_sid_string(ctx, connect_r.out.domain_sid));
|
||||
d_printf("\tRealm:\t\t %s\n", connect_r.out.realm);
|
||||
d_printf("\tGUID:\t\t %s\n", GUID_string(ctx, connect_r.out.guid));
|
||||
torture_comment(tctx, "Domain Controller Info:\n");
|
||||
torture_comment(tctx, "\tDomain Name:\t %s\n", connect_r.out.domain_name);
|
||||
torture_comment(tctx, "\tDomain SID:\t %s\n", dom_sid_string(ctx, connect_r.out.domain_sid));
|
||||
torture_comment(tctx, "\tRealm:\t\t %s\n", connect_r.out.realm);
|
||||
torture_comment(tctx, "\tGUID:\t\t %s\n", GUID_string(ctx, connect_r.out.guid));
|
||||
|
||||
} else if (!NT_STATUS_IS_OK(status)) {
|
||||
d_printf("Error string: %s\n", connect_r.out.error_string);
|
||||
torture_comment(tctx, "Error string: %s\n", connect_r.out.error_string);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -90,38 +91,39 @@ static bool torture_rpc_connect(struct torture_context *torture,
|
||||
ctx = libnet_context_init(torture->ev, torture->lp_ctx);
|
||||
ctx->cred = cmdline_credentials;
|
||||
|
||||
d_printf("Testing connection to LSA interface\n");
|
||||
if (!test_connect_service(ctx, &ndr_table_lsarpc, bindstr,
|
||||
torture_comment(torture, "Testing connection to LSA interface\n");
|
||||
|
||||
if (!test_connect_service(torture, ctx, &ndr_table_lsarpc, bindstr,
|
||||
hostname, level, false, NT_STATUS_OK)) {
|
||||
d_printf("failed to connect LSA interface\n");
|
||||
torture_comment(torture, "failed to connect LSA interface\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
d_printf("Testing connection to SAMR interface\n");
|
||||
if (!test_connect_service(ctx, &ndr_table_samr, bindstr,
|
||||
torture_comment(torture, "Testing connection to SAMR interface\n");
|
||||
if (!test_connect_service(torture, ctx, &ndr_table_samr, bindstr,
|
||||
hostname, level, false, NT_STATUS_OK)) {
|
||||
d_printf("failed to connect SAMR interface\n");
|
||||
torture_comment(torture, "failed to connect SAMR interface\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
d_printf("Testing connection to SRVSVC interface\n");
|
||||
if (!test_connect_service(ctx, &ndr_table_srvsvc, bindstr,
|
||||
torture_comment(torture, "Testing connection to SRVSVC interface\n");
|
||||
if (!test_connect_service(torture, ctx, &ndr_table_srvsvc, bindstr,
|
||||
hostname, level, false, NT_STATUS_OK)) {
|
||||
d_printf("failed to connect SRVSVC interface\n");
|
||||
torture_comment(torture, "failed to connect SRVSVC interface\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
d_printf("Testing connection to LSA interface with wrong credentials\n");
|
||||
if (!test_connect_service(ctx, &ndr_table_lsarpc, bindstr,
|
||||
torture_comment(torture, "Testing connection to LSA interface with wrong credentials\n");
|
||||
if (!test_connect_service(torture, ctx, &ndr_table_lsarpc, bindstr,
|
||||
hostname, level, true, NT_STATUS_LOGON_FAILURE)) {
|
||||
d_printf("failed to test wrong credentials on LSA interface\n");
|
||||
torture_comment(torture, "failed to test wrong credentials on LSA interface\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
d_printf("Testing connection to SAMR interface with wrong credentials\n");
|
||||
if (!test_connect_service(ctx, &ndr_table_samr, bindstr,
|
||||
torture_comment(torture, "Testing connection to SAMR interface with wrong credentials\n");
|
||||
if (!test_connect_service(torture, ctx, &ndr_table_samr, bindstr,
|
||||
hostname, level, true, NT_STATUS_LOGON_FAILURE)) {
|
||||
d_printf("failed to test wrong credentials on SAMR interface\n");
|
||||
torture_comment(torture, "failed to test wrong credentials on SAMR interface\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,8 @@
|
||||
#define TEST_SHARENAME "libnetsharetest"
|
||||
|
||||
|
||||
static void test_displayshares(struct libnet_ListShares s)
|
||||
static void test_displayshares(struct torture_context *tctx,
|
||||
struct libnet_ListShares s)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
@ -55,7 +56,7 @@ static void test_displayshares(struct libnet_ListShares s)
|
||||
case 0:
|
||||
for (i = 0; i < s.out.ctr.ctr0->count; i++) {
|
||||
struct srvsvc_NetShareInfo0 *info = &s.out.ctr.ctr0->array[i];
|
||||
d_printf("\t[%d] %s\n", i, info->name);
|
||||
torture_comment(tctx, "\t[%d] %s\n", i, info->name);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -65,7 +66,7 @@ static void test_displayshares(struct libnet_ListShares s)
|
||||
for (j = 0; j < ARRAY_SIZE(share_types); j++) {
|
||||
if (share_types[j].type == info->type) break;
|
||||
}
|
||||
d_printf("\t[%d] %s (%s)\t%s\n", i, info->name,
|
||||
torture_comment(tctx, "\t[%d] %s (%s)\t%s\n", i, info->name,
|
||||
info->comment, share_types[j].desc);
|
||||
}
|
||||
break;
|
||||
@ -76,7 +77,7 @@ static void test_displayshares(struct libnet_ListShares s)
|
||||
for (j = 0; j < ARRAY_SIZE(share_types); j++) {
|
||||
if (share_types[j].type == info->type) break;
|
||||
}
|
||||
d_printf("\t[%d] %s\t%s\n\t %s\n\t [perms=0x%08x, max_usr=%d, cur_usr=%d, path=%s, pass=%s]\n",
|
||||
torture_comment(tctx, "\t[%d] %s\t%s\n\t %s\n\t [perms=0x%08x, max_usr=%d, cur_usr=%d, path=%s, pass=%s]\n",
|
||||
i, info->name, share_types[j].desc, info->comment,
|
||||
info->permissions, info->max_users,
|
||||
info->current_users, info->path,
|
||||
@ -90,7 +91,7 @@ static void test_displayshares(struct libnet_ListShares s)
|
||||
for (j = 0; j < ARRAY_SIZE(share_types); j++) {
|
||||
if (share_types[j].type == info->type) break;
|
||||
}
|
||||
d_printf("\t[%d] %s\t%s [csc_policy=0x%08x]\n\t %s\n", i, info->name,
|
||||
torture_comment(tctx, "\t[%d] %s\t%s [csc_policy=0x%08x]\n\t %s\n", i, info->name,
|
||||
share_types[j].desc, info->csc_policy,
|
||||
info->comment);
|
||||
}
|
||||
@ -102,7 +103,7 @@ static void test_displayshares(struct libnet_ListShares s)
|
||||
for (j = 0; j < ARRAY_SIZE(share_types); j++) {
|
||||
if (share_types[j].type == info->type) break;
|
||||
}
|
||||
d_printf("\t[%d] %s\t%s\n\t %s\n\t [perms=0x%08x, max_usr=%d, cur_usr=%d, path=%s, pass=%s]\n",
|
||||
torture_comment(tctx, "\t[%d] %s\t%s\n\t %s\n\t [perms=0x%08x, max_usr=%d, cur_usr=%d, path=%s, pass=%s]\n",
|
||||
i, info->name, share_types[j].desc, info->comment,
|
||||
info->permissions, info->max_users,
|
||||
info->current_users, info->path,
|
||||
@ -133,30 +134,30 @@ bool torture_listshares(struct torture_context *torture)
|
||||
|
||||
libnetctx = libnet_context_init(torture->ev, torture->lp_ctx);
|
||||
if (!libnetctx) {
|
||||
printf("Couldn't allocate libnet context\n");
|
||||
torture_comment(torture, "Couldn't allocate libnet context\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
libnetctx->cred = cmdline_credentials;
|
||||
|
||||
printf("Testing libnet_ListShare\n");
|
||||
torture_comment(torture, "Testing libnet_ListShare\n");
|
||||
|
||||
share.in.server_name = talloc_asprintf(mem_ctx, "%s", binding->host);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(levels); i++) {
|
||||
share.in.level = levels[i];
|
||||
printf("testing libnet_ListShare level %u\n", share.in.level);
|
||||
torture_comment(torture, "testing libnet_ListShare level %u\n", share.in.level);
|
||||
|
||||
status = libnet_ListShares(libnetctx, mem_ctx, &share);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_ListShare level %u failed - %s\n", share.in.level, share.out.error_string);
|
||||
torture_comment(torture, "libnet_ListShare level %u failed - %s\n", share.in.level, share.out.error_string);
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
printf("listing shares:\n");
|
||||
test_displayshares(share);
|
||||
torture_comment(torture, "listing shares:\n");
|
||||
test_displayshares(torture, share);
|
||||
}
|
||||
|
||||
done:
|
||||
@ -165,7 +166,8 @@ done:
|
||||
}
|
||||
|
||||
|
||||
static bool test_addshare(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx, const char *host,
|
||||
static bool test_addshare(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx, const char *host,
|
||||
const char* share)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -190,11 +192,11 @@ static bool test_addshare(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
|
||||
status = dcerpc_srvsvc_NetShareAdd_r(b, mem_ctx, &add);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Failed to add a new share\n");
|
||||
torture_comment(tctx, "Failed to add a new share\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
printf("share added\n");
|
||||
torture_comment(tctx, "share added\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -222,7 +224,7 @@ bool torture_delshare(struct torture_context *torture)
|
||||
|
||||
torture_assert_ntstatus_ok(torture, status, "Failed to get rpc connection");
|
||||
|
||||
if (!test_addshare(p->binding_handle, torture, host, TEST_SHARENAME)) {
|
||||
if (!test_addshare(torture, p->binding_handle, torture, host, TEST_SHARENAME)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,8 @@
|
||||
#include "param/param.h"
|
||||
|
||||
|
||||
static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_cleanup(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle, const char *username)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -49,11 +50,11 @@ static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
r1.out.rids = &rids;
|
||||
r1.out.types = &types;
|
||||
|
||||
printf("user account lookup '%s'\n", username);
|
||||
torture_comment(tctx, "user account lookup '%s'\n", username);
|
||||
|
||||
status = dcerpc_samr_LookupNames_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("LookupNames failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "LookupNames failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -64,22 +65,22 @@ static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
r2.in.rid = rid;
|
||||
r2.out.user_handle = &user_handle;
|
||||
|
||||
printf("opening user account\n");
|
||||
torture_comment(tctx, "opening user account\n");
|
||||
|
||||
status = dcerpc_samr_OpenUser_r(b, mem_ctx, &r2);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("OpenUser failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "OpenUser failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
r3.in.user_handle = &user_handle;
|
||||
r3.out.user_handle = &user_handle;
|
||||
|
||||
printf("deleting user account\n");
|
||||
torture_comment(tctx, "deleting user account\n");
|
||||
|
||||
status = dcerpc_samr_DeleteUser_r(b, mem_ctx, &r3);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("DeleteUser failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "DeleteUser failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -87,7 +88,8 @@ static bool test_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
|
||||
static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_opendomain(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, struct lsa_String *domname)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -97,7 +99,7 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
struct dom_sid2 *sid = NULL;
|
||||
struct samr_OpenDomain r3;
|
||||
|
||||
printf("connecting\n");
|
||||
torture_comment(tctx, "connecting\n");
|
||||
|
||||
r1.in.system_name = 0;
|
||||
r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
@ -105,7 +107,7 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
|
||||
status = dcerpc_samr_Connect_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Connect failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Connect failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -113,11 +115,11 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
r2.in.domain_name = domname;
|
||||
r2.out.sid = &sid;
|
||||
|
||||
printf("domain lookup on %s\n", domname->string);
|
||||
torture_comment(tctx, "domain lookup on %s\n", domname->string);
|
||||
|
||||
status = dcerpc_samr_LookupDomain_r(b, mem_ctx, &r2);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("LookupDomain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "LookupDomain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -126,11 +128,11 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
r3.in.sid = *r2.out.sid;
|
||||
r3.out.domain_handle = &domain_handle;
|
||||
|
||||
printf("opening domain\n");
|
||||
torture_comment(tctx, "opening domain\n");
|
||||
|
||||
status = dcerpc_samr_OpenDomain_r(b, mem_ctx, &r3);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("OpenDomain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "OpenDomain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
} else {
|
||||
*handle = domain_handle;
|
||||
@ -140,7 +142,8 @@ static bool test_opendomain(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
}
|
||||
|
||||
|
||||
static bool test_samr_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_samr_close(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -151,7 +154,7 @@ static bool test_samr_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
|
||||
status = dcerpc_samr_Close_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Close samr domain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Close samr domain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -159,7 +162,8 @@ static bool test_samr_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
}
|
||||
|
||||
|
||||
static bool test_lsa_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_lsa_close(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -170,7 +174,7 @@ static bool test_lsa_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
|
||||
status = dcerpc_lsa_Close_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Close lsa domain failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Close lsa domain failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -178,7 +182,8 @@ static bool test_lsa_close(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
|
||||
static bool test_createuser(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
static bool test_createuser(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, const char* user)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -196,23 +201,23 @@ static bool test_createuser(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
r1.out.user_handle = &user_handle;
|
||||
r1.out.rid = &user_rid;
|
||||
|
||||
printf("creating user '%s'\n", username.string);
|
||||
torture_comment(tctx, "creating user '%s'\n", username.string);
|
||||
|
||||
status = dcerpc_samr_CreateUser_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("CreateUser failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "CreateUser failed - %s\n", nt_errstr(status));
|
||||
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
|
||||
printf("User (%s) already exists - attempting to delete and recreate account again\n", user);
|
||||
if (!test_cleanup(b, mem_ctx, handle, TEST_USERNAME)) {
|
||||
torture_comment(tctx, "User (%s) already exists - attempting to delete and recreate account again\n", user);
|
||||
if (!test_cleanup(tctx, b, mem_ctx, handle, TEST_USERNAME)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
printf("creating user account\n");
|
||||
torture_comment(tctx, "creating user account\n");
|
||||
|
||||
status = dcerpc_samr_CreateUser_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("CreateUser failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "CreateUser failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -223,11 +228,11 @@ static bool test_createuser(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx
|
||||
r2.in.handle = &user_handle;
|
||||
r2.out.handle = &user_handle;
|
||||
|
||||
printf("closing user '%s'\n", username.string);
|
||||
torture_comment(tctx, "closing user '%s'\n", username.string);
|
||||
|
||||
status = dcerpc_samr_Close_r(b, mem_ctx, &r2);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Close failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Close failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -254,19 +259,19 @@ bool torture_createuser(struct torture_context *torture)
|
||||
|
||||
status = libnet_CreateUser(ctx, mem_ctx, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_CreateUser call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_CreateUser call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_cleanup(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_USERNAME)) {
|
||||
printf("cleanup failed\n");
|
||||
if (!test_cleanup(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_USERNAME)) {
|
||||
torture_comment(torture, "cleanup failed\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_samr_close(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
printf("domain close failed\n");
|
||||
if (!test_samr_close(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
torture_comment(torture, "domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
@ -306,12 +311,12 @@ bool torture_deleteuser(struct torture_context *torture)
|
||||
}
|
||||
|
||||
domain_name.string = lp_workgroup(torture->lp_ctx);
|
||||
if (!test_opendomain(p->binding_handle, prep_mem_ctx, &h, &domain_name)) {
|
||||
if (!test_opendomain(torture, p->binding_handle, prep_mem_ctx, &h, &domain_name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_createuser(p->binding_handle, prep_mem_ctx, &h, name)) {
|
||||
if (!test_createuser(torture, p->binding_handle, prep_mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -320,7 +325,7 @@ bool torture_deleteuser(struct torture_context *torture)
|
||||
|
||||
status = libnet_DeleteUser(ctx, mem_ctx, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_DeleteUser call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_DeleteUser call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
}
|
||||
|
||||
@ -337,7 +342,8 @@ done:
|
||||
Generate testing set of random changes
|
||||
*/
|
||||
|
||||
static void set_test_changes(TALLOC_CTX *mem_ctx, struct libnet_ModifyUser *r,
|
||||
static void set_test_changes(struct torture_context *tctx,
|
||||
TALLOC_CTX *mem_ctx, struct libnet_ModifyUser *r,
|
||||
int num_changes, char **user_name, enum test_fields req_change)
|
||||
{
|
||||
const char* logon_scripts[] = { "start_login.cmd", "login.bat", "start.cmd" };
|
||||
@ -350,7 +356,7 @@ static void set_test_changes(TALLOC_CTX *mem_ctx, struct libnet_ModifyUser *r,
|
||||
struct timeval now;
|
||||
int i, testfld;
|
||||
|
||||
printf("Fields to change: [");
|
||||
torture_comment(tctx, "Fields to change: [");
|
||||
|
||||
for (i = 0; i < num_changes && i < FIELDS_NUM; i++) {
|
||||
const char *fldname;
|
||||
@ -437,33 +443,33 @@ static void set_test_changes(TALLOC_CTX *mem_ctx, struct libnet_ModifyUser *r,
|
||||
fldname = "unknown_field";
|
||||
}
|
||||
|
||||
printf(((i < num_changes - 1) ? "%s," : "%s"), fldname);
|
||||
torture_comment(tctx, ((i < num_changes - 1) ? "%s," : "%s"), fldname);
|
||||
|
||||
/* disable requested field (it's supposed to be the only one used) */
|
||||
if (req_change != none) req_change = none;
|
||||
}
|
||||
|
||||
printf("]\n");
|
||||
torture_comment(tctx, "]\n");
|
||||
}
|
||||
|
||||
|
||||
#define TEST_STR_FLD(fld) \
|
||||
if (!strequal(req.in.fld, user_req.out.fld)) { \
|
||||
printf("failed to change '%s'\n", #fld); \
|
||||
torture_comment(torture, "failed to change '%s'\n", #fld); \
|
||||
ret = false; \
|
||||
goto cleanup; \
|
||||
}
|
||||
|
||||
#define TEST_TIME_FLD(fld) \
|
||||
if (timeval_compare(req.in.fld, user_req.out.fld)) { \
|
||||
printf("failed to change '%s'\n", #fld); \
|
||||
torture_comment(torture, "failed to change '%s'\n", #fld); \
|
||||
ret = false; \
|
||||
goto cleanup; \
|
||||
}
|
||||
|
||||
#define TEST_NUM_FLD(fld) \
|
||||
if (req.in.fld != user_req.out.fld) { \
|
||||
printf("failed to change '%s'\n", #fld); \
|
||||
torture_comment(torture, "failed to change '%s'\n", #fld); \
|
||||
ret = false; \
|
||||
goto cleanup; \
|
||||
}
|
||||
@ -502,12 +508,12 @@ bool torture_modifyuser(struct torture_context *torture)
|
||||
name = talloc_strdup(prep_mem_ctx, TEST_USERNAME);
|
||||
|
||||
domain_name.string = lp_workgroup(torture->lp_ctx);
|
||||
if (!test_opendomain(b, prep_mem_ctx, &h, &domain_name)) {
|
||||
if (!test_opendomain(torture, b, prep_mem_ctx, &h, &domain_name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_createuser(b, prep_mem_ctx, &h, name)) {
|
||||
if (!test_createuser(torture, b, prep_mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -518,18 +524,18 @@ bool torture_modifyuser(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
printf("Testing change of all fields - each single one in turn\n");
|
||||
torture_comment(torture, "Testing change of all fields - each single one in turn\n");
|
||||
|
||||
for (fld = 1; fld < FIELDS_NUM - 1; fld++) {
|
||||
ZERO_STRUCT(req);
|
||||
req.in.domain_name = lp_workgroup(torture->lp_ctx);
|
||||
req.in.user_name = name;
|
||||
|
||||
set_test_changes(torture, &req, 1, &name, fld);
|
||||
set_test_changes(torture, torture, &req, 1, &name, fld);
|
||||
|
||||
status = libnet_ModifyUser(ctx, torture, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_ModifyUser call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_ModifyUser call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
continue;
|
||||
}
|
||||
@ -541,7 +547,7 @@ bool torture_modifyuser(struct torture_context *torture)
|
||||
|
||||
status = libnet_UserInfo(ctx, torture, &user_req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_UserInfo call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_UserInfo call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
continue;
|
||||
}
|
||||
@ -581,7 +587,7 @@ bool torture_modifyuser(struct torture_context *torture)
|
||||
|
||||
status = libnet_ModifyUser(ctx, torture, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_ModifyUser call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_ModifyUser call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -591,14 +597,14 @@ bool torture_modifyuser(struct torture_context *torture)
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if (!test_cleanup(ctx->samr.pipe->binding_handle, torture, &ctx->samr.handle, name)) {
|
||||
printf("cleanup failed\n");
|
||||
if (!test_cleanup(torture, ctx->samr.pipe->binding_handle, torture, &ctx->samr.handle, name)) {
|
||||
torture_comment(torture, "cleanup failed\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_samr_close(ctx->samr.pipe->binding_handle, torture, &ctx->samr.handle)) {
|
||||
printf("domain close failed\n");
|
||||
if (!test_samr_close(torture, ctx->samr.pipe->binding_handle, torture, &ctx->samr.handle)) {
|
||||
torture_comment(torture, "domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
@ -636,12 +642,12 @@ bool torture_userinfo_api(struct torture_context *torture)
|
||||
b = p->binding_handle;
|
||||
|
||||
domain_name.string = lp_workgroup(torture->lp_ctx);
|
||||
if (!test_opendomain(b, prep_mem_ctx, &h, &domain_name)) {
|
||||
if (!test_opendomain(torture, b, prep_mem_ctx, &h, &domain_name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_createuser(b, prep_mem_ctx, &h, name)) {
|
||||
if (!test_createuser(torture, b, prep_mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -656,19 +662,19 @@ bool torture_userinfo_api(struct torture_context *torture)
|
||||
|
||||
status = libnet_UserInfo(ctx, mem_ctx, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("libnet_UserInfo call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_UserInfo call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_cleanup(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_USERNAME)) {
|
||||
printf("cleanup failed\n");
|
||||
if (!test_cleanup(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle, TEST_USERNAME)) {
|
||||
torture_comment(torture, "cleanup failed\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_samr_close(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
printf("domain close failed\n");
|
||||
if (!test_samr_close(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
torture_comment(torture, "domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
@ -698,7 +704,7 @@ bool torture_userlist(struct torture_context *torture)
|
||||
|
||||
ZERO_STRUCT(req);
|
||||
|
||||
printf("listing user accounts:\n");
|
||||
torture_comment(torture, "listing user accounts:\n");
|
||||
|
||||
do {
|
||||
|
||||
@ -711,7 +717,7 @@ bool torture_userlist(struct torture_context *torture)
|
||||
!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) break;
|
||||
|
||||
for (i = 0; i < req.out.count; i++) {
|
||||
printf("\tuser: %s, sid=%s\n",
|
||||
torture_comment(torture, "\tuser: %s, sid=%s\n",
|
||||
req.out.users[i].username, req.out.users[i].sid);
|
||||
}
|
||||
|
||||
@ -719,19 +725,19 @@ bool torture_userlist(struct torture_context *torture)
|
||||
|
||||
if (!(NT_STATUS_IS_OK(status) ||
|
||||
NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES))) {
|
||||
printf("libnet_UserList call failed: %s\n", nt_errstr(status));
|
||||
torture_comment(torture, "libnet_UserList call failed: %s\n", nt_errstr(status));
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_samr_close(ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
printf("samr domain close failed\n");
|
||||
if (!test_samr_close(torture, ctx->samr.pipe->binding_handle, mem_ctx, &ctx->samr.handle)) {
|
||||
torture_comment(torture, "samr domain close failed\n");
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_lsa_close(ctx->lsa.pipe->binding_handle, mem_ctx, &ctx->lsa.handle)) {
|
||||
printf("lsa domain close failed\n");
|
||||
if (!test_lsa_close(torture, ctx->lsa.pipe->binding_handle, mem_ctx, &ctx->lsa.handle)) {
|
||||
torture_comment(torture, "lsa domain close failed\n");
|
||||
ret = false;
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,8 @@
|
||||
|
||||
#define TEST_USERNAME "libnetuserinfotest"
|
||||
|
||||
static bool test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
static bool test_userinfo(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle,
|
||||
struct dom_sid2 *domain_sid, const char* user_name,
|
||||
uint32_t *rid)
|
||||
@ -45,10 +46,10 @@ static bool test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
user.in.sid = dom_sid_string(mem_ctx, user_sid);
|
||||
user.in.level = level; /* this should be extended */
|
||||
|
||||
printf("Testing sync libnet_rpc_userinfo (SID argument)\n");
|
||||
torture_comment(tctx, "Testing sync libnet_rpc_userinfo (SID argument)\n");
|
||||
status = libnet_rpc_userinfo(p, mem_ctx, &user);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -59,10 +60,10 @@ static bool test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
user.in.username = TEST_USERNAME;
|
||||
user.in.level = level;
|
||||
|
||||
printf("Testing sync libnet_rpc_userinfo (username argument)\n");
|
||||
torture_comment(tctx, "Testing sync libnet_rpc_userinfo (username argument)\n");
|
||||
status = libnet_rpc_userinfo(p, mem_ctx, &user);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -70,7 +71,8 @@ static bool test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
|
||||
static bool test_userinfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
static bool test_userinfo_async(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle,
|
||||
struct dom_sid2 *domain_sid, const char* user_name,
|
||||
uint32_t *rid)
|
||||
@ -87,17 +89,17 @@ static bool test_userinfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
user.in.sid = dom_sid_string(mem_ctx, user_sid);
|
||||
user.in.level = level; /* this should be extended */
|
||||
|
||||
printf("Testing async libnet_rpc_userinfo (SID argument)\n");
|
||||
torture_comment(tctx, "Testing async libnet_rpc_userinfo (SID argument)\n");
|
||||
|
||||
c = libnet_rpc_userinfo_send(p, &user, msg_handler);
|
||||
if (!c) {
|
||||
printf("Failed to call sync libnet_rpc_userinfo_send\n");
|
||||
torture_comment(tctx, "Failed to call sync libnet_rpc_userinfo_send\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
status = libnet_rpc_userinfo_recv(c, mem_ctx, &user);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Calling async libnet_rpc_userinfo failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Calling async libnet_rpc_userinfo failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -108,17 +110,17 @@ static bool test_userinfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
user.in.username = TEST_USERNAME;
|
||||
user.in.level = level;
|
||||
|
||||
printf("Testing async libnet_rpc_userinfo (username argument)\n");
|
||||
torture_comment(tctx, "Testing async libnet_rpc_userinfo (username argument)\n");
|
||||
|
||||
c = libnet_rpc_userinfo_send(p, &user, msg_handler);
|
||||
if (!c) {
|
||||
printf("Failed to call sync libnet_rpc_userinfo_send\n");
|
||||
torture_comment(tctx, "Failed to call sync libnet_rpc_userinfo_send\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
status = libnet_rpc_userinfo_recv(c, mem_ctx, &user);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Calling async libnet_rpc_userinfo failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Calling async libnet_rpc_userinfo failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -164,7 +166,7 @@ bool torture_userinfo(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_userinfo(p, mem_ctx, &h, &sid, TEST_USERNAME, &rid)) {
|
||||
if (!test_userinfo(torture, p, mem_ctx, &h, &sid, TEST_USERNAME, &rid)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -187,7 +189,7 @@ bool torture_userinfo(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_userinfo_async(p, mem_ctx, &h, &sid, TEST_USERNAME, &rid)) {
|
||||
if (!test_userinfo_async(torture, p, mem_ctx, &h, &sid, TEST_USERNAME, &rid)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
@ -28,7 +28,8 @@
|
||||
#include "torture/libnet/utils.h"
|
||||
|
||||
|
||||
static bool test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
static bool test_useradd(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle,
|
||||
const char *name)
|
||||
{
|
||||
@ -39,11 +40,11 @@ static bool test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
user.in.domain_handle = *domain_handle;
|
||||
user.in.username = name;
|
||||
|
||||
printf("Testing libnet_rpc_useradd\n");
|
||||
torture_comment(tctx, "Testing libnet_rpc_useradd\n");
|
||||
|
||||
status = libnet_rpc_useradd(p, mem_ctx, &user);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Failed to call libnet_rpc_useradd - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Failed to call libnet_rpc_useradd - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -51,7 +52,8 @@ static bool test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
|
||||
static bool test_useradd_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
static bool test_useradd_async(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, const char* username)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -61,17 +63,17 @@ static bool test_useradd_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
user.in.domain_handle = *handle;
|
||||
user.in.username = username;
|
||||
|
||||
printf("Testing async libnet_rpc_useradd\n");
|
||||
torture_comment(tctx, "Testing async libnet_rpc_useradd\n");
|
||||
|
||||
c = libnet_rpc_useradd_send(p, &user, msg_handler);
|
||||
if (!c) {
|
||||
printf("Failed to call async libnet_rpc_useradd\n");
|
||||
torture_comment(tctx, "Failed to call async libnet_rpc_useradd\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
status = libnet_rpc_useradd_recv(c, mem_ctx, &user);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Calling async libnet_rpc_useradd failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Calling async libnet_rpc_useradd failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -212,7 +214,8 @@ static bool test_usermod(struct torture_context *tctx, struct dcerpc_pipe *p,
|
||||
}
|
||||
|
||||
|
||||
static bool test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
static bool test_userdel(struct torture_context *tctx,
|
||||
struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, const char *username)
|
||||
{
|
||||
NTSTATUS status;
|
||||
@ -223,7 +226,7 @@ static bool test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
|
||||
status = libnet_rpc_userdel(p, mem_ctx, &user);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("Failed to call sync libnet_rpc_userdel - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "Failed to call sync libnet_rpc_userdel - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -234,9 +237,9 @@ static bool test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
#define CMP_LSA_STRING_FLD(fld, flags) \
|
||||
if ((mod->in.change.fields & flags) && \
|
||||
!strequal(i->fld.string, mod->in.change.fld)) { \
|
||||
printf("'%s' field does not match\n", #fld); \
|
||||
printf("received: '%s'\n", i->fld.string); \
|
||||
printf("expected: '%s'\n", mod->in.change.fld); \
|
||||
torture_comment(tctx, "'%s' field does not match\n", #fld); \
|
||||
torture_comment(tctx, "received: '%s'\n", i->fld.string); \
|
||||
torture_comment(tctx, "expected: '%s'\n", mod->in.change.fld); \
|
||||
return false; \
|
||||
}
|
||||
|
||||
@ -245,10 +248,10 @@ static bool test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
if (mod->in.change.fields & flags) { \
|
||||
nttime_to_timeval(&t, i->fld); \
|
||||
if (timeval_compare(&t, mod->in.change.fld)) { \
|
||||
printf("'%s' field does not match\n", #fld); \
|
||||
printf("received: '%s (+%ld us)'\n", \
|
||||
torture_comment(tctx, "'%s' field does not match\n", #fld); \
|
||||
torture_comment(tctx, "received: '%s (+%ld us)'\n", \
|
||||
timestring(mem_ctx, t.tv_sec), t.tv_usec); \
|
||||
printf("expected: '%s (+%ld us)'\n", \
|
||||
torture_comment(tctx, "expected: '%s (+%ld us)'\n", \
|
||||
timestring(mem_ctx, mod->in.change.fld->tv_sec), \
|
||||
mod->in.change.fld->tv_usec); \
|
||||
return false; \
|
||||
@ -258,9 +261,9 @@ static bool test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
|
||||
#define CMP_NUM_FLD(fld, flags) \
|
||||
if ((mod->in.change.fields & flags) && \
|
||||
(i->fld != mod->in.change.fld)) { \
|
||||
printf("'%s' field does not match\n", #fld); \
|
||||
printf("received: '%04x'\n", i->fld); \
|
||||
printf("expected: '%04x'\n", mod->in.change.fld); \
|
||||
torture_comment(tctx, "'%s' field does not match\n", #fld); \
|
||||
torture_comment(tctx, "received: '%04x'\n", i->fld); \
|
||||
torture_comment(tctx, "expected: '%04x'\n", mod->in.change.fld); \
|
||||
return false; \
|
||||
}
|
||||
|
||||
@ -328,7 +331,7 @@ bool torture_useradd(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_useradd(p, mem_ctx, &h, name)) {
|
||||
if (!test_useradd(torture, p, mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -343,7 +346,7 @@ bool torture_useradd(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_useradd_async(p, mem_ctx, &h, name)) {
|
||||
if (!test_useradd_async(torture, p, mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
@ -394,7 +397,7 @@ bool torture_userdel(struct torture_context *torture)
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!test_userdel(p, mem_ctx, &h, name)) {
|
||||
if (!test_userdel(torture, p, mem_ctx, &h, name)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
|
@ -148,7 +148,7 @@ bool test_user_create(struct torture_context *tctx,
|
||||
|
||||
status = dcerpc_samr_CreateUser_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("CreateUser failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "CreateUser failed - %s\n", nt_errstr(status));
|
||||
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
|
||||
torture_comment(tctx, "User (%s) already exists - attempting to delete and recreate account again\n", name);
|
||||
@ -169,7 +169,8 @@ bool test_user_create(struct torture_context *tctx,
|
||||
}
|
||||
|
||||
|
||||
bool test_group_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
bool test_group_cleanup(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle,
|
||||
const char *name)
|
||||
{
|
||||
@ -190,11 +191,11 @@ bool test_group_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
r1.out.rids = &rids;
|
||||
r1.out.types = &types;
|
||||
|
||||
printf("group account lookup '%s'\n", name);
|
||||
torture_comment(tctx, "group account lookup '%s'\n", name);
|
||||
|
||||
status = dcerpc_samr_LookupNames_r(b, mem_ctx, &r1);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("LookupNames failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "LookupNames failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -205,22 +206,22 @@ bool test_group_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
r2.in.rid = rid;
|
||||
r2.out.group_handle = &group_handle;
|
||||
|
||||
printf("opening group account\n");
|
||||
torture_comment(tctx, "opening group account\n");
|
||||
|
||||
status = dcerpc_samr_OpenGroup_r(b, mem_ctx, &r2);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("OpenGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "OpenGroup failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
r3.in.group_handle = &group_handle;
|
||||
r3.out.group_handle = &group_handle;
|
||||
|
||||
printf("deleting group account\n");
|
||||
torture_comment(tctx, "deleting group account\n");
|
||||
|
||||
status = dcerpc_samr_DeleteDomainGroup_r(b, mem_ctx, &r3);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("DeleteGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "DeleteGroup failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -228,7 +229,8 @@ bool test_group_cleanup(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
|
||||
bool test_group_create(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
bool test_group_create(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, const char *name,
|
||||
uint32_t *rid)
|
||||
{
|
||||
@ -245,23 +247,23 @@ bool test_group_create(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
|
||||
r.out.group_handle = &group_handle;
|
||||
r.out.rid = rid;
|
||||
|
||||
printf("creating group account %s\n", name);
|
||||
torture_comment(tctx, "creating group account %s\n", name);
|
||||
|
||||
status = dcerpc_samr_CreateDomainGroup_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("CreateGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "CreateGroup failed - %s\n", nt_errstr(status));
|
||||
|
||||
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
|
||||
printf("Group (%s) already exists - attempting to delete and recreate account again\n", name);
|
||||
if (!test_group_cleanup(b, mem_ctx, handle, name)) {
|
||||
torture_comment(tctx, "Group (%s) already exists - attempting to delete and recreate account again\n", name);
|
||||
if (!test_group_cleanup(tctx, b, mem_ctx, handle, name)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
printf("creating group account\n");
|
||||
torture_comment(tctx, "creating group account\n");
|
||||
|
||||
status = dcerpc_samr_CreateDomainGroup_r(b, mem_ctx, &r);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
printf("CreateGroup failed - %s\n", nt_errstr(status));
|
||||
torture_comment(tctx, "CreateGroup failed - %s\n", nt_errstr(status));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -37,12 +37,14 @@ bool test_user_cleanup(struct torture_context *tctx,
|
||||
struct policy_handle *domain_handle,
|
||||
const char *name);
|
||||
|
||||
bool test_group_create(struct dcerpc_binding_handle *b,
|
||||
bool test_group_create(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *handle, const char *name,
|
||||
uint32_t *rid);
|
||||
|
||||
bool test_group_cleanup(struct dcerpc_binding_handle *b,
|
||||
bool test_group_cleanup(struct torture_context *tctx,
|
||||
struct dcerpc_binding_handle *b,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct policy_handle *domain_handle,
|
||||
const char *name);
|
||||
|
Loading…
Reference in New Issue
Block a user