diff options
Diffstat (limited to 'client/libacron/apps/acronc/main.c')
-rw-r--r-- | client/libacron/apps/acronc/main.c | 105 |
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(¶ms, - 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, ¶ms))) 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 |