struct smbcli_session *session2;
struct smbcli_state *cli;
struct dcerpc_pipe *lsa_pipe;
+ struct dcerpc_binding_handle *lsa_handle;
struct cli_credentials *anon_creds;
struct smb_composite_sesssetup setup;
struct smbcli_options options;
d_printf("dcerpc_pipe_init failed\n");
goto done;
}
+ lsa_handle = lsa_pipe->binding_handle;
status = dcerpc_pipe_open_smb(lsa_pipe, cli->tree, "\\lsarpc");
if (!NT_STATUS_IS_OK(status)) {
openpolicy.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
openpolicy.out.handle = &handle;
- status = dcerpc_lsa_OpenPolicy2(lsa_pipe, mem_ctx, &openpolicy);
+ status = dcerpc_lsa_OpenPolicy2_r(lsa_handle, mem_ctx, &openpolicy);
if (!NT_STATUS_IS_OK(status)) {
d_printf("dcerpc_lsa_OpenPolicy2 failed: %s\n",
close_handle.in.handle = &handle;
close_handle.out.handle = &handle;
- status = dcerpc_lsa_Close(lsa_pipe, mem_ctx, &close_handle);
+ status = dcerpc_lsa_Close_r(lsa_handle, mem_ctx, &close_handle);
if (!NT_STATUS_IS_OK(status)) {
d_printf("dcerpc_lsa_Close failed: %s\n",
nt_errstr(status));
tmp = cli->tree->session;
cli->tree->session = session2;
- status = dcerpc_lsa_OpenPolicy2(lsa_pipe, mem_ctx, &openpolicy);
+ status = dcerpc_lsa_OpenPolicy2_r(lsa_handle, mem_ctx, &openpolicy);
cli->tree->session = tmp;
talloc_free(lsa_pipe);
NTSTATUS status;
struct dcerpc_pipe *lsa_pipe;
+ struct dcerpc_binding_handle *lsa_handle;
struct lsa_ObjectAttribute objectattr;
struct lsa_OpenPolicy2 openpolicy;
struct lsa_QueryInfoPolicy query;
d_printf("dcerpc_pipe_init failed\n");
goto done;
}
+ lsa_handle = lsa_pipe->binding_handle;
status = dcerpc_pipe_open_smb(lsa_pipe, cli->tree, "\\lsarpc");
if (!NT_STATUS_IS_OK(status)) {
openpolicy.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
openpolicy.out.handle = &handle;
- status = dcerpc_lsa_OpenPolicy2(lsa_pipe, mem_ctx, &openpolicy);
+ status = dcerpc_lsa_OpenPolicy2_r(lsa_handle, mem_ctx, &openpolicy);
if (!NT_STATUS_IS_OK(status)) {
d_printf("dcerpc_lsa_OpenPolicy2 failed: %s\n",
query.in.level = LSA_POLICY_INFO_DOMAIN;
query.out.info = &info;
- status = dcerpc_lsa_QueryInfoPolicy(lsa_pipe, mem_ctx, &query);
+ status = dcerpc_lsa_QueryInfoPolicy_r(lsa_handle, mem_ctx, &query);
if (!NT_STATUS_IS_OK(status)) {
d_printf("dcerpc_lsa_QueryInfoPolicy failed: %s\n",
nt_errstr(status));
close_handle.in.handle = &handle;
close_handle.out.handle = &handle;
- status = dcerpc_lsa_Close(lsa_pipe, mem_ctx, &close_handle);
+ status = dcerpc_lsa_Close_r(lsa_handle, mem_ctx, &close_handle);
if (!NT_STATUS_IS_OK(status)) {
d_printf("dcerpc_lsa_Close failed: %s\n",
nt_errstr(status));
struct dom_sid **sid_p)
{
struct dcerpc_pipe *samr_pipe;
+ struct dcerpc_binding_handle *samr_handle;
NTSTATUS status;
struct policy_handle conn_handle;
struct policy_handle domain_handle;
status = NT_STATUS_NO_MEMORY;
goto fail;
}
+ samr_handle = samr_pipe->binding_handle;
status = dcerpc_pipe_open_smb(samr_pipe, cli->tree, "\\samr");
if (!NT_STATUS_IS_OK(status)) {
conn.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
conn.out.connect_handle = &conn_handle;
- status = dcerpc_samr_Connect2(samr_pipe, mem_ctx, &conn);
+ status = dcerpc_samr_Connect2_r(samr_handle, mem_ctx, &conn);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_Connect2 failed: %s\n", nt_errstr(status));
goto fail;
enumdom.out.num_entries = &num_entries;
enumdom.out.sam = &sam;
- status = dcerpc_samr_EnumDomains(samr_pipe, mem_ctx, &enumdom);
+ status = dcerpc_samr_EnumDomains_r(samr_handle, mem_ctx, &enumdom);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_EnumDomains failed: %s\n", nt_errstr(status));
goto fail;
l.in.domain_name = &domain_name;
l.out.sid = &sid;
- status = dcerpc_samr_LookupDomain(samr_pipe, mem_ctx, &l);
+ status = dcerpc_samr_LookupDomain_r(samr_handle, mem_ctx, &l);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_LookupDomain failed: %s\n", nt_errstr(status));
goto fail;
o.in.sid = *l.out.sid;
o.out.domain_handle = &domain_handle;
- status = dcerpc_samr_OpenDomain(samr_pipe, mem_ctx, &o);
+ status = dcerpc_samr_OpenDomain_r(samr_handle, mem_ctx, &o);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_OpenDomain failed: %s\n", nt_errstr(status));
goto fail;
c.out.access_granted = &access_granted;
c.out.rid = &user_rid;
- status = dcerpc_samr_CreateUser2(samr_pipe, mem_ctx, &c);
+ status = dcerpc_samr_CreateUser2_r(samr_handle, mem_ctx, &c);
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
struct samr_LookupNames ln;
ln.out.rids = &rids;
ln.out.types = &types;
- status = dcerpc_samr_LookupNames(samr_pipe, mem_ctx, &ln);
+ status = dcerpc_samr_LookupNames_r(samr_handle, mem_ctx, &ln);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_LookupNames failed: %s\n",
nt_errstr(status));
user_rid = ou.in.rid = ln.out.rids->ids[0];
ou.out.user_handle = user_handle;
- status = dcerpc_samr_OpenUser(samr_pipe, mem_ctx, &ou);
+ status = dcerpc_samr_OpenUser_r(samr_handle, mem_ctx, &ou);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_OpenUser failed: %s\n",
nt_errstr(status));
TALLOC_CTX *tmp_ctx;
NTSTATUS status;
struct dcerpc_pipe *samr_pipe;
+ struct dcerpc_binding_handle *samr_handle;
struct policy_handle *wks_handle;
bool ret = false;
d_printf("get_usr_handle failed: %s\n", nt_errstr(status));
goto done;
}
+ samr_handle = samr_pipe->binding_handle;
{
struct samr_SetUserInfo2 sui2;
sui2.in.info = &u_info;
sui2.in.level = 23;
- status = dcerpc_samr_SetUserInfo2(samr_pipe, tmp_ctx, &sui2);
+ status = dcerpc_samr_SetUserInfo2_r(samr_handle, tmp_ctx, &sui2);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_SetUserInfo(23) failed: %s\n",
nt_errstr(status));
sui.in.info = &u_info;
sui.in.level = 16;
- status = dcerpc_samr_SetUserInfo(samr_pipe, tmp_ctx, &sui);
+ status = dcerpc_samr_SetUserInfo_r(samr_handle, tmp_ctx, &sui);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_SetUserInfo(16) failed\n");
goto done;
qui.in.level = 21;
qui.out.info = &info;
- status = dcerpc_samr_QueryUserInfo(samr_pipe, tmp_ctx, &qui);
+ status = dcerpc_samr_QueryUserInfo_r(samr_handle, tmp_ctx, &qui);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_QueryUserInfo(21) failed\n");
goto done;
sui.in.info = &u_info;
sui.in.level = 21;
- status = dcerpc_samr_SetUserInfo(samr_pipe, tmp_ctx, &sui);
+ status = dcerpc_samr_SetUserInfo_r(samr_handle, tmp_ctx, &sui);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_SetUserInfo(21) failed\n");
goto done;
NTSTATUS status;
char *dom_name;
struct dcerpc_pipe *samr_pipe;
+ struct dcerpc_binding_handle *samr_handle;
struct policy_handle *user_handle;
bool ret = false;
d_printf("get_wks_handle failed: %s\n", nt_errstr(status));
goto done;
}
+ samr_handle = samr_pipe->binding_handle;
{
struct samr_DeleteUser d;
d.in.user_handle = user_handle;
d.out.user_handle = user_handle;
- status = dcerpc_samr_DeleteUser(samr_pipe, mem_ctx, &d);
+ status = dcerpc_samr_DeleteUser_r(samr_handle, mem_ctx, &d);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_DeleteUser failed %s\n", nt_errstr(status));
goto done;
NTSTATUS status;
char *dom_name;
struct dcerpc_pipe *samr_pipe;
+ struct dcerpc_binding_handle *samr_handle;
struct policy_handle *wks_handle;
bool ret = false;
NTTIME last_password_change;
d_printf("get_wks_handle failed: %s\n", nt_errstr(status));
goto done;
}
+ samr_handle = samr_pipe->binding_handle;
{
struct samr_QueryUserInfo q;
q.in.level = 21;
q.out.info = &info;
- status = dcerpc_samr_QueryUserInfo(samr_pipe, mem_ctx, &q);
+ status = dcerpc_samr_QueryUserInfo_r(samr_handle, mem_ctx, &q);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) QueryUserInfo failed: %s\n",
__location__, nt_errstr(status));
sui2.in.level = 25;
sui2.in.info = &u_info;
- status = dcerpc_samr_SetUserInfo2(samr_pipe, mem_ctx, &sui2);
+ status = dcerpc_samr_SetUserInfo2_r(samr_handle, mem_ctx, &sui2);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_SetUserInfo2(25) failed: %s\n",
nt_errstr(status));
sui2.in.info = &u_info;
sui2.in.level = 24;
- status = dcerpc_samr_SetUserInfo2(samr_pipe, mem_ctx, &sui2);
+ status = dcerpc_samr_SetUserInfo2_r(samr_handle, mem_ctx, &sui2);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_SetUserInfo(24) failed: %s\n",
nt_errstr(status));
sui.in.info = &u_info;
sui.in.level = 16;
- status = dcerpc_samr_SetUserInfo(samr_pipe, mem_ctx, &sui);
+ status = dcerpc_samr_SetUserInfo_r(samr_handle, mem_ctx, &sui);
if (!NT_STATUS_IS_OK(status)) {
d_printf("samr_SetUserInfo(16) failed\n");
goto done;
q.in.level = 21;
q.out.info = &info;
- status = dcerpc_samr_QueryUserInfo(samr_pipe, mem_ctx, &q);
+ status = dcerpc_samr_QueryUserInfo_r(samr_handle, mem_ctx, &q);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) QueryUserInfo failed: %s\n",
__location__, nt_errstr(status));
{
TALLOC_CTX *mem_ctx;
struct dcerpc_pipe *net_pipe;
+ struct dcerpc_binding_handle *net_handle;
bool result = false;
NTSTATUS status;
struct netr_ServerReqChallenge r;
d_printf("dcerpc_pipe_init failed\n");
goto done;
}
+ net_handle = net_pipe->binding_handle;
status = dcerpc_pipe_open_smb(net_pipe, cli->tree, "\\netlogon");
if (!NT_STATUS_IS_OK(status)) {
r.in.credentials = &netr_cli_creds;
r.out.return_credentials = &netr_srv_creds;
- status = dcerpc_netr_ServerReqChallenge(net_pipe, mem_ctx, &r);
+ status = dcerpc_netr_ServerReqChallenge_r(net_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("netr_ServerReqChallenge failed: %s\n",
nt_errstr(status));
r.out.return_credentials, &mach_pw,
&netr_cred, negotiate_flags);
- status = dcerpc_netr_ServerAuthenticate2(net_pipe, mem_ctx, &a);
+ status = dcerpc_netr_ServerAuthenticate2_r(net_handle, mem_ctx, &a);
if (!NT_STATUS_IS_OK(status)) {
d_printf("netr_ServerServerAuthenticate2 failed: %s\n",
nt_errstr(status));
NTSTATUS status;
bool ret = false;
struct dcerpc_pipe *net_pipe;
+ struct dcerpc_binding_handle *net_handle;
int i;
mem_ctx = talloc_new(NULL);
d_printf("dcerpc_pipe_init failed\n");
goto done;
}
+ net_handle = net_pipe->binding_handle;
status = dcerpc_pipe_open_smb(net_pipe, cli->tree, "\\netlogon");
if (!NT_STATUS_IS_OK(status)) {
r.out.authoritative = &authoritative;
r.out.return_authenticator = &return_authenticator;
- status = dcerpc_netr_LogonSamLogon(net_pipe, mem_ctx, &r);
+ status = dcerpc_netr_LogonSamLogon_r(net_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("netr_LogonSamLogon failed: %s\n",
nt_errstr(status));
r.in.logon = &logon;
r.out.return_authenticator = &return_authenticator;
- status = dcerpc_netr_LogonSamLogon(net_pipe, mem_ctx, &r);
+ status = dcerpc_netr_LogonSamLogon_r(net_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("netr_LogonSamLogon failed: %s\n",
nt_errstr(status));
netlogon_creds_des_encrypt(creds_state, &new_password);
netlogon_creds_client_authenticator(creds_state, &credential);
- status = dcerpc_netr_ServerPasswordSet(net_pipe, mem_ctx, &s);
+ status = dcerpc_netr_ServerPasswordSet_r(net_handle, mem_ctx, &s);
if (!NT_STATUS_IS_OK(status)) {
printf("ServerPasswordSet - %s\n", nt_errstr(status));
goto done;
uint32_t count = 0;
struct dom_sid *result;
TALLOC_CTX *tmp_ctx;
+ struct dcerpc_binding_handle *b = p->binding_handle;
if (!(tmp_ctx = talloc_new(mem_ctx))) {
return NULL;
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
r.out.handle = &handle;
- status = dcerpc_lsa_OpenPolicy2(p, tmp_ctx, &r);
+ status = dcerpc_lsa_OpenPolicy2_r(b, tmp_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("OpenPolicy2 failed - %s\n", nt_errstr(status));
talloc_free(tmp_ctx);
l.out.sids = &sids;
l.out.domains = &domains;
- status = dcerpc_lsa_LookupNames(p, tmp_ctx, &l);
+ status = dcerpc_lsa_LookupNames_r(b, tmp_ctx, &l);
if (!NT_STATUS_IS_OK(status)) {
printf("LookupNames of %s failed - %s\n", lsa_name.string,
nt_errstr(status));
c.in.handle = &handle;
c.out.handle = &handle;
- status = dcerpc_lsa_Close(p, tmp_ctx, &c);
+ status = dcerpc_lsa_Close_r(b, tmp_ctx, &c);
if (!NT_STATUS_IS_OK(status)) {
printf("dcerpc_lsa_Close failed - %s\n", nt_errstr(status));
talloc_free(tmp_ctx);
struct smbcli_tree *tree)
{
struct dcerpc_pipe *lsa;
+ struct dcerpc_binding_handle *lsa_handle;
struct lsa_GetUserName r;
NTSTATUS status;
struct lsa_String *authority_name_p = NULL;
__location__, nt_errstr(status));
return NULL;
}
+ lsa_handle = lsa->binding_handle;
r.in.system_name = "\\";
r.in.account_name = &account_name_p;
r.in.authority_name = &authority_name_p;
r.out.account_name = &account_name_p;
- status = dcerpc_lsa_GetUserName(lsa, mem_ctx, &r);
+ status = dcerpc_lsa_GetUserName_r(lsa_handle, mem_ctx, &r);
authority_name_p = *r.out.authority_name;
uint32_t levels[] = { 0, 1, 2, 501, 502, 1004, 1005, 1006, 1007, 1501 };
int i;
bool ret = true;
+ struct dcerpc_binding_handle *b = p->binding_handle;
r.in.server_unc = talloc_asprintf(mem_ctx, "\\\\%s",
dcerpc_server_name(p));
printf("testing NetShareGetInfo level %u on share '%s'\n",
r.in.level, r.in.share_name);
- status = dcerpc_srvsvc_NetShareGetInfo(p, mem_ctx, &r);
+ status = dcerpc_srvsvc_NetShareGetInfo_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("NetShareGetInfo level %u on share '%s' failed"
" - %s\n", r.in.level, r.in.share_name,
uint32_t levels[] = { 0, 1, 2, 501, 502, 1004, 1005, 1006, 1007 };
int i;
bool ret = true;
+ struct dcerpc_binding_handle *b = p->binding_handle;
ZERO_STRUCT(info_ctr);
}
printf("testing NetShareEnum level %u\n", info_ctr.level);
- status = dcerpc_srvsvc_NetShareEnum(p, mem_ctx, &r);
+ status = dcerpc_srvsvc_NetShareEnum_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("NetShareEnum level %u failed - %s\n",
info_ctr.level, nt_errstr(status));
{
TALLOC_CTX *mem_ctx;
struct dcerpc_pipe *net_pipe;
+ struct dcerpc_binding_handle *net_handle;
char *wksname;
bool result = false;
NTSTATUS status;
d_printf("dcerpc_pipe_init failed\n");
goto done;
}
+ net_handle = net_pipe->binding_handle;
status = dcerpc_pipe_open_smb(net_pipe, cli->tree, "\\netlogon");
if (!NT_STATUS_IS_OK(status)) {
r.in.credentials = &netr_cli_creds;
r.out.return_credentials = &netr_srv_creds;
- status = dcerpc_netr_ServerReqChallenge(net_pipe, mem_ctx, &r);
+ status = dcerpc_netr_ServerReqChallenge_r(net_handle, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("netr_ServerReqChallenge failed: %s\n",
nt_errstr(status));
&netr_cred, negotiate_flags);
- status = dcerpc_netr_ServerAuthenticate2(net_pipe, mem_ctx, &a);
+ status = dcerpc_netr_ServerAuthenticate2_r(net_handle, mem_ctx, &a);
if (!NT_STATUS_EQUAL(status, NT_STATUS_NO_TRUST_SAM_ACCOUNT)) {
d_printf("dcerpc_netr_ServerAuthenticate2 returned %s, "
struct smbcli_tree *tree;
TALLOC_CTX *tmp_ctx;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
NTSTATUS status;
struct srvsvc_NetShareGetInfo r;
union srvsvc_NetShareInfo info;
talloc_free(tmp_ctx);
return NULL;
}
+ b = p->binding_handle;
#if 0
p->conn->flags |= DCERPC_DEBUG_PRINT_IN | DCERPC_DEBUG_PRINT_OUT;
r.in.level = 502;
r.out.info = &info;
- status = dcerpc_srvsvc_NetShareGetInfo(p, tmp_ctx, &r);
+ status = dcerpc_srvsvc_NetShareGetInfo_r(b, tmp_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("srvsvc_NetShareGetInfo failed: %s\n",
nt_errstr(status));
struct smbcli_tree *tree;
TALLOC_CTX *tmp_ctx;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
NTSTATUS status;
struct sec_desc_buf i;
struct srvsvc_NetShareSetInfo r;
talloc_free(tmp_ctx);
return NT_STATUS_UNSUCCESSFUL;
}
+ b = p->binding_handle;
#if 0
p->conn->flags |= DCERPC_DEBUG_PRINT_IN | DCERPC_DEBUG_PRINT_OUT;
r.in.info = &info;
r.in.parm_error = &error;
- status = dcerpc_srvsvc_NetShareSetInfo(p, tmp_ctx, &r);
+ status = dcerpc_srvsvc_NetShareSetInfo_r(b, tmp_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("srvsvc_NetShareSetInfo failed: %s\n",
nt_errstr(status));
bool ret = true;
struct smbcli_state *cli;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
struct policy_handle lsa_handle;
NTSTATUS status;
struct dom_sid *domain_sid;
talloc_free(mem_ctx);
return false;
}
+ b = p->binding_handle;
{
struct lsa_ObjectAttribute attr;
o.in.attr = &attr;
o.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
o.out.handle = &lsa_handle;
- status = dcerpc_lsa_OpenPolicy2(p, mem_ctx, &o);
+ status = dcerpc_lsa_OpenPolicy2_r(b, mem_ctx, &o);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) dcerpc_lsa_OpenPolicy2 failed: %s\n",
__location__, nt_errstr(status));
r.in.handle = &lsa_handle;
r.in.level = levels[i];
r.out.info = &info;
- status = dcerpc_lsa_QueryInfoPolicy(p, mem_ctx, &r);
+ status = dcerpc_lsa_QueryInfoPolicy_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) dcerpc_lsa_QueryInfoPolicy %d "
"failed: %s\n", __location__,
TALLOC_CTX *mem_ctx;
NTSTATUS status;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
struct srvsvc_NetShareEnum r;
struct srvsvc_NetShareInfoCtr info_ctr;
struct srvsvc_NetShareCtr1 c1_in;
talloc_free(mem_ctx);
return status;
}
+ b = p->binding_handle;
ZERO_STRUCT(c1_in);
info_ctr.level = 1;
r.out.totalentries = &totalentries;
r.out.info_ctr = &info_ctr;
- status = dcerpc_srvsvc_NetShareEnum(p, mem_ctx, &r);
+ status = dcerpc_srvsvc_NetShareEnum_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("NetShareEnum level %u failed - %s\n",
info_ctr.level, nt_errstr(status));
uint32_t needed;
uint32_t count;
union spoolss_PrinterInfo *info;
+ struct dcerpc_binding_handle *b = p->binding_handle;
r.in.flags = PRINTER_ENUM_LOCAL;
r.in.server = talloc_asprintf(mem_ctx, "\\\\%s", servername);
r.out.count = &count;
r.out.info = &info;
- status = dcerpc_spoolss_EnumPrinters(p, mem_ctx, &r);
+ status = dcerpc_spoolss_EnumPrinters_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) dcerpc_spoolss_EnumPrinters failed: %s\n",
__location__, nt_errstr(status));
r.in.buffer = &blob;
r.in.offered = needed;
- status = dcerpc_spoolss_EnumPrinters(p, mem_ctx, &r);
+ status = dcerpc_spoolss_EnumPrinters_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) dcerpc_spoolss_EnumPrinters failed: %s, "
"%s\n", __location__, nt_errstr(status),
DATA_BLOB blob;
NTSTATUS status;
uint32_t needed;
+ struct dcerpc_binding_handle *b = p->binding_handle;
mem_ctx = talloc_new(ctx);
if (mem_ctx == NULL) {
r.in.offered = 0;
r.out.needed = &needed;
- status = dcerpc_spoolss_GetPrinter(p, mem_ctx, &r);
+ status = dcerpc_spoolss_GetPrinter_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) dcerpc_spoolss_GetPrinter failed: %s\n",
__location__, nt_errstr(status));
r.in.buffer = &blob;
r.in.offered = needed;
- status = dcerpc_spoolss_GetPrinter(p, mem_ctx, &r);
+ status = dcerpc_spoolss_GetPrinter_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) dcerpc_spoolss_GetPrinter failed: %s, "
"%s\n", __location__, nt_errstr(status),
bool ret = true;
struct smbcli_state *cli;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
NTSTATUS status;
struct policy_handle server_handle, printer_handle;
const char **printers;
talloc_free(mem_ctx);
return false;
}
+ b = p->binding_handle;
ZERO_STRUCT(userlevel1);
userlevel1.client = talloc_asprintf(
r.in.userlevel.level1 = &userlevel1;
r.out.handle = &server_handle;
- status = dcerpc_spoolss_OpenPrinterEx(p, mem_ctx, &r);
+ status = dcerpc_spoolss_OpenPrinterEx_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) dcerpc_spoolss_OpenPrinterEx failed: "
"%s, %s\n", __location__, nt_errstr(status),
r.in.handle = &server_handle;
r.out.handle = &server_handle;
- status = dcerpc_spoolss_ClosePrinter(p, mem_ctx, &r);
+ status = dcerpc_spoolss_ClosePrinter_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) dcerpc_spoolss_ClosePrinter failed: "
"%s, %s\n", __location__, nt_errstr(status),
r.in.userlevel.level1 = &userlevel1;
r.out.handle = &printer_handle;
- status = dcerpc_spoolss_OpenPrinterEx(p, mem_ctx, &r);
+ status = dcerpc_spoolss_OpenPrinterEx_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) dcerpc_spoolss_OpenPrinterEx failed: "
"%s, %s\n", __location__, nt_errstr(status),
r.in.handle = &printer_handle;
r.out.handle = &printer_handle;
- status = dcerpc_spoolss_ClosePrinter(p, mem_ctx, &r);
+ status = dcerpc_spoolss_ClosePrinter_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
d_printf("(%s) dcerpc_spoolss_ClosePrinter failed: "
"%s\n", __location__, nt_errstr(status));
TALLOC_CTX *mem_ctx;
struct smbcli_state *cli;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
NTSTATUS status;
char *servername;
talloc_free(mem_ctx);
return false;
}
+ b = p->binding_handle;
{
struct wkssvc_NetWkstaInfo100 wks100;
info.info100 = &wks100;
r.out.info = &info;
- status = dcerpc_wkssvc_NetWkstaGetInfo(p, mem_ctx, &r);
+ status = dcerpc_wkssvc_NetWkstaGetInfo_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) dcerpc_wkssvc_NetWksGetInfo failed: "
"%s, %s\n", __location__, nt_errstr(status),
struct winreg_CloseKey c;
NTSTATUS status;
TALLOC_CTX *mem_ctx;
+ struct dcerpc_binding_handle *b = p->binding_handle;
c.in.handle = c.out.handle = handle;
return NT_STATUS_NO_MEMORY;
}
- status = dcerpc_winreg_CloseKey(p, mem_ctx, &c);
+ status = dcerpc_winreg_CloseKey_r(b, mem_ctx, &c);
talloc_free(mem_ctx);
if (!NT_STATUS_IS_OK(status)) {
TALLOC_CTX *mem_ctx)
{
uint32_t enum_index = 0;
+ struct dcerpc_binding_handle *b = p->binding_handle;
while (1) {
struct winreg_EnumValue r;
r.in.size = &size;
r.in.length = &length;
- status = dcerpc_winreg_EnumValue(p, mem_ctx, &r);
+ status = dcerpc_winreg_EnumValue_r(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
return NT_STATUS_OK;
}
struct winreg_StringBuf kclass, name;
NTSTATUS status;
NTTIME t = 0;
+ struct dcerpc_binding_handle *b = p->binding_handle;
if (depth <= 0) {
return NT_STATUS_OK;
name.name = NULL;
name.size = 1024;
- status = dcerpc_winreg_EnumKey(p, tmp_ctx, &r);
+ status = dcerpc_winreg_EnumKey_r(b, tmp_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
/* We're done enumerating */
talloc_free(tmp_ctx);
o.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
o.out.handle = &key_handle;
- status = dcerpc_winreg_OpenKey(p, tmp_ctx, &o);
+ status = dcerpc_winreg_OpenKey_r(b, tmp_ctx, &o);
if (NT_STATUS_IS_OK(status) && W_ERROR_IS_OK(o.out.result)) {
enumkeys(p, &key_handle, tmp_ctx, depth-1);
enumvalues(p, &key_handle, tmp_ctx);
return NT_STATUS_OK;
}
-typedef NTSTATUS (*winreg_open_fn)(struct dcerpc_pipe *, TALLOC_CTX *, void *);
+typedef NTSTATUS (*winreg_open_fn)(struct dcerpc_binding_handle *, TALLOC_CTX *, void *);
static bool test_Open3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
const char *name, winreg_open_fn open_fn)
struct policy_handle handle;
struct winreg_OpenHKLM r;
NTSTATUS status;
+ struct dcerpc_binding_handle *b = p->binding_handle;
r.in.system_name = 0;
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
r.out.handle = &handle;
- status = open_fn(p, mem_ctx, &r);
+ status = open_fn(b, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) %s failed: %s, %s\n", __location__, name,
nt_errstr(status), win_errstr(r.out.result));
const char *name;
winreg_open_fn fn;
} open_fns[] = {
- {"OpenHKLM", (winreg_open_fn)dcerpc_winreg_OpenHKLM },
- {"OpenHKU", (winreg_open_fn)dcerpc_winreg_OpenHKU },
- {"OpenHKPD", (winreg_open_fn)dcerpc_winreg_OpenHKPD },
- {"OpenHKPT", (winreg_open_fn)dcerpc_winreg_OpenHKPT },
- {"OpenHKCR", (winreg_open_fn)dcerpc_winreg_OpenHKCR }};
+ {"OpenHKLM", (winreg_open_fn)dcerpc_winreg_OpenHKLM_r },
+ {"OpenHKU", (winreg_open_fn)dcerpc_winreg_OpenHKU_r },
+ {"OpenHKPD", (winreg_open_fn)dcerpc_winreg_OpenHKPD_r },
+ {"OpenHKPT", (winreg_open_fn)dcerpc_winreg_OpenHKPT_r },
+ {"OpenHKCR", (winreg_open_fn)dcerpc_winreg_OpenHKCR_r }};
#if 0
int i;
#endif
{
struct smbcli_tree *ipc;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
struct srvsvc_NetShareGetInfo r;
union srvsvc_NetShareInfo info;
NTSTATUS status;
status = NT_STATUS_NO_MEMORY;
goto fail;
}
+ b = p->binding_handle;
status = secondary_tcon(p, cli->session, "IPC$", &ipc);
if (!NT_STATUS_IS_OK(status)) {
r.in.level = 502;
r.out.info = &info;
- status = dcerpc_srvsvc_NetShareGetInfo(p, p, &r);
+ status = dcerpc_srvsvc_NetShareGetInfo_r(b, p, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) srvsvc_NetShareGetInfo failed: %s, %s\n", __location__,
nt_errstr(status), win_errstr(r.out.result));
{
struct smbcli_tree *ipc;
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
struct winreg_OpenHKLM r;
NTSTATUS status;
struct policy_handle *result;
status = NT_STATUS_NO_MEMORY;
goto fail;
}
+ b = p->binding_handle;
status = secondary_tcon(p, cli->session, "IPC$", &ipc);
if (!NT_STATUS_IS_OK(status)) {
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
r.out.handle = result;
- status = dcerpc_winreg_OpenHKLM(p, p, &r);
+ status = dcerpc_winreg_OpenHKLM_r(b, p, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
d_printf("(%s) OpenHKLM failed: %s, %s\n", __location__,
nt_errstr(status), win_errstr(r.out.result));
const char *sharename)
{
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
struct policy_handle *hklm = NULL;
struct policy_handle new_handle;
struct winreg_CreateKey c;
d_printf("get_hklm_handle failed: %s\n", nt_errstr(status));
goto fail;
}
+ b = p->binding_handle;
c.in.handle = hklm;
c.in.name.name = talloc_asprintf(
c.out.new_handle = &new_handle;
c.out.action_taken = &action_taken;
- status = dcerpc_winreg_CreateKey(p, p, &c);
+ status = dcerpc_winreg_CreateKey_r(b, p, &c);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(c.out.result)) {
d_printf("(%s) OpenKey failed: %s, %s\n", __location__,
nt_errstr(status), win_errstr(c.out.result));
cl.in.handle = &new_handle;
cl.out.handle = &new_handle;
- status = dcerpc_winreg_CloseKey(p, p, &cl);
+ status = dcerpc_winreg_CloseKey_r(b, p, &cl);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(cl.out.result)) {
d_printf("(%s) OpenKey failed: %s, %s\n", __location__,
nt_errstr(status), win_errstr(cl.out.result));
const char *sharename)
{
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
struct policy_handle *hklm = NULL;
struct winreg_DeleteKey d;
NTSTATUS status;
d_printf("get_hklm_handle failed: %s\n", nt_errstr(status));
goto fail;
}
+ b = p->binding_handle;
d.in.handle = hklm;
d.in.key.name = talloc_asprintf(
status = NT_STATUS_NO_MEMORY;
goto fail;
}
- status = dcerpc_winreg_DeleteKey(p, p, &d);
+ status = dcerpc_winreg_DeleteKey_r(b, p, &d);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(d.out.result)) {
d_printf("(%s) OpenKey failed: %s, %s\n", __location__,
nt_errstr(status), win_errstr(d.out.result));
const char *value)
{
struct dcerpc_pipe *p = NULL;
+ struct dcerpc_binding_handle *b;
struct policy_handle *hklm = NULL, key_handle;
struct winreg_OpenKey o;
struct winreg_SetValue s;
d_printf("get_hklm_handle failed: %s\n", nt_errstr(status));
return status;;
}
+ b = p->binding_handle;
o.in.parent_handle = hklm;
o.in.keyname.name = talloc_asprintf(
o.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
o.out.handle = &key_handle;
- status = dcerpc_winreg_OpenKey(p, p, &o);
+ status = dcerpc_winreg_OpenKey_r(b, p, &o);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(o.out.result)) {
d_printf("(%s) OpenKey failed: %s, %s\n", __location__,
nt_errstr(status), win_errstr(o.out.result));
s.in.data = val.data;
s.in.size = val.length;
- status = dcerpc_winreg_SetValue(p, p, &s);
+ status = dcerpc_winreg_SetValue_r(b, p, &s);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(s.out.result)) {
d_printf("(%s) SetValue failed: %s, %s\n", __location__,
nt_errstr(status), win_errstr(s.out.result));
bool torture_samba3_getaliasmembership_0(struct torture_context *torture)
{
struct dcerpc_pipe *p;
+ struct dcerpc_binding_handle *b;
NTSTATUS status;
struct samr_Connect2 c;
struct samr_OpenDomain o;
if (!NT_STATUS_IS_OK(status)) {
return false;
}
+ b = p->binding_handle;
+
c.in.system_name = NULL;
c.in.access_mask = SAMR_ACCESS_LOOKUP_DOMAIN;
c.out.connect_handle = &samr;
- status = dcerpc_samr_Connect2(p, torture, &c);
+ status = dcerpc_samr_Connect2_r(b, torture, &c);
if (!NT_STATUS_IS_OK(status)) {
return false;
}
o.in.access_mask = SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS;
o.in.sid = &sid;
o.out.domain_handle = &domain;
- status = dcerpc_samr_OpenDomain(p, torture, &o);
+ status = dcerpc_samr_OpenDomain_r(b, torture, &o);
if (!NT_STATUS_IS_OK(status)) {
return false;
}
g.in.domain_handle = &domain;
g.in.sids = &sids;
g.out.rids = &rids;
- status = dcerpc_samr_GetAliasMembership(p, torture, &g);
+ status = dcerpc_samr_GetAliasMembership_r(b, torture, &g);
if (!NT_STATUS_IS_OK(status)) {
return false;
}