24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-30 23:02:00 +02:00
Commit Graph

104 Commits

Author SHA1 Message Date
Andreas Köhler
1f1d2bd5f5 Bind listener ports early and start accepting connections later
It may happen that auth or rdbms client tcp connections bind a local
socket to a port number required by a configered listener. The ejabberd
applications fails to start up and needs to be restarted.

In plain C you would bind(2) the listener port and listen(2) later on.
gen_tcp:listen/2 does not allow to separate these two steps though, so
another way is not to accept connections while start up. OTOH, the
kernel will syn/ack incoming connections and receive data, leaving them
in a buffer for the ejabberd to read from. If this is unwanted, a load
balancer would need to receive data from the ejabberd server before
adding the node to its pool.

This patch binds tcp ports while initializing the ejabberd_listener
process, storing ListenSockets in an ets table. start_listeners/0 will
reuse these ports later on.
2010-11-10 23:46:16 +01: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
8d218dd2b9 Command to stop ejabberd informing users, with grace period, and kindly (EJAB-1112)
SVN Revision: 2853
2010-01-03 00:38:00 +00:00
Badlop
041d947e83 Fix bug that forgot listener options when using R12 or older.
SVN Revision: 2734
2009-11-06 18:24:54 +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
Badlop
66cd86e726 Support ejabberd_listener option 'backlog' to increase TCP backlog (thanks to Janusz Dziemidowicz)(EJAB-1063)
SVN Revision: 2678
2009-10-19 13:23:46 +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
Evgeniy Khramtsov
01a9f981f4 it is now possible to start TCP/UDP on the same port
SVN Revision: 2452
2009-08-11 07:15:36 +00:00
Evgeniy Khramtsov
73fabfe3a6 RFC5389 (STUN) support: stand-alone server, binding usage only
SVN Revision: 2450
2009-08-09 10:44:16 +00:00
Badlop
1650a946f2 * src/ejabberd_listener.erl: Fix report message of 'undef' error
SVN Revision: 1916
2009-02-24 17:25:40 +00:00
Badlop
e6324f8a02 Fix a minor compilation warning and add EDoc comment
SVN Revision: 1907
2009-02-21 11:24:08 +00:00
Badlop
ce03742e1b * src/ejabberd_listener.erl: When stopping a listener, don't stop
the listener supervisor (EJAB-874)

SVN Revision: 1891
2009-02-20 14:51:13 +00:00
Badlop
74763be4dd * src/ejabberd_listener.erl: More error detections
SVN Revision: 1884
2009-02-17 15:42:22 +00:00
Badlop
e4a3cdb486 * src/ejabberd_listener.erl: More error detections
SVN Revision: 1883
2009-02-17 09:53:29 +00:00
Badlop
4659ae7683 * src/ejabberd_config.erl: Check certfiles are readable on server
start and listener start (EJAB-753)
* src/ejabberd_listener.erl: Likewise

SVN Revision: 1882
2009-02-16 17:57:30 +00:00
Badlop
70e431787e * src/ejabberd_listener.erl: Report error at startup if a listener
module isn't available or is not an ejabberd listener (EJAB-868)

SVN Revision: 1875
2009-02-13 23:52:24 +00:00
Badlop
d0273f4630 * doc/api/process-one.css: Add some style to HTML elements
* src/ejabberd_listener.erl: Fix EDoc errors
* src/web/ejabberd_web_admin.erl: Likewise

SVN Revision: 1843
2009-01-21 19:49:26 +00:00
Badlop
ba2eb35590 * src/ejabberd_listener.erl: New way to configure IP address and
IP version of listener. Support for definition of IP address in
string format, and implicit definition of IP
version (EJAB-388). Support for defining several listeners: all
with same port number but different IP addresses (EJAB-389)(thanks
to Fabrice Colliot and Sergei Golovan). Better report in WebAdmin
of problem when starting a listener. The old configuration method
of ip tuple and inet6 is fully supported for backwards
compatibility, but is not documented in the Guide anymore.
* src/ejabberd_config.erl: Likewise
* src/mod_proxy65/mod_proxy65_stream.erl: Likewise
* src/mod_proxy65/mod_proxy65_service.erl: Likewise
* src/web/ejabberd_web_admin.erl: Likewise
* doc/guide.tex: Document the new way to configure IP address and
IP version of listener, undocument options ip and inet6
* doc/guide.html: Likewise

