applying fix for:

0000271: [PATCH] tftp -g fails if a TFTP_ACK is lost
This commit is contained in:
Paul Fox 2005-07-20 19:49:15 +00:00
parent 4905434b8a
commit 1d4c88c8a5

View File

@ -320,7 +320,7 @@ static inline int tftp(const int cmd, const struct hostent *host,
FD_ZERO(&rfds);
FD_SET(socketfd, &rfds);
switch (select(FD_SETSIZE, &rfds, NULL, NULL, &tv)) {
switch (select(socketfd + 1, &rfds, NULL, NULL, &tv)) {
case 1:
len = recvfrom(socketfd, buf, tftp_bufsize, 0,
(struct sockaddr *) &from, &fromlen);
@ -463,6 +463,11 @@ static inline int tftp(const int cmd, const struct hostent *host,
--block_nr;
opcode = TFTP_ACK;
continue;
} else if (tmp + 1 == block_nr) {
/* Server lost our TFTP_ACK. Resend it */
block_nr = tmp;
opcode = TFTP_ACK;
continue;
}
}