module TFTP::Protocol

Constants

ERROR_MESSAGES

Private Instance Methods

send_ack(addr=@peer_addr, port=@peer_port, block_no) click to toggle source
# File lib/em-tftp.rb, line 87
def send_ack(addr=@peer_addr, port=@peer_port, block_no)
  data = "\0\4" << ((block_no >> 8) & 255) << (block_no & 255)
  send_packet(addr, port, data)
end
send_block(addr=@peer_addr, port=@peer_port, buffer, pos, block_no) click to toggle source
# File lib/em-tftp.rb, line 81
def send_block(addr=@peer_addr, port=@peer_port, buffer, pos, block_no)
  block = buffer.slice(pos, 512) || ""
  data = "\0\3" << ((block_no >> 8) & 255) << (block_no & 255) << block
  send_packet(data)
  pos + 512
end
send_error(addr=@peer_addr, port=@peer_port, code, msg) click to toggle source
# File lib/em-tftp.rb, line 91
def send_error(addr=@peer_addr, port=@peer_port, code, msg)
  data = "\0\5" << ((code >> 8) & 255) << (code & 255) << msg << "\0"
  send_packet(addr, port, data)
end
send_packet(addr=@peer_addr, port=@peer_port, data) click to toggle source
# File lib/em-tftp.rb, line 95
def send_packet(addr=@peer_addr, port=@peer_port, data)
  # this appears useless, but is intended to be overridden
  $stderr.puts "Sending: #{data} (#{data[0..3].bytes.to_a.join(',')}) to #{addr}:#{port}"  if $DEBUG
  send_datagram(data, addr, port)
end
send_rrq(addr=@peer_addr, port=@peer_port, filename) click to toggle source
# File lib/em-tftp.rb, line 73
def send_rrq(addr=@peer_addr, port=@peer_port, filename)
  data = "\0\1" << filename << "\0octet\0"
  send_packet(addr, port, data)
end
send_wrq(addr=@peer_addr, port=@peer_port, filename) click to toggle source
# File lib/em-tftp.rb, line 77
def send_wrq(addr=@peer_addr, port=@peer_port, filename)
  data = "\0\2" << filename << "\0octet\0"
  send_packet(addr, port, data)
end