class Invoker::Power::PortFinder
Constants
- STARTING_PORT
Attributes
dns_port[RW]
http_port[RW]
https_port[RW]
starting_port[RW]
Public Class Methods
new()
click to toggle source
# File lib/invoker/power/port_finder.rb, line 6 def initialize @starting_port = STARTING_PORT @ports = [] @dns_port = nil @http_port = nil end
Public Instance Methods
find_ports()
click to toggle source
# File lib/invoker/power/port_finder.rb, line 13 def find_ports STARTING_PORT.upto(STARTING_PORT + 100) do |port| break if @ports.size > 3 if check_if_port_is_open(port) @ports << port else next end end @dns_port = @ports[0] @http_port = @ports[1] @https_port = @ports[2] end
Private Instance Methods
check_if_port_is_open(port)
click to toggle source
# File lib/invoker/power/port_finder.rb, line 29 def check_if_port_is_open(port) socket_flag = true sockets = nil begin sockets = Socket.tcp_server_sockets(port) socket_flag = false if sockets.size <= 1 rescue Errno::EADDRINUSE socket_flag = false end sockets && close_socket_pairs(sockets) socket_flag end
close_socket_pairs(sockets)
click to toggle source
# File lib/invoker/power/port_finder.rb, line 42 def close_socket_pairs(sockets) sockets.each { |s| s.close } rescue nil end