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.