25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-24 16:23:40 +01:00

* src/mod_muc.erl: Added option to limit the number of room a user is

allowed to connect to (EJAB-445).
* src/mod_muc_room.erl: Likewise.
* doc/guide.tex: Likewise.

SVN Revision: 1016
This commit is contained in:
Mickaël Rémond 2007-12-03 10:50:36 +00:00
parent abdbf55c87
commit 384f4c9196
3 changed files with 114 additions and 83 deletions

View File

@ -1,5 +1,12 @@
2007-12-02 Badlop <badlop@process-one.net>
2007-12-03 Mickael Remond <mremond@process-one.net>
* src/mod_muc.erl: Added option to limit the number of room a user is
allowed to connect to (EJAB-445).
* src/mod_muc_room.erl: Likewise.
* doc/guide.tex: Likewise.:ChangeLog
2007-12-02 Badlop <badlop@process-one.net>
* src/ejabberdctl.cfg.example: Bugfix in kernel poll. Added SMP
option. Reorganization of options
* src/ejabberdctl.template: Added SMP option

View File

@ -2481,14 +2481,16 @@ Options:
value is <TT>none</TT>, which means that only the room creator can
administer his room). By sending a message to the service JID,
administrators can send service messages that will be displayed in every
active room.
<DT CLASS="dt-description"><B><TT>history_size</TT></B><DD CLASS="dd-description"> A small history of the
current discussion is sent to users when they enter the room. With this option
you can define the number of history messages to keep and send to users
joining the room. The value is an integer. Setting the value to <TT>0</TT>
disables the history feature and, as a result, nothing is kept in memory. The
default value is <TT>20</TT>. This value is global and thus affects all rooms on
the server.<BR>
active room.<BR>
<BR>
<DT CLASS="dt-description"><B><TT>history_size</TT></B><DD CLASS="dd-description"> A small history of
the current discussion is sent to users when they enter the
room. With this option you can define the number of history messages
to keep and send to users joining the room. The value is an
integer. Setting the value to <TT>0</TT> disables the history feature
and, as a result, nothing is kept in memory. The default value is
<TT>20</TT>. This value is global and thus affects all rooms on the
server.<BR>
<BR>
<DT CLASS="dt-description"><B><TT>max_users</TT></B><DD CLASS="dd-description"> This option defines at
the server level, the maximum number of users allowed per MUC
@ -2502,40 +2504,50 @@ Options:
the maximum number of allowed users is reached. The default limits
is 5. In most cases this default value is the best setting.<BR>
<BR>
<DT CLASS="dt-description"><B><TT>max_user_conferences</TT></B><DD CLASS="dd-description">
This option define the maximum
number of chat room any given user will be able to join. The default
is 10. This option is used to prevent possible abuses. Note that
this is a soft limits: Some users can sometime join more conferences
in cluster configurations.<BR>
<BR>
<DT CLASS="dt-description"><B><TT>min_message_interval</TT></B><DD CLASS="dd-description">
This option defines the minimum interval between two messages send by
a user in seconds. This option is global and valid for all chat
rooms. A decimal value can be used. When this option is not defined,
message rate is not limited. This feature can be used to protect a MUC
service from users abuses and limit number of messages that will be
broadcasted by the service. A good value for this minimum message
interval is 0.4 second. If a user tries to send messages faster, an
error is send back explaining that the message have been discarded and
describing the reason why the message is not acceptable.
<DT CLASS="dt-description"><B><TT>min_presence_interval</TT></B><DD CLASS="dd-description">
This option defines the minimum of time between presence changes
coming from a given user in seconds. This option is global and valid
for all chat rooms. A decimal value can be used. When this option is
not defined, no restriction is applied. This option can be used to
protect a MUC service for users abuses, as fastly changing a user
presence will result in possible large presence packet broadcast. If a
user tries to change its presence more often than the specified
interval, the presence is cached by ejabberd and only the last
presence is broadcasted to all users in the room after expiration of
the interval delay. Intermediate presence packets are silently
discarded. A good value for this option is 4 seconds.
<DT CLASS="dt-description"><B><TT>default_room_opts</TT></B><DD CLASS="dd-description"> This option allow
to define the desired default room options.
Obviously, the room creator can modify the room options at any time.
The available room options are:
<TT>allow_change_subj</TT>, <TT>allow_private_messages</TT>,
<TT>allow_query_users</TT>, <TT>allow_user_invites</TT>,
<TT>anonymous</TT>, <TT>logging</TT>, <TT>members_by_default</TT>,
<TT>members_only</TT>, <TT>moderated</TT>, <TT>password</TT>,
<TT>password_protected</TT>, <TT>persistent</TT>,
<TT>public</TT>, <TT>public_list</TT>, <TT>title</TT>.
All of them can be set to <TT>true</TT> or <TT>false</TT>,
except <TT>password</TT> and <TT>title</TT> which are strings.
This option defines the minimum interval between two messages send
by a user in seconds. This option is global and valid for all chat
rooms. A decimal value can be used. When this option is not defined,
message rate is not limited. This feature can be used to protect a
MUC service from users abuses and limit number of messages that will
be broadcasted by the service. A good value for this minimum message
interval is 0.4 second. If a user tries to send messages faster, an
error is send back explaining that the message have been discarded
and describing the reason why the message is not acceptable.<BR>
<BR>
<DT CLASS="dt-description"><B><TT>min_presence_interval</TT></B><DD CLASS="dd-description">
This option defines the
minimum of time between presence changes coming from a given user in
seconds. This option is global and valid for all chat rooms. A
decimal value can be used. When this option is not defined, no
restriction is applied. This option can be used to protect a MUC
service for users abuses, as fastly changing a user presence will
result in possible large presence packet broadcast. If a user tries
to change its presence more often than the specified interval, the
presence is cached by ejabberd and only the last presence is
broadcasted to all users in the room after expiration of the
interval delay. Intermediate presence packets are silently
discarded. A good value for this option is 4 seconds.<BR>
<BR>
<DT CLASS="dt-description"><B><TT>default_room_opts</TT></B><DD CLASS="dd-description"> This
option allow to define the desired default room options. Obviously,
the room creator can modify the room options at any time. The
available room options are: <TT>allow_change_subj</TT>,
<TT>allow_private_messages</TT>, <TT>allow_query_users</TT>,
<TT>allow_user_invites</TT>, <TT>anonymous</TT>, <TT>logging</TT>,
<TT>members_by_default</TT>, <TT>members_only</TT>,
<TT>moderated</TT>, <TT>password</TT>, <TT>password_protected</TT>,
<TT>persistent</TT>, <TT>public</TT>, <TT>public_list</TT>,
<TT>title</TT>. All of them can be set to <TT>true</TT> or
<TT>false</TT>, except <TT>password</TT> and <TT>title</TT> which
are strings.
</DL>
Examples:
<UL CLASS="itemize"><LI CLASS="li-itemize">

