#include "waiter.h"
#include "log.h"
+static int running;
+
+void sigint_handler(int signum)
+{
+ running = 0;
+}
+
int main(void)
{
struct device_handler *handler;
/* 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;
discover_server_set_device_source(server, handler);
- udev = udev_init();
+ udev = udev_init(handler);
if (!udev)
return EXIT_FAILURE;
- for (;;) {
+ for (running = 1; running;) {
if (waiter_poll())
- return EXIT_FAILURE;
+ break;
}
+ device_handler_destroy(handler);
+
return EXIT_SUCCESS;
}