class TFTP::TransferConnection

UDP socket (really EM::Connection) which is being used for an in-progress transfer

Attributes

transfer[RW]

Public Instance Methods

receive_data(data) click to toggle source
# File lib/em-tftp.rb, line 353
def receive_data(data)
  peer_port, peer_addr = Socket.unpack_sockaddr_in(get_peername)
  $stderr.puts "Received: #{data} (#{data[0..3].bytes.to_a.join(',')}) from #{peer_addr}:#{peer_port}" if $DEBUG
  packet = Packet.new(data.encode!(Encoding::BINARY))
  if transfer && peer_addr == transfer.peer_addr && (peer_port == transfer.peer_port || transfer.peer_port.nil?)
    transfer.send(packet.opcode, packet, peer_port)
  end
rescue TFTP::Error
  transfer.error!($!.message)
end