diff options
-rw-r--r-- | networking/tftp.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/networking/tftp.c b/networking/tftp.c index a3808f5..378ba2f 100644 --- a/networking/tftp.c +++ b/networking/tftp.c @@ -279,8 +279,6 @@ static inline int tftp(const int cmd, const struct hostent *host, } cp += len; - } else if (finished) { - break; } } @@ -306,8 +304,11 @@ static inline int tftp(const int cmd, const struct hostent *host, } - /* receive packet */ + if (finished) { + break; + } + /* receive packet */ memset(&from, 0, sizeof(from)); fromlen = sizeof(from); @@ -359,7 +360,7 @@ static inline int tftp(const int cmd, const struct hostent *host, } while (timeout && (len >= 0)); - if (len < 0) { + if ((finished) || (len < 0)) { break; } |