improved the command line parsing of rpcclient
authorAndrew Tridgell <tridge@samba.org>
Sun, 8 Jul 2001 18:25:56 +0000 (18:25 +0000)
committerAndrew Tridgell <tridge@samba.org>
Sun, 8 Jul 2001 18:25:56 +0000 (18:25 +0000)
(This used to be commit 29d8f9bcb3f55365740a5bbafc75dd2dffc107a9)

source3/rpcclient/rpcclient.c

index e66b15bb11e7b13af9dee5eeebfdc0a294956626..decad75c8715a20dba8fae97b1f9d18ca669ae2b 100644 (file)
@@ -503,9 +503,9 @@ struct cli_state *setup_connection(struct cli_state *cli, char *system_name,
 
 
 /* Print usage information */
-static void usage(char *pname)
+static void usage(void)
 {
-       printf("Usage: %s server [options]\n", pname);
+       printf("Usage: rpcclient [options] server\n");
 
        printf("\t-A authfile           file containing user credentials\n");
        printf("\t-c \"command string\"   execute semicolon separated cmds\n");
@@ -544,18 +544,7 @@ static void usage(char *pname)
 
        DEBUGLEVEL = 1;
 
-       /* Parse options */
-       if (argc < 2) {
-               usage(argv[0]);
-               return 0;
-       }
-
-       pstrcpy(server, argv[1]);
-
-       argv++;
-       argc--;
-
-       while ((opt = getopt(argc, argv, "A:s:Nd:U:W:c:l:")) != EOF) {
+       while ((opt = getopt(argc, argv, "A:s:Nd:U:W:c:l:h")) != EOF) {
                switch (opt) {
                case 'A':
                        /* only get the username, password, and domain from the file */
@@ -588,6 +577,7 @@ static void usage(char *pname)
                case 'U': {
                        char *lp;
                        pstrcpy(username,optarg);
+                       printf("got user=%s\n", username);
                        if ((lp=strchr_m(username,'%'))) {
                                *lp = 0;
                                pstrcpy(password,lp+1);
@@ -603,14 +593,25 @@ static void usage(char *pname)
                        
                case 'h':
                default:
-                       usage(argv[0]);
+                       usage();
                        exit(1);
                }
        }
+
+       argv += optind;
+       argc -= optind;
+
+       /* Parse options */
+       if (argc < 1) {
+               usage();
+               return 0;
+       }
        
+       pstrcpy(server, argv[0]);
+
        /* the following functions are part of the Samba debugging
           facilities.  See lib/debug.c */
-       setup_logging (argv[0], interactive);
+       setup_logging("rpcclient", interactive);
        if (!interactive) 
                reopen_logs();