如何设置GServer DEFAULT_HOST?

时间:2011-07-20 15:36:26

标签: ruby localhost

后台:我正在使用名为bane的ruby gem,后者又使用GServer来监听HTTP连接。

根据this other stackoverflow question,默认情况下,GServer在收听时使用DEFAULT_HOST,设置为127.0.0.1

问题:我希望听到0.0.0.0(即所有传入的连接,而不仅仅是来自locallhost)。而不是hack bane的源允许指定IP地址,有没有办法以某种方式覆盖默认主机?

1 个答案:

答案 0 :(得分:1)

有两种选择:

1)覆盖GServer常量

如果你没有将GServer用于其他任何事情,那么这种方法将在全球范围内为你提供0.0.0.0

GServer.send(:remove_const, "DEFAULT_HOST")
GServer::DEFAULT_HOST = "0.0.0.0"

2)猴子补丁Bane

# Something like this perhaps?
module Bane
  class BehaviorServer < GServer
    def initialize(port, behavior, options = {})
      super(port, options[:default_host] || GServer::DEFAULT_HOST)
      @behavior = behavior
      @options = options
      self.audit = true
    end
  end
end