Class: Puggernaut::Server
- Inherits:
-
Object
- Object
- Puggernaut::Server
- Includes:
- Logger
- Defined in:
- lib/puggernaut/server.rb,
lib/puggernaut/server/tcp.rb,
lib/puggernaut/server/http.rb,
lib/puggernaut/server/channel.rb
Defined Under Namespace
Modules: Http, Tcp Classes: Channel
Instance Method Summary collapse
-
#initialize(http_port = 8100, tcp_port = http_port.to_i+1) ⇒ Server
constructor
A new instance of Server.
Methods included from Logger
Constructor Details
#initialize(http_port = 8100, tcp_port = http_port.to_i+1) ⇒ Server
Returns a new instance of Server.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/puggernaut/server.rb', line 10 def initialize(http_port=8100, tcp_port=http_port.to_i+1) puts "\nPuggernaut is starting on #{http_port} (HTTP) and #{tcp_port} (TCP)" puts "*snort*\n\n" errors = 0 while errors <= 10 begin Channel.channels = [] GC.start EM.epoll if EM.epoll? EM.run do logger.info "Server#initialize - Starting HTTP - #{http_port}" EM.start_server '0.0.0.0', http_port, Http logger.info "Server#initialize - Starting TCP - #{tcp_port}" EM.start_server '0.0.0.0', tcp_port, Tcp errors = 0 end rescue Interrupt logger.info "Server#initialize - Shutting down" exit rescue errors += 1 logger.error "Server#initialize - Error - #{$!.}" logger.error "\t" + $!.backtrace.join("\n\t") end end puts "Exiting because of too many consecutive errors :(" puts "Check #{Dir.pwd}/log/puggernaut.log\n\n" end |