SVN Revision: 1812
2009-01-12 20:03:02 +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
cdcf2d380b * src/ejabberd_lstener.erl: Fix listeners
* src/ejabberd_sup.erl: Likewise
* src/gen_mod.erl: Likewise

SVN Revision: 1665
2008-10-24 17:26:11 +00:00
Badlop
9194c25a4e * src/ejabberd_app.erl: Start listeners explicitely at server
start after everything else (EJAB-303). Implement support in
ejabberd for 'independent listeners', which handle their
connections themselves: gen_tcp:listen, etc.
* src/ejabberd_listener.erl: Likewise
* src/ejabberd_socket.erl: Likewise
* src/ejabberd_sup.erl: Likewise

SVN Revision: 1631
2008-10-12 11:11:29 +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
ab9b30c4d4 * src/ejabberd_listener.erl (start_listener): Revert SVN r1260.
SVN Revision: 1290
2008-04-11 15:47:44 +00:00
Badlop
dcc00bca6d * src/ejabberd_listener.erl: Remove code of the unused listening
socket option 'ssl' (EJAB-159)
* src/ejabberd_app.erl: Likewise

SVN Revision: 1263
2008-03-31 19:48:35 +00:00
Badlop
f634e4dc0d * src/ejabberd_listener.erl (start_listener): Start also the
supervisor of the module

SVN Revision: 1260
2008-03-31 09:30:51 +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
Mickaël Rémond
56fe3579bb * Applied copyright update patch 1.
SVN Revision: 1110
2007-12-24 11:41:41 +00:00
Badlop
09a30422f5 * doc/guide.tex: Remove 'ssl' option from documentation and
configuration load (EJAB-461)
* src/ejabberd_listener.erl: Likewise

* src/msgs/cs.msg: Small typo (thanks to Lukas Polivka alias
Spike411)

* src/ejabberd.cfg.example: Small change in order of options

SVN Revision: 1073
2007-12-17 11:03:22 +00:00
Badlop
d625fc80fc * src/acl.erl and other 64 files: Remove Erlang module attribute
'vsn' because it doesn't provide any worth feature, and it
difficults hot code update (EJAB-440)

SVN Revision: 1044
2007-12-06 22:12:27 +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
a5e4d5d550 * src/mod_muc/mod_muc_log.erl: Fixed html special characters
escaping, added new image buttons, chatroom titles now point to
xmpp: URIs (thanks to Badlop)

* src/ejabberd_listener.erl: Bugfix

SVN Revision: 602
2006-09-09 23:33:00 +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
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
cc19cb1785 * src/ejabberd_listener.erl: Enable keepalive option
* src/xml_stream.erl: Added API for managing xml streams without
creating process
* src/ejabberd_receiver.erl: Use this API, now 2 processes are
created per C2S connection

SVN Revision: 288
2004-12-03 22:54:02 +00:00
Alexey Shchepin
db824bfc64 * src/ejabberd_listener.erl: Check result of controlling_process
SVN Revision: 270
2004-09-29 21:10:40 +00:00
Alexey Shchepin
84c4d93ca5 * src/web/ejabberd_web_admin.erl: Added configuration of listened
ports
* src/ejabberd_listener.erl: Added API for configuration of port
listeners

* src/web/ejabberd_web_admin.erl: Fixed "Stop" button on node
management page

SVN Revision: 238
2004-06-17 21:29:24 +00:00
Alexey Shchepin
63feb5dabf * src/web/ejabberd_web_admin.erl: Updated
* src/ejabberd_listener.erl: Added API for adding/removing
listeners

SVN Revision: 232
2004-05-09 18:38:49 +00:00
Alexey Shchepin
c812a59efc * doc/guide.tex: Updated
* src/ejabberd_listener.erl: Now possible to specify interface on
which one socket will be listened, also added another way to
specify SSL options
* src/ejabberd.cfg.example: Updated

