summaryrefslogtreecommitdiffstats
path: root/discover/udev.c
diff options
context:
space:
mode:
Diffstat (limited to 'discover/udev.c')
-rw-r--r--discover/udev.c8
1 files changed, 7 insertions, 1 deletions
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));
OpenPOWER on IntegriCloud