我正在编写一个 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可以访问它?