Uploaded image for project: 'Commons Net'
  1. Commons Net
  2. NET-68

[net] TFTPClient's send file discards last ack

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.3
    • Fix Version/s: 1.5, 2.0
    • Component/s: None
    • Labels:
      None
    • Environment:

      Operating System: Linux
      Platform: PC

    • Bugzilla Id:
      32859

      Description

      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

        Attachments

        1. TFTPstuff.zip
          9 kB
          Jennifer Hodgdon
        2. lastack.patch
          4 kB
          Jennifer Hodgdon
        3. ASF.LICENSE.NOT.GRANTED--patch
          1 kB
          Perttu Auramo

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                perttu.auramo@ekahau.com Perttu Auramo
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: