+
+int discover_client_cancel_default(struct discover_client *client)
+{
+ struct pb_protocol_message *message;
+
+ message = pb_protocol_create_message(client,
+ PB_PROTOCOL_ACTION_CANCEL_DEFAULT, 0);
+
+ if (!message)
+ return -1;
+
+ return pb_protocol_write_message(client->fd, message);
+}
+
+int discover_client_send_reinit(struct discover_client *client)
+{
+ struct pb_protocol_message *message;
+
+ message = pb_protocol_create_message(client,
+ PB_PROTOCOL_ACTION_REINIT, 0);
+
+ if (!message)
+ return -1;
+
+ return pb_protocol_write_message(client->fd, message);
+}
+
+int discover_client_send_config(struct discover_client *client,
+ struct config *config)
+{
+ struct pb_protocol_message *message;
+ int len;
+
+ len = pb_protocol_config_len(config);
+
+ message = pb_protocol_create_message(client,
+ PB_PROTOCOL_ACTION_CONFIG, len);
+ if (!message)
+ return -1;
+
+ pb_protocol_serialise_config(config, message->payload, len);
+
+ 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);
+}
+
+int discover_client_send_plugin_install(struct discover_client *client,
+ char *file)
+{
+ struct pb_protocol_message *message;
+ int len;
+
+ len = pb_protocol_url_len(file);
+
+ message = pb_protocol_create_message(client,
+ PB_PROTOCOL_ACTION_PLUGIN_INSTALL, len);
+ if (!message)
+ return -1;
+
+ pb_protocol_serialise_url(file, message->payload, len);
+
+ return pb_protocol_write_message(client->fd, message);
+}
+
+int discover_client_send_temp_autoboot(struct discover_client *client,
+ const struct autoboot_option *opt)
+{
+ struct pb_protocol_message *message;
+ int len;
+
+ len = pb_protocol_temp_autoboot_len(opt);
+
+ message = pb_protocol_create_message(client,
+ PB_PROTOCOL_ACTION_TEMP_AUTOBOOT, len);
+ if (!message)
+ return -1;
+
+ pb_protocol_serialise_temp_autoboot(opt, message->payload, len);
+
+ return pb_protocol_write_message(client->fd, message);
+}