终止ejabberd模块中的钩子处理

时间:2009-08-27 10:12:50

标签: module hook ejabberd

我正在写一个ejabberd模块。它的作用是将一些消息保存到队列中。它实际上非常好,只有一件我在任何文档中都找不到。如果我发现来自特定用户的消息,我需要停止钩子处理。

即。将消息发送到ejabberd,从用户A发送到用户B,我的模块(挂钩到user_send_packet挂钩)处理此消息,如果发现用户A是指定用户,则不得发送消息。根据我的理解,你可以通过停止钩子处理来实现这一点。你怎么停止钩子处理?

1 个答案:

答案 0 :(得分:2)

如果你想要的是从A - >中删除消息B,您可以通过订阅 fiter_packet 挂钩,并从该返回 drop 来删除您不想允许的数据包。

  

根据我的理解,你可以通过停止钩子处理来实现这个目标

不,停止挂钩处理将阻止在该挂钩上注册的其他处理程序(如果有)被激活,但没有别的,数据包将照常继续。