summaryrefslogtreecommitdiffstats
path: root/discover/pb-discover.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2008-12-16 16:38:25 +1100
committerJeremy Kerr <jk@ozlabs.org>2008-12-16 16:38:25 +1100
commit9057583b8b37d07eb9af2fd48674f1732fecda17 (patch)
treea4e41b5d750387418ddec5623965c32974537e43 /discover/pb-discover.c
parent5eb7f7bcd3431cd8f634b02b71bd78f6162c2af3 (diff)
downloadtalos-petitboot-9057583b8b37d07eb9af2fd48674f1732fecda17.tar.gz
talos-petitboot-9057583b8b37d07eb9af2fd48674f1732fecda17.zip
Add device handler cleanup
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/pb-discover.c')
-rw-r--r--discover/pb-discover.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/discover/pb-discover.c b/discover/pb-discover.c
index d2ea7ae..024cb30 100644
--- a/discover/pb-discover.c
+++ b/discover/pb-discover.c
@@ -8,6 +8,13 @@
#include "waiter.h"
#include "log.h"
+static int running;
+
+void sigint_handler(int signum)
+{
+ running = 0;
+}
+
int main(void)
{
struct device_handler *handler;
@@ -17,6 +24,8 @@ int main(void)
/* we look for closed sockets when we write, so ignore SIGPIPE */
signal(SIGPIPE, SIG_IGN);
+ signal(SIGINT, sigint_handler);
+
server = discover_server_init();
if (!server)
return EXIT_FAILURE;
@@ -31,11 +40,13 @@ int main(void)
if (!udev)
return EXIT_FAILURE;
- for (;;) {
+ for (running = 1; running;) {
if (waiter_poll())
- return EXIT_FAILURE;
+ break;
}
+ device_handler_destroy(handler);
+
return EXIT_SUCCESS;
}
OpenPOWER on IntegriCloud