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}},

Reply via email to