commit - 890a4ba04fadc9e446dfa580f159612bfeb82c04
commit + 4e7ba404b7b61cc31fb04eb681ebea50aa98e476
blob - 9e1741ca45df95f7619fb690e6da0a45a301dd55
blob + 9a783ba124348df0f227d0ed359cf9a164b06822
--- ftp.c
+++ ftp.c
struct evbuffer *buf;
struct evbuffer *dirbuf;
uint32_t msize;
+int bell;
#define PWDFID 0
}
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;
}
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
const char *name;
void (*fn)(int, const char **);
} cmds[] = {
+ {"bell", cmd_bell},
{"ls", cmd_ls},
+ {"verbose", cmd_verbose},
};
size_t i;
int ch;
log_init(1, LOG_DAEMON);
- log_setverbose(1);
+ log_setverbose(0);
log_procinit(getprogname());
while ((ch = getopt(argc, argv, "C:cK:")) != -1) {
if (**ap != '\0')
ap++, argc++;
}
- excmd(argc, argv);
+ excmd(argc, (const char **)argv);
+ if (bell) {
+ printf("\a");
+ fflush(stdout);
+ }
+
free(line);
}