From patchwork Tue Dec 22 13:07:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "vincent....@gmail.com" X-Patchwork-Id: 1419362 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::13e; helo=mail-lf1-x13e.google.com; envelope-from=swupdate+bncbdylnjxztmcrbcg7q77qkgqeywojtni@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=i11IFPov; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=hN7UQ0bb; dkim-atps=neutral Received: from mail-lf1-x13e.google.com (mail-lf1-x13e.google.com [IPv6:2a00:1450:4864:20::13e]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4D0c7g3F8xz9sVS for ; Wed, 23 Dec 2020 00:07:25 +1100 (AEDT) Received: by mail-lf1-x13e.google.com with SMTP id 1sf15876875lfb.17 for ; Tue, 22 Dec 2020 05:07:25 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1608642441; cv=pass; d=google.com; s=arc-20160816; b=AYWTm+ZP6jTnMGoW9KvC3tNB/9vbI4lUjamdd0KyrA7JFXfKMJ6Xikot5BYb2ZhNGU nxAJ0Ze31A5xyjM584uixnhit+gyIim9alKykpYsVpT4yWlXpE7GuNQtHzcCFBxQhAv6 wwyfAth/DlZJcX0DtEAZh7eSYJLLTq8p+xpanLTNRAJeocmq0ywTZfiAM9HCSb+Isgl0 kAx1DVuU5/YVqpYVPYfdIF1cyEk4vrRGSbM2N0BJtRwr4JmeuSRt2f1lTcpHJJL/rRKb Yjkcj0RskJQPezWrkjMqEFuw9BDlz0SYXzgzjZUp12uRxyNTu0+UqeLGDj6Kkp49Ylno nu/w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:message-id:date :subject:cc:to:from:sender:dkim-signature:dkim-signature; bh=Y2LG/YUBfz4zXZO+rEM5/tTIyFcHu9gn74B3pcmg5aE=; b=K0Q73CpoBCnWoFIOV43TJWrFzCztaSUKytqwKENGspduTkk10zGezhbcPJHaTH8ssZ AB05K7gTt7ezo4HWYQxoxzxTx7uWgaLsdU2S+ZOvj3AybI6yVNhLTO5SqlhMbQ26OJcu 28KPkUApOhkP8WoQ7ahHBH3anypoI1ZCkPOXo72NFZWKrOLkb9Yv72TdcYCQIrC4DBGO k5iT6uE0TP1MyDyqqsHp2jlOfzGvl1SWyAx7KM3xxF4sXSi6J6xrDxpi9eD8LbKYEjXu ucwX6qxNGzKHOnpshFwFvvo2pqdeOk5wug7fOFCnvVU/S93dj/WmaX8BKjBBx2qKgy/a 4Bcg== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=gQJfa9ii; spf=pass (google.com: domain of vincent.prince.fr@gmail.com designates 2a00:1450:4864:20::336 as permitted sender) smtp.mailfrom=vincent.prince.fr@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=Y2LG/YUBfz4zXZO+rEM5/tTIyFcHu9gn74B3pcmg5aE=; b=i11IFPovKLG/+dByl2lk0cLY9k58jUOVY3G1+SlsCmsC1B1ZB+uBghQlaGlpJl7RYN K1VZuYljgwAozw/lDUVP1gMYowZxmU1F5YePEMP0/xFA8Chxzck5v5Suc0SeFLfhpQcK S5+tvxtMBDju+XNtAJtjOk0KgbGbwgfGaucbYCIxZWBq4jg6fGaasHVs1gtAxoUgeIAy Bnr1Fz83tIcl69zJYY2hbo7gLZHW07gDyIJ+7vXRdJLBmgCCQXpy+9/ovWG6oXwbuH4N Tobv7VdmeRk20YL7z2duG5+zmTY1hWzxLAio/ia680gaiqjy9dtJy89kskSO9x0hfc5v sZYw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :list-post:list-help:list-archive:list-subscribe:list-unsubscribe; bh=Y2LG/YUBfz4zXZO+rEM5/tTIyFcHu9gn74B3pcmg5aE=; b=hN7UQ0bbVMSmTNIsigE4ACPxRAnpTAc62WhsyIJJJOL2fABeudh3hbekuVMHzpHD9A jSBQsQjwDrsVFPJIsPiBYzAxqGpuOeS/aKryfBvk/kd1vRKiFIht4N1gZ1MHvdElInA/ XDk4Knb7yfPj1XL/6Dig2MLoIw4DLy5Lt+5hX6pn0/2KZ5CJExVL66fheo8fXlINIDL+ nj2w0LHe8LK24fOQPgO4w2cAlNxVFCXSkS20OaCuqd9IJOcGCWOFRMjovMfGWY/HtPeF 7RrIRGk5nc+GzF5KPgGVIOOS+9QcYN7qPHWcsYH3gN49eyzRMCJUUQ2sPoR02+raLCZ+ y43w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:cc:subject:date:message-id :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=Y2LG/YUBfz4zXZO+rEM5/tTIyFcHu9gn74B3pcmg5aE=; b=G862EGkMeyxjTZYqKg1uFtxJJrkQStzWp28uPeJ7evSIb/tPb5fBY/08h3GKsJ8+ja tnvM7Cfb3vA4VsQJDQPbE9xEKuB1dRq8xEm/v4o8Lvvb1bRjdE8NfE+lRMvDQe2w6vCR lvUg+e4RDQyaLTbZBfqw4O/zEaTO4KYwriytmQpiYpoOLDVjs8/SMnoEIDKBqo26sdGH QNLZ4NGSPQfxKJUj8tGYOOi8vXCk1CQiFnMgbvP2sOpLBgw+kjiF0W2OQ9iOAVYKCLNO yxv6oMlCjWvbz77mPdqCjSVVsPHaq1ziYkecdoo8xuZfvBAJBalljS2TZyLd45BmokHS r4kQ== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM530BMSHJbGbHNR/za6efbVmpjhpcbd5zWhcdlxvj+yErnvvJyQBj Z32TvbEgAUKR6PotJ5F9qDM= X-Google-Smtp-Source: ABdhPJzYP9yHB6Hg9WWrALdTSM6yHNS2FTiUOMDAJyjC9yyx+E/IX8kwitxoZvow1HzDDu2bxt5tkQ== X-Received: by 2002:ac2:4646:: with SMTP id s6mr9134957lfo.621.1608642441245; Tue, 22 Dec 2020 05:07:21 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a2e:7d0d:: with SMTP id y13ls6998311ljc.9.gmail; Tue, 22 Dec 2020 05:07:19 -0800 (PST) X-Received: by 2002:a2e:a593:: with SMTP id m19mr10089429ljp.327.1608642439794; Tue, 22 Dec 2020 05:07:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608642439; cv=none; d=google.com; s=arc-20160816; b=eU1FetH5UZ+PPeeO6p8M83EvY2wO1CPgdBOg2pUZHoYtsAfXsE5rXOn/3HykeM8IDK 3sGyHCLFMXb9IfF5askp8rwkZBjVvKOWL7mJ+08oGFFUm5Hhw/VQxvn//l+aiUY4OBb5 u+iiZOlEzp4Jp/WYt+GZRdjQhE23LJGlI5+l4zSJ6EtSIDFdz3HIV63EXY8kElMdY46m Q/0YL9I0HjiahsOpVaup54vjQxtMLSo3vksDwHbnC18b8pu5BEImQZdep0hcTBfz6WsV hf11cjCHCzMUSOpiLByaEDni8qahus7N+bdxTSN8ZzgkvTWcKnC6zrSenfQhO073y0Ma bchA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=EZRvH5GMWf/a1ydldszKXab/jp8aZo4dPRb/9FD/I9E=; b=fRpAQ88RZ+2KlgpPPMS+xzzVSyJ0zdAoYfFwN3VjJdOBWfEFwDDG3kEkn8Lc7p2e6k YoNZ5rac1Cl9tZF30D/9Pxj06Qth6pwWCJ2t4MLALh9nKgAnJqz3ZrjZ8lOjbqqo5VtG PH+AjKkwEOSF1SR9EEvOx5X+Q9M912zGCOrbbLmbTYwNrwevOSEkq1nFTXrO6bwFp+L0 zd3iW72ShtaxZTlbap8d9AyusOJrtm9VYgC+Cya0++RK9UujH26190FltsBRuG60Ne8c 1Z9b3BCJg18Sg6H2m4L9TuXulpPxiPMfC9uGcR4t3HAQeb8SgcXEuuJYCq5DZmhvb8Zy JRbw== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=gQJfa9ii; spf=pass (google.com: domain of vincent.prince.fr@gmail.com designates 2a00:1450:4864:20::336 as permitted sender) smtp.mailfrom=vincent.prince.fr@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com. [2a00:1450:4864:20::336]) by gmr-mx.google.com with ESMTPS id q18si702881lfc.5.2020.12.22.05.07.19 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 22 Dec 2020 05:07:19 -0800 (PST) Received-SPF: pass (google.com: domain of vincent.prince.fr@gmail.com designates 2a00:1450:4864:20::336 as permitted sender) client-ip=2a00:1450:4864:20::336; Received: by mail-wm1-x336.google.com with SMTP id 190so1830718wmz.0 for ; Tue, 22 Dec 2020 05:07:19 -0800 (PST) X-Received: by 2002:a7b:cbcc:: with SMTP id n12mr21572363wmi.23.1608642439048; Tue, 22 Dec 2020 05:07:19 -0800 (PST) Received: from vpr-vm.corporate.saft.org (176-130-173-25.abo.bbox.fr. [176.130.173.25]) by smtp.gmail.com with ESMTPSA id 138sm29139330wma.41.2020.12.22.05.07.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Dec 2020 05:07:18 -0800 (PST) From: Vincent Prince To: swupdate@googlegroups.com Cc: Vincent Prince Subject: [swupdate] [PATCH] Save sourcetype in bootloader environment Date: Tue, 22 Dec 2020 14:07:16 +0100 Message-Id: <20201222130716.13918-1-vincent.prince.external@saftbatteries.com> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 X-Original-Sender: vincent.prince.fr@gmail.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=gQJfa9ii; spf=pass (google.com: domain of vincent.prince.fr@gmail.com designates 2a00:1450:4864:20::336 as permitted sender) smtp.mailfrom=vincent.prince.fr@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Signed-off-by: Vincent Prince --- core/state.c | 9 +++++++++ core/stream_interface.c | 1 + core/swupdate.c | 1 + include/swupdate.h | 1 + include/swupdate_status.h | 13 +++++++++++++ 5 files changed, 25 insertions(+) diff --git a/core/state.c b/core/state.c index 8ddd760..8c1d2db 100644 --- a/core/state.c +++ b/core/state.c @@ -69,6 +69,15 @@ server_op_res_t save_state_string(char *key, update_state_t value) SERVER_OK : SERVER_EERR; } +server_op_res_t save_sourcetype_string(char *key, sourcetype value) +{ + CHECK_STATE_VAR(key); + if (value < SOURCE_UNKNOWN || value > SOURCE_LOCAL) + return -EINVAL; + return bootloader_env_set(key, get_sourcetype_string(value)) == 0 ? + SERVER_OK : SERVER_EERR; +} + server_op_res_t read_state(char *key, update_state_t *value) { char *envval; diff --git a/core/stream_interface.c b/core/stream_interface.c index 6d32998..d514203 100644 --- a/core/stream_interface.c +++ b/core/stream_interface.c @@ -584,6 +584,7 @@ void *network_initializer(void *data) */ if (!software->globals.dry_run && software->bootloader_transaction_marker) { save_state_string((char*)BOOTVAR_TRANSACTION, STATE_IN_PROGRESS); + save_sourcetype_string((char*)BOOTVAR_SOURCE_TYPE, req->source); } notify(RUN, RECOVERY_NO_ERROR, INFOLEVEL, "Installation in progress"); diff --git a/core/swupdate.c b/core/swupdate.c index 9adafa8..27432d2 100644 --- a/core/swupdate.c +++ b/core/swupdate.c @@ -391,6 +391,7 @@ static int install_from_file(char *fname, int check) */ if (!swcfg.globals.dry_run && swcfg.bootloader_transaction_marker) { save_state_string((char*)BOOTVAR_TRANSACTION, STATE_IN_PROGRESS); + save_sourcetype_string((char*)BOOTVAR_SOURCE_TYPE, SOURCE_LOCAL); } swcfg.globals.dry_run = swcfg.globals.default_dry_run; diff --git a/include/swupdate.h b/include/swupdate.h index a687927..b72bb42 100644 --- a/include/swupdate.h +++ b/include/swupdate.h @@ -16,6 +16,7 @@ #include "swupdate_dict.h" #define BOOTVAR_TRANSACTION "recovery_status" +#define BOOTVAR_SOURCE_TYPE "source_type" /* * swupdate uses SHA256 hashes diff --git a/include/swupdate_status.h b/include/swupdate_status.h index 8ac9af1..d85af6b 100644 --- a/include/swupdate_status.h +++ b/include/swupdate_status.h @@ -42,4 +42,17 @@ typedef enum { } // extern "C" #endif +static inline char* get_sourcetype_string(sourcetype srctype) { + switch (srctype) { + case SOURCE_UNKNOWN: return (char*)"unknown"; + case SOURCE_WEBSERVER: return (char*)"webserver"; + case SOURCE_SURICATTA: return (char*)"suricatta"; + case SOURCE_DOWNLOADER: return (char*)"downloader"; + case SOURCE_LOCAL: return (char*)"local"; + default: break; + } + return (char*)""; +} + + #endif