diff --git a/lockserver/client.cc b/lockserver/client.cc index ccce2d61881ef628a6a213af6f3b2faa4eb477f7..45e2266786bf75350569bc8d09f1b424f8971d95 100644 --- a/lockserver/client.cc +++ b/lockserver/client.cc @@ -30,6 +30,17 @@ #include "lockserver/client.h" +namespace { + +void +usage() +{ + printf("Unknown command.. Try again!\n"); + printf("Usage: exit | q | lock <key> | unlock <key>\n"); +} + +} // namespace + int main(int argc, char **argv) { @@ -68,14 +79,18 @@ main(int argc, char **argv) cmd[clen++] = c; cmd[clen] = '\0'; - if (clen == 0) continue; tok = strtok(cmd, " ,.-"); + if (tok == NULL) continue; if (strcasecmp(tok, "exit") == 0 || strcasecmp(tok, "q") == 0) { printf("Exiting..\n"); break; } else if (strcasecmp(tok, "lock") == 0) { tok = strtok(NULL, " ,.-"); + if (tok == NULL) { + usage(); + continue; + } key = string(tok); status = locker.lock(key); @@ -86,11 +101,15 @@ main(int argc, char **argv) } } else if (strcasecmp(tok, "unlock") == 0) { tok = strtok(NULL, " ,.-"); + if (tok == NULL) { + usage(); + continue; + } key = string(tok); locker.unlock(key); printf("Unlock Successful\n"); } else { - printf("Unknown command.. Try again!\n"); + usage(); } fflush(stdout); }