Author: rwinston
Date: Sun Feb 24 13:35:58 2008
New Revision: 630681

URL: http://svn.apache.org/viewvc?rev=630681&view=rev
Log:
Block wrapping issue (NET-181)

Modified:
    
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/tftp/TFTPClient.java

Modified: 
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/tftp/TFTPClient.java
URL: 
http://svn.apache.org/viewvc/commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/tftp/TFTPClient.java?rev=630681&r1=630680&r2=630681&view=diff
==============================================================================
--- 
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/tftp/TFTPClient.java
 (original)
+++ 
commons/proper/net/branches/NET_2_0/src/main/java/org/apache/commons/net/tftp/TFTPClient.java
 Sun Feb 24 13:35:58 2008
@@ -233,13 +233,19 @@
                                 throw e;
                             }
                             ++block;
+                            if (block > 65535)
+                                                       {
+                                                               // wrap the 
block number
+                                                               block = 0;
+                                                       }
+                            
                             break _receivePacket;
                         }
                         else
                         {
                             discardPackets();
 
-                            if (lastBlock == (block - 1))
+                            if (lastBlock == (block == 0 ? 65535 : (block - 
1)))
                                 continue _sendPacket;  // Resend last 
acknowledgement.
 
                             continue _receivePacket; // Start fetching packets 
again.
@@ -466,6 +472,11 @@
                         if (lastBlock == block)
                         {
                             ++block;
+                            if (block > 65535)
+                                                       {
+                                                               // wrap the 
block number
+                                                               block = 0;
+                                                       }
                             if (lastAckWait) {
                                 
                               break _sendPacket;
@@ -478,7 +489,7 @@
                         {
                             discardPackets();
 
-                            if (lastBlock == (block - 1))
+                            if (lastBlock == (block == 0 ? 65535 : (block - 
1)))
                                 continue _sendPacket;  // Resend last 
acknowledgement.
 
                             continue _receivePacket; // Start fetching packets 
again.


Reply via email to