[ejabberd] handshake_we_started error?

Badlop badlop at gmail.com
Sat Jun 21 04:51:45 MSD 2008


On Sat, Jun 21, 2008 at 1:15 AM, Bill McGonigle <bill at bfccomputing.com> wrote:
> On Jun 20, 2008, at 03:16, Christoph Mewes wrote:
>
>> this also happens if you try to connect with the wrong hostname
>> (uname -n vs. localhost for example). be sure you start ejabberd
>> with the same name as is used in ejabberdctl.
>
>
> OK, this was very helpful.   I've been all around the block on this,
> but now I think it's a problem with the ejabberdctl script in
> Fedora.

The ejabberdctl script included in the source package works correctly
as long as it is always called by root.

Maybe the person that built the ejabberd package for Fedora improved
it to support ejabberd start using a normal user instead of root.

So let's review your findings.


>  It appears that ejabberdctl needs to run as the ejabberd
> user for it to succeed,

Right.

When ejabberd is started, it reads (or creates if doesn't exist) the
file $HOME/.erlang.cookie. Later ejabberdctl also needs to read that
same file to connect to ejabberd. If you start ejabberd with a user,
and then call ejabberdctl with a different user, obviously $HOME is
different in each case, hence the file is not the same.


> and based on the above, the hostname in one
> place was using `hostname | cut -d. -f1` and in another localhost.

It seems the ejabberd start script in Fedora used `hostname | cut -d.
-f1`. So yes, you will need to modify ejabberdctl accordingly.


More information about the ejabberd mailing list