我正在编写一个 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
.
我的问题是,如何Host
从全局变量中获取start()
并将其放入全局变量中,以便fetch_translation
可以访问它?