Модуль ejabberd, который я использую, mod_pottymouth не фильтрует сообщения, как ожидалось. После добавления ведения журнала я вижу, что вызывается общий метод обработчика вместо того, который выполняет фактическую фильтрацию. Проблема в том, что я не могу разобрать сообщение ejabberd, чтобы убедиться, что вызывается правильная функция. Кто-нибудь может помочь?
on_filter_packet({_From, _To, {xmlel, <<"message">>, _Attrs, Els} = _Packet} = _Msg) ->
%This is what should be called to filter messages, but is never called
FilteredEls = filterMessageBodyElements(Els, []),
{_From, _To, {xmlel, <<"message">>, _Attrs, FilteredEls}};
on_filter_packet(Msg) ->
% This is what actually gets called
Msg.
Это использует ejabberd 17.01