commit a17db57c9663e0e4c060716b9bb83320c8f30fde
parent e80b9d4c13eb2332d1a9fb555e73508fa3607b11
Author: parazyd <parazyd@dyne.org>
Date: Sat, 22 Dec 2018 11:23:49 -0500
Simplify rputil util choice.
Diffstat:
3 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/rohrpost.c b/rohrpost.c
@@ -37,7 +37,6 @@ struct command cmds[] = {
};
int main(int argc, char *argv[]) {
-
int i;
char *lsl;
diff --git a/util.c b/util.c
@@ -27,6 +27,11 @@ void utilusage(void) {
" * getfpr: get tls fingerprint of $netspec\n", argv0);
}
+struct util {
+ char *cmd;
+ int (*func)(char *);
+};
+
int randint(int max) {
unsigned int ret;
FILE *f;
@@ -51,7 +56,7 @@ char *randstring(char *str, int size) {
}
-int genmsgid(void) {
+int genmsgid(char *foo) {
char buf[15];
time_t now = time(0);
strftime(buf, 15, "%Y%m%d%H%M%S", localtime(&now));
@@ -59,15 +64,16 @@ int genmsgid(void) {
return 0;
}
-int genmimeb(void) {
+int genmimeb(char *foo) {
char buf[6];
randstring(buf, sizeof(buf));
printf("%sFuNkADeLiC\n", buf);
return 0;
}
-int humansize(unsigned long size) {
+int humansize(char *sizestr) {
int i = 0;
+ unsigned long size = atol(sizestr);
const char *units[] = {"Bytes", "KiB", "MiB", "GiB"};
while (size > 1024) {
size /= 1024;
@@ -111,7 +117,15 @@ getfprend:
return 0;
}
+struct util utils[] = {
+ {"genmsgid", genmsgid},
+ {"genmimeb", genmimeb},
+ {"humansize", humansize},
+ {"getfpr", getfpr},
+};
+
int utilmain(int argc, char *argv[]) {
+ int i;
char *runcmd = NULL;
ARGBEGIN {
@@ -125,20 +139,10 @@ int utilmain(int argc, char *argv[]) {
if (runcmd == NULL)
utilusage();
- if (!strncmp("genmsgid", runcmd, 8))
- return genmsgid();
-
- if (!strncmp("genmimeb", runcmd, 8))
- return genmimeb();
-
- if (argc < 1)
- utilusage();
-
- if (!strncmp("humansize", runcmd, 9))
- return humansize(atol(argv[0]));
-
- if (!strncmp("getfpr", runcmd, 6))
- return getfpr(argv[0]);
+ for (i = 0; i < nelem(utils); i++) {
+ if (!strcmp(runcmd, utils[i].cmd))
+ return utils[i].func(argv[0]);
+ }
utilusage();
return 1;
diff --git a/util.h b/util.h
@@ -11,10 +11,9 @@ int utilmain(int argc, char *argv[]);
int *randint(int max);
char *randstring(char *str, int size);
-int genmsgid(void);
-int genmimeb(void);
-
-int humansize(unsigned long amnt);
+int genmsgid(char *foo);
+int genmimeb(char *foo);
+int humansize(char *sizestr);
int getfpr(char *desc);
#endif