r4207: remove "lookupname" and "lookupsid", and instead have a single "lookup" comman...
authorAndrew Tridgell <tridge@samba.org>
Tue, 14 Dec 2004 22:24:56 +0000 (22:24 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:07:26 +0000 (13:07 -0500)
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)

source/client/client.c

index b234a47e2c258a1a5446f4fba75ad94b9b8626b1..a83ff6d29ec0c28300c3fa1f99d884e654aef5b5 100644 (file)
@@ -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 <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));
+               d_printf("lookup <name|sid>\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 <name>\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,"<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}},