NET-613 TFTPClient assumes that lastBlock == 0 only once

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/net/trunk@1782372 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d29c94a..96d0c96 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -87,6 +87,9 @@
   The POP3Mail examples can now get password from console, stdin or an environment variable.
   
 ">
+            <action issue="NET-613" type="fix" dev="sebb">
+            TFTPClient assumes that lastBlock == 0 only once
+            </action>
             <action issue="NET-320" type="fix" dev="sebb" due-to="Kevin Bulebush">
             Allow TFTPServer.java to bind to a specific network adapter
             </action>
diff --git a/src/main/java/org/apache/commons/net/tftp/TFTPClient.java b/src/main/java/org/apache/commons/net/tftp/TFTPClient.java
index 23ceb3e..c554f1c 100644
--- a/src/main/java/org/apache/commons/net/tftp/TFTPClient.java
+++ b/src/main/java/org/apache/commons/net/tftp/TFTPClient.java
@@ -163,6 +163,7 @@
 
         beginBufferedOps();
 
+        boolean justStarted = true;
         try {
             do { // while more data to fetch
                 bufferedSend(sent); // start the fetch/send an ack
@@ -175,8 +176,8 @@
                         // answering host address (for hosts with multiple IPs)
                         final int recdPort = received.getPort();
                         final InetAddress recdAddress = received.getAddress();
-                        if (lastBlock == 0)
-                        {
+                        if (justStarted) {
+                            justStarted = false;
                             if (recdPort == port) { // must not use the control port here
                                 TFTPErrorPacket error = new TFTPErrorPacket(recdAddress,
                                         recdPort, TFTPErrorPacket.UNKNOWN_TID,