[PATCH] tftp return value

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Sat Apr 17 15:14:43 EDT 2010


Hello Jan,

On Wed, Apr 14, 2010 at 10:06:06AM +0200, Jan Weitzel wrote:
> tftp returns transfered bytes on success and 1 in error case. Bad for
> scripting. Change to 0 on success
> 
> Signed-off-by: Jan Weitzel <J.Weitzel at phytec.de>
> ---
> Index: barebox-2010.04.0/net/tftp.c
> ===================================================================
> --- barebox-2010.04.0.orig/net/tftp.c	2010-04-14 09:41:37.489858785
> +0200
> +++ barebox-2010.04.0/net/tftp.c	2010-04-14 09:43:33.899445811 +0200
> @@ -281,8 +281,7 @@
>  
>  	TftpStart(remotefile);
>  
> -	rcode = NetLoop();
> -	if (rcode < 0) {
> +	if (NetLoop() < 0) {
>  		rcode = 1;
>  		goto out;
>  	}
Some time ago I created a patch that had the same effect.  (I changed
the return code of NetLoop() instead of its interpretation, but that
shouldn't matter much---I didn't (re)verify it though.)

But I had an additional hunk to let tftp return 1 if initializing the network failed.

Below is my complete patch.

Best regards
Uwe

---------------------->8-----------------------
From: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
Date: Fri, 26 Mar 2010 12:55:37 +0100
Subject: net/tftp: let tftp return 0 on success and 1 on failure

Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
 net/net.c  |    2 +-
 net/tftp.c |    4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/net.c b/net/net.c
index 4554d49..e73ee31 100644
--- a/net/net.c
+++ b/net/net.c
@@ -316,7 +316,7 @@ int NetLoop(void)
 				setenv("filesize", buf);
 			}
 			eth_halt();
-			return NetBootFileXferSize;
+			return 0;
 
 		case NETLOOP_FAIL:
 			eth_halt();
diff --git a/net/tftp.c b/net/tftp.c
index 26f0c43..bcb3793 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -276,8 +276,10 @@ static int do_tftpb(struct command *cmdtp, int argc, char *argv[])
 		return 1;
 	}
 
-	if (NetLoopInit(TFTP) < 0)
+	if (NetLoopInit(TFTP) < 0) {
+		rcode = 1;
 		goto out;
+	}
 
 	TftpStart(remotefile);
 
-- 
1.7.0



-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the barebox mailing list