Завершить обработку ловушек в модуле ejabberd

Я пишу модуль ejabberd. Что он делает, так это сохраняет некоторые сообщения в очередь. Это на самом деле работает очень хорошо, есть только одна вещь, которую я не могу найти ни в одной документации. Мне нужно остановить обработку перехватчика, если я найду сообщение, пришедшее от определенного пользователя.

т.е. сообщение отправляется ejabberd, от пользователя A пользователю B, мой модуль (подключенный к хуку user_send_packet) обрабатывает это сообщение и, если он обнаруживает, что пользователь A является указанным пользователем, не должен его доставлять. Насколько я понял, вы можете добиться этого, остановив обработку ловушек. Как остановить обработку хуков?


person Francesco    schedule 27.08.2009    source источник


Ответы (1)


Если вы хотите отбрасывать сообщения от A -> B, вы можете сделать это, подписавшись на хук fiter_packet, и из этого return drop отбрасывать пакеты, которые вы не не хочу позволять.

Насколько я понял, вы можете добиться этого, остановив обработку ловушек

нет, остановка обработки хука предотвратит активацию других обработчиков, зарегистрированных на этом хуке (если они есть), но ничего больше, пакет будет продолжаться как обычно.

person ppolv    schedule 10.09.2009