]> git.ipfire.org Git - fireperf.git/commitdiff
client+server: Terminate gracefully when receiving a signal
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 28 Jan 2021 14:30:53 +0000 (14:30 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 28 Jan 2021 14:30:53 +0000 (14:30 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/client.c
src/server.c

index 45ea2ad3e7f7c111292a080cadaa34d306fcab82..c47653168fb7a41dd3f77f0dd6c199695f719676 100644 (file)
@@ -205,6 +205,10 @@ int fireperf_client(struct fireperf_config* conf) {
        while (!conf->terminated && !timeout_expired) {
                int fds = epoll_wait(epollfd, events, EPOLL_MAX_EVENTS, -1);
                if (fds < 1) {
+                       // We terminate gracefully when we receive a signal
+                       if (errno == EINTR)
+                               break;
+
                        ERROR(conf, "epoll_wait() failed: %s\n", strerror(errno));
                        goto ERROR;
                }
index 1d62a6c0d6f3847edb828e39ca353a809b821db6..bb21b6cdf404245311592e4fc3fdc2926ff5fa34 100644 (file)
@@ -151,6 +151,10 @@ int fireperf_server(struct fireperf_config* conf) {
        while (!conf->terminated) {
                int fds = epoll_wait(epollfd, events, EPOLL_MAX_EVENTS, -1);
                if (fds < 1) {
+                       // We terminate gracefully when we receive a signal
+                       if (errno == EINTR)
+                               break;
+
                        ERROR(conf, "epoll_wait() failed: %s\n", strerror(errno));
                        goto ERROR;
                }