class Falcon::Host
def assume_privileges(path)
def assume_privileges(path) stat = File.stat(path) Process::GID.change_privilege(stat.gid) Process::UID.change_privilege(stat.uid) end
def authority
def authority @evaluator.authority end
def bound_endpoint
def bound_endpoint @evaluator.bound_endpoint end
def endpoint
def endpoint @evaluator.endpoint end
def initialize(environment)
def initialize(environment) @environment = environment.flatten @evaluator = @environment.evaluator end
def name
def name "Falcon Host for #{self.authority}" end
def root
def root @evaluator.root end
def run(container)
def run(container) if @environment.include?(:server) bound_endpoint = self.bound_endpoint container.run(count: 1, name: self.name) do |task, instance| Async.logger.info(self) {"Starting application server..."} if root = self.root Dir.chdir(root) end server = @evaluator.server # Drop root privileges: assume_privileges(root) server.run task.children.each(&:wait) end end end
def ssl_context
def ssl_context @evaluator.ssl_context end
def to_s
def to_s "\#<#{self.class} #{@evaluator.authority}>" end