From b4230fb93a23d16ab8883f45d9bc55e0342d8671 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 8 Jul 2001 18:25:56 +0000 Subject: improved the command line parsing of rpcclient (This used to be commit 29d8f9bcb3f55365740a5bbafc75dd2dffc107a9) --- source3/rpcclient/rpcclient.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'source3/rpcclient') diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index e66b15bb11..decad75c87 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -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(); -- cgit