Commit Graph

251 Commits

Author SHA1 Message Date
Badlop 41484213fd Use multicast in C2S presence broadcast (EJAB-267) 2010-05-20 00:03:05 +02:00
Badlop 110819525f Partially revert "Fix more HTTP-Bind", add proper fix: c2s works again, BOSH not yet 2010-05-10 13:56:58 +02:00
Evgeniy Khramtsov 92ec42565e full support for XEP-0115 v1.5 (EJAB-1223) (EJAB-1189) 2010-05-10 16:00:30 +10:00
Badlop 674ee7f5f6 Fix more HTTP-Bind; now works with exmpp bosh_client, but not others yet. 2010-05-05 19:59:57 +02:00
Badlop 9820880cd5 Automatic vcard avatar addition in presence (thanks to Igor Goryachev)(EJAB-208) 2010-04-27 12:33:38 +02:00
Pablo Polvorin fd990cf4d8 Allow customizing the StateData in p1_fsm before error reporting.
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)
2010-03-30 16:44:39 -03:00
Evgeniy Khramtsov d11a715eda - pass jid into feature_check_packet hook;
- bounce messages when closing c2s session;
- implemented treap:to_list/1 and treap:from_list/1
2010-03-17 23:47:13 +09:00
Christophe Romain 7d97830ad7 mod_caps optimizations (thanks evgeniy) 2010-03-05 15:38:44 +01:00
Badlop 87beae3298 Run user_receive_packet also when sending offline messages to client (thanks to Brian Acton)(EJAB-1193) 2010-02-22 22:56:57 +01:00
Badlop 8539a7d7ea Close also legacy sessions that were half connected (thanks to Evgeniy Khramtsov)(EJAB-1165) 2010-02-16 12:44:43 +01:00
Evgeniy Khramtsov 95a3cc88cd fixes badly formed define
SVN Revision: 2943
2010-01-28 15:34:00 +00:00
Evgeniy Khramtsov c24af4ca63 new ejabberd_c2s option support: max_fsm_queue
SVN Revision: 2940
2010-01-28 13:46:44 +00:00
Evgeniy Khramtsov e31b2582b6 now using p1_fsm behaviour in c2s FSM (EJAB-1173)
SVN Revision: 2937
2010-01-28 13:11:14 +00:00
Badlop 4caac4a322 exmpp fixes in c2s, piefxis and mod_vcard_ldap (thanks to Karim Gemayel)
SVN Revision: 2930
2010-01-27 18:53:33 +00:00
Badlop 0495112aab Close sessions that were half connected (thanks to Alexey Shchepin)(EJAB-1165)
SVN Revision: 2912
2010-01-17 19:29:35 +00:00
Badlop a9fba750fa Improve functions calls when closing client connection.
SVN Revision: 2905
2010-01-15 12:02:15 +00:00
Badlop 1bcd481fdc Update year of ProcessOne copyright from 2009 to 2010 (EJAB-1159)
SVN Revision: 2892
2010-01-12 16:15:16 +00:00
Badlop 8c0cc95a55 When ejabberd stops, send stream close to clients (thanks to Alexey Shchepin)(EJAB-1112)
SVN Revision: 2859
2010-01-04 20:32:44 +00:00
Badlop 3da20486c1 Disable code of recent commit because some clients can't handle it (EJAB-1058)
SVN Revision: 2840
2009-12-29 18:44:48 +00:00
Badlop a7bd529dac Send features after negotiating binding and session (EJAB-1058)
SVN Revision: 2835
2009-12-28 20:10:18 +00:00
Badlop f7b5afec51 Don't handle internally an IQ vCard if destination is full JID (EJAB-1045)
SVN Revision: 2769
2009-12-01 20:02:00 +00:00
Badlop b989297725 Fix problem of authentication when using plain from SVN r2575 (EJAB-936)
SVN Revision: 2759
2009-11-24 21:40:50 +00:00
Badlop 733e84a4a8 Fix exmpp_stanza:get_sender return value.
SVN Revision: 2757
2009-11-24 11:56:26 +00:00
Badlop 095cd6ce9b BOSH module optimization and clean-up (thanks to Aleksey Shchepin and Mickaël Rémond)(EJAB-936)
Unfortunately, http-bind doesn't work in this branch,
neither in this commit or before it.

SVN Revision: 2575
2009-08-31 18:40:25 +00:00
Badlop f5eb9e3c9f Support zlib compression after STARTTLS (thanks to Aleksey Shchepin)(EJAB-499)
Unfortunately, zlib compression doesn't work in this branch,
neither in this commit or before it.

