Class: ProcessWanker::TCPFilteredServer
- Inherits:
-
TCPServer
- Object
- TCPServer
- ProcessWanker::TCPFilteredServer
- Includes:
- Log
- Defined in:
- lib/net/net_server.rb
Constant Summary
Constants included from Log
Log::DEBUG, Log::ERROR, Log::INFO, Log::WARN
Instance Method Summary collapse
- #accept ⇒ Object
-
#initialize(hostname, port, auth) ⇒ TCPFilteredServer
constructor
A new instance of TCPFilteredServer.
- #validate_auth(con) ⇒ Object
Methods included from Log
debug, error, info, log, set_level, warn
Constructor Details
#initialize(hostname, port, auth) ⇒ TCPFilteredServer
Returns a new instance of TCPFilteredServer.
29 30 31 32 |
# File 'lib/net/net_server.rb', line 29 def initialize(hostname,port,auth) @auth=auth super(hostname,port) end |
Instance Method Details
#accept ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/net/net_server.rb', line 34 def accept() while(true) con=super() debug("got TCP connection from #{con.peeraddr.inspect}") return(con) if(validate_auth(con)) ProcessWanker::with_logged_rescue("accept - reject remote addr") do con.close() end end end |
#validate_auth(con) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/net/net_server.rb', line 45 def validate_auth(con) remote_addr=con.peeraddr[3] remote_addr=IPAddr.new(remote_addr) if(!@auth.allow_ip(remote_addr)) info("reject ip #{remote_addr.inspect}") return(false) end true end |