projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fb: Add a prototype for board_video_skip()
[oweals/u-boot.git]
/
net
/
tftp.c
diff --git
a/net/tftp.c
b/net/tftp.c
index 09790eb7cf8202c051d594b5243aa3f843746691..966d1cfba360ce7e7505dd5f806ce13543b0654c 100644
(file)
--- a/
net/tftp.c
+++ b/
net/tftp.c
@@
-281,7
+281,7
@@
static void update_block_number(void)
* number of 0 this means that there was a wrap
* around of the (16 bit) counter.
*/
* number of 0 this means that there was a wrap
* around of the (16 bit) counter.
*/
- if (TftpBlock == 0) {
+ if (TftpBlock == 0
&& TftpLastBlock != 0
) {
TftpBlockWrap++;
TftpBlockWrapOffset += TftpBlkSize * TFTP_SEQUENCE_SIZE;
TftpTimeoutCount = 0; /* we've done well, reset thhe timeout */
TftpBlockWrap++;
TftpBlockWrapOffset += TftpBlkSize * TFTP_SEQUENCE_SIZE;
TftpTimeoutCount = 0; /* we've done well, reset thhe timeout */
@@
-446,8
+446,8
@@
static void
TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
unsigned len)
{
TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
unsigned len)
{
-
ushort
proto;
-
ushort
*s;
+
__be16
proto;
+
__be16
*s;
int i;
if (dest != TftpOurPort) {
int i;
if (dest != TftpOurPort) {
@@
-465,7
+465,7
@@
TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
return;
len -= 2;
/* warning: don't use increment (++) in ntohs() macros!! */
return;
len -= 2;
/* warning: don't use increment (++) in ntohs() macros!! */
- s = (
ushort
*)pkt;
+ s = (
__be16
*)pkt;
proto = *s++;
pkt = (uchar *)s;
switch (ntohs(proto)) {
proto = *s++;
pkt = (uchar *)s;
switch (ntohs(proto)) {
@@
-556,7
+556,7
@@
TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
if (len < 2)
return;
len -= 2;
if (len < 2)
return;
len -= 2;
- TftpBlock = ntohs(*(
ushort
*)pkt);
+ TftpBlock = ntohs(*(
__be16
*)pkt);
update_block_number();
update_block_number();
@@
-644,9
+644,9
@@
TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
case TFTP_ERROR:
printf("\nTFTP error: '%s' (%d)\n",
case TFTP_ERROR:
printf("\nTFTP error: '%s' (%d)\n",
- pkt + 2, ntohs(*(
ushort
*)pkt));
+ pkt + 2, ntohs(*(
__be16
*)pkt));
- switch (ntohs(*(
ushort
*)pkt)) {
+ switch (ntohs(*(
__be16
*)pkt)) {
case TFTP_ERR_FILE_NOT_FOUND:
case TFTP_ERR_ACCESS_DENIED:
puts("Not retrying...\n");
case TFTP_ERR_FILE_NOT_FOUND:
case TFTP_ERR_ACCESS_DENIED:
puts("Not retrying...\n");
@@
-849,6
+849,9
@@
TftpStartServer(void)
TftpState = STATE_RECV_WRQ;
net_set_udp_handler(TftpHandler);
TftpState = STATE_RECV_WRQ;
net_set_udp_handler(TftpHandler);
+
+ /* zero out server ether in case the server ip has changed */
+ memset(NetServerEther, 0, 6);
}
#endif /* CONFIG_CMD_TFTPSRV */
}
#endif /* CONFIG_CMD_TFTPSRV */