mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-08-06 16:28:54 +00:00
git-svn-id: http://svn.code.sf.net/p/netboot65/code@20 93682198-c243-4bdb-bd91-e943c89aac3b
This commit is contained in:
parent
e1dd101b7a
commit
cb09f0e4fd
@ -11,14 +11,17 @@ def log_msg(msg)
|
|||||||
puts "#{Time.now.strftime("%Y-%m-%d %H:%M:%S")} #{msg}"
|
puts "#{Time.now.strftime("%Y-%m-%d %H:%M:%S")} #{msg}"
|
||||||
end
|
end
|
||||||
|
|
||||||
$:.unshift(File.dirname(__FILE__)) unless
|
lib_path=File.expand_path(File.dirname(__FILE__)+'/../lib')
|
||||||
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
$:.unshift(lib_path) unless $:.include?(lib_path)
|
||||||
require 'netboot65_tftp'
|
require 'tftp_server'
|
||||||
|
require 'tndp_server'
|
||||||
|
|
||||||
bootfile_dir=File.expand_path(File.dirname(__FILE__)+"//..//boot")
|
bootfile_dir=File.expand_path(File.dirname(__FILE__)+'/../boot')
|
||||||
tftp_server=Netboot65TFTPServer.new(bootfile_dir)
|
tftp_server=Netboot65TFTPServer.new(bootfile_dir)
|
||||||
|
|
||||||
tftp_server.start
|
tftp_server.start
|
||||||
|
|
||||||
|
tndp_server=TNDPServer.new(File.dirname(__FILE__)+"/../test_images")
|
||||||
|
tndp_server.start
|
||||||
begin
|
begin
|
||||||
loop do
|
loop do
|
||||||
sleep(1) #wake up every second to get keyboard input, so we break on ^C
|
sleep(1) #wake up every second to get keyboard input, so we break on ^C
|
||||||
@ -27,4 +30,5 @@ rescue Interrupt
|
|||||||
log_msg "got interrupt signal - shutting down"
|
log_msg "got interrupt signal - shutting down"
|
||||||
end
|
end
|
||||||
tftp_server.shutdown
|
tftp_server.shutdown
|
||||||
|
tndp_server.shutdown
|
||||||
log_msg "shut down complete."
|
log_msg "shut down complete."
|
||||||
|
@ -27,15 +27,15 @@ class TNDPServer
|
|||||||
@server_thread=Thread.start do
|
@server_thread=Thread.start do
|
||||||
@socket=UDPSocket.open
|
@socket=UDPSocket.open
|
||||||
@socket.bind("",port)
|
@socket.bind("",port)
|
||||||
log("serving #{root_directory} on UDP port #{port}")
|
log_msg("serving #{root_directory} on UDP port #{port}")
|
||||||
loop do
|
loop do
|
||||||
data,addr_info=@socket.recvfrom(4096)
|
data,addr_info=@socket.recvfrom(4096)
|
||||||
client_port=addr_info[1]
|
client_port=addr_info[1]
|
||||||
client_ip=addr_info[3]
|
client_ip=addr_info[3]
|
||||||
log "#{data.length} bytes received from #{client_ip}:#{client_port}"
|
log_msg "#{data.length} bytes received from #{client_ip}:#{client_port}"
|
||||||
begin
|
begin
|
||||||
request=TNDP.message_from_buffer(data)
|
request=TNDP.message_from_buffer(data)
|
||||||
log(request.to_s)
|
log_msg(request.to_s)
|
||||||
case request.opcode
|
case request.opcode
|
||||||
when TNDP::CapabilitiesRequestMessage::OPCODE
|
when TNDP::CapabilitiesRequestMessage::OPCODE
|
||||||
supported_architectures={}
|
supported_architectures={}
|
||||||
@ -60,15 +60,15 @@ class TNDPServer
|
|||||||
rescue Exception=>e
|
rescue Exception=>e
|
||||||
response=TNDP::ErrorResponseMessage.create_error_response(data,TNDP::ErrorCodes::INTERNAL_SERVER_ERROR,e.to_s)
|
response=TNDP::ErrorResponseMessage.create_error_response(data,TNDP::ErrorCodes::INTERNAL_SERVER_ERROR,e.to_s)
|
||||||
end
|
end
|
||||||
log("Response:")
|
log_msg("Response:")
|
||||||
log(response.to_s)
|
log_msg(response.to_s)
|
||||||
@socket.send(response.to_buffer,0,client_ip,client_port)
|
@socket.send(response.to_buffer,0,client_ip,client_port)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def shutdown
|
def shutdown
|
||||||
log("TNDP server on UDP port #{port} shutting down")
|
log_msg("TNDP server on UDP port #{port} shutting down")
|
||||||
@server_thread.kill
|
@server_thread.kill
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user