From e59a0ff9934f8ea44ecb02e9fdaa81a29bd04b61 Mon Sep 17 00:00:00 2001 From: Max Cohan Date: Wed, 30 Jun 2010 09:30:49 +0100 Subject: [PATCH] fix & enhance vlclient command-line handling Corrects an EOL bug in vlclient and adds a more user-friendly handling of request for help (i.e., '-help' now works) FIXES 125036 Change-Id: I70f6523d538e34a02536e482f99916293a195df5 Reviewed-on: http://gerrit.openafs.org/2300 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/vlserver/vlclient.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/vlserver/vlclient.c b/src/vlserver/vlclient.c index 823d7d616..e15f94bde 100644 --- a/src/vlserver/vlclient.c +++ b/src/vlserver/vlclient.c @@ -242,10 +242,19 @@ handleit(struct cmd_syndesc *as, void *arock) } else { char *oper, *vname; register char **argp = args; + + /* Eliminate terminating CR */ + while(strlen(line) > 0 && + (line[strlen(line)-1] == '\n' || + line[strlen(line)-1] == '\r')) { + line[strlen(line)-1] = NULL; + } + GetArgs(line, argp, &nargs); oper = &argp[0][0]; ++argp, --nargs; - if (!strcmp(oper, "cr")) { + if (!*line) { + } else if (!strcmp(oper, "cr")) { fill_entry(&entry, argp, nargs); display_entry(&entry, 0); code = ubik_VL_CreateEntry(cstruct, 0, &entry); @@ -1004,12 +1013,13 @@ handleit(struct cmd_syndesc *as, void *arock) printf("VL_ChangeAddr returned code = %d\n", code); continue; } - } else if ((!strcmp(oper, "?")) || !strcmp(oper, "h")) + } else if ((!strcmp(oper, "?")) || !strcmp(oper, "h") || !strcmp(oper, "help")) print_usage(); else if ((!strcmp(oper, "q")) || !strcmp(oper, "quit")) exit(0); else { - printf("Unknown oper!\n"); + printf("Unknown oper (%s)!\n", oper); + print_usage(); } } } -- 2.39.5