class Pakyow::Processes::Proxy

Public Class Methods

find_local_port() click to toggle source
# File lib/pakyow/processes/proxy.rb, line 7
def find_local_port
  server = TCPServer.new("127.0.0.1", 0)
  port = server.addr[1]
  server.close
  port
end
new(host:, port:, proxy_port:) click to toggle source
# File lib/pakyow/processes/proxy.rb, line 15
def initialize(host:, port:, proxy_port:)
  @host, @port, @proxy_port = host, port, proxy_port
end

Public Instance Methods

run() click to toggle source
# File lib/pakyow/processes/proxy.rb, line 19
def run
  endpoint = Async::HTTP::Endpoint.parse(
    "http://#{@host}:#{@port}"
  )

  server = Server.new(
    host: @host, port: @proxy_port, forwarded: "#{@host}:#{@port}"
  )

  Async::Reactor.run do
    Async::HTTP::Server.new(server, endpoint).run

    if !ENV.key?("PW_RESPAWN")
      Pakyow.logger << Pakyow::Processes::Server.running_text(
        scheme: "http", host: @host, port: @port
      )
    end
  end
end