From 60d83f937da771e8d33070805880cb04826d6543 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 16 Feb 2011 23:53:29 +0100 Subject: [PATCH] New DIST_USE_INTERFACE to restrict IP where erlang connections are listened (EJAB-1404) --- doc/guide.tex | 9 +++++++++ src/ejabberdctl.cfg.example | 11 +++++++++++ src/ejabberdctl.template | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/doc/guide.tex b/doc/guide.tex index 5077630ba..814273d93 100644 --- a/doc/guide.tex +++ b/doc/guide.tex @@ -5033,6 +5033,9 @@ The command line parameters: If using \term{-sname}, specify either this option or \term{ERL\_INETRC}. \titem{-kernel inet\_dist\_listen\_min 4200 inet\_dist\_listen\_min 4210} Define the first and last ports that \term{epmd} (section \ref{epmd}) can listen to. + \titem{-kernel inet\_dist\_use\_interface "\{ 127,0,0,1 \}"} + Define the IP address where this Erlang node listens for other nodes + connections (see section \ref{epmd}). \titem{-detached} Starts the Erlang system detached from the system console. Useful for running daemons and backgrounds processes. @@ -5445,6 +5448,12 @@ The Erlang command-line parameter used internally is, for example: \begin{verbatim} erl ... -kernel inet_dist_listen_min 4370 inet_dist_listen_max 4375 \end{verbatim} +It is also possible to configure in \term{ejabberdctl.cfg} +the network interface where the Erlang node will listen and accept connections. +The Erlang command-line parameter used internally is, for example: +\begin{verbatim} +erl ... -kernel inet_dist_use_interface "{127,0,0,1}" +\end{verbatim} \makesection{cookie}{Erlang Cookie} diff --git a/src/ejabberdctl.cfg.example b/src/ejabberdctl.cfg.example index 4a3db1c8b..fe703242e 100644 --- a/src/ejabberdctl.cfg.example +++ b/src/ejabberdctl.cfg.example @@ -50,6 +50,17 @@ # #FIREWALL_WINDOW= +#. +#' INET_DIST_INTERFACE: IP address where this Erlang node listens other nodes +# +# This communication is used by ejabberdctl command line tool, +# and in a cluster of several ejabberd nodes. +# Notice that the IP address must be specified in the Erlang syntax. +# +# Default: {127,0,0,1} +# +INET_DIST_INTERFACE={127,0,0,1} + #. #' ERL_PROCESSES: Maximum number of Erlang processes # diff --git a/src/ejabberdctl.template b/src/ejabberdctl.template index 8ffdf9251..007921b83 100644 --- a/src/ejabberdctl.template +++ b/src/ejabberdctl.template @@ -89,6 +89,10 @@ if [ "$DIST_INTERFACE" != "" ] ; then KERNEL_OPTS="${KERNEL_OPTS} -kernel inet_dist_use_interface \"${DIST_INTERFACE}\"" fi +if [ "$INET_DIST_INTERFACE" != "" ] ; then + KERNEL_OPTS+="-kernel inet_dist_use_interface \"${INET_DIST_INTERFACE}\"" +fi + ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES $ERL_OPTIONS" # define additional environment variables