【发布时间】:2011-01-02 02:33:44
【问题描述】:
我正在编写一个 ejabberd 模块来过滤数据包。我需要获取主机名以使用gen_mod:get_module_opt() 提取一些配置。
我有 4 个重要的功能:
-
start(Host, _Opt):这是一个加载我的模块的 ejabberd 函数。我在这里得到Host原子 -
filter_packet({From, To, XML}):这是我的包过滤钩子。我不能将自定义参数传递给这个函数,因为它是 ejabberd 中的一个钩子。 -
get_translation(XmlData):filter_packet()循环调用get_translation() -
fetch_translation(XmlData):从get_translation()递归调用。这是我打电话给gen_mod:get_module_opt()的地方,因此需要Host。
我的问题是,如何从start() 中取出Host 并将其放入全局变量中,以便fetch_translation 可以访问它?
【问题讨论】:
标签: erlang global-variables hook ejabberd