class Puppet::Network::HTTP::WEBrick

Public Instance Methods

create_server(address, port) click to toggle source
# File lib/puppet/patch/webrick.rb, line 27
def create_server(address, port)
  arguments = {:BindAddress => address, :Port => port, :DoNotReverseLookup => true}
  arguments.merge!(setup_logger)
  # arguments.merge!(setup_ssl)

  BasicSocket.do_not_reverse_lookup = true

  server = WEBrick::HTTPServer.new(arguments)
  # server.ssl_context.ciphers = CIPHERS
  server
end
listen(address, port) click to toggle source
# File lib/puppet/patch/webrick.rb, line 5
def listen(address, port)
  @server = create_server(address, port)

  # @server.listeners.each { |l| l.start_immediately = false }

  @server.mount('/', Puppet::Network::HTTP::WEBrickREST)

  raise "WEBrick server is already listening" if @listening
  @listening = true
  @thread = Thread.new do
    @server.start do |sock|
      timeout = 10.0
      if ! IO.select([sock],nil,nil,timeout)
        raise "Client did not send data within %.1f seconds of connecting" % timeout
      end
      # sock.accept
      @server.run(sock)
    end
  end
  sleep 0.1 until @server.status == :Running
end