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