diff mbox series

Use update_transaction_state() also for streaming mode

Message ID 20220829173026.83133-1-christian.storm@siemens.com
State Accepted
Headers show
Series Use update_transaction_state() also for streaming mode | expand

Commit Message

Storm, Christian Aug. 29, 2022, 5:30 p.m. UTC
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(-)

Comments

Stefano Babic Aug. 30, 2022, 8:29 a.m. UTC | #1
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 mbox series

Patch

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;