Завершить обработку хуков в модуле ejabberd - PullRequest
0 голосов
/ 27 августа 2009

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

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

1 Ответ

2 голосов
/ 10 сентября 2009

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

Из того, что я понял, вы можете добиться этого, прекратив обработку хуков

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

...