SVN Revision: 2572
2009-08-31 16:30:19 +00:00
Badlop 562e63a3b0 Fix argument passing
SVN Revision: 2433
2009-08-06 21:15:15 +00:00
Badlop 4f6b67b190 Move functions from roster_versioning to mod_roster (EJAB-964)
SVN Revision: 2431
2009-08-06 21:07:18 +00:00
Pablo Polvorin 1b85310f1a Support for roster versioning (EJAB-964)
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
2009-08-06 15:45:13 +00:00
Badlop 14399e3d57 Support XEP-0199 Ping (thanks to Brian Cully and Evgeniy Khramtsov)(EJAB-974)
SVN Revision: 2419
2009-08-03 19:33:42 +00:00
Badlop f82131af15 Include original timestamp on delayed presences (thanks to Mickael Remond)(EJAB-234)
SVN Revision: 2349
2009-06-30 17:51:37 +00:00
Badlop 2f3963417f Prevent process crash if the IP and port of a connection is unknown.
SVN Revision: 2156
2009-06-11 18:57:03 +00:00
Badlop 8de03275c3 When client is closed, include the Reason in the stream trailer stanza.
SVN Revision: 2154
2009-06-09 12:10:24 +00:00
Badlop 332de67fe2 Fix some calls to exmpp
SVN Revision: 2138
2009-06-01 21:04:16 +00:00
Karim Gemayel 9abe47f350 API renaming : jid_to_binary -> to_binary
SVN Revision: 2134
2009-06-01 16:59:08 +00:00
Karim Gemayel 1b94c7a8b3 API renaming : compare_bare_jids -> bare_compare
SVN Revision: 2130
2009-06-01 16:50:36 +00:00
Karim Gemayel c31f99937f API renaming : compare_jids -> compare
SVN Revision: 2129
2009-06-01 16:49:00 +00:00
Karim Gemayel 29c0e17ca2 API renaming : lresource -> prep_resource
SVN Revision: 2127
2009-06-01 16:42:07 +00:00
Karim Gemayel d5f2c41f26 API renaming : lnode -> prep_node
SVN Revision: 2125
2009-06-01 16:39:36 +00:00
Karim Gemayel 19d7d79229 API renaming : ldomain -> prep_domain
SVN Revision: 2123
2009-06-01 16:37:15 +00:00
Karim Gemayel 526dc54173 API renaming : parse_jid -> parse
SVN Revision: 2122
2009-06-01 16:35:55 +00:00
Karim Gemayel 5dbc4f9954 API renaming : jid_to_bare_jid > bare
SVN Revision: 2120
2009-06-01 16:30:15 +00:00
Karim Gemayel 447d3818f5 API renaming : make_jid -> make
SVN Revision: 2119
2009-06-01 16:26:00 +00:00
Badlop 1d3947c0da Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2057
2009-05-06 16:54:43 +00:00
Badlop 43b59911e2 * src/cyrsasl.erl: Change API of check_password: pass a function
to generate the digest (thanks to Graham Whitted)(EJAB-863)
* src/cyrsasl_anonymous.erl: Likewise
* src/cyrsasl_digest.erl: Likewise
* src/cyrsasl_plain.erl: Likewise
* src/ejabberd_auth.erl: Likewise
* src/ejabberd_auth_anonymous.erl: Likewise
* src/ejabberd_auth_external.erl: Likewise
* src/ejabberd_auth_internal.erl: Likewise
* src/ejabberd_auth_ldap.erl: Likewise
* src/ejabberd_auth_odbc.erl: Likewise
* src/ejabberd_auth_pam.erl: Likewise
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 2033
2009-04-22 11:44:03 +00:00
Badlop 240e37c387 * src/ejabberd_c2s.erl: Fix for SASL Anonymous connections not
stored or purged (thanks to Andy Skelton)(EJAB-912)

SVN Revision: 2032
2009-04-22 11:02:03 +00:00
Christophe Romain 08cbaf8ccf Better handling of presence hook and caps clean
SVN Revision: 2015
2009-04-10 13:21:37 +00:00
Badlop 61691ac47d Merge 1998 from trunk.
* src/ejabberd_sm.erl: Partially retract SVN r1976
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: 1999
2009-03-24 18:02:13 +00:00
Badlop 56c33e994d * src/ejabberd_c2s.erl: Enforce privacy rules also for
subscription requests (EJAB-300)
* src/ejabberd_sm.erl: Likewise

SVN Revision: 1976
2009-03-07 08:59:26 +00:00
Badlop 5bfdb71b4c Merge 1881 from trunk.
* src/mod_privacy.erl: Privacy List: deny presence-out all + send
presence to: presence is sent (EJAB-255)
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 1948
2009-03-03 19:32:48 +00:00
Pablo Polvorin 3119badb2b Removed a couple of expensive function calls used as arguments for
?DEBUG macros. All arguments used in the ?DEBUG macro are strictly 
evaluated (even if the loglevel is higher). 
The same is true for all log macros defined in ejabberd.hrl.  
We might need to use lazy evaluation for the arguments, when they 
are expensive to generate (wrap the arguments lists in a fun).

SVN Revision: 1915
2009-02-24 03:04:58 +00:00