I think would be better not just wait a DEALY and then continue, because you don't know if the payload was really downloaded (see above). On the other hand, you can add an unnecessary delay if the payload is downloaded before the DELAY. As said above I think a more elegant solution would be something like:

```ruby
	# wait for the data to be sent
	def wait_linux_payload
		print_status("#{rhost}:#{rport} - Waiting for the victim to request the ELF payload...")

		waited = 0
		while (not @tftp.files.length == 1)
			select(nil, nil, nil, 1)
			waited += 1
			if (waited > datastore['DELAY'])
				fail_with(Exploit::Failure::Unknown, "#{rhost}:#{rport} - Target didn't request request the ELF payload -- Maybe it cant connect back to us?")
			end
		end
	end

```

On the other hand, you need to register the file as "once" download:

```ruby
@tftp.register_file(downfile,@pl, true)
```

So the file is deleted from the files array once downloaded and @tftp.files.length => 0 :-)

Let me know what do you think. In my opinion is a more elegant solution! :)