Comment créer des variables globales dans Erlang

Je suis en train d'écrire un ejabberd module de filtre de paquets. J'ai besoin d'obtenir le nom d'hôte de tirer certaines configs à l'aide de gen_mod:get_module_opt().

J'ai 4 fonctions importantes :

  1. start(Host, _Opt) : C'est un ejabberd fonction pour charger mon module. Je reçois le Host atome ici
  2. filter_packet({From, To, XML}): C'est mon filtre de paquets crochet. Je ne peux pas passer des paramètres personnalisés à cette fonction, car il est un crochet dans ejabberd.
  3. get_translation(XmlData): filter_packet() appels get_translation() dans une boucle
  4. fetch_translation(XmlData): appelée récursivement à partir de get_translation(). C'est là que je fais appel gen_mod:get_module_opt()et donc besoin de la Host.

Ma question est, comment puis-je prendre Host de start() et le mettre dans une variable globale, de sorte que fetch_translation peut y avoir accès?

source d'informationauteur Adil