class Option::Proxy
Public Instance Methods
activate!()
click to toggle source
# File lib/option/proxy.rb, line 3 def activate! relay_port = start_proxy_daemon add_firewall_rules(relay_port) end
deactivate!()
click to toggle source
# File lib/option/proxy.rb, line 8 def deactivate! relay_port = relay_manager.free(virtual_ip) remove_firewall_rules(relay_port) kill_proxy_daemon(relay_port) end
Private Instance Methods
add_firewall_rules(relay_port)
click to toggle source
# File lib/option/proxy.rb, line 23 def add_firewall_rules(relay_port) system "iptables -A PREROUTING -t nat -s #{virtual_ip}/32 -p tcp --dport 80 -j REDIRECT --to-port #{relay_port}" true end
kill_proxy_daemon(relay_port)
click to toggle source
# File lib/option/proxy.rb, line 28 def kill_proxy_daemon(relay_port) pids = `ps -ef | grep #{relay_port} | awk '{ print $2 }'` relay_pid = pids.split( /\r?\n/ ).first `kill #{relay_pid} &` true end
relay_manager()
click to toggle source
# File lib/option/proxy.rb, line 39 def relay_manager RelayManager.new end
remove_firewall_rules(relay_port)
click to toggle source
# File lib/option/proxy.rb, line 35 def remove_firewall_rules(relay_port) system "iptables -D PREROUTING -t nat -s #{virtual_ip}/32 -p tcp --dport 80 -j REDIRECT --to-port #{relay_port}" end
start_proxy_daemon()
click to toggle source
# File lib/option/proxy.rb, line 16 def start_proxy_daemon relay_port = relay_manager.next_available_port relay_manager.lock(virtual_ip, relay_port) system "/etc/openvpn/any_proxy -l :#{relay_port} -p '#{attributes['host']}:#{attributes['port']}' &" relay_port end