#include "lib/crypto/crypto.h"
#include "libnet/libnet.h"
#include "lib/cmdline/popt_common.h"
+#include "smb.h"
#include "lib/ldb/include/ldb.h"
+#include "librpc/gen_ndr/ndr_samr.h"
+#include "librpc/gen_ndr/ndr_samr_c.h"
+#include "libcli/auth/libcli_auth.h"
+#include "torture/rpc/rpc.h"
+#include "libcli/security/proto.h"
struct test_join {
struct dcerpc_pipe *p;
struct policy_handle user_handle;
struct libnet_JoinDomain *libnet_r;
- const char *dom_sid;
+ struct dom_sid *dom_sid;
+ struct dom_sid *user_sid;
};
goto failed;
}
- join->dom_sid = dom_sid_string(join, l.out.sid);
+ talloc_steal(join, l.out.sid);
+ join->dom_sid = l.out.sid;
o.in.connect_handle = &handle;
o.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
goto failed;
}
+ join->user_sid = dom_sid_add_rid(join, join->dom_sid, rid);
+
pwp.in.user_handle = &join->user_handle;
status = dcerpc_samr_GetUserPwInfo(join->p, join, &pwp);
}
tj->p = libnet_r->out.samr_pipe;
tj->user_handle = *libnet_r->out.user_handle;
- tj->dom_sid = dom_sid_string(tj, libnet_r->out.domain_sid);
+ tj->dom_sid = libnet_r->out.domain_sid;
+ talloc_steal(tj, libnet_r->out.domain_sid);
ZERO_STRUCT(u);
s.in.user_handle = &tj->user_handle;
printf("SetUserInfo (non-critical) failed - %s\n", nt_errstr(status));
}
- DEBUG(0, ("%s joined domain %s (%s).\n",
- libnet_r->in.netbios_name,
- libnet_r->out.domain_name,
- tj->dom_sid));
-
*machine_credentials = cli_credentials_init(tj);
cli_credentials_set_conf(*machine_credentials);
cli_credentials_set_workstation(*machine_credentials, machine_name, CRED_SPECIFIED);
/*
return the dom sid for a test join
*/
-const char *torture_join_sid(struct test_join *join)
+const struct dom_sid *torture_join_sid(struct test_join *join)
{
return join->dom_sid;
}
+const struct dom_sid *torture_join_user_sid(struct test_join *join)
+{
+ return join->user_sid;
+}
+
struct test_join_ads_dc {
struct test_join *join;