From 8856becf34868c2ebaefff9baa294c21462f281b Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Tue, 16 Jun 2020 14:11:58 +0200 Subject: Convert most of main.c to use debugging --- main.c | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index f7023c4..e47848c 100644 --- a/main.c +++ b/main.c @@ -55,9 +55,8 @@ cfg_free(struct uring_task *task) { struct cfg *cfg = container_of(task, struct cfg, task); - fprintf(stderr, "%s: called\n", __func__); + debug(DBG_SIG, "called\n"); systemd_delete(cfg); - fprintf(stderr, "All resources free, exiting\n"); exiting = true; /* The cfg struct is free:d in main() */ } @@ -75,7 +74,7 @@ cfg_read(struct cfg *cfg) perrordie("fopen"); } - printf("Opened config file\n"); + debug(DBG_CFG, "opened config file\n"); fclose(cfgfile); } @@ -95,6 +94,9 @@ const struct { },{ .name = "announce", .val = DBG_ANN + },{ + .name = "signals", + .val = DBG_SIG },{ .name = NULL, .val = 0 @@ -190,7 +192,7 @@ signalfd_free(struct uring_task *task) { struct signalfd_ev *sev = container_of(task, struct signalfd_ev, task); - fprintf(stderr, "%s: called\n", __func__); + debug(DBG_SIG, "called\n"); sev->cfg->sev = NULL; xfree(sev); } @@ -225,23 +227,25 @@ signalfd_read(struct cfg *cfg, struct uring_task *task, int res) static int count = 0; if (task->dead) { - fprintf(stderr, "%s: task dead\n", __func__); + debug(DBG_SIG, "task dead\n"); return; } count++; - if (count > 5) + if (count > 5) { + error("Max signal count exceeded, force quitting\n"); exit(EXIT_FAILURE); + } if (res != sizeof(sev->buf)) die("error in signalfd (%i)", res); if (sev->buf < 1000) { - fprintf(stderr, "Got a signal to quit\n"); + info("Got a signal to quit\n"); sd_notifyf(0, "STOPPING=1\nSTATUS=Received signal, exiting"); exit(EXIT_SUCCESS); } else { - fprintf(stderr, "Got a signal to dump tree\n"); + info(stderr, "Got a signal to dump tree\n"); sd_notifyf(0, "STOPPING=1\nSTATUS=Received signal, exiting"); dump_tree(cfg); uring_task_put(cfg, &sev->task); @@ -250,7 +254,6 @@ signalfd_read(struct cfg *cfg, struct uring_task *task, int res) cfgdir_delete(cfg); list_for_each_entry_safe(server, stmp, &cfg->servers, list) server_delete(cfg, server); - fprintf(stderr, "%s: putting sev task 0x%p\n", __func__, &sev->task); uring_delete(cfg); return; } @@ -268,27 +271,29 @@ hack_handler(int signum) switch (signum) { case SIGINT: - fprintf(stderr, "Got a SIGINT\n"); + debug(DBG_SIG, "Got a SIGINT\n"); val = 1000; if (count > 3) dump_tree(cfghack); break; case SIGHUP: - fprintf(stderr, "Got a SIGHUP\n"); + debug(DBG_SIG, "Got a SIGHUP\n"); val = 1000; break; case SIGTERM: - fprintf(stderr, "Got a SIGTERM\n"); + debug(DBG_SIG, "Got a SIGTERM\n"); val = 1; break; default: - fprintf(stderr, "Got an unknown sig (%i)\n", signum); + error("Got an unknown sig (%i)\n", signum); val = 1; break; } - if (count > 5) + if (count > 5) { + error("Max signal count exceeded, force quitting\n"); exit(EXIT_FAILURE); + } write(hack_efd, &val, sizeof(val)); count++; @@ -331,7 +336,7 @@ signalfd_init(struct cfg *cfg) if (sfd < 0) perrordie("eventfd"); - fprintf(stderr, "signalfd init: %i\n", sfd); + debug(DBG_SIG, "using fd %i\n", sfd); uring_task_init(&sev->task, "sev", uring_parent(cfg), signalfd_free); uring_task_set_fd(&sev->task, sfd); cfg->sev = sev; @@ -377,12 +382,12 @@ main(int argc, char **argv) server_count, (unsigned long)getpid()); - fprintf(stderr, "%s: started, %u server configurations loaded\n", - argv[0], server_count); + info(stderr, "%s: started, %u server configurations loaded\n", + argv[0], server_count); uring_event_loop(cfg); - fprintf(stderr, "Event loop exited\n"); + info("Exiting\n"); xfree(cfg); -- cgit v1.2.3