module EventMachine
Public Class Methods
start_tftp_server(server='0.0.0.0', port=69, listener_klass)
click to toggle source
# File lib/em-tftp.rb, line 435 def start_tftp_server(server='0.0.0.0', port=69, listener_klass) if !listener_klass.is_a?(Class) if listener_klass.is_a?(Module) listener_klass = Class.new.tap { include listener_klass } else raise ArgumentError, "Expected a class which defines callback methods like #received_block, #completed, and #failed; got #{listener_klass.class} instead" end end EM.open_datagram_socket(server, port, TFTP::ListeningConnection(listener_klass)) end
tftp_get(server, port=69, filename, &callback)
click to toggle source
# File lib/em-tftp.rb, line 447 def tftp_get(server, port=69, filename, &callback) conn = EM.open_datagram_socket('0.0.0.0', 0, TFTP::TransferConnection) conn.transfer = TFTP::ClientReceive.new(conn, server, TFTP::ClientDownloader.new(&callback), filename) end
tftp_put(server, port=69, filename, file_data, &callback)
click to toggle source
# File lib/em-tftp.rb, line 452 def tftp_put(server, port=69, filename, file_data, &callback) conn = EM.open_datagram_socket('0.0.0.0', 0, TFTP::TransferConnection) if file_data.is_a?(IO) EventMachine.defer(proc { file_data.read }, proc { |data| conn.transfer = TFTP::ClientSend.new(conn, server, port, TFTP::ClientUploader.new(&callback), filename, data) }) else conn.transfer = TFTP::ClientSend.new(conn, server, TFTP::ClientUploader.new(&callback), filename, file_data) end end