Author: tridge Date: 2004-12-14 22:24:56 +0000 (Tue, 14 Dec 2004) New Revision: 4207
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4207 Log: 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) Modified: branches/SAMBA_4_0/source/client/client.c Changeset: Modified: branches/SAMBA_4_0/source/client/client.c =================================================================== --- branches/SAMBA_4_0/source/client/client.c 2004-12-14 22:18:33 UTC (rev 4206) +++ branches/SAMBA_4_0/source/client/client.c 2004-12-14 22:24:56 UTC (rev 4207) @@ -1837,60 +1837,44 @@ } /**************************************************************************** -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 <sid>\n"); + d_printf("lookup <name|sid>\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)); - talloc_free(mem_ctx); - return 1; - } + 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; + } - d_printf("%s\n", name); + 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; + } - 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; - - if (!next_token(cmd_ptr,buf,NULL,sizeof(buf))) { - d_printf("lookupname <name>\n"); - talloc_free(mem_ctx); - return 1; + d_printf("%s\n", name); } - 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", sid); - talloc_free(mem_ctx); return 0; @@ -2613,8 +2597,7 @@ {"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,"<src> <dest> create a UNIX hard link",{COMPL_REMOTE,COMPL_REMOTE}}, - {"lookupname",cmd_lookupname,"<name> show SID for name",{COMPL_NONE,COMPL_NONE}}, - {"lookupsid",cmd_lookupsid,"<sid> show name for SID",{COMPL_NONE,COMPL_NONE}}, + {"lookup",cmd_lookup,"<name|sid> 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,"<mask> list the contents of the current directory",{COMPL_REMOTE,COMPL_NONE}}, {"mask",cmd_select,"<mask> mask all filenames against this",{COMPL_REMOTE,COMPL_NONE}},