SVN Revision: 231
2004-05-08 19:30:38 +00:00
Alexey Shchepin
23b3779b20 * src/ejabberd_listener.erl: Fixed starting of SSL connection
* src/ejabberd_s2s_in.erl: Partially rewriten

* src/ejabberd_router.erl: More verbose error report
* src/ejabberd_local.erl: Likewise
* src/ejabberd_sm.erl: Likewise

* src/ejabberd_s2s_out.erl: Updated to be compatible with R9C

* src/ejabberd_c2s.erl: Minor fix

SVN Revision: 164
2003-10-29 20:09:09 +00:00
Alexey Shchepin
188be0dc62 * src/ejabberd_listener.erl: Added handling of accept errors,
added timeout value to ssl:accept

* src/mod_vcard.erl: Added checks for all empty input fields

* src/mod_offline.erl: More strong checks for stored packets

SVN Revision: 163
2003-10-28 20:26:43 +00:00
Alexey Shchepin
146d464f96 * doc/guide.tex: Updated
* src/ejabberd.cfg: Added "register" rule, added some comments,
this file renamed to ejabberd.cfg.example

* src/mod_register.erl (try_register): Fixed error reply, added
check for "register" access rule

* src/stringprep/Makefile.win32: Added Makefile for Win32 (thanks
to Sergei Golovan)

SVN Revision: 148
2003-10-11 17:39:36 +00:00
Alexey Shchepin
7df146166a * src/ejabberd_c2s.erl: Added authentification logging
* src/ejabberd_listener.erl: Added logging of accepted connections

* src/stringprep/stringprep_drv.c: Cleanup

* src/jd2ejd.erl: Added support for iq:private importing

* src/mod_configure.erl: Fixed user removal

* src/mod_private.erl: Added remove_user/1

* doc/guide.tex: Updated

* src/mod_disco.erl: Added "extra_domains" option

SVN Revision: 146
2003-10-09 18:09:05 +00:00
Alexey Shchepin
ee72872087 * src/ejabberd_listener.erl: Fixed SSL options
SVN Revision: 133
2003-08-30 19:19:23 +00:00
Alexey Shchepin
ca5d88c368 * (all): Reorganized supervision tree
SVN Revision: 125
2003-07-20 20:35:35 +00:00
Alexey Shchepin
1834fb3a72 * src/ejabberd_s2s_out.erl: Close connection after key
verification

* src/ejabberd_c2s.erl: start replaced with start_link
* src/ejabberd_s2s_in.erl: Likewise
* src/ejabberd_s2s_out.erl: Likewise
* src/ejabberd_service.erl: Likewise

* src/ejabberd_listener.erl: Now uses proc_lib to spawn listeners,
removed 3rd parameter in listener configuration (assumed to equal
start_link)

* src/ejabberd.rel: Updated

* doc/guide.tex: Small changes

* doc/Makefile: Added implicit charset specification to hevea

SVN Revision: 124
2003-07-14 18:06:03 +00:00
Alexey Shchepin
8b26ac9e97 * src/ejabberd_s2s_out.erl: Fixed ports leak
* src/ejabberd_listener.erl: Likewise

* src/ejabberd_c2s.erl: Fixes for SASL support

* src/cyrsasl.erl: Fixes

* src/cyrsasl_digest.erl: DIGEST-MD5 SASL mechanism support

SVN Revision: 87
2003-03-12 19:48:05 +00:00
Alexey Shchepin
a8a8e3b5a6 *** empty log message ***
SVN Revision: 62
2003-02-06 19:09:22 +00:00
Alexey Shchepin
6599d1ecc5 *** empty log message ***
SVN Revision: 55
2003-02-01 20:21:28 +00:00
Alexey Shchepin
f0427ecab5 *** empty log message ***
SVN Revision: 46
2003-01-21 20:36:55 +00:00
Alexey Shchepin
2617433ae3 *** empty log message ***
SVN Revision: 32
2003-01-07 19:10:35 +00:00
Alexey Shchepin
e6c062fe40 *** empty log message ***
SVN Revision: 12
2002-12-06 20:59:19 +00:00
Alexey Shchepin
e0b348319a Initial revision
SVN Revision: 2
2002-11-18 20:39:47 +00:00