diff --git a/ChangeLog b/ChangeLog index e9f4dc1d5..ec4ad801e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-04-01 Christophe Romain + + * src/ejabberdctl.template: Add firewalling port range definition + * src/ejabberdctl.cfg.example: Likewise + 2008-03-31 Badlop * src/ejabberd_listener.erl: Remove code of the unused listening diff --git a/src/ejabberdctl.cfg.example b/src/ejabberdctl.cfg.example index 91f50346d..661d8ce77 100644 --- a/src/ejabberdctl.cfg.example +++ b/src/ejabberdctl.cfg.example @@ -36,6 +36,17 @@ # #ERL_MAX_PORTS=32000 +# FIREWALL_WINDOW: Range of allowed ports to pass through a firewall +# +# If Ejabberd is configured to run in cluster, and a firewall is blocking ports, +# it's possible to make Erlang use a defined range of port (instead of dynamic ports) +# for node communication. +# +# Default: not defined +# Example: 4200-4210 +# +#FIREWALL_WINDOW= + # PROCESSES: Maximum number of Erlang processes # # Erlang consumes a lot of lightweight processes. If there is a lot of activity diff --git a/src/ejabberdctl.template b/src/ejabberdctl.template index f50b98580..0ff23bc09 100644 --- a/src/ejabberdctl.template +++ b/src/ejabberdctl.template @@ -39,7 +39,13 @@ done NAME=-name [ "$ERLANG_NODE" = "${ERLANG_NODE%.*}" ] && NAME=-sname -ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES" +if [ "$FIREWALL_WINDOW" = "" ] ; then + KERNEL_OPTS="" +else + KERNEL_OPTS="-kernel inet_dist_listen_min ${FIREWALL_WINDOW%-*} net_dist_listen_max ${FIREWALL_WINDOW#*-}" +fi + +ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES $KERNEL_OPTS" # define additional environment variables EJABBERD_EBIN=$ROOTDIR/var/lib/ejabberd/ebin