View File

@ -2220,13 +2220,15 @@ Options:
administer his room). By sending a message to the service JID,
administrators can send service messages that will be displayed in every
active room.
\titem{history\_size} \ind{options!history\_size}A small history of the
current discussion is sent to users when they enter the room. With this option
you can define the number of history messages to keep and send to users
joining the room. The value is an integer. Setting the value to \term{0}
disables the history feature and, as a result, nothing is kept in memory. The
default value is \term{20}. This value is global and thus affects all rooms on
the server.
\titem{history\_size} \ind{options!history\_size}A small history of
the current discussion is sent to users when they enter the
room. With this option you can define the number of history messages
to keep and send to users joining the room. The value is an
integer. Setting the value to \term{0} disables the history feature
and, as a result, nothing is kept in memory. The default value is
\term{20}. This value is global and thus affects all rooms on the
server.
\titem{max\_users} \ind{options!max\_users} This option defines at
the server level, the maximum number of users allowed per MUC
@ -2239,41 +2241,51 @@ Options:
number of MUC admins or owners to allow to enter the room even if
the maximum number of allowed users is reached. The default limits
is 5. In most cases this default value is the best setting.
\titem{max\_user\_conferences}
\ind{options!max\_user\_conferences} This option define the maximum
number of chat room any given user will be able to join. The default
is 10. This option is used to prevent possible abuses. Note that
this is a soft limits: Some users can sometime join more conferences
in cluster configurations.
\titem{min\_message\_interval} \ind{options!min\_message\_interval}
This option defines the minimum interval between two messages send by
a user in seconds. This option is global and valid for all chat
rooms. A decimal value can be used. When this option is not defined,
message rate is not limited. This feature can be used to protect a MUC
service from users abuses and limit number of messages that will be
broadcasted by the service. A good value for this minimum message
interval is 0.4 second. If a user tries to send messages faster, an
error is send back explaining that the message have been discarded and
describing the reason why the message is not acceptable.
\titem{min\_presence\_interval} \ind{options!min\_presence\_interval}
This option defines the minimum of time between presence changes
coming from a given user in seconds. This option is global and valid
for all chat rooms. A decimal value can be used. When this option is
not defined, no restriction is applied. This option can be used to
protect a MUC service for users abuses, as fastly changing a user
presence will result in possible large presence packet broadcast. If a
user tries to change its presence more often than the specified
interval, the presence is cached by ejabberd and only the last
presence is broadcasted to all users in the room after expiration of
the interval delay. Intermediate presence packets are silently
discarded. A good value for this option is 4 seconds.
\titem{default\_room\_opts} \ind{options!default\_room\_opts}This option allow
to define the desired default room options.
Obviously, the room creator can modify the room options at any time.
The available room options are:
\option{allow\_change\_subj}, \option{allow\_private\_messages},
\option{allow\_query\_users}, \option{allow\_user\_invites},
\option{anonymous}, \option{logging}, \option{members\_by\_default},
\option{members\_only}, \option{moderated}, \option{password},
\option{password\_protected}, \option{persistent},
\option{public}, \option{public\_list}, \option{title}.
All of them can be set to \option{true} or \option{false},
except \option{password} and \option{title} which are strings.
\titem{min\_message\_interval} \ind{options!min\_message\_interval}
This option defines the minimum interval between two messages send
by a user in seconds. This option is global and valid for all chat
rooms. A decimal value can be used. When this option is not defined,
message rate is not limited. This feature can be used to protect a
MUC service from users abuses and limit number of messages that will
be broadcasted by the service. A good value for this minimum message
interval is 0.4 second. If a user tries to send messages faster, an
error is send back explaining that the message have been discarded
and describing the reason why the message is not acceptable.
\titem{min\_presence\_interval}
\ind{options!min\_presence\_interval} This option defines the
minimum of time between presence changes coming from a given user in
seconds. This option is global and valid for all chat rooms. A
decimal value can be used. When this option is not defined, no
restriction is applied. This option can be used to protect a MUC
service for users abuses, as fastly changing a user presence will
result in possible large presence packet broadcast. If a user tries
to change its presence more often than the specified interval, the
presence is cached by ejabberd and only the last presence is
broadcasted to all users in the room after expiration of the
interval delay. Intermediate presence packets are silently
discarded. A good value for this option is 4 seconds.
\titem{default\_room\_opts} \ind{options!default\_room\_opts}This
option allow to define the desired default room options. Obviously,
the room creator can modify the room options at any time. The
available room options are: \option{allow\_change\_subj},
\option{allow\_private\_messages}, \option{allow\_query\_users},
\option{allow\_user\_invites}, \option{anonymous}, \option{logging},
\option{members\_by\_default}, \option{members\_only},
\option{moderated}, \option{password}, \option{password\_protected},
\option{persistent}, \option{public}, \option{public\_list},
\option{title}. All of them can be set to \option{true} or
\option{false}, except \option{password} and \option{title} which
are strings.
\end{description}
Examples: