我正在构建一个ejabberd模块。我要求此模块对同一LAN(sname)上的另一个节点执行RPC调用。根据我的理解,ejabberd配置它拥有“cookie”,当然,它将与我用于其他节点的cookie不同。
有没有办法强迫ejabberd使用另一个cookie?
编辑:ejabberd以“ejabberd”用户名启动其守护进程。编辑:即使用适当的cookie创建/home/ejabberd/.erlang.cookie(用户名:ejabberd,group:ejabberd),它仍然无效。
编辑:解决问题的方法之一(不太好)是将目标.erlang.cookie文件复制(使用适当的权限)到/ var / lib / ejabberd答案 0 :(得分:4)
ejabberdctl脚本设置主目录,以便cookie文件位于/var/lib/ejabberd/.erlang.cookie
。 Erlang本身会检查文件的权限,因此它们必须是正确的。
您可以选择强制使用特定Cookie:
-setcookie 'SomeCookieValue'
传递给erl。如果cookie文件不存在,将创建该cookie文件,但如果它存在则不会在后面更改。使用通用cookie需要构建ejabberd集群或通过erlang发行版与ejabberd集成。