我正在编写一个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中获取并将其置于全局变量中以便可以访问它?
我让Ejabberd和测试用户一起运行,并且工作正常.我想编写一个可以拦截消息并修改它们的模块,如下所示:
ejabberd文档很薄弱,教程也不存在.你能给我一些代码来做这个吗?然后我可以想出如何根据我的需要配置它.
谢谢捆绑!
阿迪尔