* (all): Version 0.1-alpha released

SVN Revision: 71
This commit is contained in:
Alexey Shchepin 2003-02-11 20:45:35 +00:00
parent d563284ade
commit d57c147626
6 changed files with 100 additions and 40 deletions

4
ChangeLog Normal file
View File

@ -0,0 +1,4 @@
2003-02-11 Alexey Shchepin <alexey@sevcom.net>
* (all): Version 0.1-alpha released

View File

@ -302,9 +302,28 @@ Following access rules pre-defined:
<B><TT>all</TT></B><DD> Always return ``<TT>allow</TT>'' <B><TT>all</TT></B><DD> Always return ``<TT>allow</TT>''
<DT><B><TT>none</TT></B><DD> Always return ``<TT>deny</TT>'' <DT><B><TT>none</TT></B><DD> Always return ``<TT>deny</TT>''
</DL> </DL>
<!--TOC subsubsection Shapers Configuration-->
<H4><A NAME="htoc11">3.1.3</A>&nbsp;&nbsp;Shapers Configuration</H4><!--SEC END -->
<A NAME="sec:configshaper"></A>
With shapers is possible to bound connection traffic. The declarations of
shapers in config file have following syntax:
<PRE>
{shaper, &lt;shapername&gt;, &lt;kind&gt;}.
</PRE>Currently implemented only one kind of shaper: <TT>maxrate</TT>. It have
following syntax:
<PRE>
{maxrate, &lt;rate&gt;}
</PRE>where <TT>&lt;rate&gt;</TT> means maximum allowed incomig rate in bytes/second.
E.&nbsp;g. to define shaper with name ``<TT>normal</TT>'' and maximum allowed rate
1000&nbsp;bytes/s, add following line in config:
<PRE>
{shaper, normal, {maxrate, 1000}}.
</PRE>
<!--TOC subsubsection Listened Sockets--> <!--TOC subsubsection Listened Sockets-->
<H4><A NAME="htoc11">3.1.3</A>&nbsp;&nbsp;Listened Sockets</H4><!--SEC END --> <H4><A NAME="htoc12">3.1.4</A>&nbsp;&nbsp;Listened Sockets</H4><!--SEC END -->
<A NAME="sec:configlistened"></A> <A NAME="sec:configlistened"></A>
Option <TT>listen</TT> defines list of listened sockets and what services Option <TT>listen</TT> defines list of listened sockets and what services
@ -323,6 +342,9 @@ Following options defined:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>{access, &lt;access rule&gt;}</TT></B><DD> This option defines access of users <B><TT>{access, &lt;access rule&gt;}</TT></B><DD> This option defines access of users
to this C2S port. Default value is ``<TT>all</TT>''. to this C2S port. Default value is ``<TT>all</TT>''.
<DT><B><TT>{shaper, &lt;access rule&gt;}</TT></B><DD> This option is like previous, but
use shapers instead of ``<TT>allow</TT>'' and ``<TT>deny</TT>''. Default
value is ``<TT>none</TT>''.
</DL> </DL>
<DT><B><TT>ejabberd_s2s_in</TT></B><DD> This module serves incoming S2S connections. <DT><B><TT>ejabberd_s2s_in</TT></B><DD> This module serves incoming S2S connections.
<DT><B><TT>ejabberd_service</TT></B><DD> This module serves connections to Jabber <DT><B><TT>ejabberd_service</TT></B><DD> This module serves connections to Jabber
@ -331,12 +353,17 @@ Following options defined:
For example, the following configuration defines that C2S connections are For example, the following configuration defines that C2S connections are
listened on port 5222 and denied for user ``<TT>bad</TT>'', S2S on port 5269 listened on port 5222 and denied for user ``<TT>bad</TT>'', S2S on port 5269
and that service <TT>conference.jabber.org</TT> must be connected to port 8888 and that service <TT>conference.jabber.org</TT> must be connected to port 8888
with a password ``<TT>secret</TT>''. with a password ``<TT>secret</TT>''. Also all users except admins have traffic
limit 1000&nbsp;b/s.
<PRE> <PRE>
{acl, blocked, {user, "bad"}}. {acl, blocked, {user, "bad"}}.
{access, c2s, [{deny, blocked}, {access, c2s, [{deny, blocked},
{allow, all}]}. {allow, all}]}.
{listen, [{5222, ejabberd_c2s, start, [{access, c2s}]}, {shaper, normal, {maxrate, 1000}}.
{access, c2s_shaper, [{none, admin},
{normal, all}]}.
{listen, [{5222, ejabberd_c2s, start, [{access, c2s},
{shaper, c2s_shaper}]},
{5269, ejabberd_s2s_in, start, []}, {5269, ejabberd_s2s_in, start, []},
{8888, ejabberd_service, start, {8888, ejabberd_service, start,
[{host, "conference.jabber.org", [{password, "secret"}]}]} [{host, "conference.jabber.org", [{password, "secret"}]}]}
@ -344,7 +371,7 @@ with a password ``<TT>secret</TT>''.
</PRE> </PRE>
<!--TOC subsubsection Modules--> <!--TOC subsubsection Modules-->
<H4><A NAME="htoc12">3.1.4</A>&nbsp;&nbsp;Modules</H4><!--SEC END --> <H4><A NAME="htoc13">3.1.5</A>&nbsp;&nbsp;Modules</H4><!--SEC END -->
<A NAME="sec:configmodules"></A> <A NAME="sec:configmodules"></A>
Option <TT>modules</TT> defines the list of modules that will be loaded after Option <TT>modules</TT> defines the list of modules that will be loaded after
@ -370,7 +397,7 @@ Example:
</PRE> </PRE>
<!--TOC subsection Online Configuration and Monitoring--> <!--TOC subsection Online Configuration and Monitoring-->
<H3><A NAME="htoc13">3.2</A>&nbsp;&nbsp;Online Configuration and Monitoring</H3><!--SEC END --> <H3><A NAME="htoc14">3.2</A>&nbsp;&nbsp;Online Configuration and Monitoring</H3><!--SEC END -->
<A NAME="sec:onlineconfig"></A> <A NAME="sec:onlineconfig"></A>
To perform online reconfiguration of <TT>ejabberd</TT> you will need to have To perform online reconfiguration of <TT>ejabberd</TT> you will need to have
@ -401,7 +428,7 @@ Identity of server.
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE> <DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
<!--TOC subsubsection Node <TT>config</TT>: Global Configuration--> <!--TOC subsubsection Node <TT>config</TT>: Global Configuration-->
<H4><A NAME="htoc14">3.2.1</A>&nbsp;&nbsp;Node <TT>config</TT>: Global Configuration</H4><!--SEC END --> <H4><A NAME="htoc15">3.2.1</A>&nbsp;&nbsp;Node <TT>config</TT>: Global Configuration</H4><!--SEC END -->
Under this node the following nodes exists:<BR> Under this node the following nodes exists:<BR>
<BR> <BR>
@ -455,11 +482,11 @@ removed user is online, then he will be disconnected. Also user-related data
<BR> <BR>
<!--TOC subsubsection Node <TT>online users</TT>: List of Online Users--> <!--TOC subsubsection Node <TT>online users</TT>: List of Online Users-->
<H4><A NAME="htoc15">3.2.2</A>&nbsp;&nbsp;Node <TT>online users</TT>: List of Online Users</H4><!--SEC END --> <H4><A NAME="htoc16">3.2.2</A>&nbsp;&nbsp;Node <TT>online users</TT>: List of Online Users</H4><!--SEC END -->
<!--TOC subsubsection Node <TT>all users</TT>: List of Registered User--> <!--TOC subsubsection Node <TT>all users</TT>: List of Registered User-->
<H4><A NAME="htoc16">3.2.3</A>&nbsp;&nbsp;Node <TT>all users</TT>: List of Registered User</H4><!--SEC END --> <H4><A NAME="htoc17">3.2.3</A>&nbsp;&nbsp;Node <TT>all users</TT>: List of Registered User</H4><!--SEC END -->
<BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV> <BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
@ -473,11 +500,11 @@ removed user is online, then he will be disconnected. Also user-related data
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE> <DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
<!--TOC subsubsection Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections--> <!--TOC subsubsection Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections-->
<H4><A NAME="htoc17">3.2.4</A>&nbsp;&nbsp;Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections</H4><!--SEC END --> <H4><A NAME="htoc18">3.2.4</A>&nbsp;&nbsp;Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections</H4><!--SEC END -->
<!--TOC subsubsection Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes--> <!--TOC subsubsection Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes-->
<H4><A NAME="htoc18">3.2.5</A>&nbsp;&nbsp;Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes</H4><!--SEC END --> <H4><A NAME="htoc19">3.2.5</A>&nbsp;&nbsp;Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes</H4><!--SEC END -->
<BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV> <BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
@ -491,18 +518,18 @@ removed user is online, then he will be disconnected. Also user-related data
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE> <DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
<!--TOC subsubsection Node <TT>stopped nodes</TT>: List of Stopped Nodes--> <!--TOC subsubsection Node <TT>stopped nodes</TT>: List of Stopped Nodes-->
<H4><A NAME="htoc19">3.2.6</A>&nbsp;&nbsp;Node <TT>stopped nodes</TT>: List of Stopped Nodes</H4><!--SEC END --> <H4><A NAME="htoc20">3.2.6</A>&nbsp;&nbsp;Node <TT>stopped nodes</TT>: List of Stopped Nodes</H4><!--SEC END -->
TBD<BR> TBD<BR>
<BR> <BR>
<!--TOC section Distribution--> <!--TOC section Distribution-->
<H2><A NAME="htoc20">4</A>&nbsp;&nbsp;Distribution</H2><!--SEC END --> <H2><A NAME="htoc21">4</A>&nbsp;&nbsp;Distribution</H2><!--SEC END -->
<A NAME="sec:distribution"></A> <A NAME="sec:distribution"></A>
<!--TOC subsection How it works--> <!--TOC subsection How it works-->
<H3><A NAME="htoc21">4.1</A>&nbsp;&nbsp;How it works</H3><!--SEC END --> <H3><A NAME="htoc22">4.1</A>&nbsp;&nbsp;How it works</H3><!--SEC END -->
<A NAME="sec:howitworks"></A> <A NAME="sec:howitworks"></A>
A Jabber domain is served by one or more <TT>ejabberd</TT> nodes. These nodes can A Jabber domain is served by one or more <TT>ejabberd</TT> nodes. These nodes can
@ -522,7 +549,7 @@ router;
</UL> </UL>
<!--TOC subsubsection Router--> <!--TOC subsubsection Router-->
<H4><A NAME="htoc22">4.1.1</A>&nbsp;&nbsp;Router</H4><!--SEC END --> <H4><A NAME="htoc23">4.1.1</A>&nbsp;&nbsp;Router</H4><!--SEC END -->
This module is the main router of Jabber packets on each node. It routes This module is the main router of Jabber packets on each node. It routes
them based on their destinations domains. It has two tables: local and global them based on their destinations domains. It has two tables: local and global
@ -534,7 +561,7 @@ manager.<BR>
<BR> <BR>
<!--TOC subsubsection Local Router--> <!--TOC subsubsection Local Router-->
<H4><A NAME="htoc23">4.1.2</A>&nbsp;&nbsp;Local Router</H4><!--SEC END --> <H4><A NAME="htoc24">4.1.2</A>&nbsp;&nbsp;Local Router</H4><!--SEC END -->
This module routes packets which have a destination domain equal to this server This module routes packets which have a destination domain equal to this server
name. If destination JID has a node, then it routed to the session manager, name. If destination JID has a node, then it routed to the session manager,
@ -542,7 +569,7 @@ else it is processed depending on it's content.<BR>
<BR> <BR>
<!--TOC subsubsection Session Manager--> <!--TOC subsubsection Session Manager-->
<H4><A NAME="htoc24">4.1.3</A>&nbsp;&nbsp;Session Manager</H4><!--SEC END --> <H4><A NAME="htoc25">4.1.3</A>&nbsp;&nbsp;Session Manager</H4><!--SEC END -->
This module routes packets to local users. It searches for what user resource This module routes packets to local users. It searches for what user resource
packet must be sended via presence table. If this resource is connected to packet must be sended via presence table. If this resource is connected to
@ -551,7 +578,7 @@ the packet is sent to session manager on that node.<BR>
<BR> <BR>
<!--TOC subsubsection S2S Manager--> <!--TOC subsubsection S2S Manager-->
<H4><A NAME="htoc25">4.1.4</A>&nbsp;&nbsp;S2S Manager</H4><!--SEC END --> <H4><A NAME="htoc26">4.1.4</A>&nbsp;&nbsp;S2S Manager</H4><!--SEC END -->
This module routes packets to other Jabber servers. First, it checks if an This module routes packets to other Jabber servers. First, it checks if an
open S2S connection from the domain of the packet source to the domain of open S2S connection from the domain of the packet source to the domain of
@ -562,19 +589,19 @@ does not exist, then it is opened and registered.<BR>
<BR> <BR>
<!--TOC section Built-in Modules--> <!--TOC section Built-in Modules-->
<H2><A NAME="htoc26">A</A>&nbsp;&nbsp;Built-in Modules</H2><!--SEC END --> <H2><A NAME="htoc27">A</A>&nbsp;&nbsp;Built-in Modules</H2><!--SEC END -->
<A NAME="sec:modules"></A> <A NAME="sec:modules"></A>
<!--TOC subsection Common Options--> <!--TOC subsection Common Options-->
<H3><A NAME="htoc27">A.1</A>&nbsp;&nbsp;Common Options</H3><!--SEC END --> <H3><A NAME="htoc28">A.1</A>&nbsp;&nbsp;Common Options</H3><!--SEC END -->
<A NAME="sec:modcommonopts"></A> <A NAME="sec:modcommonopts"></A>
Following options used by many modules, so they described in separate section.<BR> Following options used by many modules, so they described in separate section.<BR>
<BR> <BR>
<!--TOC subsubsection Option <TT>iqdisc</TT>--> <!--TOC subsubsection Option <TT>iqdisc</TT>-->
<H4><A NAME="htoc28">A.1.1</A>&nbsp;&nbsp;Option <TT>iqdisc</TT></H4><!--SEC END --> <H4><A NAME="htoc29">A.1.1</A>&nbsp;&nbsp;Option <TT>iqdisc</TT></H4><!--SEC END -->
Many modules define handlers for processing IQ queries of different namespaces Many modules define handlers for processing IQ queries of different namespaces
to this server or to user (e.&nbsp;g. to <TT>myjabber.org</TT> or to to this server or to user (e.&nbsp;g. to <TT>myjabber.org</TT> or to
@ -604,7 +631,7 @@ Example:
</PRE> </PRE>
<!--TOC subsubsection Option <TT>host</TT>--> <!--TOC subsubsection Option <TT>host</TT>-->
<H4><A NAME="htoc29">A.1.2</A>&nbsp;&nbsp;Option <TT>host</TT></H4><!--SEC END --> <H4><A NAME="htoc30">A.1.2</A>&nbsp;&nbsp;Option <TT>host</TT></H4><!--SEC END -->
Some modules may act as services, and wants to have different domain name. Some modules may act as services, and wants to have different domain name.
This option explicitly defines this name.<BR> This option explicitly defines this name.<BR>
@ -619,27 +646,27 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_register</TT>--> <!--TOC subsection <TT>mod_register</TT>-->
<H3><A NAME="htoc30">A.2</A>&nbsp;&nbsp;<TT>mod_register</TT></H3><!--SEC END --> <H3><A NAME="htoc31">A.2</A>&nbsp;&nbsp;<TT>mod_register</TT></H3><!--SEC END -->
<A NAME="sec:modregister"></A> <A NAME="sec:modregister"></A>
<!--TOC subsection <TT>mod_roster</TT>--> <!--TOC subsection <TT>mod_roster</TT>-->
<H3><A NAME="htoc31">A.3</A>&nbsp;&nbsp;<TT>mod_roster</TT></H3><!--SEC END --> <H3><A NAME="htoc32">A.3</A>&nbsp;&nbsp;<TT>mod_roster</TT></H3><!--SEC END -->
<A NAME="sec:modroster"></A> <A NAME="sec:modroster"></A>
<!--TOC subsection <TT>mod_configure</TT>--> <!--TOC subsection <TT>mod_configure</TT>-->
<H3><A NAME="htoc32">A.4</A>&nbsp;&nbsp;<TT>mod_configure</TT></H3><!--SEC END --> <H3><A NAME="htoc33">A.4</A>&nbsp;&nbsp;<TT>mod_configure</TT></H3><!--SEC END -->
<A NAME="sec:modconfigure"></A> <A NAME="sec:modconfigure"></A>
<!--TOC subsection <TT>mod_disco</TT>--> <!--TOC subsection <TT>mod_disco</TT>-->
<H3><A NAME="htoc33">A.5</A>&nbsp;&nbsp;<TT>mod_disco</TT></H3><!--SEC END --> <H3><A NAME="htoc34">A.5</A>&nbsp;&nbsp;<TT>mod_disco</TT></H3><!--SEC END -->
<A NAME="sec:moddisco"></A> <A NAME="sec:moddisco"></A>
<!--TOC subsection <TT>mod_stats</TT>--> <!--TOC subsection <TT>mod_stats</TT>-->
<H3><A NAME="htoc34">A.6</A>&nbsp;&nbsp;<TT>mod_stats</TT></H3><!--SEC END --> <H3><A NAME="htoc35">A.6</A>&nbsp;&nbsp;<TT>mod_stats</TT></H3><!--SEC END -->
<A NAME="sec:modstats"></A> <A NAME="sec:modstats"></A>
This module adds support of This module adds support of
@ -654,22 +681,22 @@ TBD about access.<BR>
<BR> <BR>
<!--TOC subsection <TT>mod_vcard</TT>--> <!--TOC subsection <TT>mod_vcard</TT>-->
<H3><A NAME="htoc35">A.7</A>&nbsp;&nbsp;<TT>mod_vcard</TT></H3><!--SEC END --> <H3><A NAME="htoc36">A.7</A>&nbsp;&nbsp;<TT>mod_vcard</TT></H3><!--SEC END -->
<A NAME="sec:modvcard"></A> <A NAME="sec:modvcard"></A>
<!--TOC subsection <TT>mod_offline</TT>--> <!--TOC subsection <TT>mod_offline</TT>-->
<H3><A NAME="htoc36">A.8</A>&nbsp;&nbsp;<TT>mod_offline</TT></H3><!--SEC END --> <H3><A NAME="htoc37">A.8</A>&nbsp;&nbsp;<TT>mod_offline</TT></H3><!--SEC END -->
<A NAME="sec:modoffline"></A> <A NAME="sec:modoffline"></A>
<!--TOC subsection <TT>mod_echo</TT>--> <!--TOC subsection <TT>mod_echo</TT>-->
<H3><A NAME="htoc37">A.9</A>&nbsp;&nbsp;<TT>mod_echo</TT></H3><!--SEC END --> <H3><A NAME="htoc38">A.9</A>&nbsp;&nbsp;<TT>mod_echo</TT></H3><!--SEC END -->
<A NAME="sec:modecho"></A> <A NAME="sec:modecho"></A>
<!--TOC subsection <TT>mod_private</TT>--> <!--TOC subsection <TT>mod_private</TT>-->
<H3><A NAME="htoc38">A.10</A>&nbsp;&nbsp;<TT>mod_private</TT></H3><!--SEC END --> <H3><A NAME="htoc39">A.10</A>&nbsp;&nbsp;<TT>mod_private</TT></H3><!--SEC END -->
<A NAME="sec:modprivate"></A> <A NAME="sec:modprivate"></A>
This module adds support of This module adds support of
@ -682,7 +709,7 @@ Options:
</DL> </DL>
<!--TOC subsection <TT>mod_time</TT>--> <!--TOC subsection <TT>mod_time</TT>-->
<H3><A NAME="htoc39">A.11</A>&nbsp;&nbsp;<TT>mod_time</TT></H3><!--SEC END --> <H3><A NAME="htoc40">A.11</A>&nbsp;&nbsp;<TT>mod_time</TT></H3><!--SEC END -->
<A NAME="sec:modtime"></A> <A NAME="sec:modtime"></A>
This module answers UTC time on <TT>jabber:iq:time</TT> queries.<BR> This module answers UTC time on <TT>jabber:iq:time</TT> queries.<BR>
@ -693,7 +720,7 @@ Options:
</DL> </DL>
<!--TOC subsection <TT>mod_version</TT>--> <!--TOC subsection <TT>mod_version</TT>-->
<H3><A NAME="htoc40">A.12</A>&nbsp;&nbsp;<TT>mod_version</TT></H3><!--SEC END --> <H3><A NAME="htoc41">A.12</A>&nbsp;&nbsp;<TT>mod_version</TT></H3><!--SEC END -->
<A NAME="sec:modversion"></A> <A NAME="sec:modversion"></A>
This module answers <TT>ejabberd</TT> version on <TT>jabber:iq:version</TT> queries.<BR> This module answers <TT>ejabberd</TT> version on <TT>jabber:iq:version</TT> queries.<BR>
@ -704,7 +731,7 @@ Options:
</DL> </DL>
<!--TOC section I18n/L10n--> <!--TOC section I18n/L10n-->
<H2><A NAME="htoc41">B</A>&nbsp;&nbsp;I18n/L10n</H2><!--SEC END --> <H2><A NAME="htoc42">B</A>&nbsp;&nbsp;I18n/L10n</H2><!--SEC END -->
<A NAME="sec:i18nl10n"></A> <A NAME="sec:i18nl10n"></A>
Many modules supports <TT>xml:lang</TT> attribute inside IQ queries. E.&nbsp;g. Many modules supports <TT>xml:lang</TT> attribute inside IQ queries. E.&nbsp;g.

View File

@ -291,6 +291,30 @@ Following access rules pre-defined:
\end{description} \end{description}
\subsubsection{Shapers Configuration}
\label{sec:configshaper}
With shapers is possible to bound connection traffic. The declarations of
shapers in config file have following syntax:
\begin{verbatim}
{shaper, <shapername>, <kind>}.
\end{verbatim}
Currently implemented only one kind of shaper: \texttt{maxrate}. It have
following syntax:
\begin{verbatim}
{maxrate, <rate>}
\end{verbatim}
where \texttt{<rate>} means maximum allowed incomig rate in bytes/second.
E.\,g.\ to define shaper with name ``\texttt{normal}'' and maximum allowed rate
1000\,bytes/s, add following line in config:
\begin{verbatim}
{shaper, normal, {maxrate, 1000}}.
\end{verbatim}
\subsubsection{Listened Sockets} \subsubsection{Listened Sockets}
\label{sec:configlistened} \label{sec:configlistened}
@ -311,6 +335,9 @@ Currently three modules are implemented:
\begin{description} \begin{description}
\item[\texttt{\{access, <access rule>\}}] This option defines access of users \item[\texttt{\{access, <access rule>\}}] This option defines access of users
to this C2S port. Default value is ``\texttt{all}''. to this C2S port. Default value is ``\texttt{all}''.
\item[\texttt{\{shaper, <access rule>\}}] This option is like previous, but
use shapers instead of ``\texttt{allow}'' and ``\texttt{deny}''. Default
value is ``\texttt{none}''.
\end{description} \end{description}
\item[\texttt{ejabberd\_s2s\_in}] This module serves incoming S2S connections. \item[\texttt{ejabberd\_s2s\_in}] This module serves incoming S2S connections.
\item[\texttt{ejabberd\_service}] This module serves connections to \Jabber{} \item[\texttt{ejabberd\_service}] This module serves connections to \Jabber{}
@ -320,13 +347,17 @@ Currently three modules are implemented:
For example, the following configuration defines that C2S connections are For example, the following configuration defines that C2S connections are
listened on port 5222 and denied for user ``\texttt{bad}'', S2S on port 5269 listened on port 5222 and denied for user ``\texttt{bad}'', S2S on port 5269
and that service \texttt{conference.jabber.org} must be connected to port 8888 and that service \texttt{conference.jabber.org} must be connected to port 8888
with a password ``\texttt{secret}''. with a password ``\texttt{secret}''. Also all users except admins have traffic
limit 1000\,b/s.
\begin{verbatim} \begin{verbatim}
{acl, blocked, {user, "bad"}}. {acl, blocked, {user, "bad"}}.
{access, c2s, [{deny, blocked}, {access, c2s, [{deny, blocked},
{allow, all}]}. {allow, all}]}.
{listen, [{5222, ejabberd_c2s, start, [{access, c2s}]}, {shaper, normal, {maxrate, 1000}}.
{access, c2s_shaper, [{none, admin},
{normal, all}]}.
{listen, [{5222, ejabberd_c2s, start, [{access, c2s},
{shaper, c2s_shaper}]},
{5269, ejabberd_s2s_in, start, []}, {5269, ejabberd_s2s_in, start, []},
{8888, ejabberd_service, start, {8888, ejabberd_service, start,
[{host, "conference.jabber.org", [{password, "secret"}]}]} [{host, "conference.jabber.org", [{password, "secret"}]}]}
@ -336,7 +367,6 @@ with a password ``\texttt{secret}''.
\subsubsection{Modules} \subsubsection{Modules}
\label{sec:configmodules} \label{sec:configmodules}

View File

@ -2,7 +2,7 @@
{application, ejabberd, {application, ejabberd,
[{description, "ejabberd"}, [{description, "ejabberd"},
{vsn, "0.0.1-alpha"}, {vsn, "0.1-alpha"},
{modules, [acl, {modules, [acl,
ejabberd, ejabberd,
ejabberd_auth, ejabberd_auth,

View File

@ -6,7 +6,7 @@
%%% Id : $Id$ %%% Id : $Id$
%%%---------------------------------------------------------------------- %%%----------------------------------------------------------------------
-define(VERSION, "0.0.1-alpha"). -define(VERSION, "0.1-alpha").
%-define(ejabberd_debug, true). %-define(ejabberd_debug, true).
%-define(DBGFSM, true). %-define(DBGFSM, true).

View File

@ -380,7 +380,6 @@ receiver(Socket, SockMod, ShaperState, C2SPid, XMLStreamPid) ->
{ok, Text} -> {ok, Text} ->
ShaperSt1 = receive ShaperSt1 = receive
{change_shaper, Shaper} -> {change_shaper, Shaper} ->
io:format("RECV: ChShaper to ~p~n", [Shaper]),
shaper:new(Shaper) shaper:new(Shaper)
after 0 -> after 0 ->
ShaperState ShaperState