2009-09-17 25 views
2

我正在构建一个ejabberd模块。我需要此模块对同一LAN(sname)上的另一个节点执行RPC调用。据我所知,ejabberd配置它拥有“cookie”,当然,这与我用于其他节点的cookie不同。ejabberd:有没有办法配置一个不同的“cookie”而不是“ejabberd”?

有没有办法强制ejabberd使用另一个cookie?

编辑:ejabberd在“ejabberd”用户名下启动它的守护进程。

编辑:甚至当创建/home/ejabberd/.erlang.cookie(用户名:ejabberd,组:ejabberd)与一个适当的cookie它仍然无法正常工作。

编辑:去解决该问题(这是不是很好),一个方法是复制(有相应权限的)预期.erlang.cookie文件到/ var/lib中/ ejabberd

回答

4

的ejabberdctl脚本设置主目录,以便cookie文件位于/var/lib/ejabberd/.erlang.cookie。 Erlang自己检查文件的权限,所以它们必须是正确的。

您有几个选项来强制使用特定的Cookie:

  • 更改文件的内容 - ejabberd不会改变它。
  • 更改ejabberdctl脚本,以便它将-setcookie 'SomeCookieValue'传递给erl。
  • 更改ejabberdctl以设置其他主目录。

如果cookie文件不存在,它将被创建,但如果它存在,它将不会被更改。需要使用通用cookie来构建ejabberd集群或通过erlang分发与ejabberd集成。

相关问题