commit 4e7ba404b7b61cc31fb04eb681ebea50aa98e476 from: Omar Polo date: Mon Dec 27 22:25:13 2021 UTC implement `bell' and `verbose'; set verbosity to 0 commit - 890a4ba04fadc9e446dfa580f159612bfeb82c04 commit + 4e7ba404b7b61cc31fb04eb681ebea50aa98e476 blob - 9e1741ca45df95f7619fb690e6da0a45a301dd55 blob + 9a783ba124348df0f227d0ed359cf9a164b06822 --- ftp.c +++ ftp.c @@ -55,6 +55,7 @@ int sock; struct evbuffer *buf; struct evbuffer *dirbuf; uint32_t msize; +int bell; #define PWDFID 0 @@ -413,6 +414,37 @@ do_connect(const char *connspec, const char *path) } static void +cmd_bell(int argc, const char **argv) +{ + if (argc == 0) { + bell = !bell; + if (bell) + puts("bell mode enabled"); + else + puts("bell mode disabled"); + return; + } + + if (argc != 1) + goto usage; + + if (!strcmp(*argv, "on")) { + bell = 1; + puts("bell mode enabled"); + return; + } + + if (!strcmp(*argv, "off")) { + bell = 0; + puts("bell mode disabled"); + return; + } + +usage: + printf("bell [on | off]\n"); +} + +static void cmd_ls(int argc, const char **argv) { uint64_t off = 0; @@ -476,6 +508,37 @@ cmd_ls(int argc, const char **argv) } do_clunk(1); +} + +static void +cmd_verbose(int argc, const char **argv) +{ + if (argc == 0) { + log_setverbose(!log_getverbose()); + if (log_getverbose()) + puts("verbose mode enabled"); + else + puts("verbose mode disabled"); + return; + } + + if (argc != 1) + goto usage; + + if (!strcmp(*argv, "on")) { + log_setverbose(1); + puts("verbose mode enabled"); + return; + } + + if (!strcmp(*argv, "off")) { + log_setverbose(0); + puts("verbose mode disabled"); + return; + } + +usage: + printf("verbose [on | off]\n"); } static void @@ -485,7 +548,9 @@ excmd(int argc, const char **argv) const char *name; void (*fn)(int, const char **); } cmds[] = { + {"bell", cmd_bell}, {"ls", cmd_ls}, + {"verbose", cmd_verbose}, }; size_t i; @@ -507,7 +572,7 @@ main(int argc, char **argv) int ch; log_init(1, LOG_DAEMON); - log_setverbose(1); + log_setverbose(0); log_procinit(getprogname()); while ((ch = getopt(argc, argv, "C:cK:")) != -1) { @@ -556,8 +621,13 @@ main(int argc, char **argv) if (**ap != '\0') ap++, argc++; } - excmd(argc, argv); + excmd(argc, (const char **)argv); + if (bell) { + printf("\a"); + fflush(stdout); + } + free(line); }