From 707d1808982fa3788156999016904475eef26ffe Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 14 Dec 2004 22:24:56 +0000 Subject: r4207: remove "lookupname" and "lookupsid", and instead have a single "lookup" command that takes a name or sid. I think in general its better to make smbclient automatically work out the type from the format (I did the same with the privileges commands) (This used to be commit bbf482e13ab973a67e9b2c0e0e40c2afff073c63) --- source4/client/client.c | 65 ++++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 41 deletions(-) (limited to 'source4') diff --git a/source4/client/client.c b/source4/client/client.c index b234a47e2c..a83ff6d29e 100644 --- a/source4/client/client.c +++ b/source4/client/client.c @@ -1837,60 +1837,44 @@ done: } /**************************************************************************** -lookup a sid +lookup a name or sid ****************************************************************************/ -static int cmd_lookupsid(const char **cmd_ptr) +static int cmd_lookup(const char **cmd_ptr) { fstring buf; TALLOC_CTX *mem_ctx = talloc(NULL, 0); NTSTATUS status; - const char *name; + struct dom_sid *sid; if (!next_token(cmd_ptr,buf,NULL,sizeof(buf))) { - d_printf("lookupsid \n"); - talloc_free(mem_ctx); - return 1; - } - - status = smblsa_lookup_sid(cli, buf, mem_ctx, &name); - if (!NT_STATUS_IS_OK(status)) { - d_printf("lsa_LookupSids - %s\n", nt_errstr(status)); + d_printf("lookup \n"); talloc_free(mem_ctx); return 1; } - d_printf("%s\n", name); - - talloc_free(mem_ctx); - - return 0; -} - -/**************************************************************************** -lookup a name, showing sid -****************************************************************************/ -static int cmd_lookupname(const char **cmd_ptr) -{ - fstring buf; - TALLOC_CTX *mem_ctx = talloc(NULL, 0); - NTSTATUS status; - const char *sid; + sid = dom_sid_parse_talloc(mem_ctx, buf); + if (sid == NULL) { + const char *sidstr; + status = smblsa_lookup_name(cli, buf, mem_ctx, &sidstr); + if (!NT_STATUS_IS_OK(status)) { + d_printf("lsa_LookupNames - %s\n", nt_errstr(status)); + talloc_free(mem_ctx); + return 1; + } - if (!next_token(cmd_ptr,buf,NULL,sizeof(buf))) { - d_printf("lookupname \n"); - talloc_free(mem_ctx); - return 1; - } + d_printf("%s\n", sidstr); + } else { + const char *name; + status = smblsa_lookup_sid(cli, buf, mem_ctx, &name); + if (!NT_STATUS_IS_OK(status)) { + d_printf("lsa_LookupSids - %s\n", nt_errstr(status)); + talloc_free(mem_ctx); + return 1; + } - status = smblsa_lookup_name(cli, buf, mem_ctx, &sid); - if (!NT_STATUS_IS_OK(status)) { - d_printf("lsa_LookupNames - %s\n", nt_errstr(status)); - talloc_free(mem_ctx); - return 1; + d_printf("%s\n", name); } - d_printf("%s\n", sid); - talloc_free(mem_ctx); return 0; @@ -2613,8 +2597,7 @@ static struct {"history",cmd_history,"displays the command history",{COMPL_NONE,COMPL_NONE}}, {"lcd",cmd_lcd,"[directory] change/report the local current working directory",{COMPL_LOCAL,COMPL_NONE}}, {"link",cmd_link," create a UNIX hard link",{COMPL_REMOTE,COMPL_REMOTE}}, - {"lookupname",cmd_lookupname," show SID for name",{COMPL_NONE,COMPL_NONE}}, - {"lookupsid",cmd_lookupsid," show name for SID",{COMPL_NONE,COMPL_NONE}}, + {"lookup",cmd_lookup," show SID for name or name for SID",{COMPL_NONE,COMPL_NONE}}, {"lowercase",cmd_lowercase,"toggle lowercasing of filenames for get",{COMPL_NONE,COMPL_NONE}}, {"ls",cmd_dir," list the contents of the current directory",{COMPL_REMOTE,COMPL_NONE}}, {"mask",cmd_select," mask all filenames against this",{COMPL_REMOTE,COMPL_NONE}}, -- cgit