[ http://issues.apache.org/jira/browse/NET-68?page=comments#action_12448992 ] Rory Winston commented on NET-68: ---------------------------------
I've applied your patch to TFTPClient on the 2.0 branch. Thanks Jennifer. > [net] TFTPClient's send file discards last ack > ---------------------------------------------- > > Key: NET-68 > URL: http://issues.apache.org/jira/browse/NET-68 > Project: Commons Net > Issue Type: Bug > Affects Versions: 1.3 Final > Environment: Operating System: Linux > Platform: PC > Reporter: Perttu Auramo > Fix For: 2.0, 1.5 > > Attachments: lastack.patch, patch, TFTPstuff.zip > > > TFTPClient reads all acks just fine except the last-one when sending a file. I > figured this out when I tried to use the same TFTPClient-instance for > something > else (reading a file) after sending a file. This ack was next in the buffer > and > some exception was thrown (don't remember which anymore). > I fixed this for myself using a flag (lastAckWait). Here is a the result of > diff-command: > diff -u TFTPClient.java.original TFTPClient.java.patched > --- TFTPClient.java.original 2004-12-28 15:02:37.235997984 +0200 > +++ TFTPClient.java.patched 2004-12-28 15:09:14.516602152 +0200 > @@ -372,6 +372,7 @@ > dataLength = lastBlock = hostPort = bytesRead = 0; > block = 0; > + boolean lastAckWait = false; > if (mode == TFTP.ASCII_MODE) > input = new ToNetASCIIInputStream(input); > @@ -455,7 +456,10 @@ > if (lastBlock == block) > { > ++block; > - break _receivePacket; > + if (lastAckWait) > + break _sendPacket; > + else > + break _receivePacket; > } > else > { > @@ -501,9 +505,8 @@ > data.setData(_sendBuffer, 4, offset - 4); > sent = data; > } > - while (dataLength == 0); > + while (dataLength == 0 || lastAckWait); > - bufferedSend(sent); > endBufferedOps(); > } > By the way we have implemented a TFTP server also (heavily unit-tested). I > could > try to contribute it back if it fits in commons net. There was some talk in > the > web-pages of doing only client-side stuff for commons-net. > -Perttu -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]