Message ID | 20220829173026.83133-1-christian.storm@siemens.com |
---|---|
State | Accepted |
Headers | show |
Series | Use update_transaction_state() also for streaming mode | expand |
On 29.08.22 19:30, Christian Storm wrote: > Commit b469cbe introduced update_transaction_state() to > centralize update state handling. Also use this method > when streaming. > > Signed-off-by: Christian Storm <christian.storm@siemens.com> > --- > core/stream_interface.c | 38 ++++++++++++++++++-------------------- > 1 file changed, 18 insertions(+), 20 deletions(-) > > diff --git a/core/stream_interface.c b/core/stream_interface.c > index d8d3934..81c26c3 100644 > --- a/core/stream_interface.c > +++ b/core/stream_interface.c > @@ -117,6 +117,23 @@ static int extract_file_to_tmp(int fd, const char *fname, unsigned long *poffs, > return 0; > } > > +static bool update_transaction_state(struct swupdate_cfg *software, update_state_t newstate) > +{ > + if (!software->parms.dry_run && software->bootloader_transaction_marker) { > + if (newstate == STATE_INSTALLED) > + bootloader_env_unset(BOOTVAR_TRANSACTION); > + else > + bootloader_env_set(BOOTVAR_TRANSACTION, get_state_string(newstate)); > + } > + if (!software->parms.dry_run > + && software->bootloader_state_marker > + && save_state(newstate) != SERVER_OK) { > + WARN("Cannot persistently store %s update state.", get_state_string(newstate)); > + return false; > + } > + return true; > +} > + > static int extract_files(int fd, struct swupdate_cfg *software) > { > int status = STREAM_WAIT_DESCRIPTION; > @@ -254,9 +271,7 @@ static int extract_files(int fd, struct swupdate_cfg *software) > * just once > */ > if (!installed_directly) { > - if (!software->parms.dry_run && software->bootloader_transaction_marker) { > - bootloader_env_set(BOOTVAR_TRANSACTION, get_state_string(STATE_IN_PROGRESS)); > - } > + update_transaction_state(software, STATE_IN_PROGRESS); > installed_directly = true; > } > > @@ -495,23 +510,6 @@ no_copy_output: > return ret; > } > > -static bool update_transaction_state(struct swupdate_cfg *software, update_state_t newstate) > -{ > - if (!software->parms.dry_run && software->bootloader_transaction_marker) { > - if (newstate == STATE_INSTALLED) > - bootloader_env_unset(BOOTVAR_TRANSACTION); > - else > - bootloader_env_set(BOOTVAR_TRANSACTION, get_state_string(newstate)); > - } > - if (!software->parms.dry_run > - && software->bootloader_state_marker > - && save_state(newstate) != SERVER_OK) { > - WARN("Cannot persistently store %s update state.", get_state_string(newstate)); > - return false; > - } > - return true; > -} > - > void *network_initializer(void *data) > { > int ret; Reviewed-by: Stefano Babic <sbabic@denx.de> Best regards, Stefano Babic
diff --git a/core/stream_interface.c b/core/stream_interface.c index d8d3934..81c26c3 100644 --- a/core/stream_interface.c +++ b/core/stream_interface.c @@ -117,6 +117,23 @@ static int extract_file_to_tmp(int fd, const char *fname, unsigned long *poffs, return 0; } +static bool update_transaction_state(struct swupdate_cfg *software, update_state_t newstate) +{ + if (!software->parms.dry_run && software->bootloader_transaction_marker) { + if (newstate == STATE_INSTALLED) + bootloader_env_unset(BOOTVAR_TRANSACTION); + else + bootloader_env_set(BOOTVAR_TRANSACTION, get_state_string(newstate)); + } + if (!software->parms.dry_run + && software->bootloader_state_marker + && save_state(newstate) != SERVER_OK) { + WARN("Cannot persistently store %s update state.", get_state_string(newstate)); + return false; + } + return true; +} + static int extract_files(int fd, struct swupdate_cfg *software) { int status = STREAM_WAIT_DESCRIPTION; @@ -254,9 +271,7 @@ static int extract_files(int fd, struct swupdate_cfg *software) * just once */ if (!installed_directly) { - if (!software->parms.dry_run && software->bootloader_transaction_marker) { - bootloader_env_set(BOOTVAR_TRANSACTION, get_state_string(STATE_IN_PROGRESS)); - } + update_transaction_state(software, STATE_IN_PROGRESS); installed_directly = true; } @@ -495,23 +510,6 @@ no_copy_output: return ret; } -static bool update_transaction_state(struct swupdate_cfg *software, update_state_t newstate) -{ - if (!software->parms.dry_run && software->bootloader_transaction_marker) { - if (newstate == STATE_INSTALLED) - bootloader_env_unset(BOOTVAR_TRANSACTION); - else - bootloader_env_set(BOOTVAR_TRANSACTION, get_state_string(newstate)); - } - if (!software->parms.dry_run - && software->bootloader_state_marker - && save_state(newstate) != SERVER_OK) { - WARN("Cannot persistently store %s update state.", get_state_string(newstate)); - return false; - } - return true; -} - void *network_initializer(void *data) { int ret;
Commit b469cbe introduced update_transaction_state() to centralize update state handling. Also use this method when streaming. Signed-off-by: Christian Storm <christian.storm@siemens.com> --- core/stream_interface.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-)