Skip to content

Commit 6aa3510

Browse files
committed
Handling also SIGTERM to shutdown gracefully
1 parent c21b917 commit 6aa3510

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/main.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ static int hostname_from_uri(const char* uri,
6666
return 1;
6767
}
6868

69-
static void sigint_cb(struct ev_loop *loop,
70-
ev_signal __attribute__((__unused__)) *w,
71-
int __attribute__((__unused__)) revents) {
69+
static void signal_shutdown_cb(struct ev_loop *loop,
70+
ev_signal __attribute__((__unused__)) *w,
71+
int __attribute__((__unused__)) revents) {
7272
ILOG("Shutting down gracefully. To force exit, send signal again.");
7373
ev_break(loop, EVBREAK_ALL);
7474
}
@@ -268,9 +268,14 @@ int main(int argc, char *argv[]) {
268268

269269
ev_signal sigint;
270270
// NOLINTNEXTLINE(clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling)
271-
ev_signal_init(&sigint, sigint_cb, SIGINT);
271+
ev_signal_init(&sigint, signal_shutdown_cb, SIGINT);
272272
ev_signal_start(loop, &sigint);
273273

274+
ev_signal sigterm;
275+
// NOLINTNEXTLINE(clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling)
276+
ev_signal_init(&sigterm, signal_shutdown_cb, SIGTERM);
277+
ev_signal_start(loop, &sigterm);
278+
274279
logging_flush_init(loop);
275280

276281
dns_poller_t dns_poller;
@@ -298,6 +303,7 @@ int main(int argc, char *argv[]) {
298303
curl_slist_free_all(app.resolv);
299304

300305
logging_flush_cleanup(loop);
306+
ev_signal_stop(loop, &sigterm);
301307
ev_signal_stop(loop, &sigint);
302308
ev_signal_stop(loop, &sigpipe);
303309
dns_server_stop(&dns_server);

0 commit comments

Comments
 (0)