lib/falcon/host.rb in falcon-0.32.1 vs lib/falcon/host.rb in falcon-0.33.0

- old
+ new

@@ -16,26 +16,14 @@ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -require 'async/io/endpoint' +require_relative 'service' -require_relative 'proxy' -require_relative 'redirection' - -require 'async/container' -require 'async/container/controller' -require 'async/http/endpoint' - module Falcon - class Host - def initialize(environment) - @environment = environment.flatten - @evaluator = @environment.evaluator - end - + class Host < Service def name "Falcon Host for #{self.authority}" end def authority @@ -60,38 +48,25 @@ def to_s "\#<#{self.class} #{@evaluator.authority}>" end - def assume_privileges(path) - stat = File.stat(path) - - Process::GID.change_privilege(stat.gid) - Process::UID.change_privilege(stat.uid) - end - - def spawn(container) - container.spawn(name: self.name, restart: true) do |instance| - path = File.join(self.root, "falcon.rb") - - assume_privileges(path) - - instance.exec("bundle", "exec", path) - end - end - def run(container) if @environment.include?(:server) bound_endpoint = self.bound_endpoint container.run(name: self.name, restart: true) do |task, instance| - Async.logger.info(self) {"Starting application server..."} + Async.logger.info(self) {"Starting application server, binding to #{self.endpoint}..."} server = @evaluator.server server.run task.children.each(&:wait) + end + + container.attach do + bound_endpoint.close end end end end end