diff options
author | Simon Glass <sjg@chromium.org> | 2011-10-24 18:00:03 +0000 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2011-11-17 17:09:52 -0800 |
commit | fc1b6262079e4b2cc8402e80b5d98303d773c48a (patch) | |
tree | 7e8bc82f7ac84b1d482ad803c0b12c7616545309 /net | |
parent | 52d640d58d0bba723df03de4493cdcab167ca2ee (diff) |
BACKPORT: 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.
(cherry-picked from f5329bb)
Change-Id: I579a0db0e088ecd947bdfbf3049ec94a930fbed6
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11797
Diffstat (limited to 'net')
-rw-r--r-- | net/tftp.c | 77 |
1 files changed, 38 insertions, 39 deletions
diff --git a/net/tftp.c b/net/tftp.c index b3cd8647afc..39f4d69e20f 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -199,6 +199,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) { @@ -404,21 +438,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) @@ -502,30 +523,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"); -#ifdef CONFIG_TFTP_SPEED - time_start = get_timer(time_start); - if (time_start > 0) { - puts (" "); - print_size(NetBootFileXferSize / - time_start * 1000, "/s"); - } -#endif - puts("\ndone\n"); - NetState = NETLOOP_SUCCESS; - } + if (len < TftpBlkSize) + tftp_complete(); break; case TFTP_ERROR: |