From 1a44c3bf2503b12c78c205676d903fbb05fb7ef0 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Mon, 15 Dec 2008 17:51:44 +1100 Subject: Hook up udev events to device handler Signed-off-by: Jeremy Kerr --- discover/udev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'discover/udev.c') diff --git a/discover/udev.c b/discover/udev.c index 9c1b399..16d050e 100644 --- a/discover/udev.c +++ b/discover/udev.c @@ -15,12 +15,14 @@ #include "log.h" #include "waiter.h" #include "pb-discover.h" +#include "device-handler.h" #define PBOOT_DEVICE_SOCKET "/tmp/petitboot.udev" #define max(a, b) ((a) > (b) ? (a) : (b)) struct udev { + struct device_handler *handler; int socket; }; @@ -132,6 +134,8 @@ static void handle_udev_message(struct udev *udev, char *buf, int len) print_event(event); + device_handler_event(udev->handler, event); + talloc_free(event); return; @@ -168,7 +172,7 @@ static int udev_destructor(void *p) return 0; } -struct udev *udev_init(void) +struct udev *udev_init(struct device_handler *handler) { struct sockaddr_un addr; struct udev *udev; @@ -177,6 +181,8 @@ struct udev *udev_init(void) udev = talloc(NULL, struct udev); + udev->handler = handler; + udev->socket = socket(PF_UNIX, SOCK_DGRAM, 0); if (udev->socket < 0) { pb_log("Error creating udev socket: %s\n", strerror(errno)); -- cgit v1.2.1