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

534 Commits

Author SHA1 Message Date
Alexey Shchepin
fd54181435 Fixed error replying on blocked messages 2015-04-20 17:19:09 +03:00
Paweł Chmielowski
ba69c469b5 Remove http_poll module
For couple years browsers did limit ability to change cookies from js
for different domains, this made http_poll connections practically not
usuable. I don't think this module is used at all so it's time to put it
to rest.
2015-04-15 10:47:10 +02:00
Badlop
0cf8d1fa6e Copy multicast code from ejabberd-contrib to provide XEP-0033 (#521) 2015-04-08 14:01:16 +02:00
Holger Weiss
2a94c68724 Don't call send_element/2 if previous call failed
Be sure not to try sending data over a TCP socket that is no longer
usable.
2015-04-06 22:34:48 +02:00
Evgeny Khramtsov
305b281c15 Merge pull request #493 from weiss/rfc-6121-routing
Update ejabberd_sm's routing rules as per RFC 6121
2015-04-01 11:41:05 +03:00
Badlop
176114d28e Try to fix more Dialyzer warnings 2015-03-27 15:55:57 +01:00
Badlop
9c96d30719 Ensure set_presence changes are kept in state (thanks to Davide Colombo)(EJAB-1184) 2015-03-27 15:03:14 +01:00
Badlop
30dc82a98a Fix even more dialyzer warnings 2015-03-27 12:28:24 +01:00
Badlop
8707c0b045 Fix set_presence command (ejabberd-contrib#61) 2015-03-27 11:43:56 +01:00
Holger Weiss
f40e6a0421 Don't bother with filtering out PEP error messages
Now that ejabberd_sm won't deliver error messages that were sent to bare
JIDs anymore, PEP error messages should no longer arrive.
2015-03-25 02:02:08 +01:00
Holger Weiss
33c9f21171 Return error when incoming message is blocked
As per XEP-0016 and XEP-0191, return a service-unavailable error when an
incoming message was blocked by a privacy list.  This lets the user
appear offline to the contact.
2015-03-24 23:10:47 +01:00
Paweł Chmielowski
8e33f31f50 Try not to use c2s:send_text, it causes problem with websocket 2015-02-25 13:57:03 +01:00
Badlop
5a35405cd5 Update copyright dates to 2015 (EJAB-1733) 2015-01-08 17:34:43 +01:00
Holger Weiss
a78a0a65fe Let CSI code add timestamp at later point in time
As a small optimization, make sure we won't add timestamps to presence
stanzas which end up being thrown away by the CSI code.
2014-12-07 16:27:51 +01:00
Holger Weiss
ba8f38e2eb XEP-0198: Add timestamp to resent stanzas
When an unacknowledged stanza is resent from the Stream Management
queue, add a timestamp so that the receiving client can display the time
at which the stanza was originally sent.
2014-12-07 16:12:06 +01:00
Holger Weiss
9899935e42 Improve interface for adding timestamps
Provide a simpler interface for adding <delay/> and <x/> timestamps to
stanzas.  This also makes sure that only one <delay/> tag and one <x/>
tag is added to a given stanza.
2014-12-07 15:55:18 +01:00
Holger Weiss
2cb16bc509 Remove unused field from c2s #state 2014-11-26 00:15:19 +01:00
Evgeny Khramtsov
e97e56d776 Merge pull request #363 from weiss/drop-pep-errors
Don't route PEP error messages to clients
2014-11-25 14:20:11 +03:00
Holger Weiss
16311b73c8 Add new hook: c2s_filter_packet_in
The c2s_filter_packet_in hook can be used to modify or drop incoming
packets before they are transmitted to the client.
2014-11-24 20:55:18 +01:00
Holger Weiss
c566b1d01e Respect privacy lists for incoming PEP messages 2014-11-18 01:25:12 +01:00
Evgeny Khramtsov
d5ecd32cec Merge pull request #345 from weiss/last-pep-items
Fix sending of last published PEP items to newly-available resources
2014-11-14 21:27:24 +03:00
Holger Weiss
2446b66016 Use correct type for initial c2s #state.user value 2014-11-14 15:32:48 +01:00
Holger Weiss
830fdccd21 Don't broadcast last published PEP items
When a client becomes available, don't send the last published PEP items
of all his peers to all his other peers, but only to that client.
2014-11-14 01:03:26 +01:00
Holger Weiss
2d748115ee Don't advertise auth mechanisms too early
If "starttls_required: true" is specified for c2s connections,
authentication mechanisms shouldn't be offered before negotiating the
TLS connection.
2014-10-23 10:04:14 +02:00
Holger Weiss
0c24e18b5e XEP-0198: Abort immediately on queue overflow
Terminate the ejabberd_c2s process immediately once stanza queue
overflow is detected.  This makes sure the FSM won't process additional
stanzas before terminating if the recipient is flooded.
2014-10-17 01:35:30 +02:00
Holger Weiss
1ccc0d8bcb XEP-0198: Set #state.conn field on session resume 2014-10-12 19:44:35 +02:00
Holger Weiss
7bdc1151b1 Make sure "starttls_required" can't be bypassed
Don't allow clients to circumvent the "starttls_required" option by
enabling XMPP stream compression.
2014-10-12 02:08:08 +02:00
Holger Weiss
277e1dc3ff Offer CSI stream feature only if configured
Don't offer the CSI stream feature when mod_client_state isn't actually
configured to filter stanzas.  This makes sure clients won't send CSI
tags that end up being ignored.
2014-09-25 18:28:20 +02:00
Holger Weiss
56175fef1b Add new hook: c2s_post_auth_features
The c2s_post_auth_features hook can be used to extend the list of stream
features offered after authentication.
2014-09-25 18:15:33 +02:00
Holger Weiss
7aec0337e1 Remove invisible presence fields from c2s #state
Invisible presence isn't supported anymore, so the corresponding
ejabberd_c2s #state fields were unused.
2014-09-25 00:08:56 +02:00
Holger Weiss
0a9212583d XEP-0198: Support "resend_on_timeout: if_offline"
If "resend_on_timeout" is set to "if_offline", resend unacknowledged
stanzas only if no other resource is online when the session times out.
In other words, allow for sending them to offline storage, but nowhere
else.
2014-09-16 22:42:34 +02:00
Holger Weiss
b8c98232b8 Support XEP-0352: Client State Indication 2014-09-11 17:44:29 +02:00
Evgeny Khramtsov
7a48e30523 Merge pull request #296 from weiss/remove-unused-clause
XEP-0198: Remove unused function clause
2014-09-07 07:27:17 +04:00
Holger Weiss
2ca563e328 XEP-0198: Remove unused function clause
In the 'wait_for_resume' state, #state.mgmt_pending_since is always
initialized.  fsm_next_state/2 takes care of that.
2014-09-06 20:39:38 +02:00
Holger Weiss
2e169167d4 XEP-0198: Change state on gen_tcp:send/2 failure
When Stream Management is enabled and a gen_tcp:send/2 call fails, go
into the 'wait_for_resume' state immediately.  This makes sure that
gen_tcp:send/2 won't be called again, which might avoid an Erlang issue
where gen_tcp:send/2 apparently hangs despite 'send_timeout' (and
'send_timeout_close') being set.
2014-09-06 20:34:32 +02:00
Holger Weiss
11b2921971 XEP-0198: Let fsm_next_state/2 check timeout value
Don't force the fsm_next_state/2 caller to check for 'mgmt_timeout = 0'.
2014-09-06 20:29:02 +02:00
Evgeniy Khramtsov
fda73c3d16 Fix privacy checks of presence probes 2014-09-01 16:39:02 +04:00
Evgeniy Khramtsov
a1ce33ebf8 Automatically remove IPs from ban, add the documentation 2014-08-27 13:25:49 +04:00
Evgeniy Khramtsov
2430e6691b Add mod_fail2ban 2014-08-27 13:17:56 +04:00
Holger Weiss
2802b6cee2 Allow for "max_ack_queue: infinity", as documented 2014-08-20 12:53:26 +02:00
Holger Weiss
2d4c39cd54 XEP-0198: Create shorter resume IDs
Omit the user and server name from the 'previd' value.
2014-08-15 10:56:59 +02:00
Holger Weiss
848e1497d1 XEP-0198: Gracefully handle broken 'previd'
Produce a proper error message instead of crashing when the 'previd'
value of a <resume/> request has an unexpected format.
2014-08-15 01:54:41 +02:00
Holger Weiss
2daf95e93f XEP-0198: Gracefully handle wrong credentials
Produce a proper error message instead of crashing when the JID encoded
in the 'previd' value of a <resume/> request is different from the
authenticated JID.
2014-08-15 01:53:47 +02:00
Evgeniy Khramtsov
3d3a4f7543 Fix events broadcasting via C2S 2014-07-22 19:42:49 +04:00
Holger Weiss
0cb9ea3643 XEP-0198: Cosmetic change: Reuse event handler
On stanza queue overflow, pass a message to self() using the exclamation
mark operator instead of send_all_state_event/2.  This allows for
reusing the existing handler for 'kick' events.
2014-05-28 11:24:38 +02:00
Holger Weiss
99ca8281fa XEP-0198: Terminate session on queue overflow
On queue overflow, terminate the c2s session instead of just dropping
items from the queue.  This makes sure all stanzas are either delivered
or bounced.
2014-05-27 22:56:33 +02:00
Evgeny Khramtsov
3a27b1dd0c Merge pull request #226 from weiss/simplify-state-change
XEP-0198: Cosmetic change: Simplify state change
2014-05-27 23:30:30 +04:00
Holger Weiss
50a4c5a6ab XEP-0198: Cosmetic change: Simplify state change
When the FSM goes into the 'wait_for_resume' state, let fsm_next_state/2
take care of updating #state.mgmt_state and of writing the log line.
This doesn't change the behavior, but simplifies the code.
2014-05-27 21:14:49 +02:00
Holger Weiss
ed0c89f876 Let ejabberd_c2s always use fsm_next_state/2
Make sure any logic implemented in ejabberd_c2s:fsm_next_state/2 is
always applied.
2014-05-27 21:07:53 +02:00
Evgeny Khramtsov
702cddd4ff Merge pull request #220 from weiss/handle-send-failure
XEP-0198: Don't exit on socket send failure
2014-05-27 15:44:04 +04:00
Evgeny Khramtsov
4d1332c30f Merge pull request #222 from weiss/keep-session-on-failed-resume
XEP-0198: Don't drop session on failed resume
2014-05-27 15:38:26 +04:00
Evgeny Khramtsov
402fb9665d Merge pull request #221 from weiss/omit-redundant-guard
XEP-0198: Cosmetic change: Omit redundant guard
2014-05-27 15:34:34 +04:00
Evgeny Khramtsov
b2e84405c1 Merge pull request #218 from weiss/omit-iq-xmlns
Omit XML namespace declaration for <iq/> stanzas
2014-05-27 15:32:02 +04:00
Holger Weiss
59f6efeaf7 XEP-0198: Don't drop session on failed resume
The 'previd' value provided by the client during a session resume
request includes the client's JID and ejabberd's session ID.  If there
is a session for the requested JID but with a different session ID,
resumption should fail, but that session shouldn't be closed.  This
commit makes sure the latter won't happen.

In practice, this will only make a difference in odd corner cases.
2014-05-23 23:38:04 +02:00
Holger Weiss
737b0ae5dc XEP-0198: Cosmetic change: Omit redundant guard
The stream management state is never 'pending' when the c2s FSM is in
the 'session_established' state.
2014-05-23 20:46:17 +02:00
Holger Weiss
ab9667f917 XEP-0198: Don't exit on socket send failure
If stream management is enabled, don't exit the c2s process when
ejabberd_socket:send/2 fails, but close the socket instead.  This gives
the client a chance to resume the session.

Thanks go to Matthias Rieber for reporting the issue, providing detailed
logs, and testing the fix.
2014-05-23 11:38:54 +02:00
Badlop
735bd95659 Merge branch 'check-packet-type' of git://github.com/weiss/ejabberd into weiss-check-packet-type
Conflicts:
	src/ejabberd_c2s.erl
2014-05-21 18:45:28 +02:00
Holger Weiss
6b996061a2 Omit XML namespace declaration for <iq/> stanzas
Only the child elements of <iq/> stanzas are qualified by the namespaces
in question, not the <iq/> stanzas themselves.

This change just clarifies the code.  It doesn't alter the behaviour, as
those <iq/> stanzas are handed over to jlib:iq_to_xml/1, and that
function ignores the 'xmlns' attribute anyway.
2014-05-21 00:07:57 +02:00
Radosław Szymczyszyn
5726636053 Fix check_from/2 formatting 2014-05-20 12:31:28 +01:00
Radosław Szymczyszyn
b7a542e074 Sanitize copy-pasted get_statustag/1 2014-05-20 12:28:14 +01:00
Radosław Szymczyszyn
9c37450fe4 Fix formatting 2014-05-20 12:26:33 +01:00
Radosław Szymczyszyn
c39ce133de Build proceed/compressed elements in a sane way 2014-05-20 11:52:02 +01:00
Holger Weiss
6e8dd5bdff Don't miss incoming presence updates 2014-05-14 01:04:38 +02:00
Holger Weiss
f6da708b02 XEP-0198: Check whether routed packets are stanzas
Only stanzas are subject to stream management, so when XEP-0198 support
is enabled, we must distinguish them from non-stanza elements.  This
commit adds a send_packet/2 function that can be used in place of
send_stanza/2 or send_element/2 whenever a packet is delivered that
might or might not be a stanza.
2014-05-12 19:20:25 +02:00
Holger Weiss
9121ca14de Rename disconnect_user/2 command
The mod_admin_extra module provides a kick_session/4 command.  Rename
the disconnect_user/2 command to kick_user/2 for consistency.
2014-05-12 12:44:40 +02:00
Holger Weiss
6d5bfcfe9b XEP-0198: Improve handling of too large 'h' values
If the client says that it handled more stanzas than we sent (due to a
bug in the client's or in our code), increase our outgoing stanza count
accordingly.  There's no point in sticking to the old value even if it
was correct, as the client surely won't fix its count during the current
session.
2014-05-09 18:28:14 +02:00
Holger Weiss
15369ff9d7 XEP-0198: Reject <resume/> with negative 'h' value
Make sure the 'h' attribute sent with a <resume/> request is
nonnegative, as mandated by XEP-0198.

We already have this check for <a/> elements.
2014-05-09 18:01:31 +02:00
Holger Weiss
a60fda7df4 XEP-0198: Don't warn on invalid ACK elements
Do not log a warning (but only a debug message) if the client sends an
invalid </a> packet.  Some clients do that occasionally, and there's
nothing server admininistrators could do about that.
2014-05-09 17:54:12 +02:00
Holger Weiss
d343447cc9 Merge remote-tracking branch 'processone/master' into xep-0198
Conflicts:
	doc/guide.tex
	src/ejabberd_c2s.erl
2014-05-06 21:41:29 +02:00
Holger Weiss
8b1f92575a XEP-0198: Use "mgmt_" prefix for all #state fields
Prefix all ejabberd_c2s #state fields that are used for stream
management with "mgmt_".
2014-05-06 07:27:10 +02:00
Holger Weiss
3b3f3b9131 XEP-0198: Don't log protocol issues
There are corner cases where certain clients acknowledge more stanzas
than they received.  Nothing really bad will happen in those cases, and
server administrators can't do anything about such issues anyway.
2014-05-05 01:11:14 +02:00
Holger Weiss
32abcbca6c XEP-0198: Accept stream elements in pending state
Due to timing issues, ejabberd_c2s might receive stream elements from
the client while the session is waiting for stream resumption.  Those
elements are now accepted.
2014-05-05 00:02:55 +02:00
Holger Weiss
a0917a8e9b XEP-0198: Log message when waiting for resumption
Log an informational message when a session goes into the pending state
(waiting for resumption) after the connection was lost.  Administrators
may well be interested in this state change when looking into issues.
2014-05-04 23:08:42 +02:00
Evgeny Khramtsov
c545b3de6d Merge pull request #178 from hamano/devel
undefined ejabberd_socket:get_conn_type/1
2014-04-30 21:49:54 +04:00
Holger Weiss
ebbceab93f Translate disconnect_user/2 string sent to client 2014-04-29 11:56:28 +02:00
Holger Weiss
bb2c8b59f8 Avoid #state.lang type errors in corner cases
If #state.lang is used before being initialized to some binary string,
the translation code would crash.
2014-04-29 11:41:24 +02:00
Holger Weiss
a21d2298af XEP-0198: Turn some warnings into info messages
Don't log warnings on events that will happen during normal operation.
2014-04-28 01:01:30 +02:00
HAMANO Tsukasa
219f9276d1 undefined ejabberd_socket:get_conn_type/1 2014-04-24 12:42:22 +09:00
Alexey Shchepin
f93758a3cd Merge pull request #160 from runcom/protocol_options
Add option to specify openssl options
2014-04-15 19:01:21 +04:00
badlop
285c4c17cf Merge pull request #146 from jamielinux/master
Update FSF address
2014-04-11 13:35:46 +02:00
Antonio Murdaca
fbf71f86f3 Add option to specify openssl options 2014-04-08 18:46:52 +02:00
Holger Weiss
c114eb3736 XEP-0198: Don't bounce/resend forwarded messages
On connection timeout, drop any messages that were forwarded by some
encapsulating protocol, such as XEP-0280 carbon copies or XEP-0313
archive messages.  Bouncing or resending them could easily lead to
unexpected results.
2014-04-07 21:21:11 +02:00
Badlop
ac0e199d36 Provide meaningful text to user when admin kicks session (EJAB-1455) 2014-03-26 16:01:37 +01:00
Holger Weiss
a97c716352 XEP-0198: Bounce unacked stanzas by default
If the new "resend_on_timeout" option is set to false (which it is by
default), bounce any unacknowledged stanzas instead of re-routing them.
2014-03-25 23:23:38 +01:00
Holger Weiss
2da6933bb7 Remove "fun" element from c2s #state
Memory consumption wise, local "fun" references are quite expensive.
2014-03-22 20:25:43 +01:00
Holger Weiss
e360c56f87 Support XEP-0198 session resumption
Implement the optional session resumption feature described in XEP-0198.
A client that supports this feature may now resume the previous session
(within a configurable number of seconds) if the connection was lost.
During resumption, ejabberd will retransmit any stanzas that hadn't been
acknowledged by the client.
2014-03-19 00:51:33 +01:00
Holger Weiss
88a200e100 Remove some commented out code
The code that had been commented out at some earlier point in time would
now break XEP-0198.
2014-03-16 00:12:47 +01:00
Badlop
633d47f784 Update copyright dates to 2014 (EJAB-1679) 2014-03-13 12:30:57 +01:00
Holger Weiss
7d594086c3 Add initial XEP-0198 support (EJAB-532)
Implement partial support for XEP-0198: Stream Management.  After
successful negotiation of this feature, the server requests an ACK for
each stanza transmitted to the client and responds to ACK requests
issued by the client.  On session termination, the server re-routes any
unacknowledged stanzas.  The length of the pending queue can be limited
by setting the "max_ack_queue" option to some integer value (default:
500).  XEP-0198 support can be disabled entirely by setting the
"stream_management" option to false (default: true).

So far, stream management is implemented only for c2s connections, and
the optional stream resumption feature also described in XEP-0198 is not
(yet) supported.

This addition was originally based on a patch provided by Magnus Henoch
and updated by Grzegorz Grasza.  Their code implements an early draft of
XEP-0198 for some previous version of ejabberd.  It has since been
rewritten almost entirely.
2014-03-12 23:34:14 +01:00
Jamie Nguyen
8538997d61 Update FSF address 2014-02-22 10:27:40 +00:00
Alexey Shchepin
9422164dda Clear SASL state after finishing auth 2014-01-21 13:44:29 +02:00
Alexey Shchepin
cbbfd921b4 Fix for the previous commit 2014-01-21 11:54:18 +02:00
Alexey Shchepin
d63be79df9 Use 'to' field only in the first client stream initialization 2014-01-20 16:06:05 +02:00
Badlop
5a1300bc70 Add access rule to mod_roster (EJAB-72) 2013-12-04 14:57:44 +01:00
Alexey Shchepin
1dd94ac0d0 Support for OpenSSL ciphers list in ejabberd_c2s, ejabberd_s2s_in and ejabberd_s2s_out 2013-11-28 19:39:11 +02:00
Evgeniy Khramtsov
91a74e3e27 Change configuration file format to YAML 2013-08-21 22:17:59 +10:00
Evgeniy Khramtsov
a2ead99c83 Make it possible to enable/disable TLS compression 2013-07-17 22:46:18 +10:00
Evgeniy Khramtsov
f9390f3e9a Fix some dialyzer warnings 2013-06-24 20:04:56 +10:00
Evgeniy Khramtsov
4dc80dddd4 Fix all calls to functions of p1_tls application 2013-06-20 18:40:44 +10:00
Alexey Shchepin
862a08e9eb Fixed conversion to ezlib 2013-06-17 16:33:25 +03:00
Evgeniy Khramtsov
7865c6a146 Don't include sub-elements in IQ results where it's not required
by the corresponding spec (RFC or XEP).
2013-06-17 16:09:54 +03:00
Evgeniy Khramtsov
4d8f770624 Switch to rebar build tool
Use dynamic Rebar configuration
Make iconv dependency optional
Disable transient_supervisors compile option
Add hipe compilation support
Only compile ibrowse and lhttpc when needed
Make it possible to generate an OTP application release
Add --enable-debug compile option
Add --enable-all compiler option
Add --enable-tools configure option
Add --with-erlang configure option.
Add --enable-erlang-version-check configure option.
Add lager support
Improve the test suite
2013-06-13 11:11:02 +02:00
Paul Donohue
b33a482582 Fix error when generating random binary strings 2013-04-19 15:30:13 -04:00
Evgeniy Khramtsov
0d80e7e68a Get rid of references to non-existent module 2013-03-29 19:38:01 +10:00
Evgeniy Khramtsov
299a0f823a Fix several refactoring related bugs 2013-03-29 19:23:52 +10:00
Badlop
9deb294328 Accumulated patch to binarize and indent code 2013-03-14 10:33:02 +01:00
Alexey Shchepin
0ae400533c Update copyright dates 2013-01-24 16:25:13 +02:00
Badlop
2dc2769c92 Log IP address when auth attempt fails (thanks to Zach Calvert) 2012-08-27 17:40:01 +02:00
Alexey Shchepin
b1e2538488 Update copyright dates 2012-02-23 17:52:34 +02:00
Evgeniy Khramtsov
944791e888 Fix presence problem after first unavailable (thanks to Christopher Faulet) (EJAB-1466) 2011-11-09 15:09:02 +10:00
Badlop
a0f8a2c3a4 New option resource_conflict defines server action (thanks to Lee Boynton)(EJAB-650) 2011-08-17 19:44:39 +02:00
Badlop
e80b92b481 Preliminary patch for SASL SCRAM-SHA-1 (thanks to Stephen Röttger)(EJAB-1196) 2011-08-16 00:25:03 +02:00
Badlop
bfebcebeb7 Support XEP-0191 Simple Communications Blocking (thanks to Stephan Maka)(EJAB-695) 2011-05-27 11:47:22 +02:00
Christophe Romain
fd52f2cb7d update copyright up to 2011 2011-02-14 13:50:55 +01:00
Badlop
36166aa40e Comment unused code 2011-01-28 12:11:34 +01:00
Mickaël Rémond
bd43505db9 Use route instead of send_element to go through standard workflow Offline messages should thus be tracked for ack if needed (TEXTO-226).
Signed-off-by: Evgeniy Khramtsov <ekhramtsov@process-one.net>
2011-01-04 15:21:10 +01:00
Evgeniy Khramtsov
4c8b034874 Change c2s state before offline messages resending 2010-12-28 21:09:15 +09:00
Christophe Romain
f0a848ef45 fix pubsub cross domain eventing (EJAB-1340) 2010-12-02 13:56:45 +01:00
Christopher tofu Zorn
3e24408710 add the ability to send raw xml packets over http bind 2010-11-29 20:05:37 +01:00
Evgeniy Khramtsov
b8d6aee1ce Merge branch 'caps' into 2.1.x
Conflicts:
	src/ejabberd_c2s.erl
2010-11-24 16:45:05 +09:00
Badlop
9b88fd6646 Fix some English strings 2010-11-19 13:44:30 +01:00
Andreas Köhler
510fd8cf73 Before forwarding last activity requests to a user, check that the user's presence is visible for From
According to XEP-0012, 4. Online User Query, "if the requesting entity
is not authorized to view the user's presence information (normally via
a presence subscription as defined in XMPP IM), the user's server MUST
NOT deliver the IQ-get to an available resource but instead MUST return
a <forbidden/> error in response to the last activity request."

So check for a subscription of from of the jid and bare jid and whether
outgoing presences to From are allowed.

Fixes problem 3 of EJAB-1158.
2010-11-10 15:40:01 +01:00
Andreas Köhler
080922a3de Remove dead code for NS_VCARD iq packets from ejabberd_c2s
For EJAB-1045, the special NS_VCARD block for handling incoming vcard
iqs on behalf of clients has already been restricted to cases where the
user or resource part of the recipient is empty. But then the packets
should not have been routed to the c2s process anyway. This patch
completely removes it.
2010-11-10 15:40:00 +01:00
Andreas Köhler
cb7d8c8ead Use ejabberd_c2s:privacy_check_packet/5 for all those hook folded runs in the c2s module 2010-11-10 15:39:59 +01:00
Andreas Köhler
c47252aea1 Use c2s state data as user and server in ejabberd_c2s:is_privacy_allow
is_privacy_allow is only used in ejabberd_c2s:handle_info/3 to determine
for a few presence types whether the packet is allowed to be forwarded
to the user's client. This only makes sense if To#jid.user and
To#jid.server match StateData#state.user and StateData#state.server.

Also, add the atom in as parameter to a new argument Dir of
is_privacy_allow and extract from that function
privacy_check_packet(StateData, From, To, Packet, Dir) which runs the
privavcy check without converting allow/deny to true/false.
2010-11-10 15:39:57 +01:00
Evgeniy Khramtsov
1f16e4783c Take care of xml:lang attribute in unauthenticated stanzas as well 2010-11-06 13:58:52 +09:00
Evgeniy Khramtsov
c4289095e0 Do not store long language tag to avoid possible DoS/flood attacks 2010-11-05 05:10:18 +09:00
Badlop
2d59efb515 Fix crash in ejabberd_c2s when blacklist hook returned true (thanks to Jonas Ådahl)
Cause of the crash jlib:ip_to_list/1 only supports IP tuples using the
form {N1,N2,N3,N4} which is not the case when IPv6 is enabled.
2010-11-02 13:51:36 +01:00
Badlop
91cf9194d8 When privacy list denies local user's outgoing stanza, try to return error (EJAB-1320)
See:
http://xmpp.org/extensions/xep-0016.html#example-51
Example 51. Error: contact is blocked
2010-10-16 22:53:12 +02:00
Badlop
e2dbad6242 Check privacy of outgoing IQ stanzas (EJAB-1320) 2010-10-16 22:53:10 +02:00
Badlop
84d4a1619b Check privacy of incoming IQ stanzas (EJAB-1320) 2010-10-16 22:53:08 +02:00
Evgeniy Khramtsov
c13940e1de new CAPS processing 2010-09-28 14:18:57 +10:00
Evgeniy Khramtsov
715cc5ea3b New configure option: --enable-nif 2010-07-01 20:54:01 +10:00
Evgeniy Khramtsov
58590cf08d full support for XEP-0115 v1.5 (EJAB-1223) (EJAB-1189) 2010-05-08 02:32:57 +10:00
Badlop
1c00a9713d Automatic vcard avatar addition in presence (thanks to Igor Goryachev)(EJAB-208) 2010-04-27 12:33:56 +02:00
Pablo Polvorin
41aa693896 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:39:34 -03:00
Evgeniy Khramtsov
584fa98564 - 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:40:48 +09:00
Christophe Romain
6fb99fbb48 mod_caps optimizations (thanks evgeniy) 2010-03-05 10:34:15 +01:00
Badlop
8e8a1a3bf5 Run user_receive_packet also when sending offline messages to client (thanks to Brian Acton)(EJAB-1193) 2010-02-22 22:57:08 +01:00
Badlop
bc69b96e4c Close also legacy sessions that were half connected (thanks to Evgeniy Khramtsov)(EJAB-1165) 2010-02-16 12:46:20 +01:00
Evgeniy Khramtsov
0a3cfeeed9 new ejabberd_c2s option support: max_fsm_queue
SVN Revision: 2939
2010-01-28 13:44:49 +00:00
Evgeniy Khramtsov
352afa7902 now using p1_fsm behaviour in c2s FSM (EJAB-1173)
SVN Revision: 2936
2010-01-28 13:00:04 +00:00
Badlop
16bd626fc9 Close sessions that were half connected (thanks to Alexey Shchepin)(EJAB-1165)
SVN Revision: 2911
2010-01-17 19:28:35 +00:00
Badlop
3e4858f348 Improve functions calls when closing client connection.
SVN Revision: 2904
2010-01-15 12:01:12 +00:00
Badlop
7b76fdcde7 Update year of ProcessOne copyright from 2009 to 2010 (EJAB-1159)
SVN Revision: 2891
2010-01-12 16:11:32 +00:00
Badlop
7cbda8badb When ejabberd stops, send stream close to clients (thanks to Alexey Shchepin)(EJAB-1112)
SVN Revision: 2852
2010-01-03 00:35:51 +00:00
Badlop
1713bf635d Disable code of recent commit because some clients can't handle it (EJAB-1058)
SVN Revision: 2838
2009-12-29 18:44:02 +00:00
Badlop
455d85a278 Send features after negotiating binding and session (EJAB-1058)
SVN Revision: 2834
2009-12-28 20:09:46 +00:00
Badlop
f044d6ed28 Fix bug that couldn't connect if starttls_required and zlib were set (EJAB-1118)
SVN Revision: 2789
2009-12-07 15:54:25 +00:00
Badlop
20d1011194 Don't handle internally an IQ vCard if destination is full JID (EJAB-1045)
SVN Revision: 2766
2009-12-01 19:59:59 +00:00
Badlop
ce1364b414 Pack presences stored in C2S processes (thanks to Geoff Cant)(EJAB-1057)
SVN Revision: 2638
2009-09-28 17:23:37 +00:00
Badlop
a033b06150 BOSH module optimization and clean-up (thanks to Aleksey Shchepin and Mickaël Rémond)(EJAB-936)
SVN Revision: 2574
2009-08-31 18:37:52 +00:00
Badlop
fd57ec5872 Support zlib compression after STARTTLS (thanks to Aleksey Shchepin)(EJAB-499)
SVN Revision: 2571
2009-08-31 16:29:25 +00:00
Badlop
d6f3182731 Move functions from roster_versioning to mod_roster (EJAB-964)
SVN Revision: 2429
2009-08-06 21:06:16 +00:00
Pablo Polvorin
53626d16e3 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
Evgeniy Khramtsov
548be039b3 implemented timeout_action: none | kill. default is none
SVN Revision: 2402
2009-07-30 10:25:54 +00:00
Badlop
29ea2738cc Include original timestamp on delayed presences (thanks to Mickael Remond)(EJAB-234)
SVN Revision: 2348
2009-06-30 17:50:47 +00:00
Badlop
6f080f7fed Prevent process crash if the IP and port of a connection is unknown.
SVN Revision: 2155
2009-06-11 18:01:36 +00:00
Badlop
ce7e9129d9 When client is closed, include the Reason in the stream trailer stanza.
SVN Revision: 2153
2009-06-09 12:09:48 +00:00
Badlop
48392832ef When max_stanza_size is exceeded, return meaningful error message (EJAB-752)
SVN Revision: 2142
2009-06-02 21:24:33 +00:00
Badlop
fec3742aaa Replace TYPE/1 with is_TYPE/1 (EJAB-922)
SVN Revision: 2057
2009-05-06 16:54:43 +00:00
Badlop
aedb847a81 * 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
ca8eeaac57 * 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
409ab48068 better hadling of presence in mod_caps
SVN Revision: 2012
2009-04-10 07:36:17 +00:00
Badlop
a93a3370ef * 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: 1998
2009-03-24 16:22:33 +00:00
Badlop
787d225f1e * 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
Christophe Romain
04fde3620d Do not call mod_caps:clear_caps as it breaks PubSub/PEP (EJAB-854)
SVN Revision: 1912
2009-02-23 15:56:19 +00:00
Badlop
b0cc0cdcf9 * 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: 1881
2009-02-16 16:24:08 +00:00
Mickaël Rémond
579e1972d5 * src/ejabberd_c2s.erl: Added comments.
SVN Revision: 1823
2009-01-17 16:33:35 +00:00
Badlop
f09509502e * doc/guide.tex: Update copyright date 2008 to 2009 (EJAB-842)
* doc/guide.html: Likewise
* src/*/*.erl: Likewise
* src/*/*.erl: Remove unneeded blankspaces in license text

SVN Revision: 1804
2009-01-12 14:44:42 +00:00
Alexey Shchepin
b1252f837f * src/tls/tls_drv.c: Added a flag to avoid certificate validation
* src/tls/tls.erl: Likewise
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 1774
2009-01-05 17:21:10 +00:00
Mickaël Rémond
1f57a380c8 * src/ejabberd_c2s.erl: Remove useless comment and port Alexey fix to 2.0.x branch.
SVN Revision: 1764
2008-12-29 12:06:34 +00:00
Alexey Shchepin
df478a8e90 * src/ejabberd_c2s.erl: Bugfix in "from" attribute checking
SVN Revision: 1763
2008-12-29 11:11:37 +00:00
Mickaël Rémond
707aa4fb8c * src/ejabberd_c2s.erl: We should allow use of bare resource in from by the client (partially revert r1727) (EJAB-812)
SVN Revision: 1759
2008-12-28 12:15:51 +00:00
Alexey Shchepin
620cbc765c * src/ejabberd_c2s.erl: Bugfix in "from" attribute checking
SVN Revision: 1727
2008-12-12 13:08:00 +00:00
Christophe Romain
e2d8154a80 Reduce memory consumption due to caps handling
SVN Revision: 1712
2008-12-08 14:10:55 +00:00
Mickaël Rémond
4618ec1fef * src/ejabberd_c2s.erl: Enforce client stanza from attribute (EJAB-812).
* src/jlib.erl: Likewise.

SVN Revision: 1706
2008-12-08 09:21:36 +00:00
Mickaël Rémond
10e3f2cf92 * src/ejabberd_s2s_out.erl: exports the DNS resolution function.
SVN Revision: 1674
2008-11-08 17:50:54 +00:00
Alexey Shchepin
8cdebd485a * src/ejabberd_c2s.erl: Disable zlib when STARTTLS is required
SVN Revision: 1672
2008-11-03 13:54:42 +00:00
Badlop
426e75a298 * src/ejabberd_c2s.erl: Ensure unique ID in roster push (EJAB-721)
* src/mod_roster.erl: Likewise
* src/mod_roster_odbc.erl: Likewise
* src/mod_shared_roster.erl: Likewise

SVN Revision: 1666
2008-10-24 18:01:08 +00:00
Christophe Romain
11788b2953 send last published events now supports PEP events from unavailable users nodes (EJAB-698)
SVN Revision: 1550
2008-08-27 09:28:47 +00:00
Badlop
c3bda4aaee * doc/guide.tex: Update Process-one name to ProcessOne (EJAB-708)
* doc/guide.html: Likewise
* doc/api/overview.edoc: Likewise
* src/*/*.erl: Likewise
* src/*/*.hrl: Likewise
* src/*/*.c: Likewise
* src/odbc/*.sql: Likewise

SVN Revision: 1499
2008-07-31 11:18:49 +00:00
Badlop
be140c1a23 * src/ejabberd_c2s.erl: Put auth_module in Info always (EJAB-549)
SVN Revision: 1454
2008-07-16 18:05:46 +00:00
Christophe Romain
e0e7797e99 Rolled back the previous IP getting patch, and Report connection's IP address in ejabberd_http_poll
SVN Revision: 1450
2008-07-16 12:55:29 +00:00
Christophe Romain
35d25d3420 PubSub improvements, and solves (EJAB-453) (EJAB-608)
SVN Revision: 1408
2008-07-03 09:56:31 +00:00
Badlop
ff94e586eb * src/ejabberd_c2s.erl: Bugfix: deliver messages when first
presence is Invisible (thanks to Dariusz Markowicz)(EJAB-262)

SVN Revision: 1348
2008-06-09 23:43:47 +00:00
Mickaël Rémond
cf42ea0bcb * src/ejabberd_c2s.erl: user_send_packet hook now called on all packets including presence packets (EJAB-634)
SVN Revision: 1341
2008-05-22 10:19:35 +00:00
Mickaël Rémond
a664579b58 * src/ejabberd_c2s.erl: Added C2S blacklist support (EJAB-625).
* src/mod_ip_blacklist.erl: Likewise.
* src/jlib.erl: Added IP format tuple to string function.
* src/ejabberd_socket.erl: Properly handled c2s start failure (happen for blacklisted IP).

SVN Revision: 1317
2008-05-05 16:22:06 +00:00
Badlop
c88a4650ba * src/ejabberd_c2s.erl: Added forbidden_session_hook
* src/acl.erl: New access types: resource, resource_regexp and
resource_glob
* doc/guide.tex: Likewise

SVN Revision: 1301
2008-04-25 09:25:31 +00:00
Alexey Shchepin
797544333c * src/mod_register.erl: Restrict registration frequency per IP or
user
* src/ejabberd_c2s.erl: Pass IP to the c2s_unauthenticated_iq hook
* src/ejabberd_config.erl: Added registration_timeout option
* src/treap.erl: Treaps implementation

SVN Revision: 1299
2008-04-22 21:51:32 +00:00
Badlop
96f0c001d9 * src/ejabberd_auth.erl: Improve anonymous authentication to not
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
2008-04-22 17:41:30 +00:00
Mickaël Rémond
b8b2bde8d0 *src/ejabberd_c2s.erl: Uniform default value for empty privacy list. Fixes (EJAB-603).
SVN Revision: 1281
2008-04-10 08:14:38 +00:00
Badlop
2c8cc8ae2d * src/ejabberd_c2s.erl (process_presence_probe): Don't route a
presence probe to oneself (EJAB-498)

SVN Revision: 1275
2008-04-03 22:35:26 +00:00
Christophe Romain
56e9971435 Bug in get_conn_type since SVN r1194 crashes http-bind and http-poll (thanks to Brian Cully) (EJAB-526)
SVN Revision: 1197
2008-02-18 09:55:06 +00:00
Christophe Romain
04d688c1ba Retreive connection type in sm_register_connection_hook
SVN Revision: 1194
2008-02-15 16:35:32 +00:00
Badlop
2d2fcc8210 * doc/guide.tex: Updated copyright dates to 2008
* src/*: Likewise

SVN Revision: 1153
2008-01-15 17:02:57 +00:00
Christophe Romain
20c27ea9d9 EJAB-491 fix
SVN Revision: 1145
2008-01-11 01:39:10 +00:00
Christophe Romain
b3bf437dd1 Send last published PEP event now checks the correct peer caps (EJAB-491)
SVN Revision: 1143
2008-01-10 15:02:54 +00:00
Mickaël Rémond
56fe3579bb * Applied copyright update patch 1.
SVN Revision: 1110
2007-12-24 11:41:41 +00:00
Christophe Romain
02eaf9eaec several pubsub/pep bugfix
SVN Revision: 1096
2007-12-22 00:04:05 +00:00
Badlop
60ea99d1a3 * src/ejabberd_c2s.erl: Increase the timeout of open socket
without authentication to 60 seconds because many Jabber clients
are not yet capable of handling this correctly (EJAB-355)

SVN Revision: 1040
2007-12-06 17:42:25 +00:00
Alexey Shchepin
c3c782d882 * src/mod_caps.erl: CAPS support (thanks to Magnus Henoch)
* 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
2007-12-01 05:16:30 +00:00
Jérôme Sautret
96ded4535d * src/ejabberd_s2s.erl: don't use the resource of the sender to choose
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
2007-10-30 17:38:40 +00:00
Mickaël Rémond
fd666398ee * src/ejabberd_c2s.erl: Added debug hook for c2s loop (EJAB-358).
SVN Revision: 946
2007-09-14 14:20:56 +00:00
Mickaël Rémond
8d3d59535d * src/ejabberd_c2s.erl: Hibernate inactive c2s processes (EJAB-356).
SVN Revision: 934
2007-09-14 14:18:01 +00:00
Mickaël Rémond
f787a3ed71 * src/ejabberd_c2s.erl: Implements timeouts during session opening negociation (EJAB-355).
SVN Revision: 933
2007-09-14 14:17:42 +00:00
Mickaël Rémond
afec054544 * src/ejabberd_c2s.erl: Option to prevent the use of Erlang OTP supervisor for transient processes (EJAB-354).
* src/ejabberd_s2s_in.erl: Likewise.
* src/ejabberd_s2s_out.erl: Likewise.
* src/mod_muc/mod_muc_room.erl: Likewise.
* src/configure.ac: Likewise.
* src/configure: Likewise.
* src/Makefile.in: Likewise.
* src/mod_muc/Makefile.in: Likewise.

SVN Revision: 931
2007-09-14 14:16:36 +00:00
Alexey Shchepin
9a6e8e3c55 * src/ejabberd_sm.erl: Updated the session table to store
additional session info
* src/ejabberd_c2s.erl: Report IP address to ejabberd_sm (thanks
to Christophe Romain)

SVN Revision: 772
2007-05-21 03:21:34 +00:00
Alexey Shchepin
8c326ea928 * src/mod_muc/mod_muc_room.erl: Corrected error messages when
trying to join members-only room (thanks to Badlop)

* src/ejabberd_c2s.erl: Added c2s_update_presence hook

SVN Revision: 770
2007-05-16 10:13:04 +00:00
Alexey Shchepin
372944df6c * src/ejabberd_sm.erl: Added set_presence_hook
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 761
2007-05-03 15:45:24 +00:00
Alexey Shchepin
fa6b6b8f5a * src/ejabberd_socket.erl: Added API for monitoring socket
processes
* src/ejabberd_frontend_socket.erl: Likewise
* src/ejabberd_c2s.erl: Added socket monitoring

* src/mod_muc/mod_muc_room.erl: Fixed the stop reason for the
destroy event

SVN Revision: 751
2007-04-12 06:08:32 +00:00
Alexey Shchepin
379b0d9e54 * src/ejabberd_c2s.erl: Init shaper with a default value first
after stream opening

* src/ejabberd_c2s.erl: Log failed SASL login attempts
* src/cyrsasl.erl: Updated API
* src/cyrsasl_plain.erl: Likewise
* src/cyrsasl_digest.erl: Likewise

SVN Revision: 735
2007-02-19 23:35:42 +00:00
Alexey Shchepin
bb2ffb8765 * src/ejabberd_c2s.erl: Bugfix
SVN Revision: 691
2006-12-08 20:34:34 +00:00
Mickaël Rémond
cc07020d34 * src/ejabberd_c2s.erl: User login in with negative priority must not
receive offline messages (Thanks to Badlop) (EJAB-158).

SVN Revision: 683
2006-11-28 09:59:29 +00:00
Alexey Shchepin
fa7693d355 * src/mod_privacy.erl: Use hooks instead of direct function calls
* src/ejabberd_c2s.erl: Updated

SVN Revision: 659
2006-10-05 03:17:41 +00:00
Alexey Shchepin
c72599cacd * src/ejabberd_frontend_socket.erl: Support for frontend
connection manager
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_listener.erl: Likewise
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd_service.erl: Likewise
* src/ejabberd_socket.erl: Likewise
* src/web/ejabberd_http_poll.erl: Likewise

SVN Revision: 657
2006-10-01 01:53:37 +00:00
Alexey Shchepin
aa478100d8 * src/ejabberd_socket.erl: Support for non-xml sockets
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd_service.erl: Likewise
* src/web/ejabberd_http.erl: Likewise

SVN Revision: 629
2006-09-25 03:51:11 +00:00
Alexey Shchepin
4d7cc9301a * src/ejabberd_socket.erl: All XML socket operations moved here
* src/ejabberd_listener.erl: Updated
* src/ejabberd_receiver.erl: Likewise
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd_service.erl: Likewise

* src/mod_shared_roster.erl: Bugfix

* src/mod_roster_odbc.erl: Bugfix

SVN Revision: 599
2006-09-05 04:26:28 +00:00
Mickaël Rémond
9b8dcac5a7 * src/ejabberd_c2s.erl: Bugfix: added a missing catch and fixed
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
2006-07-28 16:18:50 +00:00
Mickaël Rémond
42cdf80cd4 * src/mod_roster.erl: The subscribe request are now resend at
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
2006-05-23 20:19:37 +00:00
Alexey Shchepin
25ca5013bb * src/ejabberd_c2s.erl: Resend messages when leaving negative
presence state (thanks to Magnus Henoch)

SVN Revision: 542
2006-04-23 14:57:37 +00:00
Alexey Shchepin
c4b976881e * src/msgs/pt-br.msg: Updated (thanks to Lucius Curado)
* src/xml_stream.erl: Support for stanza size limit (thanks to
Igor Goryachev)
* src/ejabberd_receiver.erl: Likewise
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd.cfg.example: Updated

* src/ejabberd_auth.erl: Fixed try_register/3 behaviour

SVN Revision: 537
2006-04-22 03:35:13 +00:00
Alexey Shchepin
aa8e532cbd * src/ejabberd_c2s.erl: Minor fix
* 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
2006-04-12 02:54:27 +00:00
Alexey Shchepin
9a44fdffab * src/ejabberd_sm.erl: SASL Anonymous + Anonymous login support
(thanks to Mickael Remond and Magnus Henoch)
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_auth.erl: Likewise
* src/ejabberd_auth_anonymous.erl: Likewise
* src/cyrsasl.erl: Likewise
* src/cyrsasl_anonymous.erl: Likewise
* src/ejabberd.cfg.example: Likewise

SVN Revision: 527
2006-04-07 00:39:24 +00:00
Mickaël Rémond
3e9e51ee30 * src/Makefile.in: Added an option to compile ejabberd with debug
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
2006-04-01 16:05:20 +00:00
Alexey Shchepin
f3085d09e4 * src/ejabberd_c2s.erl: Bugfix
SVN Revision: 523
2006-03-30 23:30:05 +00:00
Alexey Shchepin
832279f1f2 * src/ejabberd_c2s.erl: Enable zlib only over TCP
SVN Revision: 522
2006-03-25 21:16:49 +00:00
Alexey Shchepin
89e57d421e * src/ejabberd_c2s.erl: Bugfix (thanks to Sergei Golovan)
SVN Revision: 521
2006-03-18 20:10:56 +00:00
Alexey Shchepin
a6b3e6c904 * src/mod_privacy.erl: Fixed privacy list pushing (thanks to
Sergei Golovan)
* src/ejabberd_c2s.erl: Likewise

SVN Revision: 520
2006-03-17 04:35:03 +00:00
Alexey Shchepin
7278a606a8 * src/ejabberd_c2s.erl: Bugfix
SVN Revision: 518
2006-03-16 01:02:44 +00:00
Alexey Shchepin
d837cb9e8d * src/ejabberd_c2s.erl: Bugfix
* src/ejabberd_auth_odbc.erl: Bugfix

SVN Revision: 515
2006-03-05 04:55:43 +00:00
Alexey Shchepin
90618de7be * src/ejabberd_update.erl: Support for run-time ejabberd updating
(not completed)
* src/ejabberd_c2s.erl: Added 'update_info' module attribute for
testing ejabberd_update

SVN Revision: 493
2006-01-27 05:00:27 +00:00
Alexey Shchepin
efacb0ad66 * src/ejabberd_c2s.erl: Remove top-level xmlns from incoming
stanzas
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd_service.erl: Likewise

SVN Revision: 492
2006-01-25 00:35:12 +00:00
Alexey Shchepin
976a616662 * src/ejabberd_c2s.erl: Better error handling for stream
compression support (thanks to Sergei Golovan)

SVN Revision: 491
2006-01-24 22:52:23 +00:00
Alexey Shchepin
a4caafeb72 * src/ejabberd_sm.erl: Partially rewritten to work more
efficiently and avoid race conditions
* src/ejabberd_c2s.erl: Likewise

* src/mod_irc/mod_irc_connection.erl: Cleanup

SVN Revision: 488
2006-01-23 23:13:06 +00:00
Alexey Shchepin
568909d5bb * src/aclocal.m4: Updated for zlib support
* 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
2006-01-19 02:17:31 +00:00
Alexey Shchepin
6bb510d99e * src/ejabberd_service.erl: Bugfix
* src/ejabberd_receiver.erl: Rewritten to use {active, once} mode
for socket
* src/ejabberd_c2s.erl: Update
* src/ejabberd_listener.erl: Likewise
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd_service.erl: Likewise
* src/shaper.erl: Likewise
* src/tls/tls.erl: Likewise
* src/web/ejabberd_http.erl: Likewise

SVN Revision: 483
2006-01-13 01:55:20 +00:00
Alexey Shchepin
f765d7f612 * src/ejabberd_c2s.erl: Send stream error when connection is
replaced (thanks to Maxim Ryazanov)

SVN Revision: 440
2005-11-22 18:00:56 +00:00
Alexey Shchepin
719cd49e59 * src/ejabberd_config.erl: Support for per host certificates
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd.cfg.example: Updated

* src/ejabberd_s2s_in.erl: Fixed id-on-xmppAddr processing

SVN Revision: 432
2005-11-05 21:15:53 +00:00
Alexey Shchepin
9e88ecc1d1 * src/ejabberd_c2s.erl: Updated to work correctly with
mod_vcard_odbc

SVN Revision: 419
2005-10-15 02:45:26 +00:00
Alexey Shchepin
a9e3b76bed * src/ejabberd_c2s.erl: Processing of jabber:iq:register totally
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
2005-07-14 22:28:21 +00:00
Alexey Shchepin
3202705ad6 * src/mod_register.erl: Bugfix
* src/mod_vcard.erl: Bugfix

* src/ejabberd_app.erl: Updated to allow different authentication
methods for different virtual hosts
* src/ejabberd_auth.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/cyrsasl.erl: Likewise
* src/cyrsasl_digest.erl: Likewise
* src/cyrsasl_plain.erl: Likewise
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_config.erl: Likewise
* src/extauth.erl: Likewise
* src/mod_last_odbc.erl: Likewise
* src/mod_offline_odbc.erl: Likewise
* src/mod_roster_odbc.erl: Likewise
* src/odbc/ejabberd_odbc.erl: Likewise
* src/odbc/ejabberd_odbc_sup.erl: Likewise

SVN Revision: 374
2005-07-13 03:24:13 +00:00
Alexey Shchepin
4098c3ecba * (all): Enhanced virtual hosting support
SVN Revision: 370
2005-06-20 03:18:13 +00:00
Alexey Shchepin
7cb79cd482 * src/ejabberd_c2s.erl: Fixed starttls_required behaviour for
legacy connections (thanks to Brian Campbell)

SVN Revision: 345
2005-05-09 19:12:41 +00:00
Alexey Shchepin
e46b28f27f Cleanup
SVN Revision: 309
2005-04-17 21:39:41 +00:00
tmallard
374446f847 Merged the Process One contributions ( Virtual Hosting )
SVN Revision: 307
2005-04-17 18:08:34 +00:00
Alexey Shchepin
e23e473012 * src/ejabberd_c2s.erl: Send new id for each new stream inside one
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
2005-04-09 21:03:42 +00:00
Alexey Shchepin
50bef3787a * src/mod_roster_odbc.erl: Roster support via ODBC (not completed)
* src/ejabberd_auth_internal.erl: Added remove_user hook
* src/ejabberd_auth_odbc.erl: Likewise
* src/mod_roster.erl: Use remove_user hook
* src/mod_offline.erl: Likewise
* src/mod_offline_odbc.erl: Likewise
* src/mod_last.erl: Likewise
* src/mod_last_odbc.erl: Likewise
* src/mod_vcard.erl: Likewise
* src/mod_private.erl: Likewise

* src/mod_roster.erl: Added hooks for functions exported by
mod_roster
* src/ejabberd_c2s.erl: Likewise
* src/ejabberd_sm.erl: Likewise
* src/mod_privacy.erl: Likewise
* src/mod_last.erl: Likewise
* src/mod_last_odbc.erl: Likewise

SVN Revision: 294
2004-12-19 20:47:35 +00:00
Alexey Shchepin
da58d568b1 * src/web/ejabberd_web_admin.erl: Changed type of password field
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
2004-12-05 20:54:55 +00:00
Alexey Shchepin
2f7f3d9b00 * src/aclocal.m4: Fixed headers detecting in AM_WITH_OPENSSL
(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
2004-11-05 21:14:31 +00:00