diff options
| author | Simon Glass <sjg@chromium.org> | 2011-10-24 18:00:03 +0000 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2011-10-26 21:34:04 +0200 | 
| commit | f5329bbc3f951f01c39c24f06a57c34d865f5a16 (patch) | |
| tree | 3473c0bb14bfb66aa9beffb3aa4757b686090293 | |
| parent | e4bf0c5cfe1d7b2059a6802c9e11d567c928dbb1 (diff) | |
| download | olio-uboot-2014.01-f5329bbc3f951f01c39c24f06a57c34d865f5a16.tar.xz olio-uboot-2014.01-f5329bbc3f951f01c39c24f06a57c34d865f5a16.zip | |
net: tftpput: move common code into separate functions
We want to show block markers on completion of get and put, so
move this common code into separate functions.
Signed-off-by: Simon Glass <sjg@chromium.org>
| -rw-r--r-- | net/tftp.c | 68 | 
1 files changed, 38 insertions, 30 deletions
| diff --git a/net/tftp.c b/net/tftp.c index da8eeaa58..70daed033 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -195,6 +195,40 @@ static void TftpTimeout(void);  /**********************************************************************/ +static void show_block_marker(void) +{ +#ifdef CONFIG_TFTP_TSIZE +	if (TftpTsize) { +		ulong pos = TftpBlock * TftpBlkSize + TftpBlockWrapOffset; + +		while (TftpNumchars < pos * 50 / TftpTsize) { +			putc('#'); +			TftpNumchars++; +		} +	} +#endif +	else { +		if (((TftpBlock - 1) % 10) == 0) +			putc('#'); +		else if ((TftpBlock % (10 * HASHES_PER_LINE)) == 0) +			puts("\n\t "); +	} +} + +/* The TFTP get or put is complete */ +static void tftp_complete(void) +{ +#ifdef CONFIG_TFTP_TSIZE +	/* Print hash marks for the last packet received */ +	while (TftpTsize && TftpNumchars < 49) { +		putc('#'); +		TftpNumchars++; +	} +#endif +	puts("\ndone\n"); +	NetState = NETLOOP_SUCCESS; +} +  static void  TftpSend(void)  { @@ -400,21 +434,8 @@ TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  				TftpBlkSize * TFTP_SEQUENCE_SIZE;  			printf("\n\t %lu MB received\n\t ",  				TftpBlockWrapOffset>>20); -		} -#ifdef CONFIG_TFTP_TSIZE -		else if (TftpTsize) { -			while (TftpNumchars < -			       NetBootFileXferSize * 50 / TftpTsize) { -				putc('#'); -				TftpNumchars++; -			} -		} -#endif -		else { -			if (((TftpBlock - 1) % 10) == 0) -				putc('#'); -			else if ((TftpBlock % (10 * HASHES_PER_LINE)) == 0) -				puts("\n\t "); +		} else { +			show_block_marker();  		}  		if (TftpState == STATE_SEND_RRQ) @@ -498,21 +519,8 @@ TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  		}  		else  #endif -		if (len < TftpBlkSize) { -			/* -			 *	We received the whole thing.  Try to -			 *	run it. -			 */ -#ifdef CONFIG_TFTP_TSIZE -			/* Print hash marks for the last packet received */ -			while (TftpTsize && TftpNumchars < 49) { -				putc('#'); -				TftpNumchars++; -			} -#endif -			puts("\ndone\n"); -			NetState = NETLOOP_SUCCESS; -		} +		if (len < TftpBlkSize) +			tftp_complete();  		break;  	case TFTP_ERROR: |