TFTPAckPacket ack = new TFTPAckPacket(host, port, 0); ack.setPort(hostPort); if(!host.equals(recdAddress)) ack.setAddress(host); sent.setAddress(host); ack.setBlockNumber(lastBlock); sent = ack; bytesRead += dataLength;
case TFTPPacket.ACKNOWLEDGEMENT: int lastBlock = ((TFTPAckPacket)received).getBlockNumber();
/*** * Creates an acknowledgement packet based from a received * datagram. Assumes the datagram is at least length 4, else an * ArrayIndexOutOfBoundsException may be thrown. * * @param datagram The datagram containing the received acknowledgement. * @throws TFTPPacketException If the datagram isn't a valid TFTP * acknowledgement packet. ***/ TFTPAckPacket(DatagramPacket datagram) throws TFTPPacketException { super(TFTPPacket.ACKNOWLEDGEMENT, datagram.getAddress(), datagram.getPort()); byte[] data; data = datagram.getData(); if (getType() != data[1]) { throw new TFTPPacketException("TFTP operator code does not match type."); } _blockNumber = (((data[2] & 0xff) << 8) | (data[3] & 0xff)); }
break; case ACKNOWLEDGEMENT: packet = new TFTPAckPacket(datagram); break; case ERROR:
break; case ACKNOWLEDGEMENT: packet = new TFTPAckPacket(datagram); break; case ERROR:
TFTPErrorPacket error; TFTPDataPacket data; TFTPAckPacket ack = new TFTPAckPacket(host, port, 0); ack.setPort(hostPort); if(!host.equals(received.getAddress())) ack.setAddress(host); sent.setAddress(host); ack.setBlockNumber(lastBlock); sent = ack; bytesRead += dataLength;
break; case ACKNOWLEDGEMENT: packet = new TFTPAckPacket(datagram); break; case ERROR:
ack = (TFTPAckPacket)received; lastBlock = ack.getBlockNumber();
/*** * Creates an acknowledgement packet based from a received * datagram. Assumes the datagram is at least length 4, else an * ArrayIndexOutOfBoundsException may be thrown. * <p> * @param datagram The datagram containing the received acknowledgement. * @throws TFTPPacketException If the datagram isn't a valid TFTP * acknowledgement packet. ***/ TFTPAckPacket(DatagramPacket datagram) throws TFTPPacketException { super(TFTPPacket.ACKNOWLEDGEMENT, datagram.getAddress(), datagram.getPort()); byte[] data; data = datagram.getData(); if (getType() != data[1]) throw new TFTPPacketException("TFTP operator code does not match type."); _blockNumber = (((data[2] & 0xff) << 8) | (data[3] & 0xff)); }
TFTPErrorPacket error; TFTPDataPacket data; TFTPAckPacket ack = new TFTPAckPacket(host, port, 0); ack.setPort(hostPort); if(!host.equals(received.getAddress())) ack.setAddress(host); sent.setAddress(host); ack.setBlockNumber(lastBlock); sent = ack; bytesRead += dataLength;
os_ = new FromNetASCIIOutputStream(os_); TFTPAckPacket lastSentAck = new TFTPAckPacket(twrp.getAddress(), twrp.getPort(), 0); transferTftp_.bufferedSend(lastSentAck); lastSentAck = new TFTPAckPacket(twrp.getAddress(), twrp.getPort(), 0); transferTftp_.bufferedSend(lastSentAck); } else if (dataPacket == null || !(dataPacket instanceof TFTPDataPacket)) { totalBytesReceived += dataLength; lastSentAck = new TFTPAckPacket(twrp.getAddress(), twrp.getPort(), block); transferTftp_.bufferedSend(lastSentAck); if (dataLength < TFTPDataPacket.MAX_DATA_LENGTH) {
ack = (TFTPAckPacket)received; lastBlock = ack.getBlockNumber();
/*** * Creates an acknowledgement packet based from a received * datagram. Assumes the datagram is at least length 4, else an * ArrayIndexOutOfBoundsException may be thrown. * <p> * @param datagram The datagram containing the received acknowledgement. * @throws TFTPPacketException If the datagram isn't a valid TFTP * acknowledgement packet. ***/ TFTPAckPacket(DatagramPacket datagram) throws TFTPPacketException { super(TFTPPacket.ACKNOWLEDGEMENT, datagram.getAddress(), datagram.getPort()); byte[] data; data = datagram.getData(); if (getType() != data[1]) throw new TFTPPacketException("TFTP operator code does not match type."); _blockNumber = (((data[2] & 0xff) << 8) | (data[3] & 0xff)); }
os_ = new FromNetASCIIOutputStream(os_); TFTPAckPacket lastSentAck = new TFTPAckPacket(twrp.getAddress(), twrp.getPort(), 0); transferTftp_.bufferedSend(lastSentAck); lastSentAck = new TFTPAckPacket(twrp.getAddress(), twrp.getPort(), 0); transferTftp_.bufferedSend(lastSentAck); } else if (dataPacket == null || !(dataPacket instanceof TFTPDataPacket)) { totalBytesReceived += dataLength; lastSentAck = new TFTPAckPacket(twrp.getAddress(), twrp.getPort(), block); transferTftp_.bufferedSend(lastSentAck); if (dataLength < TFTPDataPacket.MAX_DATA_LENGTH) {
if (ack.getBlockNumber() != block) {
if (ack.getBlockNumber() != block) {