diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2018-07-03 16:34:45 +1000 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2018-07-10 13:46:01 +1000 |
commit | f3e72665eb06410c6f7e49e030db92349fbbddbf (patch) | |
tree | 12cacc12d7a403cf891fc5c69c4ab059513648fc /discover/discover-server.c | |
parent | bfe0549660d297809cda489c6b09db8132007ea0 (diff) | |
download | talos-petitboot-f3e72665eb06410c6f7e49e030db92349fbbddbf.tar.gz talos-petitboot-f3e72665eb06410c6f7e49e030db92349fbbddbf.zip |
discover/handler: Implement temporary autoboot messages
Handle incoming requests for temporary autoboot settings.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
[indenting fixup]
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover/discover-server.c')
-rw-r--r-- | discover/discover-server.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/discover/discover-server.c b/discover/discover-server.c index 814053d..3377fa6 100644 --- a/discover/discover-server.c +++ b/discover/discover-server.c @@ -247,6 +247,7 @@ static int write_config_message(struct discover_server *server, static int discover_server_process_message(void *arg) { + struct autoboot_option *autoboot_opt; struct pb_protocol_message *message; struct boot_command *boot_command; struct client *client = arg; @@ -311,6 +312,21 @@ static int discover_server_process_message(void *arg) device_handler_install_plugin(client->server->device_handler, url); break; + + case PB_PROTOCOL_ACTION_TEMP_AUTOBOOT: + autoboot_opt = talloc_zero(client, struct autoboot_option); + rc = pb_protocol_deserialise_temp_autoboot(autoboot_opt, + message); + if (rc) { + pb_log("can't parse temporary autoboot message\n"); + return 0; + } + + device_handler_apply_temp_autoboot( + client->server->device_handler, + autoboot_opt); + break; + default: pb_log("%s: invalid action %d\n", __func__, message->action); return 0; |