summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2009-08-19 13:29:47 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-10-13 10:47:12 +0200
commiteedb76697921cb0da4bbde96705e75e49b77aea8 (patch)
tree68442848b74568a66c59c07432b4d41deb6dcf4d /net
parent1b019090f7197e069eb76bddcc7c01b04165c599 (diff)
downloadbarebox-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.c18
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);