Я пишу модуль 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
мог получить к ней доступ?