aboutsummaryrefslogtreecommitdiff
path: root/client/libacron/apps/acronc/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/libacron/apps/acronc/main.c')
-rw-r--r--client/libacron/apps/acronc/main.c105
1 files changed, 0 insertions, 105 deletions
diff --git a/client/libacron/apps/acronc/main.c b/client/libacron/apps/acronc/main.c
deleted file mode 100644
index 6e18ed2..0000000
--- a/client/libacron/apps/acronc/main.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Created by yuuta on 7/23/22.
- */
-
-#include "log.h"
-#include "handler.h"
-#include "config.h"
-#include "helpers.h"
-#include "client.h"
-
-#include <libac.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <uv.h>
-#include <err.h>
-#include <string.h>
-
-static uv_loop_t lop;
-uv_loop_t *loop = &lop;
-
-static void on_close(uv_handle_t *handle);
-
-static ac_connection_parameters_t params = {
- .sock = NULL,
- .version = 0,
- .port = 25575,
- .host = NULL,
- .id = NULL,
- .token = NULL,
- .on_send = NULL,
-};
-
-static void cleanup(void) {
- LOGD("cleanup()");
- /* sock must be closed before cleanup(). */
- uv_loop_close(loop);
- ac_free();
- uv_tty_reset_mode();
-}
-
-static void on_stdin_closed(void) {
- sock_ext(true);
-}
-
-static void on_sock_closed(void) {
- uv_stop(loop);
-}
-
-static int on_input(ac_request_t *req) {
- /* The socket will close itself upon errors. So do the input stream. */
- return sock_request(req);
-}
-
-static int on_sock_ready(void) {
- return h_stdin(on_input, on_stdin_closed);
-}
-
-static void on_resolv(int status, const struct addrinfo *ai, void (*on_connected)(bool)) {
- if (status) {
- uv_stop(loop);
- return;
- }
-
- if (h_socket(&params,
- ai,
- on_connected,
- on_sock_ready,
- handle_object,
- on_sock_closed)) {
- /* Mark as true to clean up resources and prevent next retry. */
- on_connected(true);
- uv_stop(loop);
- }
-}
-
-int main(int argc, const char **argv) {
- int r;
-
- if ((r = config_parse(argc, argv, &params))) return r;
- atexit(cleanup);
- libac_config_t config = {
-#ifdef DEBUG
- .out = NULL,
-#else
- .out = NULL,
-#endif
- .tok = NULL
- };
- if ((r = ac_init(&config))) errx(r, "Cannot initialize Acron library.");
-
- if ((r = uv_loop_init(loop))) goto uviniterr;
- if ((r = h_signal())) goto uviniterr;
- if ((r = a_dns(params.host, params.port, on_resolv))) goto uviniterr;
-
- if ((r = uv_run(loop, UV_RUN_DEFAULT))) {
- if (r == 1) {
- /* Seems to return 1 if uv_stop is called. */
- return 0;
- }
- errx(-r, "Cannot run: %s", uv_strerror(r));
- }
- return 0;
- uviniterr:
- errx(-r, "Cannot initialize: %s", uv_strerror(r));
-} \ No newline at end of file