后台:我正在使用名为bane的ruby gem,后者又使用GServer来监听HTTP连接。
根据this other stackoverflow question,默认情况下,GServer在收听时使用DEFAULT_HOST
,设置为127.0.0.1
。
问题:我希望听到0.0.0.0
(即所有传入的连接,而不仅仅是来自locallhost)。而不是hack bane的源允许指定IP地址,有没有办法以某种方式覆盖默认主机?
答案 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