Commit Graph

182 Commits

Author SHA1 Message Date
Evgeniy Khramtsov 522a186a38 Improve some type specs 2016-08-09 10:56:32 +03:00
Evgeniy Khramtsov c409ed2f2c Rewrite S2S and ejabberd_service code to use XML generator 2016-07-27 10:45:08 +03:00
Holger Weiss 15d184a909 Disable TLS compression for s2s by default
TLS compression is not recommended, and it's already disabled by default
for c2s connections and for ejabberd_http.
2016-04-11 22:50:11 +02:00
Mickael Remond dfc29ea03c Switch to Fast XML module 2016-02-03 19:03:17 +01:00
Badlop f448ff608a Update copyright to 2016 (#901) 2016-01-13 12:29:14 +01:00
Evgeniy Khramtsov c7931b4a4f CVE-2016-1232: Add Dialback Key Generation and Validation support (XEP-0185) 2016-01-11 14:22:17 +03:00
Paweł Chmielowski 95a9100623 Fix more places where random:seed is used 2015-12-07 16:48:29 +01:00
Paweł Chmielowski 29db302808 More now() replacements 2015-12-07 16:09:48 +01:00
Evgeniy Khramtsov 95265dd3ad Move JID related functions to jid.erl (#847) 2015-11-24 18:44:13 +03:00
Christophe Romain 341be9b682 Remove supervisor option, disable it for c2s and muc 2015-11-04 16:24:35 +01:00
Christophe Romain 6aeb9dcb38 cosmetic cleanup 2015-10-07 14:18:38 +02:00
Evgeniy Khramtsov 6740b1f0e1 Rename idna.erl to ejabberd_idna.erl (#702) 2015-09-02 16:02:46 +03:00
Holger Weiss fc0754c609 Add s2s_dhfile to list of known options 2015-06-20 00:14:54 +02:00
Holger Weiss e608274243 Add s2s_dhfile option to configuration validator 2015-06-16 15:18:34 +02:00
Alexey Shchepin 2110b929bc Merge pull request #581 from weiss/dh-param-file
New options: dhfile and s2s_dhfile
2015-06-16 11:59:06 +03:00
Evgeniy Khramtsov fb6267f38e Add config validation at startup 2015-06-01 15:38:27 +03:00
Holger Weiss 5585fb1ecf New options: dhfile and s2s_dhfile
Let admins specify a file that contains custom parameters for
Diffie-Hellman key exchange.
2015-05-26 21:06:04 +02:00
Holger Weiss afdc269825 ejabberd_s2s_out: Remove Erlang/OTP version check
The version check won't work for Erlang/OTP >= 17; and it's no longer
needed, as we don't support versions older than R16 anyway.
2015-04-16 23:51:16 +02:00
Christophe Romain 0c0947a241 Add compatibility macros for deprecated types (thanks to Alexey) 2015-02-23 09:58:00 +01:00
Badlop 5a35405cd5 Update copyright dates to 2015 (EJAB-1733) 2015-01-08 17:34:43 +01:00
Evgeny Khramtsov 9563b0228f Merge pull request #177 from weiss/log-tls-sasl-external
Log TLS status for outgoing s2s with SASL EXTERNAL
2014-04-30 00:38:18 +04:00
Evgeny Khramtsov 8419322884 Merge pull request #181 from weiss/check-tls-before-auth
Check TLS state before requesting SASL EXTERNAL for outgoing s2s connections
2014-04-30 00:36:08 +04:00
Holger Weiss 49bdbf2895 Support certificate verification for outgoing s2s
Handle "s2s_use_starttls: required_trusted" the same way for outgoing
s2s connections as for incoming connections.  That is, check the remote
server's certificate (including the host name) and abort the connection
if verification fails.
2014-04-28 01:42:02 +02:00
Holger Weiss d805d198ac Check TLS state before requesting SASL EXTERNAL
Make sure a remote server can't circumvent "s2s_use_starttls: required"
by offering SASL EXTERNAL authentication over a non-TLS connection.
2014-04-24 11:04:10 +02:00
Holger Weiss f988aad940 Log TLS status for outgoing s2s with SASL EXTERNAL 2014-04-23 23:28:13 +02: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
Badlop 633d47f784 Update copyright dates to 2014 (EJAB-1679) 2014-03-13 12:30:57 +01:00
Jamie Nguyen 8538997d61 Update FSF address 2014-02-22 10:27:40 +00: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 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
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
Alexey Shchepin b1e2538488 Update copyright dates 2012-02-23 17:52:34 +02:00
Evgeniy Khramtsov 6b0eb1f09d Reorganize the code to shut up the dialyzer 2011-09-05 21:27:31 +10:00
Christophe Romain fd52f2cb7d update copyright up to 2011 2011-02-14 13:50:55 +01:00
Badlop 6ddc66db9f Handle Tigase's unexpected version=1.0 when ejabberd doesn't announce it (EJAB-1379) 2011-01-31 19:43:28 +01:00
Evgeniy Khramtsov 606c207e21 Make sure 'closed' event is correctly processed on every state 2010-12-17 17:26:20 +09:00
Badlop b9bbe19d4c Option to reject S2S connection if untrusted certificate (EJAB-464) 2010-12-11 02:29:53 +01:00
Badlop 44b2002504 Include From attribute in the stream header of outgoing S2S connections 2010-12-11 02:29:52 +01:00
Badlop eb884c80d0 Add option to require encryption in S2S connections (EJAB-495) 2010-12-11 02:29:48 +01:00
Andreas Köhler e34eebb5ad Correct domain_certfile tlsopts modifications for s2s connections (EJAB-1086)
* In ejabberd_s2s_out:wait_for_feature_request/2, the domain to use for
  looking up domain_certfile options is #state.myname and not
  #state.server

* If s2s_certfile is not specified, connect should still be part of the
  tls options used by ejabberd_s2s_out

* Add #state.server to ejabberd_s2s_in processes and store the to
  attribute in :wait_for_stream/2. Then use that server in
  :wait_for_feature_request/2 to change the tls options like in
  ejabberd_s2s_out.

Fixes EJAB-1086.
2010-11-26 00:14:46 +01:00
Evgeniy Khramtsov ac87749d55 add find_s2s_bridge hook 2010-10-11 18:40:57 +10:00
Evgeniy Khramtsov 1f2c9b7971 fixes typo in stop_connection/1 2010-09-28 14:20:02 +10:00
Badlop c8033833f9 When logging s2s out connection attempt or success, log if TLS is used 2010-07-23 00:25:43 +02:00
Evgeniy Khramtsov 715cc5ea3b New configure option: --enable-nif 2010-07-01 20:54:01 +10:00
Pablo Polvorin 84c4d75735 Remove warning for undefined print_state/1 function for p1_fsm processes (thanks Badlop).
Include a identity function as implementation of print_state/1.
2010-04-09 14:25:00 -03:00
Evgeniy Khramtsov 31c3a78453 improved s2s connections clean up (EJAB-1202) 2010-03-04 12:36:57 +09:00
Badlop 86794b1d23 Fix OTP version detection to work with old supported R10 and R11
SVN Revision: 2906
2010-01-16 12:24:11 +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 d812975565 Provide more detailed log message when s2s stream start fails.
SVN Revision: 2831
2009-12-28 15:29:42 +00:00
Badlop 798853abb6 Fix mistake that disallowed s2s_out connections when using Erlang R12 or older.
SVN Revision: 2694
2009-10-21 21:11:09 +00:00
Badlop 257e4c34a8 Provide send_timeout_close option in TCP only in R13B or higher (EJAB-926)
SVN Revision: 2680
2009-10-19 14:47:05 +00:00
Mickaël Rémond 006515020a Support gen_tcp send timeout: Close the connection if the other end has disconnected ungracefully or cannot keep up with the rate at which we are sending data (EJAB-926)
SVN Revision: 2671
2009-10-19 09:36:23 +00:00
Badlop 355648dc7e If s2s fails due to namespace mismatch, show differences to help debugging the problem.
SVN Revision: 2662
2009-10-12 22:51:19 +00:00
Evgeniy Khramtsov 14232df14c new option added: max_fsm_queue. removed hardcoded FSMLIMITS
SVN Revision: 2645
2009-10-07 14:24:09 +00:00
Badlop d678a21f21 Change some error messages.
SVN Revision: 2587
2009-09-07 14:28:08 +00:00
Badlop 720fd7605d Document the new option s2s_dns_options, expressed in seconds (EJAB-994)
SVN Revision: 2417
2009-08-03 15:03:50 +00:00
Geoff Cant f4330e9ed3 EJAB-994: Implements DNS timeouts and retries.
SVN Revision: 2404
2009-07-30 12:34:59 +00:00
Badlop b5964c2a5f Added API function to get current S2S connections with information
get_info_s2s_connections(Type) returns a list of incoming (or outgoing)
S2S connections with information for each one including IP address,
port number, TLS options... (thanks to Juan Pablo Carlino)

SVN Revision: 2088
2009-05-19 09:38:17 +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
Mickaël Rémond f0af10e600 * src/ejabberd_listener.erl: Define send timeout option to avoid blocking on socket send (EJAB-746).
* src/ejabberd_s2s_out.erl: Likewise.

SVN Revision: 1784
2009-01-08 20:49:16 +00:00
Badlop 1944aa097f Use inet:gethostbyname instead of inet_res:getbyname
SVN Revision: 1758
2008-12-26 18:36:53 +00:00
Badlop 682909e0fc * src/ejabberd_config.erl: Option outgoing_s2s_options to define
s2s outgoing behaviour: IPv4, IPv6 and timeout (thanks to Stephan
Maka)(EJAB-665)
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd_socket.erl: Likewise
* src/ejabberd.cfg.example: Likewise
* doc/guide.tex: Likewise
* doc/guide.html: Likewise

SVN Revision: 1756
2008-12-26 11:45:08 +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
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
Mickaël Rémond 8dae53abda * src/ejabberd_s2s_out.erl: Fix compilation error.
SVN Revision: 1332
2008-05-18 12:34:52 +00:00
Mickaël Rémond 8a8a02431f * src/ejabberd_s2s_out.erl: Avoid an harmless error (function clause in logs)
SVN Revision: 1331
2008-05-18 12:28:58 +00:00
Christophe Romain 5bec1eedc1 Change FSMTIMEOUT to 30s
SVN Revision: 1328
2008-05-16 15:29:33 +00:00
Badlop ef531fb208 * src/ejabberd_s2s_out.erl: Improve confusing log message in s2s
connection: wait_for_validation connect timeout (EJAB-617)

SVN Revision: 1311
2008-04-29 16:59:03 +00:00
Badlop ee6aae8211 * src/ejabberd_s2s_out.erl: Fix long timeout when reconnecting s2s
after a remote server crash (EJAB-540)
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd_s2s.erl: Likewise
* doc/guide.tex: Likewise

SVN Revision: 1296
2008-04-18 12:19:45 +00:00
Mickaël Rémond 320c266276 * src/ejabberd_s2s.erl: Only trigger s2s_connect_hook on successful connection (EJAB-566)
* src/ejabberd_s2s_out.erl: Likewise

SVN Revision: 1235
2008-03-17 10:16:21 +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
Alexey Shchepin e0fc360cf8 * src/ejabberd_s2s_out.erl: Fixed behavior when outgoing_s2s_port
option is not defined

SVN Revision: 1129
2007-12-29 14:22:38 +00:00
Mickaël Rémond 56fe3579bb * Applied copyright update patch 1.
SVN Revision: 1110
2007-12-24 11:41:41 +00:00
Alexey Shchepin b14c88aaaf * src/ejabberd_s2s_out.erl: Bugfix
SVN Revision: 1069
2007-12-14 09:12:14 +00:00
Mickaël Rémond 5a3c80e380 * src/ejabberd_s2s_out.erl: Increase dialback timeout as dialback can
sometimes take longer than expected.

SVN Revision: 1052
2007-12-08 16:39:02 +00:00
Badlop 6342c258a7 * src/cyrsasl.erl: Fix compilation warnings: Part 1 (EJAB-290)
* src/ejabberd_auth_odbc.erl: Likewise
* src/ejabberd_config.erl: Likewise
* src/ejabberd_hooks.erl: Likewise
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd_sm.erl: Likewise
* src/idna.erl: Likewise
* src/jd2ejd.erl: Likewise

SVN Revision: 1045
2007-12-06 23:15:04 +00:00
Alexey Shchepin 950060cd3c * src/ejabberd_s2s_out.erl: Bugfix
SVN Revision: 976
2007-11-25 16:14:32 +00:00
Mickaël Rémond b53f2be7f2 * src/ejabberd_s2s_out.erl: Changed to actual p1_fsm behaviour. It was working
correctly as the API of p1_fsm and gen_fsm is strictly the same.

SVN Revision: 948
2007-09-14 14:21:25 +00:00
Mickaël Rémond f6bf5973ef * src/ejabberd_s2s_out.erl: Implements s2s negociation timeouts and s2s connection retrial interval (EJAB-357, EJAB-294).
SVN Revision: 936
2007-09-14 14:18:32 +00:00
Mickaël Rémond 0efaacb24e open up to 3 s2s outgoing connection per domain pair
SVN Revision: 935
2007-09-14 14:18:17 +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
Mickaël Rémond b78d8ee55f * src/ejabberd_s2s_out.erl: Moved s2s connexion information from INFO level to DEBUG level and more human readable information explaining what is going on (EJAB-353).
SVN Revision: 930
2007-09-14 14:16:20 +00:00
Mickaël Rémond 9fc203ee6d open up to 3 s2s outgoing connection per domain pair
SVN Revision: 928
2007-09-14 14:15:44 +00:00
Mickaël Rémond f9221e2212 * src/ejabberd_s2s_out.erl: Avoid bouncing messages twice if terminate happens during open_connect.
SVN Revision: 854
2007-08-01 11:25:23 +00:00
Mickaël Rémond dda2464b85 * src/ejabberd_s2s_out.erl: On terminate, bounce internal process queue and Erlang message queue.
SVN Revision: 853
2007-08-01 11:18:52 +00:00
Mickaël Rémond 6e24711099 * src/ejabberd_s2s_out.erl: Autodisconnect s2s connections which are overloaded (EJAB-287).
* src/p1_fsm.erl: Likewise.

SVN Revision: 821
2007-07-24 09:04:09 +00:00
Mickaël Rémond abadd82c66 * src/ejabberd_s2s_out.erl: Make s2s connections more robust
* src/ejabberd_s2s.erl: Likewise

SVN Revision: 817
2007-07-18 16:26:50 +00:00
Mickaël Rémond 1b19d72e6f * src/ejabberd_s2s_out.erl: Improved place of the INFO / DEBUG printout (EJAB-282).
SVN Revision: 814
2007-07-17 07:20:55 +00:00
Alexey Shchepin 2810c2b300 * src/ejabberd_s2s.erl: Added remove_connection/3
* src/ejabberd_s2s_out.erl: Bugfix: remove only own s2s record

SVN Revision: 812
2007-07-15 07:28:47 +00:00
Alexey Shchepin 907878081d * src/ejabberd_s2s_out.erl: Bounce packets after unregistering s2s
connection, not before

SVN Revision: 811
2007-07-11 14:10:28 +00:00
Alexey Shchepin 56f01cfe6e * src/ejabberd_s2s_out.erl: Bugfix
SVN Revision: 700
2006-12-31 00:38: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
Alexey Shchepin d5137b0563 * src/xml_stream.erl: Added catching of gen_fsm:send_event errors
* src/ejabberd_s2s_out.erl: Better support for multiple SRV
records (thanks to Sergei Golovan)

* src/mod_muc/mod_muc_log.erl: Support for chatroom logging
(thanks to Badlop)
* src/mod_muc/mod_muc_room.erl: Likewise
* src/mod_muc/Makefile.in: Likewise
* src/mod_muc/Makefile.win32: Likewise

* src/gen_iq_handler.erl: Added support for {queues, N} IQ handler
type

SVN Revision: 517
2006-03-14 04:26:15 +00:00
Alexey Shchepin 0cc168a9aa * src/mod_muc/mod_muc_room.erl: Kick non-members when room
reconfigured to be member-only or when membership is revoked in
member-only room, allowed "true" and "false" in x:data forms
(thanks to Sergei Golovan)

* src/mod_configure.erl: Added "Host" parameter to get_form and
set_form functions (thanks to Sergei Golovan)

* src/ejabberd_s2s_out.erl: Bugfix

* src/msgs/es.msg: Updated (thanks to Badlop)

* src/web/ejabberd_web.erl: Bugfix (thanks to Badlop)

* src/mod_irc/mod_irc.erl: Updated copyright dates
* src/mod_muc/mod_muc.erl: Likewise
* src/mod_pubsub/mod_pubsub.erl: Likewise
* src/mod_vcard.erl: Likewise
* src/mod_vcard_ldap.erl: Likewise
* src/mod_vcard_odbc.erl: Likewise
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 500
2006-02-06 05:12:54 +00:00