A new callback is introduced on the p1_fsm behaviour:
print_error/1
If the module implements this function, it will be invoked
in case of process crash with the current state data *before*
printing the error in the log. The function must return the
desired State to print.
It is used in ejabberd_c2s to prune the presence sets that
can be large. Instead, the state is changed to include only
the # of elements on each set.
Change inspired in comming changes to gen_server on OTP, and
b01d15abc3 (diff-0)
Introduces two options for mod_roster and mod_roster_odbc:
- {versioning, true | false} Enable or disable roster versioning on ejabberd.
- {store_current_id, true | false} If true, the current roster version is stored on DB (internal or odbc). Otherwise it is calculated on the fly each time.
Performance:
Setting store_current_id to true should help in reducing the load for both ejabberd and the DB.
Details:
If store_current_id is false, the roster version is a hash of the entire roster. If store_current_id is true, the roster version is a hash, but of the current time
(this has to do with transactional semantics; we need to perform both the roster update and the version update on the same transaction, but we don't
have the entire roster when we are changing a single item on DB. Loading it there requires significant changes to be introduced, so I opted for this simpler approach).
In either case, there is no difference for the clients, the roster version ID is opaque.
IMPORTANT:
mod_shared_roster is not compatible with the option 'store_current_id'. Shared roster and roster versioning can be both enabled, but store_current_id MUST be set to false.
SVN Revision: 2428
EJAB-300 (EJAB-890). Check default privacy list when account, not
a specific session, receives a presence subscription
stanza (EJAB-300).
* src/ejabberd_c2s.erl: Likewise
SVN Revision: 1998
remove rosters accidentally (EJAB-549). New functions in
ejabberd_auth to get/check password and know which module accepted
the authentication. New element 'auth_module' in ejabberd_c2s
record 'statedata'. Cyrsasl provides a new property in the
response: {auth_module, AuthModule}.
* src/ejabberd_auth_anonymous.erl: Likewise
* src/ejabberd_c2s.erl: Likewise
* src/cyrsasl_anonymous.erl: Likewise
* src/cyrsasl_digest.erl: Likewise
* src/cyrsasl_plain.erl: Likewise
SVN Revision: 1297
* src/ejabberd_local.erl: Support for IQ responses
* src/jlib.erl: Added iq_query_or_response_info/1 function
* src/jlib.hrl: Added NS_PUBSUB_ERRORS and NS_CAPS
* src/mod_pubsub/Makefile.in: New pubsub+pep implementation
(thanks to Christophe Romain and Magnus Henoch)
* src/ejabberd_sm.erl: Added get_session_pid/3 function
* src/ejabberd_c2s.erl: Added get_subscribed_and_online/1 function
SVN Revision: 1004
a s2s connection to ensure that a muc room always uses the same
connection
Merge branch 'ejabberd_s2s'
Conflicts:
.gitignore
src/configure
src/ejabberd_c2s.erl
src/ejabberd_s2s.erl
SVN Revision: 963
the error code used on unknown namespace.
* src/ejabberd_s2s_out.erl: Improved s2s connection negociation
(dialback namespace usage) when using tls.
* src/ejabberd_sm.erl: Fixed the error code used on unknown
namespace.
* src/mod_register.erl: ejabberd now sends iq result and stream
end on user remove.
SVN Revision: 590
login as long as they have not been answered. mod_roster do no more
depends on mod_offline.
* src/ejabberd_sm.erl: Likewise.
* src/ejabberd_c2s.erl: Likewise.
* src/mod_roster_odbc.erl: Likewise (The ODBC/relational support
has not yet been tested).
* src/mod_roster.hrl: Likewise.
* src/mod_offline.erl: Likewise.
* src/mod_offline_odbc.erl: Likewise.
* odbc/pg.sql: Likewise.
* odbc/mysql.sql: Likewise.
SVN Revision: 569
* src/ejabberd_c2s.erl: Bugfix (thanks to Sergei Golovan)
* doc/guide.tex: Updated (thanks to Sergei Golovan)
* src/msgs/nl.msg: Updated (thanks to Sander Devrieze)
SVN Revision: 531
print-out (make ejabberd_debug=true).
* src/ejabberd_c2s.erl: Added a new debug printout: We can now
print the XML packets send by the server.
SVN Revision: 524
* src/configure.ac: Likewise
* src/mod_muc/mod_muc_room.erl: Weakened presence filtering, added
warning in non-anonymous rooms, room destroying updated to latest
JEP-0045, added a number of occupants and room name in room's
disco#info reply, miscellaneous internal changes (thanks to Sergei
Golovan)
* src/mod_muc/mod_muc.erl: Better support for nick unregistration
(thanks to Sergei Golovan)
* src/ejabberd_zlib/ejabberd_zlib.erl: Zlib support (thanks to
Sergei Golovan)
* src/ejabberd_zlib/ejabberd_zlib_drv.c: Likewise
* src/ejabberd_zlib/Makefile.in: Likewise
* src/ejabberd_c2s.erl: Stream compression support (JEP-0138)
* src/ejabberd_receiver.erl: Likewise
* src/mod_disco.erl: Don't split node name before calling hooks
(thanks to Sergei Golovan)
* src/mod_configure.erl: Support for configuration using ad-hoc
commands (thanks to Sergei Golovan)
* src/mod_announce.erl: Support for sending announce messages
using ad-hoc commands (thanks to Sergei Golovan)
* src/mod_adhoc.erl: Ad-hoc support (JEP-0050) (thanks to Magnus
Henoch)
* src/adhoc.erl: Likewise
* src/adhoc.hrl: Likewise
* src/jlib.hrl: Updated (thanks to Sergei Golovan)
* src/gen_mod.erl: Added function is_loaded/2 (thanks to Sergei
Golovan)
* src/ejabberd_service.erl: Changed error message on handshake
error (thanks to Sergei Golovan)
* src/ejabberd.cfg.example: Updated (thanks to Sergei Golovan)
SVN Revision: 486
moved to mod_register.erl (thanks to Sergei Golovan)
* src/mod_register.erl: Likewise
* src/win32/ejabberd.nsi: Added two pictures in installer (thanks
to Maxim Ryazanov)
* src/win32/ejabberd_header.bmp: Likewise
* src/win32/ejabberd_intro.bmp: Likewise
* src/web/ejabberd_web_admin.erl: Fixed spelling of word
"authentication"
* src/ejabberd_c2s.erl: Likewise
SVN Revision: 375
session (thanks to Maxim Ryazanov)
* src/tls/tls_drv.c: Now reads all certificates from certificate
file instead of reading only first one (thanks to Karl-Johan
Karlsson)
* examples/transport-configs/init-scripts/jabber-gg-transport:
Fixed typo (thanks to Sander Devrieze)
SVN Revision: 304
to "password"
* src/jlib.hrl: More stream error defines (thanks to Sergei
Golovan)
* src/ejabberd_c2s.erl: Support for starttls_required option
(thanks to Sergei Golovan)
* src/mod_muc/mod_muc_room.erl: Fixed mistake in case condition
(thanks to Sergei Golovan)
* src/xml_stream.erl: Added function parse_element/1
* src/expat_erl.c: Added PARSE_FINAL_COMMAND
SVN Revision: 289
(thanks to Leif Johansson)
* src/ejabberd_auth.erl: Added support for ldap_rootdn and
ldap_password options (thanks to Stefan de Konink)
* src/mod_vcard_ldap.erl: Likewise
* src/ejabberd_router.erl: Now possible to route packet via
function call instead of message sending
* src/ejabberd_sm.erl: Added function route/3, use it in route
table
* src/ejabberd_local.erl: Likewise
* src/ejabberd_s2s.erl: Likewise
* (all): Fixed spelling of word "authentication"
* src/*/Makefile.in: Replaced erlc with @ERLC@
SVN Revision: 285
* src/ejabberd_c2s.erl: Send iq-register feature
* src/ejabberd_config.erl: Config file can be configured from the
command line (thanks to Mickael Remond)
* src/web/ejabberd_http.erl: Added SSL support (thanks to Sergei
Golovan)
* src/msgs/*.msg: Updated (thanks to Sergei Golovan)
* src/jlib.hrl: Updated error codes (thanks to Sergei Golovan)
* src/ejabberd_c2s.erl: Likewise
SVN Revision: 266
(thanks to Sergei Golovan)
* src/mod_disco.erl: Added registration of sm features and nodes
(thanks to Sergei Golovan)
* src/mod_vcard.erl: Register vcard-temp feature (thanks to Sergei
Golovan)
* src/jlib.erl: Added functions now_to_utc_string/1,
now_to_local_string/1, and datetime_string_to_timestamp/1 (thanks
to Sergei Golovan)
* src/mod_muc/mod_muc_room.erl: Use time parsing functions from
jlib (thanks to Sergei Golovan)
* ejabberd/src/mod_pubsub/mod_pubsub.erl: Bugfix (thanks to
Mickael Remond)
* src/mod_pubsub/mod_pubsub.erl: Bugfix
SVN Revision: 265
* src/mod_announce.erl: New module to manage announce messages
(thanks to Sergei Golovan)
* src/ejabberd_local.erl: Moved processing of announce messages to
mod_announce (thanks to Sergei Golovan)
* src/ejabberd_c2s.erl: Added several hooks
* src/ejabberd_hooks.erl: Fixed run_fold (thanks to Sergei
Golovan)
* src/ejabberd.cfg.example: Updated (thanks to Sergei Golovan)
* doc/guide.tex: Updated (thanks to Sergei Golovan)
SVN Revision: 256
* src/ejabberd_auth.erl: Now uses two LDAP connections
* src/ejabberd_c2s.erl: Return resource on get_presence request
(thanks to Mickael Remond)
* src/mod_configure2.erl: Bugfix (thanks to Sergei Golovan)
* src/msgs/ua.msg: New Ukrainian translation (thanks to usercard)
* src/msgs/nl.msg: Updated (thanks to Sander Devrieze)
SVN Revision: 247
unavailable presence (thanks to Sergei Golovan)
* src/ejabberd_sm.erl: Likewise
* src/ejabberd_c2s.erl: Likewise
* src/mod_vcard.erl: Minor update (thanks to Sergei Golovan)
* src/mod_register.erl: Added "access" option (thanks to Sergei
Golovan)
* src/mod_irc/mod_irc.erl: Likewise
* src/ejabberd.cfg.example: Updated
* src/win32/ejabberd.cfg: Likewise
* src/mod_privacy.erl: Fixed module stopping (thanks to Sergei
Golovan)
* src/mod_private.erl: Likewise
* src/gen_mod.erl: Added function get_module_opt/3 (thanks to
Sergei Golovan)
* src/ejabberd_local.erl: Minor fix (thanks to Sergei Golovan)
* doc/guide.tex: Updated (thanks to Sergei Golovan)
SVN Revision: 244
* src/msgs/fr.msg: Updated (thanks to Sergei Golovan)
* src/mod_irc/mod_irc.erl: Added handler for disco items requests
(thanks to Sergei Golovan)
* src/mod_vcard.erl: Added option for JUD disabling (thanks to
Sergei Golovan)
* src/mod_configure2.erl: Fixed module stopping (thanks to Sergei
Golovan)
* src/mod_last.erl: Likewise
* src/mod_privacy.erl: Likewise
* src/mod_register.erl: Likewise
* src/mod_roster.erl: Likewise
* src/mod_vcard.erl: Likewise
* src/jd2ejd.erl: Added emergency catches (thanks to Sergei
Golovan)
* src/mod_last.erl: Likewise
* src/ejabberd_sm.erl: Removed needless call to
mod_disco:unregister_feature (thanks to Sergei Golovan)
* src/ejabberd_local.erl: Better support for mod_disco (thanks to
Sergei Golovan)
* src/mod_disco.erl: Likewise
* src/translate.erl: Suport for "default language" option (thanks
to Sergei Golovan)
* src/ejabberd_config.erl: Likewise
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd.hrl: Added 'MYLANG' macros
* src/ejabberd.cfg.example: Updated (thanks to Sergei Golovan)
* doc/guide.tex: Updated (thanks to Sergei Golovan)
* src/win32/ejabberd.cfg: Updated (thanks to Sergei Golovan)
SVN Revision: 241
(not completed yet)
* src/ejabberd_sup.erl: Added HTTP processes supervisor
* src/ejabberd_c2s.erl: Added API to ask presence (thanks to
Mickael Remond)
* src/msgs/ru.msg: Updated (thanks to Sergei Golovan)
* src/mod_muc/mod_muc_room.erl: Updated date parser (thanks to
Sergei Golovan)
* src/mod_muc/mod_muc.erl: Added error descriptions (thanks to
Sergei Golovan)
* src/mod_muc/mod_muc_room.erl: Likewise
* src/mod_vcard.erl: Fixed vCard tag (thanks to Sergei Golovan)
* src/mod_irc/mod_irc.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/jlib.hrl: Added macros for errors with <text/> (thanks to
Sergei Golovan)
SVN Revision: 206
* src/ejabberd_c2s.erl: Added processing of xml:lang according to
latest XMPP-IM draft
* src/xml.erl: Added replace_tag_attr/3 function
* src/mod_roster.erl: Added auto-reply on incoming subscription
request according to latest XMPP-IM draft
* src/mod_offline.erl: Added pop_offline_messages/1 function
* src/ejabberd_c2s.erl: Updated sending of offline messages
SVN Revision: 200
* src/ejabberd_ctl.erl: New module for ejabberd administration
* tools/ejabberdctl: Shell script for ejabberd administration
* src/mod_vcard.erl: Copyright update
* src/ejabberd_service.erl: Now possible to specify access rules
for service
* src/ejabberd.cfg.example: Updated
SVN Revision: 198
* src/ejabberd_c2s.erl: Better handling of malformed JIDs
* src/mod_register.erl (try_register/2): Now returns "jid
malformed" error if user name is invalid
SVN Revision: 174
* src/stringprep/: Added support for Unicode normalization form KC
* src/stringprep/: Added support for case convertion to multiple
characters
* src/cyrsasl_digest.erl: Temporary removed "auth-int" QOP
SVN Revision: 144
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd_c2s.erl: Added sending of empty <stream:features/>
element after opening of authentificated stream
SVN Revision: 135
appropriate errors
* src/ejabberd_c2s.erl: Use auth:error in appropriate places
* src/jlib.hrl: Changed stream error and stanza error namespace
names due to last XMPP Core changes
SVN Revision: 97
mechanism)
* src/ejabberd_c2s.erl: Likewise
(all): Support for new-style error elements (except old errors
"Not Acceptable", "Not Found", "Invalid Namespace" and "Server
Connect Failed", so ejabberd may work unstable)
SVN Revision: 86
* src/ejabberd_sm.erl: Added checks to work correctly when
mod_offline not loaded
* src/ejabberd_c2s.erl: Likewise
* src/mod_register.erl: Added support for users removal
* src/ejabberd_auth.erl: Added function to remove user only if
specified password correct
* src/mod_irc/mod_irc_connection.erl: Fixed bug with changing
availability status, added processing of "QUIT" message
SVN Revision: 80
* src/mod_offline.erl: Now all offline packets processed in
separate queue to avoid delaying of other packets transmission.
Also all packets in queue processed in one transaction.
SVN Revision: 72