I have a FreeBSD 6.0 and ejabberd, that was installed from ports.
I have some DNS names for it:
white2u.xxx.ru - give by command "hostname"
jabber.xxx.net - give by DNS server
jabber.xxx.lan - give by DNS server
I changed in ejabberd.cfg hostname only:
{hosts, ["jabber.xxx.net"]}.
Starting server OK:
white2u# /usr/local/etc/rc.d/ejabberd.sh start
Starting ejabberd: ejabberd.
white2u# ll /var/log/ejabberd/
total 18
-rw-r--r-- 1 ejabberd ejabberd 0 Jan 27 16:15 ejabberd.log
-rw-r--r-- 1 ejabberd ejabberd 18149 Jan 27 17:10 sasl.log
white2u# tail -f /var/log/ejabberd/sasl.log
started: [{pid,<0.211.0>},
{name,ejabberd_listener},
{mfa,{ejabberd_listener,start_link,[]}},
{restart_type,permanent},
{shutdown,infinity},
{child_type,supervisor}]
=PROGRESS REPORT==== 27-Jan-2006::17:10:09 ===
application: ejabberd
started_at: ejabberd@white2u
^C
white2u# sockstat -4 | grep ejabb
ejabberd ssl_esock 9057 4 tcp4 127.0.0.1:61517 *:*
ejabberd beam 9054 6 tcp4 *:62310 *:*
ejabberd beam 9054 7 tcp4 127.0.0.1:55137 127.0.0.1:4369
ejabberd beam 9054 16 tcp4 *:5222 *:*
ejabberd beam 9054 17 tcp4 *:5223 *:*
ejabberd beam 9054 19 tcp4 *:5269 *:*
ejabberd beam 9054 20 tcp4 *:5280 *:*
ejabberd beam 9054 21 tcp4 *:8888 *:*
ejabberd epmd 9038 3 tcp4 *:4369 *:*
ejabberd epmd 9038 4 tcp4 127.0.0.1:4369 127.0.0.1:55137
white2u#
So, it's OK, isn't it?
Trying to connect to my node:
white2u# ejabberdctl
Can't get node 'ejabber@jabber.x.net' status: nodedown
=ERROR REPORT==== 27-Jan-2006::16:26:33 ===
** System NOT running to use fully qualified hostnames **
** Hostname jabber.xxx.net is illegal **
white2u# ejabberdctl ejabber@jabber status
Can't get node ejabber@jabber status: nodedown
white2u# ejabberdctl ejabber@white2u status
Can't get node ejabber@white2u status: nodedown
There isn't difference, then I changed in ejabberd.cfg hostname from "jabber.xxx.net" to "white2u".
SO, WHAT'S NAME I MUST TO WRITE?
-sname and -name switch in the commandline
i would try to play with the -sname and -name switch in the commandline... it is found in the ejabberdctl-file..
if you use sname in the commandline to start your ejabberd server, so you have to use sname in the ejabberdctl file... if you just use -name in your commandline to start your ejabberd server, then you have to edit your ejabberdctl-file, so that it will use -name, too, instead of -sname...
i had some similar issues when interconnecting erlang nodes... and the very same issue like you and i discovered that ejabberdctl-file uses the -sname switch... after editing the file and remove the s in -sname , it worked...