]> git.ozlabs.org Git - petitboot/blobdiff - ui/common/discover-client.c
autotools: Use non-recursive make
[petitboot] / ui / common / discover-client.c
index a124f8bee8d9ffd03eb008ca4bae26e801a53699..14f36da4e9004871f7704e8f76dcaea2a3fe253b 100644 (file)
@@ -112,6 +112,24 @@ static void device_remove(struct discover_client *client, const char *id)
        talloc_free(device);
 }
 
+void discover_client_enumerate(struct discover_client *client)
+{
+       struct boot_option *opt;
+       struct device *device;
+       int i;
+
+       for (i = 0; i < client->n_devices; i++) {
+               device = client->devices[i];
+               if (client->ops.device_add)
+                       client->ops.device_add(device, client->ops.cb_arg);
+
+               list_for_each_entry(&device->boot_options, opt, list)
+                       if (client->ops.boot_option_add)
+                               client->ops.boot_option_add(device, opt,
+                                               client->ops.cb_arg);
+       }
+}
+
 static void update_status(struct discover_client *client,
                struct boot_status *status)
 {
@@ -365,3 +383,21 @@ int discover_client_send_config(struct discover_client *client,
 
        return pb_protocol_write_message(client->fd, message);
 }
+
+int discover_client_send_url(struct discover_client *client,
+               char *url)
+{
+       struct pb_protocol_message *message;
+       int len;
+
+       len = pb_protocol_url_len(url);
+
+       message = pb_protocol_create_message(client,
+                               PB_PROTOCOL_ACTION_ADD_URL, len);
+       if (!message)
+               return -1;
+
+       pb_protocol_serialise_url(url, message->payload, len);
+
+       return pb_protocol_write_message(client->fd, message);
+}