aboutsummaryrefslogtreecommitdiff
path: root/client/libacron/apps/acronc/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/libacron/apps/acronc/config.c')
-rw-r--r--client/libacron/apps/acronc/config.c100
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 = &params->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