mirror of
https://github.com/samba-team/samba.git
synced 2025-03-12 20:58:37 +03:00
Use some more pidl generated LSA rpc in rpcclient.
Guenther (This used to be commit 153e4dd162423a846dbd4a9a1be1fd747792bdbf)
This commit is contained in:
parent
ff256b4284
commit
463fd6b3a8
@ -893,25 +893,15 @@ static NTSTATUS cmd_lsa_query_secobj(struct rpc_pipe_client *cli,
|
||||
return result;
|
||||
}
|
||||
|
||||
static void display_trust_dom_info_1(TRUSTED_DOMAIN_INFO_NAME *n)
|
||||
{
|
||||
printf("NetBIOS Name:\t%s\n", unistr2_static(&n->netbios_name.unistring));
|
||||
}
|
||||
|
||||
static void display_trust_dom_info_3(TRUSTED_DOMAIN_INFO_POSIX_OFFSET *p)
|
||||
{
|
||||
printf("Posix Offset:\t%08x (%d)\n", p->posix_offset, p->posix_offset);
|
||||
}
|
||||
|
||||
static void display_trust_dom_info_4(TRUSTED_DOMAIN_INFO_PASSWORD *p, const char *password)
|
||||
static void display_trust_dom_info_4(struct lsa_TrustDomainInfoPassword *p, const char *password)
|
||||
{
|
||||
char *pwd, *pwd_old;
|
||||
|
||||
DATA_BLOB data = data_blob(NULL, p->password.length);
|
||||
DATA_BLOB data_old = data_blob(NULL, p->old_password.length);
|
||||
DATA_BLOB data = data_blob(NULL, p->password->length);
|
||||
DATA_BLOB data_old = data_blob(NULL, p->old_password->length);
|
||||
|
||||
memcpy(data.data, p->password.data, p->password.length);
|
||||
memcpy(data_old.data, p->old_password.data, p->old_password.length);
|
||||
memcpy(data.data, p->password->data, p->password->length);
|
||||
memcpy(data_old.data, p->old_password->data, p->old_password->length);
|
||||
|
||||
pwd = decrypt_trustdom_secret(password, &data);
|
||||
pwd_old = decrypt_trustdom_secret(password, &data_old);
|
||||
@ -926,36 +916,20 @@ static void display_trust_dom_info_4(TRUSTED_DOMAIN_INFO_PASSWORD *p, const char
|
||||
data_blob_free(&data_old);
|
||||
}
|
||||
|
||||
static void display_trust_dom_info_6(TRUSTED_DOMAIN_INFO_EX *i)
|
||||
{
|
||||
printf("Domain Name:\t\t%s\n", unistr2_static(&i->domain_name.unistring));
|
||||
printf("NetBIOS Name:\t\t%s\n", unistr2_static(&i->netbios_name.unistring));
|
||||
printf("SID:\t\t\t%s\n", sid_string_tos(&i->sid.sid));
|
||||
printf("Trust Direction:\t0x%08x\n", i->trust_direction);
|
||||
printf("Trust Type:\t\t0x%08x\n", i->trust_type);
|
||||
printf("Trust Attributes:\t0x%08x\n", i->trust_attributes);
|
||||
}
|
||||
|
||||
|
||||
static void display_trust_dom_info(LSA_TRUSTED_DOMAIN_INFO *info, uint32 info_class, const char *pass)
|
||||
static void display_trust_dom_info(union lsa_TrustedDomainInfo *info,
|
||||
enum lsa_TrustDomInfoEnum info_class,
|
||||
const char *pass)
|
||||
{
|
||||
switch (info_class) {
|
||||
case 1:
|
||||
display_trust_dom_info_1(&info->name);
|
||||
break;
|
||||
case 3:
|
||||
display_trust_dom_info_3(&info->posix_offset);
|
||||
break;
|
||||
case 4:
|
||||
display_trust_dom_info_4(&info->password, pass);
|
||||
break;
|
||||
case 6:
|
||||
display_trust_dom_info_6(&info->info_ex);
|
||||
break;
|
||||
default:
|
||||
printf("unsupported info-class: %d\n", info_class);
|
||||
break;
|
||||
case LSA_TRUSTED_DOMAIN_INFO_PASSWORD:
|
||||
display_trust_dom_info_4(&info->password, pass);
|
||||
break;
|
||||
default:
|
||||
NDR_PRINT_UNION_DEBUG(lsa_TrustedDomainInfo,
|
||||
info_class, &info);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static NTSTATUS cmd_lsa_query_trustdominfobysid(struct rpc_pipe_client *cli,
|
||||
@ -966,9 +940,8 @@ static NTSTATUS cmd_lsa_query_trustdominfobysid(struct rpc_pipe_client *cli,
|
||||
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||
DOM_SID dom_sid;
|
||||
uint32 access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
|
||||
LSA_TRUSTED_DOMAIN_INFO *info;
|
||||
|
||||
uint32 info_class = 1;
|
||||
union lsa_TrustedDomainInfo info;
|
||||
enum lsa_TrustDomInfoEnum info_class = 1;
|
||||
|
||||
if (argc > 3 || argc < 2) {
|
||||
printf("Usage: %s [sid] [info_class]\n", argv[0]);
|
||||
@ -986,13 +959,15 @@ static NTSTATUS cmd_lsa_query_trustdominfobysid(struct rpc_pipe_client *cli,
|
||||
if (!NT_STATUS_IS_OK(result))
|
||||
goto done;
|
||||
|
||||
result = rpccli_lsa_query_trusted_domain_info_by_sid(cli, mem_ctx, &pol,
|
||||
info_class, &dom_sid, &info);
|
||||
|
||||
result = rpccli_lsa_QueryTrustedDomainInfoBySid(cli, mem_ctx,
|
||||
&pol,
|
||||
&dom_sid,
|
||||
info_class,
|
||||
&info);
|
||||
if (!NT_STATUS_IS_OK(result))
|
||||
goto done;
|
||||
|
||||
display_trust_dom_info(info, info_class, cli->pwd.password);
|
||||
display_trust_dom_info(&info, info_class, cli->pwd.password);
|
||||
|
||||
done:
|
||||
if (&pol)
|
||||
@ -1001,6 +976,11 @@ static NTSTATUS cmd_lsa_query_trustdominfobysid(struct rpc_pipe_client *cli,
|
||||
return result;
|
||||
}
|
||||
|
||||
static void init_lsa_String(struct lsa_String *name, const char *s)
|
||||
{
|
||||
name->string = s;
|
||||
}
|
||||
|
||||
static NTSTATUS cmd_lsa_query_trustdominfobyname(struct rpc_pipe_client *cli,
|
||||
TALLOC_CTX *mem_ctx, int argc,
|
||||
const char **argv)
|
||||
@ -1008,8 +988,9 @@ static NTSTATUS cmd_lsa_query_trustdominfobyname(struct rpc_pipe_client *cli,
|
||||
POLICY_HND pol;
|
||||
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||
uint32 access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
|
||||
LSA_TRUSTED_DOMAIN_INFO *info;
|
||||
uint32 info_class = 1;
|
||||
union lsa_TrustedDomainInfo info;
|
||||
enum lsa_TrustDomInfoEnum info_class = 1;
|
||||
struct lsa_String trusted_domain;
|
||||
|
||||
if (argc > 3 || argc < 2) {
|
||||
printf("Usage: %s [name] [info_class]\n", argv[0]);
|
||||
@ -1024,13 +1005,17 @@ static NTSTATUS cmd_lsa_query_trustdominfobyname(struct rpc_pipe_client *cli,
|
||||
if (!NT_STATUS_IS_OK(result))
|
||||
goto done;
|
||||
|
||||
result = rpccli_lsa_query_trusted_domain_info_by_name(cli, mem_ctx, &pol,
|
||||
info_class, argv[1], &info);
|
||||
init_lsa_String(&trusted_domain, argv[1]);
|
||||
|
||||
result = rpccli_lsa_QueryTrustedDomainInfoByName(cli, mem_ctx,
|
||||
&pol,
|
||||
trusted_domain,
|
||||
info_class,
|
||||
&info);
|
||||
if (!NT_STATUS_IS_OK(result))
|
||||
goto done;
|
||||
|
||||
display_trust_dom_info(info, info_class, cli->pwd.password);
|
||||
display_trust_dom_info(&info, info_class, cli->pwd.password);
|
||||
|
||||
done:
|
||||
if (&pol)
|
||||
@ -1046,9 +1031,9 @@ static NTSTATUS cmd_lsa_query_trustdominfo(struct rpc_pipe_client *cli,
|
||||
POLICY_HND pol, trustdom_pol;
|
||||
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||
uint32 access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
|
||||
LSA_TRUSTED_DOMAIN_INFO *info;
|
||||
union lsa_TrustedDomainInfo info;
|
||||
DOM_SID dom_sid;
|
||||
uint32 info_class = 1;
|
||||
enum lsa_TrustDomInfoEnum info_class = 1;
|
||||
|
||||
if (argc > 3 || argc < 2) {
|
||||
printf("Usage: %s [sid] [info_class]\n", argv[0]);
|
||||
@ -1073,13 +1058,15 @@ static NTSTATUS cmd_lsa_query_trustdominfo(struct rpc_pipe_client *cli,
|
||||
if (!NT_STATUS_IS_OK(result))
|
||||
goto done;
|
||||
|
||||
result = rpccli_lsa_query_trusted_domain_info(cli, mem_ctx, &trustdom_pol,
|
||||
info_class, &info);
|
||||
result = rpccli_lsa_QueryTrustedDomainInfo(cli, mem_ctx,
|
||||
&trustdom_pol,
|
||||
info_class,
|
||||
&info);
|
||||
|
||||
if (!NT_STATUS_IS_OK(result))
|
||||
goto done;
|
||||
|
||||
display_trust_dom_info(info, info_class, cli->pwd.password);
|
||||
display_trust_dom_info(&info, info_class, cli->pwd.password);
|
||||
|
||||
done:
|
||||
if (&pol)
|
||||
|
Loading…
x
Reference in New Issue
Block a user