diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-08-19 13:29:47 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-10-13 10:47:12 +0200 |
commit | eedb76697921cb0da4bbde96705e75e49b77aea8 (patch) | |
tree | 68442848b74568a66c59c07432b4d41deb6dcf4d /net | |
parent | 1b019090f7197e069eb76bddcc7c01b04165c599 (diff) | |
download | barebox-eedb76697921cb0da4bbde96705e75e49b77aea8.tar.gz barebox-eedb76697921cb0da4bbde96705e75e49b77aea8.tar.xz |
tftp: do not call NetStartAgain()
When we are in the middle of transferring a file it does
not make sense to restart the transfer because we may
transfer directly to flash in which case we would have
to erase the flash prior to attempting again.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net')
-rw-r--r-- | net/tftp.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/net/tftp.c b/net/tftp.c index bff32c153e..0dfa60358e 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -39,7 +39,6 @@ static int TftpServerPort; /* The UDP port at their end */ static int TftpOurPort; /* The UDP port at our end */ -static int TftpTimeoutCount; static ulong TftpBlock; /* packet sequence number */ static ulong TftpLastBlock; /* last packet sequence number received */ static ulong TftpBlockWrap; /* count of sequence number wraparounds */ @@ -226,7 +225,7 @@ TftpHandler (uchar * pkt, unsigned dest, unsigned src, unsigned len) "First block is not block 1 (%ld)\n" "Starting again\n\n", TftpBlock); - NetStartAgain (); + NetState = NETLOOP_FAIL; break; } } @@ -266,8 +265,7 @@ TftpHandler (uchar * pkt, unsigned dest, unsigned src, unsigned len) case TFTP_ERROR: printf ("\nTFTP error: '%s' (%d)\n", pkt + 2, ntohs(*(ushort *)pkt)); - puts ("Starting again\n\n"); - NetStartAgain (); + NetState = NETLOOP_FAIL; break; } } @@ -276,14 +274,9 @@ TftpHandler (uchar * pkt, unsigned dest, unsigned src, unsigned len) static void TftpTimeout (void) { - if (++TftpTimeoutCount > TIMEOUT_COUNT) { - puts ("\nRetry count exceeded; starting again\n"); - NetStartAgain (); - } else { - puts ("T "); - NetSetTimeout (TIMEOUT * SECOND, TftpTimeout); - TftpSend (); - } + puts ("T "); + NetSetTimeout (TIMEOUT * SECOND, TftpTimeout); + TftpSend (); } @@ -336,7 +329,6 @@ TftpStart (void) NetSetHandler (TftpHandler); TftpServerPort = WELL_KNOWN_PORT; - TftpTimeoutCount = 0; TftpState = STATE_RRQ; /* Use a pseudo-random port unless a specific port is set */ TftpOurPort = 1024 + ((unsigned int)get_time_ns() % 3072); |