diff options
author | Gerald Carter <jerry@samba.org> | 2005-02-25 14:08:30 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2005-02-25 14:08:30 +0000 |
commit | 70cd25be8b07743816b9376f9d219453f0f906fc (patch) | |
tree | 073f3d33dac8c96b0d4c7b809b3dc86b91023214 /source/rpcclient/cmd_samr.c | |
parent | 1d58e0d7811acc335f09128ae757f5f76a51644d (diff) | |
download | samba-70cd25be8b07743816b9376f9d219453f0f906fc.tar.gz |
r5555: current with 3.0 tree as of r5548; getting ready for 3.0.12pre1
Diffstat (limited to 'source/rpcclient/cmd_samr.c')
-rw-r--r-- | source/rpcclient/cmd_samr.c | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/source/rpcclient/cmd_samr.c b/source/rpcclient/cmd_samr.c index a69a0cb73a7..d3f89540502 100644 --- a/source/rpcclient/cmd_samr.c +++ b/source/rpcclient/cmd_samr.c @@ -141,6 +141,27 @@ static const char *display_time(NTTIME nttime) return (string); } +static const char* server_role_str(uint32 server_role) +{ + switch(server_role) { + case ROLE_STANDALONE: + return strdup("ROLE_STANDALONE"); + break; + case ROLE_DOMAIN_MEMBER: + return strdup("ROLE_DOMAIN_MEMBER"); + break; + case ROLE_DOMAIN_BDC: + return strdup("ROLE_DOMAIN_BDC"); + break; + case ROLE_DOMAIN_PDC: + return strdup("ROLE_DOMAIN_PDC"); + break; + default: + return strdup("Unknown -- internal error?"); + break; + } +} + static void display_sam_unk_info_1(SAM_UNK_INFO_1 *info1) { @@ -159,10 +180,10 @@ static void display_sam_unk_info_2(SAM_UNK_INFO_2 *info2) fstring name; unistr2_to_ascii(name, &info2->uni_domain, sizeof(name) - 1); - printf("Domain:\t%s\n", name); + printf("Domain:\t\t%s\n", name); unistr2_to_ascii(name, &info2->uni_server, sizeof(name) - 1); - printf("Server:\t%s\n", name); + printf("Server:\t\t%s\n", name); unistr2_to_ascii(name, &info2->uni_comment, sizeof(name) - 1); printf("Comment:\t%s\n", name); @@ -176,10 +197,15 @@ static void display_sam_unk_info_2(SAM_UNK_INFO_2 *info2) printf("Force Logoff:\t%d\n", (int)nt_time_to_unix_abs(&info2->logout)); printf("Unknown 4:\t0x%x\n", info2->unknown_4); - printf("Unknown 5:\t0x%x\n", info2->unknown_5); + printf("Server Role:\t%s\n", server_role_str(info2->server_role)); printf("Unknown 6:\t0x%x\n", info2->unknown_6); } +static void display_sam_unk_info_7(SAM_UNK_INFO_7 *info7) +{ + printf("Server Role:\t%s\n", server_role_str(info7->server_role)); +} + static void display_sam_unk_info_8(SAM_UNK_INFO_8 *info8) { printf("Sequence No:\t%d\n", info8->seq_num.low); @@ -688,7 +714,7 @@ static NTSTATUS cmd_samr_enum_dom_users(struct cli_state *cli, sscanf(argv[1], "%x", &access_mask); if (argc > 2) - sscanf(argv[2], "%x", &acb_mask); + sscanf(argv[2], "%hx", &acb_mask); /* Get sam policy handle */ @@ -1161,6 +1187,9 @@ static NTSTATUS cmd_samr_query_dominfo(struct cli_state *cli, case 2: display_sam_unk_info_2(&ctr.info.inf2); break; + case 7: + display_sam_unk_info_7(&ctr.info.inf7); + break; case 8: display_sam_unk_info_8(&ctr.info.inf8); break; @@ -1365,7 +1394,6 @@ static NTSTATUS cmd_samr_lookup_rids(struct cli_state *cli, { NTSTATUS result = NT_STATUS_UNSUCCESSFUL; POLICY_HND connect_pol, domain_pol; - uint32 flags = 0x000003e8; /* Unknown */ uint32 num_rids, num_names, *rids, *name_types; char **names; int i; @@ -1398,11 +1426,11 @@ static NTSTATUS cmd_samr_lookup_rids(struct cli_state *cli, for (i = 0; i < argc - 1; i++) sscanf(argv[i + 1], "%i", &rids[i]); - result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol, - flags, num_rids, rids, + result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol, num_rids, rids, &num_names, &names, &name_types); - if (!NT_STATUS_IS_OK(result)) + if (!NT_STATUS_IS_OK(result) && + !NT_STATUS_EQUAL(result, STATUS_SOME_UNMAPPED)) goto done; /* Display results */ |