]> git.ozlabs.org Git - petitboot/blobdiff - discover/discover-server.c
Move waiter to library
[petitboot] / discover / discover-server.c
index 225f58c4b41aa5ec8f9b7dbbda7e9d69accf55fb..1fab3036e9b05aa493357bfc4ba2dc08636388f1 100644 (file)
 #include <asm/byteorder.h>
 
 #include <talloc/talloc.h>
+#include <waiter/waiter.h>
 
 #include "pb-protocol/pb-protocol.h"
 #include "list/list.h"
 
 #include "log.h"
-#include "waiter.h"
 #include "device-handler.h"
+#include "discover-server.h"
 
 struct discover_server {
        int socket;
@@ -75,7 +76,8 @@ static void print_clients(struct discover_server *server)
                                client->fd);
 }
 
-static int client_write_message(struct discover_server *server,
+static int client_write_message(
+               struct discover_server *server __attribute__((unused)),
                struct client *client, struct pb_protocol_message *message)
 {
        int rc;
@@ -154,6 +156,26 @@ static int discover_server_process(void *arg)
        return 0;
 }
 
+void discover_server_notify_add(struct discover_server *server,
+               struct device *device)
+{
+       struct client *client;
+
+       list_for_each_entry(&server->clients, client, list)
+               write_add_message(server, client, device);
+
+}
+
+void discover_server_notify_remove(struct discover_server *server,
+               struct device *device)
+{
+       struct client *client;
+
+       list_for_each_entry(&server->clients, client, list)
+               write_remove_message(server, client, device->id);
+
+}
+
 void discover_server_set_device_source(struct discover_server *server,
                struct device_handler *handler)
 {