aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pingu.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/pingu.c b/pingu.c
index 16f6570..04859b0 100644
--- a/pingu.c
+++ b/pingu.c
@@ -110,12 +110,18 @@ static int daemonize(void)
return 0;
}
+static void sigint_cb(struct ev_loop *loop, ev_signal *w, int revents)
+{
+ ev_break(loop, EVBREAK_ALL);
+}
+
int main(int argc, char *argv[])
{
int c;
const char *config_file = DEFAULT_CONFIG;
int verbose = 0;
static struct ev_loop *loop;
+ static struct ev_signal signal_watcher;
while ((c = getopt(argc, argv, "c:dhp:Vv")) != -1) {
switch (c) {
@@ -161,6 +167,10 @@ int main(int argc, char *argv[])
return 1;
}
+ ev_signal_init(&signal_watcher, sigint_cb, SIGINT);
+ ev_signal_start(loop, &signal_watcher);
+
ev_run(loop, 0);
return 0;
}
+