diff options
Diffstat (limited to 'client/libacron/apps/acronc/config.c')
-rw-r--r-- | client/libacron/apps/acronc/config.c | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/client/libacron/apps/acronc/config.c b/client/libacron/apps/acronc/config.c deleted file mode 100644 index 046d931..0000000 --- a/client/libacron/apps/acronc/config.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Created by yuuta on 7/24/22. - */ - -#include "config.h" - -#include <libac.h> -#include <stdio.h> -#include <errno.h> -#include <string.h> -#include <stdlib.h> - -int config_parse(const int argc, const char **argv, ac_connection_parameters_t *params) { - if (argc <= 1) { - fprintf(stderr, "Usage: %s [-t token] [-p port] <ID>@<server>\n" - "Please refer to acronc(1) for more details.\n", - argv[0] ? "acronc" : argv[0]); - return 64; - } - bool svr_set = false; - for (int i = 1; i < argc; i++) { - const char *arg = argv[i]; - if (arg[0] != '-') { - if (svr_set) { - fprintf(stderr, "Unexpected value: %s\n", arg); - return 64; - } - const char *id = strtok((char *) arg, "@"); - if (!id) { - fprintf(stderr, "Malformed argument: should be ID@server.\n"); - return 64; - } - const char *server = strtok(NULL, ""); - if (!server) { - fprintf(stderr, "Malformed argument: should be ID@server.\n"); - return 64; - } - params->host = (char *) server; - params->id = (char *) id; - svr_set = true; - continue; - } - char a = arg[1]; - char **value_ptr; - char *port_str = NULL; - switch (a) { - case 't': { - value_ptr = ¶ms->token; - goto read_value; - } - case 'p': { - value_ptr = &port_str; - goto read_value; - } - default: { - fprintf(stderr, "Unexpected switch -%c.\n", a); - return 64; - } - } - read_value: - { - if (i == (argc - 1)) { - fprintf(stderr, "-%c requires an argument.\n", a); - return 64; - } - *value_ptr = (char *) argv[++i]; - } - if (port_str) { - errno = 0; - char *endptr; - unsigned long val = strtol(port_str, &endptr, 0); - if (errno) { - const int e = errno; - fprintf(stderr, "Cannot parse port: %s", strerror(e)); - return e; - } - if (endptr == port_str) { - fprintf(stderr, "Illegal port.\n"); - return 64; - } - if (val > UINT16_MAX) { - fprintf(stderr, "Illegal port.\n"); - return 64; - } - params->port = (uint16_t) val; - port_str = NULL; - } - } - if (!params->host || !params->id) { - fprintf(stderr, "Usage: acronc ID@server[:port]\n"); - return 64; - } - char tok[1024]; - if (!params->token) { - printf("Token: "); - scanf("%1023[^\n]", tok); - params->token = tok; - } - return 0; -}
\ No newline at end of file |